classe astratta vis_campo
{
costruttore($bd_campo);
AllocaTag(&$nome, &$vAttr, &$cont, $i, $col); &
AggScript(&$nomeFnz);
Attributi(&$valore, &$classe, $valGrezzo=NULL); &
CampiMappati();
ClasseOLunghezza();
CompletaIstanza(&$bd_campo); &
Contenuto(&$valore, &$classe); &
CreaScript();
DaChiudere($i=0);
Dimensione();
Elemento(&$vett, $indice); &
Elemento2(&$vett, $indice); &
Html($valore, $livello=1); &
ManipolaValore(&$valore); &
IstanziaVis($tipo, &$bd_campo, &$par); &
IstanziaVisParziale($tipo, &$par); &
NomeHtmlDi(&bd_campo); &
NomeHtml2(&$nome_tab, &$nome_campo); &
PerHtml(&$valore, &$classe); &
PerProtoh($col, &$classe); &
PerStampa($valore, $classe='finto'); &
Tag();
Titolo($nuovoTitolo=NULL);
TrasferisceArchivio();
Visibile();
}

define('VIS_CONTR', 0);
define('VIS_BOOL', 1);
define('VIS_TENDINA', 2);
define('VIS_RICERCA', 3);
define('VIS_IMMAGINE', 4);
define('VIS_SCRITTA', 5);
define('VIS_NESSUNO', 6);
define('VIS_SEQUENZA', 7);
define('VIS_RADIO', 8);
define('VIS_SEQUENZA_CSS', 9);
costruttore($bd_campo)

CreaScript()
Questo metodo viene chiamato dagli oggeti del modulo html/aspetto prima di tutti gli altri e serve per indicare a navigami i js richiesti dal controllo.
Ogni sottoclasse che richiede js aggiuntivi deve ridefinire il metodo.

AggScript(&$nomeFnz)
Indica all'oggetto di aggiungere dello script da eseguire sull'evento scelto dalla sottoclasse.
Il parametro indicato NON può essere script qualunque, ma DEVE essere il nome di una funzione javascript che prende come parametro this. Chiamate multiple di questo metodo sovrascrivono i loro effetti e solo l'ultima di queste verrà quindi considerata

statica e d'istanza CampiMappati($tipo=NULL, $par=NULL)
Indica quanti campi di basedati sono richiesti per la visualizzazione del controllo implementato dalla sottoclasse.
Se invocata con due parametri è statica e ritorna il ritorno dell'implementazione statica dello stesso metodo col solo secondo parametro;
se invocata con un solo parametro allora dovrebbe essere invocata come metodo statico ereditato da una sottoclasse concreta, il parametro è $par;
se, infine, viene invocata senza parametri è un metodo d'istanza e torna sempre 1.

Html(&$valore, $classe='finto', $livello=1) &
Torna un oggetto di tipo Html che contiene solo un controllo per questo campo.

PerHtml(&$valore, &$classe) &
Torna un oggetto che può essere inserito in un oggetto html mediante il metodo InsConsumabile. Esso conterra la definizione dei tag che rappresenteranno il campo secondo l'implementazione concreta della sottoclasse.

protetta ManipolaValore(&$valore) &
pretratta il valore (predefinito) del campo in modo che possa essere immerso nell'html

PerProtoh($col, &$classe) &
Torna un oggetto che può essere inserito in un oggetto protohtml mediante il metodo InsConsumabile. Esso conterrà la definizione dei tag che rappresenteranno il campo secondo l'implementazione concreta della sottoclasse.

PerStampa(&$valore, $classe='finto') &
Torna una stringa che contiene la definizione dei tag che rappresenteranno il campo secondo l'implementazione concreta della sottoclasse.

statica NomeHtmlDi(&$bd_campo) &
Dato un oggetto di tipo bd_campo calcola il nome del controllo che deve contenere il valore che verrà memorizzato sulla basedati.

statica NomeHtml2(&$nome_tab, &$nome_campo) &
Dato il nome della tabella e del campo calcola il nome del controllo che deve contenere il valore che verrà memorizzato sulla basedati.

statica IstanziaVis($tipo, $bd_campo, &$par)
Ritorna un'istanza della sottoclasse indicata dal parametro tipo che deve essere una delle costanti VIS_*
i restanti parametri vengono passati al costruttore della sottoclasse.

statica IstanziaVisParziale($tipo, &$par)
Ritorna un'istanza della sottoclasse indicata dal parametro tipo che deve essere una delle costanti VIS_*
i restanti parametri vengono passati al costruttore della sottoclasse.
NOTA: L'istanza ottenuta con questo metodo non è funzionante, in quanto non è legata ad uno specifico campo della base dati. per avere un'istanza funzionante usare CompletaIstanza sull'oggetto tornato da questo metodo.

CompletaIstanza(&$bd_campo) &
Ritorna una copia dell'istanza corrente collegata al campo indicato.

Titolo($nuovoTitolo=NULL)
Navigami effettua una basilare trasformazione del nome del campo per renderlo più leggibile all'utente.
Questa trasformazione consiste nel riconoscimento ed eliminazione di prefissi indicanti la tabella e la sostituzione di underscore con spazii.
In questo metodo le sottoclassi possono inserire ulteriori trasformazioni del titolo a partire dal cone del campo modificato da navigami.
Questo metodo esegue la trasformazione su descritta. Se, invece, il parametro viene impostato allora il valore verrà usato come titolo.

Visibile()
Indica se il controllo in questione è visibile all'utente o meno.

TrasferisceArchivio()
Indica se il controllo in questione richiede il trasferimento di un archivio sul server.

protetta, astratta Tag() &
L'implementazione di questo metodo astratto dovrà ritornare un riferimento ad una stringa contenente il nome del tag.
Nel caso in cui l'implementazione della classe necessiti di generare più tag, allora questo metodo dovrà ritornare un riferimento ad un vettore di stringhe

protetta, astratta Attributi(&$valore, &$classe, $valGrezzo=NULL) &
L'implementazione di questo metodo astratto dovrà ritornare un riferimento ad un vettore contenente l'associazione nome-attributo=>valore-attributo del tag voluto.

ClasseOLunghezza()
stabilisce come deve essere impostata la sua lunghezza. Se torna una stringa, essa indica la classe da usare. Se torna un intero, indica il numero di pixel precisi che deve essere lungo.

protetta Contenuto(&$valore, &$classe) &
La ridefinizione di questo metodo dovrà ritornare un riferimento ad un consumabile rappresentante il contenuto del tag. Se non ridefinito il tag non avrà contenuto.

protetta protetta DaChiudere($i=0)
Torna sempre FALSO.
Indica se il tag $i va chiuso.

protetta Script() &
Genera lo script per il controllo.
Dovrebbe essere richiamata da Attributi per posizionarlo opportunamente.

protetta Elemento(&$vett, $indice) &
Se il parametro $vett è un vettore allora viene ritornato un riferimento all'elemento di posizione $indice, altrimenti un riferimento a $vett.

protetta Elemento2(&$vett, $indice) &
Se il parametro $vett è una matrice con almeno due dimensioni allora viene ritornato un riferimento all'elemento (vettore) di posizione $indice, altrimenti un riferimento a $vett.