nippur72 / issuep

0 stars 1 forks source link

Aprire menu esterni in PortentoMenuReader.pc #5

Closed nippur72 closed 9 years ago

nippur72 commented 9 years ago

come da mail di @mariocarmelo : non è prevista, contrariamente al gestore, il caricamento di eventuali menù al posto dei pbin.

Infatti da desktop non funziona il rigo con codice 7800 di Portento.Net.menu.

nippur72 commented 9 years ago

Ho modificato PortentoMenuReader.pc, adesso legge anche i menu esterni .menu.

E' necessario però che i menu esterni abbiano una codifica che non vada in conflitto col menu padre (per questo motivo "gradoacolico" chiama invece "anagrafe" poichè hanno entrambi codice nodo 0001).

nippur72 commented 9 years ago

@mariocarmelo puoi corregere la codifica del menu cosi chiudiamo questo ticket?

mariocarmelo commented 9 years ago

??? Con 0001 il menù chiamato con il gestore funziona con desktop no. Comunque ho sostituito 0001 con 7801 in quanto il nodo padre chiamante è il 7800. Ma attenzione devo scrivere 7801,, perchè se scrivo: 7801,7800 - come sarebbe giusto - il gestore si blocca segnalando errore nel riferimento.

nippur72 commented 9 years ago

si è giusto che il nodo padre resti vuoto, poichè il menu si può intendere anche come menu "singolo" e la convenzione è che il nodo radice non abbia padre.

Il PortentoMenuReader.pc si basa infatti su questo per trovare la radice e collegarla al menu chiamante come sotto-menu:

var TrovaRadice(m)
{  
   foreach(nodo in m)   
   {  
      if(nodo["padre"].Trim().IsEmpty) return nodo;
   }                  
   throw "nodo radice non trovato";
}

riguardo al menù del gestore, funziona perchè il menu viene gestito diversamente. Ogni nodo viene aperto e espanso solo quando ci si clicca sopra, mentre in desktop viene sviluppato l'intero menu all'inizio.

Probabilmente, nel menu del gestore, se cliccassi su anagrafe e poi aprissi il menu esterno darebbe errore.