====== gwClassDetail funzioni esposte ====== Il gwClassDetail rappresenta il dettaglio di classe. In qualunque forma esso sia aperto (//tab//, //dialog//, //floatingPane//), l'oggetto dojo contenitore del gwClassDetail (AKA //detailContainer//) espone tutta una serie di function di utilità, che servono per interagire con il gwClassDetail o conoscerne lo stato corrente. * [[:custom:api_js_gw_class_detail_exposed_fx#getGwWidgets|getGwWidgets()]] * [[:custom:api_js_gw_class_detail_exposed_fx#getGwWidget|getGwWidget()]] * [[:custom:api_js_gw_class_detail_exposed_fx#setFormValues|setFormValues()]] * [[:custom:api_js_gw_class_detail_exposed_fx#getFormValues|getFormValues()]] * [[:custom:api_js_gw_class_detail_exposed_fx#getFormValuesWithGwidAsKey|getFormValuesWithGwidAsKey()]] * [[:custom:api_js_gw_class_detail_exposed_fx#getFormValuesToShow|getFormValuesToShow()]] * [[:custom:api_js_gw_class_detail_exposed_fx#createMapWithGwidAsKey|createMapWithGwidAsKey()]] * [[:custom:api_js_gw_class_detail_exposed_fx#createMapWithNameAsKey|createMapWithNameAsKey()]] * [[:custom:api_js_gw_class_detail_exposed_fx#isSomeFormValueChanged|isSomeFormValueChanged()]] * [[:custom:api_js_gw_class_detail_exposed_fx#hideGwActionInToolbarButton|hideGwActionInToolbarButton()]] * [[:custom:api_js_gw_class_detail_exposed_fx#showGwActionInToolbarButton|showGwActionInToolbarButton()]] * [[:custom:api_js_gw_class_detail_exposed_fx#disableGwActionInToolbarButton|disableGwActionInToolbarButton()]] * [[:custom:api_js_gw_class_detail_exposed_fx#enableGwActionInToolbarButton|enableGwActionInToolbarButton()]] * [[:custom:api_js_gw_class_detail_exposed_fx#isGwFormValid|isGwFormValid()]] * [[:custom:api_js_gw_class_detail_exposed_fx#notifyGwFormNotValidToUser|notifyGwFormNotValidToUser()]] * [[:custom:api_js_gw_class_detail_exposed_fx#validateGwForm|validateGwForm()]] ===== getGwWidgets() ===== Ritorna un array di oggetti gwWidget (array vuoto, [], nel caso niente venga trovato). Di norma la ricerca viene effettuata solo all'interno dei dettagli di classe dove //detailMode=='edit'//. Si può opzionalmente includere nella ricerca anche i widget contenuti dentro i dettagli di classe dove //detailMode=='visualization'//, agendo sul flag //includeAll//. === Parametri === * **params**: Object, richiesto. Oggetto contenente le seguenti proprietà: * **name**: String, optionale. Il name del gwAttribute collegato al gwWidget. Se fornito è usato come criterio di ricerca. Se omesso, verrà ritornato il primo widget disponibile. * **gwid**: Integer, optionale. Il gwid del gwAttribute collegato al gwWidget. Se fornito è usato come criterio di ricerca. Se omesso, verrà ritornato il primo widget disponibile. * **includeAll**: Boolean, optionale, default false. Se posto a true, includere nella ricerca anche i widget contenuti dentro form di classe dove //detailMode=='visualization'//. * **queryContext**: String|domNode, optionale, default null. Se fornito questo verrà usato come nodo di restrizione per eseguire la query. (Usato internamente a Geoweb per il funzionamento delle schede //Procedure// del //workflow//. === Esempi === Recupera tutti i widget in edit del gwClassDetail var widgets = detailContainer.getGwWidgets(); Recupera tutti i widget del gwClassDetail, cercando anche fra quelli contenuti in form di classe dove detailMode=='visualization'. var widgets = detailContainer.getGwWidgets({includeAll: true}); ===== getGwWidget() ===== Ritorna un singolo gwWidget (array vuoto, [], nel caso niente venga trovato). Di norma la ricerca viene effettuata solo all'interno dei dettagli di classe dove //detailMode=='edit'//. Si può opzionalmente includere nella ricerca anche i widget contenuti dentro i dettagli di classe dove //detailMode=='visualization'//, agendo sul flag //includeAll//. === Parametri === * **params**: Object, richiesto. Oggetto contenente le seguenti proprietà: * **name**: String, optionale. Il name del gwAttribute collegato al gwWidget. Se fornito è usato come criterio di ricerca. Se omesso, verrà ritornato il primo widget disponibile. * **gwid**: Integer, optionale. Il gwid del gwAttribute collegato al gwWidget. Se fornito è usato come criterio di ricerca. Se omesso, verrà ritornato il primo widget disponibile. * **includeAll**: Boolean, optionale, default false. Se posto a true, includere nella ricerca anche i widget contenuti dentro form di classe dove //detailMode=='visualization'//. * **queryContext**: String|domNode, optionale, default null. Se fornito questo verrà usato come nodo di restrizione per eseguire la query. (Usato internamente a Geoweb per il funzionamento delle schede //Procedure// del //workflow//. === Esempi === Recupera il primo widget trovato in edit del gwClassDetail. var widget = detailContainer.getGwWidget({name: 'gw_attribtue_name'}); Recupera il primo widget trovato del gwClassDetail, cercando anche fra quelli contenuti in form di classe dove detailMode=='visualization'. var widget = detailContainer.getGwWidget({name: 'gw_attribtue_name', includeAll: true); ===== setFormValues() ===== Ritorna un singolo gwWidget (array vuoto, [], nel caso niente venga trovato). Di norma la ricerca viene effettuata solo all'interno dei dettagli di classe dove //detailMode=='edit'//. Si può opzionalmente includere nella ricerca anche i widget contenuti dentro i dettagli di classe dove //detailMode=='visualization'//, agendo sul flag //includeAll//. === Parametri === * **mapWithNameAsKey**: Object, richiesto. Oggetto mappa che ha per chiavi i //name// dei gwAttribute e valori i valori da settare nelle form di dettaglio di classe === Esempi === detailContainer.setFormValues({attr_name_1: 'value1', attr_name_2: 2: attr_name_3: new Date()}); ===== getFormValues() ===== Ritorna una Object javascript che ha per chiavi i //name// dei gwAttribute e valori i valori attualmente presenti nelle form di dettaglio di classe === Parametri === * **onlyModified**: Boolean, opzionale, default true. Se posto a true viene ritornata una mappa contenente solo i valori dei gwWidget che sono stati modificati === Esempi === var onlyModified = true; var formValues = detailContainer.getFormValues(onlyModified); var attr_1_value = formValue.attr_1_name; //if 'attr_1_name' is the name of a gwAttribute inside the form ===== getFormValuesWithGwidAsKey() ===== Ritorna una Object javascript che ha per chiavi i //gwid// dei gwAttribute e valori i valori attualmente presenti nelle form di dettaglio di classe === Parametri === * **onlyModified**: Boolean, opzionale, default true. Se posto a true viene ritornata una mappa contenente solo i valori dei gwWidget che sono stati modificati === Esempi === var onlyModified = true; var formValues = detailContainer.getFormValuesWithGwidAsKey(onlyModified); var attr_1_value = formValue.attr_1_name; //if 'attr_1_name' is the name of a gwAttribute inside the form ===== getFormValuesToShow() ===== Ritorna una Object javascript che ha per chiavi i //name// dei gwAttribute e valori i //valueToShow// attualmente presenti nelle form di dettaglio di classe. In alcuni widget //valueToShow//, valore in visualizzazione, si differenzia dal //valueToStore//, valore da persistere. Negli altri widget, non c'è tale distinzione ed i due coincidono in //value//. === Parametri === * **onlyModified**: Boolean, opzionale, default true. Se posto a true viene ritornata una mappa contenente solo i valori dei gwWidget che sono stati modificati === Esempi === var onlyModified = true; var formValuesToShow= detailContainer.getFormValuesToShow(onlyModified); var attr_1_valueToShow = formValuesToShow.attr_1_name; //if 'attr_1_name' is the name of a gwAttribute inside the form ===== createMapWithGwidAsKey() ===== Ritorna una Object javascript che ha per chiavi i //name// dei gwAttribute e valori gli stessi valori dell' Object javascript in ingresso (indicizzato per //gwid//). === Parametri === * **nameAsKeyMap**: Boolean, richiesto. Object javascript, mappa chiave valore, che ha per chiavi i //name// dei gwAttribute === Esempi === var nameAsKeyMap = { attr_1_name: 'value1', attr_2_name: 2, attr_3_name: new Date() }; var gwidAsKeyMap = detailContainer.createMapWithGwidAsKey(nameAsKeyMap); ===== createMapWithNameAsKey() ===== Ritorna una Object javascript che ha per chiavi i //gwid// dei gwAttribute e valori gli stessi valori dell' Object javascript in ingresso (indicizzato per //name//). === Parametri === * **gwidAsKeyMap**: Boolean, richiesto. Object javascript, mappa chiave valore, che ha per chiavi i //gwid// dei gwAttribute === Esempi === var gwidAsKeyMap = { 123: 'value1', //123 is attr_1_gwid 456: 2, //456 is attr_2_gwid 789: new Date() //789 is attr_3_gwid }; var nameAsKeyMap = detailContainer.createMapWithGwidAsKey(gwidAsKeyMap); ===== isSomeFormValueChanged() ===== Ritorna true se il dettaglio corrente ha subito dei cambiamenti negli input delle form, ad opera dell'utente od automatismi, false altrimenti. === Parametri === === Esempi === var isSomeFormValueChanged = detailContainer.isSomeFormValueChanged(); ===== hideGwActionInToolbarButton() ===== Dato il //name// della gwAction, nasconde il button corrispondente. === Parametri === * **gwActionName**: String, richiesto. Il //name// della gwAction del gwActionButton === Esempi === var gwActionName = 'gw_action_name'; detailContainer.hideGwActionInToolbarButton(gwActionName); ===== showGwActionInToolbarButton() ===== Dato il //name// della gwAction, mostra il button corrispondente. === Parametri === * **gwActionName**: String, richiesto. Il //name// della gwAction del gwActionButton === Esempi === var gwActionName = 'gw_action_name'; detailContainer.showGwActionInToolbarButton(gwActionName); ===== disableGwActionInToolbarButton() ===== Dato il //name// della gwAction, disabilita il button corrispondente. === Parametri === * **gwActionName**: String, richiesto. Il //name// della gwAction del gwActionButton === Esempi === var gwActionName = 'gw_action_name'; detailContainer.disableGwActionInToolbarButton(gwActionName); ===== enableGwActionInToolbarButton() ===== Dato il //name// della gwAction, abilita il button corrispondente. === Parametri === * **gwActionName**: String, richiesto. Il //name// della gwAction del gwActionButton === Esempi === var gwActionName = 'gw_action_name'; detailContainer.enableGwActionInToolbarButton(gwActionName); ===== isGwFormValid() ===== Ritorna un true se tutti gli eventuali gwForms nel detailContainer passano la validazione === Parametri === === Esempi === var isValid = detailContainer.isGwFormValid(); if(isValid){ //do stuff } ===== notifyGwFormNotValidToUser() ===== Notifica il gwUser riguardo ai widget che non hanno passato la validazione. La notifica comprende: * evidenziare di rosso (contorno del widget) tutti i widget required non valorizzati * In caso di una struttura di layout complessa, selezionare i figli dei TabContaine/AccordionContainer in maniera tale da visualizzare il primo widget non valido * mostrare al gwUser, in concomitanza del primo widget non valido, un tooltip con le istruzioni per la corretta compilazione === Parametri === === Esempi === detailContainer.notifyGwFormNotValidToUser(); ===== validateGwForm() ===== In caso qualche widget della form non passi la validazione, notifica l'utente. Di fatto, nella sua implementazione, utilizza internamente le js API isGwFormValid() e notifyGwFormNotValidToUser(). === Parametri === === Esempi === detailContainer.validateGwForm();