Customizzazione Dashboard Adempiere: ZK + DataBinding

Uno degli strumenti più flessibili in Adempiere è il dashboard. Una sorta di cruscotto aziendale in cui è possibile visualizzare finestre preferite o indicatori di performance

l’aspetto più interessante di questa funzionalità è la possibilità di personalizzarla a nostro piacimento per qualsiasi utilità aziendale.

Con questa guida saremo in grado di customizzare una dashboard su Adempiere attraverso tecnologie come ZK e databinding.

  • accedere da SystemAdministrator in menu->impostazioni organizzazione-> dashboard content edit
  • creiamo una nuova dashboard ed inseriamo il nome ‘prova’ e in zul file path il percorso: /zul/prova.zul

menuDashboard

 

Per far sì che la dashboard contenga qualcosa dobbiamo scrivere delcodice all’interno del file prova.zul.

La nostra prova prevede la scrittura di un componente (una lista di stringhe)

inseriamo in prova.zul il seguente codice:

 

<?xml version="1.0" encoding="UTF-8"?>

<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>

<?page title="XXX" ?>

<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>




<window use="org.adempiere.webui.dashboard.DPPMProva" sizable="true" id="win" width="100%" border="normal"  droppable="true" onDrop="move(event.dragged)" xmlns:w="http://www.zkoss.org/2005/zk/client">



  <zscript><![CDATA     

       import org.adempiere.webui.dashboard.DPPMProva;

      DPPMProva list = win.getDppmList();

           

   ]]>

   </zscript>



   <listbox id="list" rows="10" model="@{list}" width="100%">

   <listhead>

           <listheader label="Lista" width="20%" />

           <listheader id="h1">

           </listheader>

</listhead>

           <listitem self="@{each='item'}" value="">

           <listcell label="@{item.name}" >

           </listcell>

           </listitem>

   </listbox>

</div>

</window>

									

nel tag window specificare il nome della classe che presenta la pagina zul. Nel nostro caso è DPPMProva.

In questa classe ci sono tutti i set e get dei componenti da visualizzare.

Nella pagina zul abbiamo inserito un tag <zscript>. All’interno di questo tag è inserito uno script per richiamare alcuni metodi java direttamente in pagina. Nel nostro caso richiamiamo il metodo DPPMProva list = win.getDppmList();

in modo da generare una lista da inserire poi nella listbox.

Una volta creata la listBox specifichiamo come model la variabile list e, in un secondo momento, scorriamo tutta la lista con la funzione listItem. Ogni elemento della lista corrisponde quindi alla classe DPPMList da cui possiamo recuperare la stringa name attraverso il databinding e con l’annotazione ‘@’

In seguito il codice della classe DPPMProva.

 

public class DPPMProva extends DashboardPanel implements EventListener{



private static final long serialVersionUID = -6420016898259232438L;

/**Logging*/

   private CLoggerlog = CLogger.getCLogger(getClass());




public DPPMList()

{

super();



}



public List<DPPMAllocation> getDppmList {

List<DPPMList> dppmList= new ArrayList<DPPMList>();

[..code for creating list]

return dppmList;

}



public String getName {

return name;;

}



}

									

di seguito un’esempio del risultato.
zkListBox

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *