Servizi UI
linkIntroduzione
I servizi UI consentono di modificare in modo generalizzato il funzionamento delle videate e dei pannelli di Instant Developer Foundation. Per ottenere questo risultato è possibile utilizzare i seguenti tipi di oggetti:
- Eventi globali di pannello e di form.
- I Tag.
- I metodi per la personalizzazione delle toolbar dei pannelli.
- Le librerie generalizzate IDPanel e IDForm.
Eventi globali di pannello e di form
Un evento globale di pannello o di form è una procedura Visual Code che intercetta la notifica del relativo evento per tutti i pannelli o per tutte le form dell'applicazione. Per far sì che un evento di pannello o di form diventi un evento globale è necessario utilizzare il comando di menù contestuale Make Global sull'oggetto evento contenuto nella libreria, come mostrato nell'immagine sotto.
Come rendere globale l'evento di OnActivateRow del pannello.
Rendendo globale un evento di pannello o di form, verrà aggiunta la definizione di un nuovo evento globale alla libreria Client - la libreria dell'applicazione - poi tale evento verrà implementato a livello di applicazione. Nell'esempio di prima, l'evento Global Panel Activating Row verrà notificato quando l'utente attiverà una riga in uno qualunque dei pannelli dell'applicazione. Per capire su quale pannello è avvenuto l'evento, nell'evento globale è presente il parametro Panel, di tipo IDPanel che consente di recuperare informazioni e di operare sul pannello che ha notificato l'evento.
Esempio di evento globale implementato
Attenzione: Nella libreria del client sono stati pre-definiti alcuni eventi globali. Tuttavia essi non saranno effettivamente funzionanti finchè non viene eseguito il comando Make Global sull'evento corrispondente della libreria pannello.
Uso di Tag
I Tag sono informazioni che possono essere associate ai pannelli o alle form, sia come valore che come oggetto vero e proprio, e consentono di configurare i servizi generalizzati di interfaccia utente implementati per mezzo degli eventi globali. Per maggiori informazioni ed esempi si consiglia di leggere la documentazione degli articoli: SetTag, GetTag, SetObjectTag e GetObjectTag.
Se, ad esempio, volessimo che in ogni form ci siano due pannelli, il primo in lista che permette di scegliere i dati da modificare ed il secondo in form per editare la riga selezionata nella lista, senza eventi globali dovremmo scrivere codice specifico per ogni form dell'applicazione. Tramite gli eventi globali è invece possibile implementare un meccanismo generalizzato che esegua la sincronizzazione dei due pannelli. Usando i tag forniamo i dati che il meccanismo generalizzato richiede per funzionare. Per un esempio di codice e online, vedere la funzione GetObjectTag.
Personalizzazione della toolbar
Un ulteriore elemento necessario all'implementazione dei servizi generalizzati di interfaccia utente è la possibilità di personalizzare la toolbar dei pannelli. E' quindi possibile:
- Aggiungere fino a otto nuovi comandi custom di pannello che appariranno in tutti i pannelli come gli altri comandi nativi, tramite la procedura InitCustomCommand. I nuovi comandi potranno essere gestiti in modo generico rendendo globale l'evento di pannello OnCommand.
- Modificare il posizionamento dei vari elementi della toolbar dei pannelli tramite la procedura InitCommandZone.
- Modificare il codice HTML utilizzato per il rendering della toolbar tramite la procedura InitToolbarZone.
Esempio di toolbar personalizzata
Librerie IDPanel e IDForm
Queste librerie contengono i metodi per lavorare con pannelli e form in modo generico e non legato ad uno specifico oggetto. Esse contengono praticamente tutte le proprietà, le funzioni e le procedure definite nelle librerie Panel e Form. Per maggiori informazioni sui metodi delle librerie IDPanel e IDForm occorre riferirsi alla documentazione relativa agli omologhi metodi nelle librerie Panel e Form.
Ultima modifica: 14/10/2021 / Validità: da 6.8.3060