Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
custom:development_creazione_di_un_plugin_per_geoweb [2022/05/11 11:29] francesco.rosati |
custom:development_creazione_di_un_plugin_per_geoweb [2022/05/11 11:49] (versione attuale) francesco.rosati |
||
---|---|---|---|
Linea 58: | Linea 58: | ||
* //**static-resources**// ospita css, debug/js, icons | * //**static-resources**// ospita css, debug/js, icons | ||
* //**xxx.beandef.xml**// nel dispacher-servelt.xml del webclient si definisce che in automatico vengano aggiunti alla configurazione tutti i bean spring dentro i file che matchano META-INF/*.beandef.xml . | * //**xxx.beandef.xml**// nel dispacher-servelt.xml del webclient si definisce che in automatico vengano aggiunti alla configurazione tutti i bean spring dentro i file che matchano META-INF/*.beandef.xml . | ||
- | + | <code xml> | |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||
<beans xmlns="http://www.springframework.org/schema/beans" | <beans xmlns="http://www.springframework.org/schema/beans" | ||
Linea 76: | Linea 76: | ||
<bean id="pluginService" class="com.geowebframework.gwplugin.service.pluginService" /> | <bean id="pluginService" class="com.geowebframework.gwplugin.service.pluginService" /> | ||
</beans> | </beans> | ||
- | + | </code> | |
Nel //**pom.xml**// possono essere importate, tramite sintassi Maven, tutte le librerie java richieste. | Nel //**pom.xml**// possono essere importate, tramite sintassi Maven, tutte le librerie java richieste. | ||
Dato che probabilmente il plugin è un maven module di progetto maven geowebframework, le librerie che stanno anche nel modulo principale possono anche importate omettendo la versione. | Dato che probabilmente il plugin è un maven module di progetto maven geowebframework, le librerie che stanno anche nel modulo principale possono anche importate omettendo la versione. | ||
- | + | <code xml> | |
- | <?xml version="1.0"?> | + | <?xml version="1.0"?> |
- | <project | + | <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" |
- | xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" | + | xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
- | xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | + | |
<modelVersion>4.0.0</modelVersion> | <modelVersion>4.0.0</modelVersion> | ||
Linea 98: | Linea 97: | ||
<properties> | <properties> | ||
- | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | + | <maven.compiler.source>8</maven.compiler.source> |
+ | <maven.compiler.target>8</maven.compiler.target> | ||
+ | <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
</properties> | </properties> | ||
<dependencies> | <dependencies> | ||
+ | <!-- geoweb dependencies --> | ||
<dependency> | <dependency> | ||
<groupId>com.geowebframework</groupId> | <groupId>com.geowebframework</groupId> | ||
Linea 116: | Linea 118: | ||
<artifactId>transfer-objects</artifactId> | <artifactId>transfer-objects</artifactId> | ||
<version>${project.parent.version}</version> | <version>${project.parent.version}</version> | ||
- | </dependency> | + | </dependency> |
+ | <!-- geoweb dependencies --> | ||
+ | | ||
<dependency> | <dependency> | ||
<groupId>org.slf4j</groupId> | <groupId>org.slf4j</groupId> | ||
<artifactId>slf4j-log4j12</artifactId> <!-- NO NEED TO SPECIFY <version>1.7.7</version> --> | <artifactId>slf4j-log4j12</artifactId> <!-- NO NEED TO SPECIFY <version>1.7.7</version> --> | ||
- | </dependency> | + | </dependency> |
- | </dependencies> | + | </dependencies> |
- | </project> | + | </project> |
- | + | </code> | |
=====3. InitializerService===== | =====3. InitializerService===== | ||
Linea 131: | Linea 135: | ||
Questa è la struttura tipica della classe. | Questa è la struttura tipica della classe. | ||
- | + | <code java> | |
- | public class GwPluginInitializerService { | + | public class GwPluginInitializerService { |
- | private final static Logger log = Logger.getLogger(GwPluginInitializerService.class); | + | private final static Logger log = Logger.getLogger(GwPluginInitializerService.class); |
- | @Autowired private GwRegistry gwRegistry; | + | @Autowired private GwRegistry gwRegistry; |
| | ||
- | public GwPluginInitializerService(){ | + | public GwPluginInitializerService(){ |
- | super(); | + | super(); |
- | } | + | } |
| | ||
- | @PostConstruct | + | @PostConstruct |
- | public void init(){ | + | public void init(){ |
- | //registering widgets | + | //registering widgets |
- | ... | + | ... |
- | //registering leafItem | + | //registering leafItem |
- | ... | + | ... |
- | //mapping plugin js resources | + | //mapping plugin js resources |
- | ... | + | ... |
- | //mapping plugin css resources | + | //mapping plugin css resources |
- | ... | + | ... |
- | } | + | } |
- | } | + | } |
+ | </code> | ||
Il bean della classe viene creato in avvio, e l'annotazione //@PostConstruct// causa l'esecuzione del metodo init() non appena tutti i bean dipendenti sono pronti ed istanziati. | Il bean della classe viene creato in avvio, e l'annotazione //@PostConstruct// causa l'esecuzione del metodo init() non appena tutti i bean dipendenti sono pronti ed istanziati. | ||
Linea 164: | Linea 168: | ||
Non vi sono oneri obbligatori. Un tipo di leafItem si dichiara, nell'xml di progetto, semplicemente usandolo nell'attributo type di un tag leafItem (posto sotto un tag leafItemContainer). | Non vi sono oneri obbligatori. Un tipo di leafItem si dichiara, nell'xml di progetto, semplicemente usandolo nell'attributo type di un tag leafItem (posto sotto un tag leafItemContainer). | ||
+ | <code xml> | ||
<accordionPaneItem name="slm1" label="Second Level Menu Item" image="" type="leafItemContainer"> | <accordionPaneItem name="slm1" label="Second Level Menu Item" image="" type="leafItemContainer"> | ||
<leafItem name="tlm1" label="Thirdd Level Menu Item" image="" type="gwPluginType"> | <leafItem name="tlm1" label="Thirdd Level Menu Item" image="" type="gwPluginType"> | ||
</leafItem> | </leafItem> | ||
</accordionPaneItem> | </accordionPaneItem> | ||
- | + | </code> | |
Valgono poi tutte le istruzioni contenute nell'[[custom:development#Creazione Nuovo Menu Terzo Livello (leafItem)|apposita sezione]] riguardante la definizione di nuove tipologie di Menu di Terzo Livello (LeafItem). | Valgono poi tutte le istruzioni contenute nell'[[custom:development#Creazione Nuovo Menu Terzo Livello (leafItem)|apposita sezione]] riguardante la definizione di nuove tipologie di Menu di Terzo Livello (LeafItem). | ||
Linea 185: | Linea 189: | ||
Il path da specificare parte dalla cartella **META-INF/static-resources**, ma possono essere anche inclusi file .js disponibili in rete scrivendo l'indirizzo internet per intero (partendo da 'http:/ / ') | Il path da specificare parte dalla cartella **META-INF/static-resources**, ma possono essere anche inclusi file .js disponibili in rete scrivendo l'indirizzo internet per intero (partendo da 'http:/ / ') | ||
+ | <code java> | ||
gwRegistry.addJsResource("debug/js/gwPlugin.js"); | gwRegistry.addJsResource("debug/js/gwPlugin.js"); | ||
gwRegistry.addJsResource("http://mysite.com/files/file.js"); | gwRegistry.addJsResource("http://mysite.com/files/file.js"); | ||
- | + | </code> | |
**Dichiarazione risorsa css** | **Dichiarazione risorsa css** | ||
I file .css dichiarati da plugin saranno aggiunti all'apertura della pagina jsp principale del progetto, ma per ultimi dopo i css di dojo e quelli comuni. In generale ciò non ha alcuna conseguenza. | I file .css dichiarati da plugin saranno aggiunti all'apertura della pagina jsp principale del progetto, ma per ultimi dopo i css di dojo e quelli comuni. In generale ciò non ha alcuna conseguenza. | ||
+ | <code java> | ||
gwRegistry.addCssResource("css/gwPlugin.css"); | gwRegistry.addCssResource("css/gwPlugin.css"); | ||
- | + | </code> | |
=====(DEPRECATO) (fino alla 4.2.14) Dispiegamento plugin ===== | =====(DEPRECATO) (fino alla 4.2.14) Dispiegamento plugin ===== | ||