Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente | |||
custom:development_creazione_di_un_gwwidget [2020/05/12 10:06] giorgio.scali [Far coesistere il widget nel dettaglio di classe renderlo manovrabile] |
custom:development_creazione_di_un_gwwidget [2020/05/12 10:22] (versione attuale) giorgio.scali |
||
---|---|---|---|
Linea 3: | Linea 3: | ||
Supponiamo di voler creare un nuovo widget di Geoweb: NeoWidget. | Supponiamo di voler creare un nuovo widget di Geoweb: NeoWidget. | ||
Ecco i passi necessari: | Ecco i passi necessari: | ||
+ | * [[custom:development_creazione_di_un_gwwidget#Creazione class Java]] | ||
+ | * [[custom:development_creazione_di_un_gwwidget#Registrazione del gwWidget]] | ||
+ | * [[custom:development_creazione_di_un_gwwidget#Creazione pagine .jsp di visualizzazione e di modifica]] | ||
+ | * [[custom:development_creazione_di_un_gwwidget#Creazione eventuali Controller java di supporto]] | ||
+ | * [[custom:development_creazione_di_un_gwwidget#Integrare il widget nelle logiche del gwClassDetail]] | ||
=====Creazione class Java===== | =====Creazione class Java===== | ||
Linea 31: | Linea 36: | ||
Comunque sia in caso si stia tentando di gestrare un widget con un CTRL_TYPE gia usato, viene generata un'opportuna eccezione. | Comunque sia in caso si stia tentando di gestrare un widget con un CTRL_TYPE gia usato, viene generata un'opportuna eccezione. | ||
- | ===== Registrazione widget ===== | + | ===== Registrazione del gwWidget ===== |
Una volta creata la class del widget, dobbiamo registrarlo in un'apposita class di registro: gwRegistry. | Una volta creata la class del widget, dobbiamo registrarlo in un'apposita class di registro: gwRegistry. | ||
Linea 105: | Linea 110: | ||
Le risorse importate in tale modo vengono aggiunte all'inizio all'apertura del progetto Geoweb. Vengono però aggiunte solo dopo le risorse usate dal modulo base (e dopo il caricamento del modulo dojo, per quanto concerne i js). | Le risorse importate in tale modo vengono aggiunte all'inizio all'apertura del progetto Geoweb. Vengono però aggiunte solo dopo le risorse usate dal modulo base (e dopo il caricamento del modulo dojo, per quanto concerne i js). | ||
- | ===== Creazione eventuali Controller lato server ===== | + | ===== Creazione eventuali Controller java di supporto ===== |
In generale un widget non ha bisogno di Controller java per il suo funzionamento. Talvolta capita che un widget, per necessità di recuperare ulteriori dati, sia costretto a fare un passaggio lato server per poter renderizzare una qualche sua parte. Tali controller sono per convenzione messi in apposite classi sotto //com.geowebframework.webclient.controller.widget// per il modulo base, mentre //com.geowebframework.plugin_name.controller.widget// per i plugin. | In generale un widget non ha bisogno di Controller java per il suo funzionamento. Talvolta capita che un widget, per necessità di recuperare ulteriori dati, sia costretto a fare un passaggio lato server per poter renderizzare una qualche sua parte. Tali controller sono per convenzione messi in apposite classi sotto //com.geowebframework.webclient.controller.widget// per il modulo base, mentre //com.geowebframework.plugin_name.controller.widget// per i plugin. | ||
- | ===== Integrare il widget nelle logiche del dettaglio di classe ===== | + | ===== Integrare il widget nelle logiche del gwClassDetail ===== |
I passi necessari sono: | I passi necessari sono: | ||
- | * far dichiarare dal widget al contesto che esso è 'pronto', pubblicando un apposito evento dojo | + | * far dichiarare, da qualche parte, da parte del widget al dettaglio di classe che esso è 'pronto', pubblicando un apposito evento dojo |
- | * assegnare le class css come da specifiche | + | * assegnare tutte le class css come da specifiche |
- | * implementare le shared JS API | + | * implementare/sovrascrivere le shared JS API |
Tutti questi passaggi sono trattati nello specifico qui: | Tutti questi passaggi sono trattati nello specifico qui: | ||
[[custom:development_event_attribute_logics|EventAttributes Guidelines]] | [[custom:development_event_attribute_logics|EventAttributes Guidelines]] |