custom:api_js_open_floatingpane

Apertura FloatingPane Generico

Un floatingPane è una particolare dialog di Geoweb, basato su un componente Dojo, che ha la caratteristica di essere ridimensionabile dall'utente. Può essere aperto invocando la generica function openFloatingPane() con il corretto set di argomenti. Essa può essere usata direttamente, ma è anche invocata internamente a tutte le function semplificate che aprono schede di tipi specifici usando un minore set di parametri o settandone alcuni default (es: openGwClassDetailFloatingPane())

La funzione restituisce il widget dojo che di fatto rappresenta il floatingPane aperto, e che può esporre tutte le API generali (come gwRefresh(), gwReload(), etc..), se implementate, e API specifiche, che dipendono di volta in volta dalla tipologia di del contenuto del floatingPane (per esempio le API js di dettaglio di classe).


  • floatingPaneId String, required. E' un identificativo univoco per il floatingPane che si vuole aprire. Se usato in una successiva invocazione della function verrà usato per riportare in primo piano l'eventuale floatingPane con lo stesso id già aperto
  • href String, optional, default null. Mutualmente esclusivo con content (href ha la priorità). URL che verrà invocato e la cui risposta testuale sarà utilizzata come content del floatingPane
  • preventCache Boolean, optional, default true. Fa si che la richiesta all'url di href sia univoca e non restituita dalla cache del browser. Valutato solo se href è valorizzato
  • sync Boolean, optional, default false. Fa si che la richiesta all'url di href sia eseguita in modo sincrono. Valutato solo se href è valorizzato
  • forceRefresh Boolean, optional, default false. Fa si che l'eventuale floatingPane già aperto, in caso fosse stato aperto utilizzando href, effettui il refresh del suo contenuto rieseguento la chiamata XHR. Valutato solo se href è valorizzato
  • method String, optional, default 'GET'. Valori ammessi: 'GET', 'POST'. Metodo con cui viene eseguita la richiesta di href. Valutato solo se href è valorizzato
  • postData Object, optional, default null. Oggetto mandato con la richiesta post. Serializzato in JSON (Content-Type: 'application/json'). Valutato solo se href è valorizzato, e se method='POST'
  • content String, Node or Object, optional, default null. Mutualmente esclusivo con href. Contenuto che verrà direttamente impostatto nella proprietà 'content' del floatingPane. In caso di String, verrà interpretato come codice html. In caso la Stringa contenga codice dojo in versione declarativa, ne verrà contestualmente effettuato il parse al fine di instanziare i i widget ivi contenuti.
  • modal Boolean, optional, default false. Fa si che il floatingPane sia aperto in maniera modale, simile al dialog. E' ancora possibile ridimensionare il floatingPane
  • useCookie Boolean, optional, default false. Se posto a true un cookie verrà usato per persistere le ultime dimensioni e posizione imposte dall'utente per il floatingPane con stesso id. In caso di cookie gia esistente esso verrà inoltre usato in fase di apertura per il posizionamento del floatingPane
  • title String, optional, default null. L'intestazione che verrà mostrata sulla scheda. Alcuni tipi di scheda, come le gwClassDetail/gwClassList in caso di assenza potrebbero settarsi in automatico un titolo significativo di default.
  • dimensions Object, optional, default {w: 800, h: 600}. Oggetto nella forma {x: 100, y: 100, w: 500, h: 300}, con x,y opzionali (se omessi vengono generati dinamicamente facendo si che il floatingPane risulti centrato orizzontalmente e verticalmente).
  • callback function, optional, default null. function che verrà eseguita alla fine della chiamata XHR che restituisce il content restituito da href
  • callbackParams Object[], optional, default null. Array di parametri con cui verrà invocata l'eventuale callback configurata
  • props Object, optional, default null. Object contente un numero arbitrario di proprietà che verranno passate al costruttore del componente CustomFloatingPane derivato da dojo. Quindi ne condizionano di potenzialmente il comportamento. Si possono forzare valori a tutti i parametri di configurazione o sovrascrivere il comportamento delle function interne al floatingPane (A tale proposito si vedano i parametri esposti dalle API dojo wui https://dojotoolkit.org/api/?qs=1.9/dojo/main.cldr, inserire dojox/layout/FloatingPane nella funzione cerca) I valori qui contenuti saranno di fatto anche ospitati e resi accessibili dalla istanza floatingPane

Ad ogni floatingPane viene assegnato, in fase di prima apertura, un id univoco (floatingPaneId) (dojo si assicura con non possa essere usato più volte). Esso è rilevante, in quanto, in caso di successive invocazioni della function openFloatingPane(), con lo stesso floatingPaneId, Geoweb in caso trovasse già aperto un floatingPane con lo stesso identificativo, lo ri-porterebbe semplicemente in primo piano (Anche se esistono parametri per forzare il refresh). E' buona prassi generare floatingPaneId utilizzando sempre le stesse metodologie per aprire tipi di contenuto simili.

codice minimale href GET

var params = {
   href:  gwContextPath+'/rest/myURL?parma1=1&param2=two'
};
var floatingPane = openFloatingPane(params);

Codice minimale href POST:

var params = {
   href:  gwContextPath+'/rest/myURL?parma1=1&param2=two',
   method: 'POST',
   postData: {
      param3: 3,
      param4: 'four'
   },
};
var floatingPane = openFloatingPane(params);

Codice minimale content String:

var params = {
   content:  '<div style="color: red;">Red Content</div>'
};
var floatingPane = openFloatingPane(params);

Codice minimale content Object widget dojo:

var content = new dijit.layout.ContentPane({href: gwContextPath+'/rest/myURL?parma1=1&param2=two', dummyProp: 'dummyVlaue'});
content.startup();
 
var params = {
   content: content
};
var floatingPane = openFloatingPane(params);

Codice href GET con parametri inizializzati ai default:

var params = {
   floatingPaneId: 'floatingPaneId',
   href:  gwContextPath+'/rest/myURL?parma1=1&param2=two',
   preventCache: true,
   sync: false,
   forceRefresh: false,
   method: 'GET',
   modal: false,
   useCookie: false,
   title: 'title',
   dimensions: {w: 800, h: 600},
   callback: null,
   callbackParams: [],
   props: {}
};
var floatingPane = openFloatingPane(params);

Codice href versione POST con parametri inizializzati ai default:

var params = {
   floatingPaneId: 'floatingPaneId',
   href:  gwContextPath+'/rest/myURL?parma1=1&param2=two',
   preventCache: true,
   sync: false,
   forceRefresh: false,
   method: 'POST',
   postData: {
      param3: 3,
      param4: 'four'
   },
   modal: false,
   useCookie: false,
   title: 'title',
   dimensions: {w: 800, h: 600},
   callback: null,
   callbackParams: [],
   props: {}
 
};
var floatingPane = openFloatingPane(params);
var floatingPane = openFloatingPane();
..
//simply hide the floatingPane: it ca be re-shown
floatingPane.hide();
..
//re-shown the floatingPane 
floatingPane.show();
..
//definitelly close the floatingPane: cannot recall .show() on it
floatingPane.close();
  • custom/api_js_open_floatingpane.txt
  • Ultima modifica: 2019/11/06 09:42
  • (modifica esterna)