custom:development_creazione_nuovo_menu_secondo_livello_accordionpaneitem

Creazione Nuovo Menu Secondo Livello (accordionPaneItem)

In Generale

In Geoweb, un menu di secondo livello, è una particolare tipologia di menu. Più menu di secondo livello (da ora in poi SLM, Second Level Menu) sono collegati gerarchicamente ad un unico menu di primo livello (da ora in poi FLM, First Level Menu). Precisamente, nella webapp client, avviene che al click su una voce FLM vengono visualizzate tutte le voci SLM collegate.

/ /TODO ADD IMAGE

Ogni SLM è rappresentato come uno snippet. Più SLM sono organizzati come un insieme di snippet messi in una sorta di pila, dei quali può essere aperto solo uno alla volta. Al click su un SLM chiuso, esso si aprirà, e quello precedentemente aperto si chiuderà collassando su se stesso. Questo comportamento è materialmente implementato tramite il componente Dojo (dijit/layout/AccordionContainer).

Per visualizzare un SLM nel layout di Progetto, bisogna aggiungere un tag accordionPaneItem, di uno specifico type, dentro un tag menuBarItem.

   <menuBarItem name="flm1" image="" label="First Level Menu Item 1">   
       <accordionPaneItem name="slm1" label="Second Level Menu Item 1" image="" type="leafItemContainer">
           ...
       </accordionPaneItem>
   </menuBarItem>
   

Attualmente in Geoweb sono definite le seguenti tipologie di SLM:

  • leafItemContainer, è la tipologia base, contiene oggetti di tipo leafItem, che rappresentano i Menu di Terzo Livello (TLM)
  • integrationMenu, è un albero che contiene tutte le anagrafiche delle classi appartenenti ad un progetto, raggruppate per tema.
  • layoutSwitchMenu, è un albero che permette di aprire planimetrie/scenari

Nuovo accordionPaneItem

Per definire una nuova tipologia di SLM semplicemente popolare l'attributo type del tag accordionPaneItem con un valore univoco. Di fronte ad un ipotetico SLM con type=“mySLM”, Geoweb farà in automatico una chiamata GET a questo URL:

projectNavigationMenu/accordionPaneItem/mySLM.html

passando in automatico come parametri nell'URL (queryParameter):

  • accordionPaneMenuIndex
  • accordionPaneItemIndex
  • accordionPaneItemType
  • projectName

Sarà quindi cura dello sviluppatore dichiarare, dentro una classe controller, un metodo appropriatamente mappato (con RequestMapping), in modo tale da intercettare la chiamata e restituire il .jsp desiderato. Anche il jsp deve essere messo a disposizione dallo sviluppatore.

   @RequestMapping("projectNavigationMenu/accordionPaneItem/mySLM") 
   ModelAndView mySLM(
   @RequestParam String projectName,
   @RequestParam Integer accordionPaneMenuIndex,
   @RequestParam Integer accordionPaneItemIndex,
   @RequestParam String accordionPaneItemType,
   Locale locale
   ){
   ModelAndView modelAndView = new ModelAndView("commons/accordionPaneBar/accordionPane/mySLM");
   Object myInfoObject = null;
           ...
   modelAndView.addObject("myInfoObject", myInfoObject ); 
return modelAndView;
   }
  • custom/development_creazione_nuovo_menu_secondo_livello_accordionpaneitem.txt
  • Ultima modifica: 2019/12/18 10:43
  • da giorgio.scali