Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
custom:development_creazione_di_un_plugin_per_geoweb [2022/05/11 11:24]
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>​
 +     
      <​parent>​      <​parent>​
         <​groupId>​com.geowebframework</​groupId>​         <​groupId>​com.geowebframework</​groupId>​
Linea 90: Linea 91:
         <​version>​0.0.1-SNAPSHOT</​version>​         <​version>​0.0.1-SNAPSHOT</​version>​
      </​parent>​      </​parent>​
 +     
      <​artifactId>​gwplugin</​artifactId>​      <​artifactId>​gwplugin</​artifactId>​
      <​name>​gwplugin</​name>​      <​name>​gwplugin</​name>​
      <​url>​http://​maven.apache.org</​url>​      <​url>​http://​maven.apache.org</​url>​
 +     
      <​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 111: 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 126: 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 159: 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 180: 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 =====
  
  • custom/development_creazione_di_un_plugin_per_geoweb.1652261051.txt.gz
  • Ultima modifica: 2022/05/11 11:24
  • da francesco.rosati