Apertura Scheda (Tab) Generica
Una generica scheda (aka tab) di Geoweb può essere aperta invocando la generica function openTab() con il corretto set di argomenti. Essa può essere usata direttamente, ma è anche invocata internamente a tutte le function semplificate che aprono schede di tipi specifici usando un minore set di parametri o settandone alcuni default.
Ad ogni tab viene assegnato, in fase di prima apertura, un id univoco (tabWidgetId) (dojo si assicura con non possa essere usato più volte). Esso è rilevante, in quanto, in caso di successive invocazioni della function openTab(), con lo stesso tabWidgetId, Geoweb in caso trovasse già aperta una scheda con lo stesso identificativo, la ri-porterebbe semplicemente in primo piano (Anche se esistono parametri per forzare refresh/reload). E' buona prassi generare tabWidgetId utilizzando l'apposita function createTabId(/*String*/ tabWidgetType, /*String*/ name). Essa prende in ingresso tabWidgetType come primo parametro e una caratteristica identificativa del tipo di scheda che si vuole aprire (Es: per una scheda con tabWidgetType='gwClassList', tabWidgetId è rappresentato dal nome della gwClass).
//tabWidgetId creation var tabWidgetType = 'gwClassList'; var name = 'gw_class_Name'; var tabWidgetId = createTabId(tabWidgetType, name);
La funzione restituisce il widget dojo che di fatto rappresenta la scheda aperta, e che può esporre tutte le API generali (come gwRefresh(), gwReload(), etc..), se implementate, e API specifiche, che dipendono di volta in volta dalla tipologia di scheda.
La funzione assume comportamenti differenti a seconda del tipo di progetto dove viene eseguita. Nei progetti di tipo GeoManager essa apre una scheda nel contenitore di tab principale. Nei progetti di tipo GeoExplorer essa apre il contenuto della scheda nel contenitore comune posto sotto le schede di tipo mappa (per ottenere lo stesso comportamento del GeoManager vedi la function openMainTab()).
Parametri
- tabWidgetId String, required. E' un identificativo univoco per la scheda che si vuole aprire
- tabWidgetType String, required. Identifica la tipologia della scheda. Concorre, insieme a tabWidgetType, alla creazione dell'id del tab.
- tabWidgetTitle String, optional, default null. L'intestazione che verrà mostrata sulla scheda. Alcuni tipi di scheda, come le gwClassDetail/gwClassList in caso di assenza potrebbero settarsi in automatico un titolo significativo di default.
- parametersMap Object, optional, default null. E' un insieme di parametri generali per customizzare l'apertura della scheda. Può contenere anche parametri specifici per il tabWidgetType che si vuole aprire. Parametri generali:
- postData Object, optional, default null. Set di proprietà che viene inviato nella richiesta POST al controller (TODO inserire link a wiki sviluppatore)
- props Object, optional, default null. Set di proprietà con cui viene arricchito l'oggetto tabWidget una volta aperto, e che rimangono utilizzabili successivamente fintanto che il tab rimane aperto
- closable Boolean, optional, default true. Determina se il tab sarà chiudibile dall'utente tramite GUI (tastino X sull'intestazione del tab)
- forceRefreshTab Boolean, default false. Se posto a true, l'eventuale tab già aperto con stesso identificativo viene non solo riportato in primo piano, ma ne viene anche invocata l'apposita function esposta per il refresh dei dati (in genere il semplice refresh non causa la perdita di stati della scheda raggiunti tramite l'interazione utente)
- forceReplaceTab Boolean, default false. Se posto a true, l'eventuale tab già aperto con stesso identificativo viene non solo riportato in primo piano, ma totalmente ricaricato (quindi eventuali risultati di interazioni utente, tipo per esempio la navigazione di un albero fino ad un determinato livello, viene perso) Si mette generalmente a true, per esempio, quando la stessa gwClassList è aperta da più punti (link) di una gwHtmlReport (report che mostra parzializzazioni degli stessi dati).
- insertIndex Integer, default null. Se presente apre il tab alla specifica posizione di pari indice all'interno del Contenitore delle schede. Fa le stesse cose del quarto parametro generale di openTab()
- leafItemName String, optional. Nome del leafItem. Viene popolato automaticamente quando l'utente clicka su un menu di terzo livello, interagendo con la GUI
- insertIndex Object, optional, default null. Se presente apre il tab alla specifica posizione di pari indice all'interno del Contenitore delle schede
Esempio
var tabWidgetType = 'gwClassList'; var name = 'gw_class_Name'; var tabWidgetId = createTabId(tabWidgetType, name); var tabWidgetTitle = 'Title'; var parametersMap = { forceReplaceTab: true //... }; var insertIndex = null; var tabWidget = openTab(tabWidgetId, tabWidgetType, tabWidgetTitle, parametersMap, insertIndex); //tabWidget holds all exposed functions