Events

Systém Eventov zachytáva životný cyklus GUI udalosti od vzniku, cez výsledok až po destroy.

Event može byť vytvorený programaticky alebo po interakcii použivateľa kliknutím na tlačítko, prepísaním hodnoty, alebo výberom v menu.

Event má referenciu na zdrojový Widget alebo aj zdrojový FormItem, može riešiť aj spustenie Operácie a manipulovať s hodnotami pre argumenty, vytvoriť nejaký Widget, zobraziť nejaký výsledok a pod.

Vytvorenie

String zápis

Textový zápis predstavuje protokol/prefix + hodnoty.

Medzi klasiky patrí http:// pre otvorenie URL do okna. Prefix js: spustí jednoduchy JS kód, node: stiahne stránku (HTML, JS) a embedne v sebe (ako Tab).

Hlavný prefix sc: obsahuje názov DataSource a k tomu názov operácie, identifikátor alebo dodatočné vlastnosti pre widget.

GUIEvent.openURL('http://google.com'); // nove hladanie GUIEvent.openURL('acc_Faktura'); // v SC otvoriť službu Faktúry GUIEvent.openURL('acc_Faktura{windowed:true}'); // pridať jednoduché vlastnosti eventu GUIEvent.openURL('acc_Faktura.create'); // spustiť globálnu operáciu // vyrobí GUIEvent.create({dataSource: 'acc_Faktura', id: '5641'}) GUIEvent.openURL('acc_Faktura#5641'); // ovoriť detail DS podľa primárneho kľúča GUIEvent.openURL('acc_Faktura#5641{windowed:true}); // + vlastnosti GUIEvent.openURL('node:help/produkty'); // otvorit napr. HTML page z CMS

Create a spustenie (zo zdroja)

var event = GUIEvent.create({ ... props... }); event.show(); // spustiť bez zdroja event.show(widget); // spustiť, source (zdroj) je nejaký Widget, ale môže byť aj hociaký Canvas, či FormItem, z ktorých sa môže vyrátat zdrojový Widget event.showb(widget, action); // spustiť, source (zdroj) je nejaký Action, patriaci pod Widget

Základné vlastnosti

idprimárny kľúč, slúži aj na získanie celého záznamu zo servra (event počká na dotiahnutie hodnôt)
recordkompletný revord (z GUI alebo podľa id)
sourceID Canvasu, ktorý strelil event, najčastejšie Widget - automaticky sa naplní z 1. argumentu .show()
sourceActionID Akcie zo zdrojového Widget, ktorá strelila event - automaticky sa naplní z 2. argumentu .show()
dataSourceDataSource[.ID], ktorého sa Event týka - automaticky sa zistí zo source alebo z operation (ak je hodnota referenciou na objekt); ak je potreba stiahnuť chýbajúci DS zo servra, Event počká
operationID operácie alebo Operation, ktorá sa má vykonať; ak String - môže mať prefix {DataSource.ID.}
valuesaktuálne vstupné parametre (hodnoty argumentov) Operácie, ako mapa
nodezobraziť

GUI vlastnosti

title
targetpresne nasmerovať výsledok z Event do konkrétneho Widget
widgetWidget, ktorý bolo potrebné vytvoriť pre tento Event
windowtrue určuje zobrazenie v modálnom okne (+ .operation.winProps)
editEvent súvisí s iným editovateľným Event, napr. aggrAdd, alebo aggrUpdate...
editNew(depreecating)
initialViewvynútiť konkrétny View definovaný v DataSource
needsConfirmak Operation.canInvoke() (argumenty na zavolanie server Operation sú v poriadku) - zobraziť potvrdzujúci Dialog "Naozaj chcete spustiť...?", až potom naozaj zavolá server
autoValuesfalse preskoci akékoľvek automatické vypĺňanie values
needsConfirmdefault sa berie z operation
operation.serviceOpenManypre finder-many Operation - zapne stále otváranie z Menu do nového tabu
operation.downloadResult
finished
upload

Metódy

getVm()referencia na ValuesManager, Event vytvoreného Widget
getSourceVm()referencia na ValuesManager pre Widget, ktorý je zdrojom Event
getSource()refrerencia na zdrojový Canvas/Widget
getSourceItem()referencia na FormItem, keď je to samotný source alebo Canvas pre FormmItem
getSourceFormWidget()referencia na Widget, ktorý vlastní FormItem ako source
getSourceContext()referencia na Widget, ktorý vytvára kontext, súvisiacu informáćiu (napr. SC split-screen)
getWidget()referencia na Widget, ktorý vytvoril Event
canInvoke()
// show spustí event z nejakého zdroja GuiEvent.create({ ..props }).show(source);

Zobrazenie GUI

Ak má event nastavený operation a má vynútené alebo nevyplnené argumenty, zobrazí Formulár s potvrdením.

Ak je známe id alebo record, zobrazí sa detail záznamu

Vyplnenie len dataSource otvorí službu, v prípade, že tá má query operácie.

Aggregované zoznamy strielajú špeciálne eventy s príznakom edit na pridávanie, úpravu záznamov vo vnorených formulároch alebo priamo v zoznamoch.

Default umiestnenie GUI widgetu pre event môže byť v popup okne, na záložke alebo split-screene (servis + detail).

Životný cyklus, callbacks

Každý callback v rámci cyklu sa definuje v Operation, a default v ištancii Event

onEvent()Vznikol Event a ide sa spustiť. return false pre pokračovanie Event
onRun()Event má k dispozícii všetky objekty (DataSource, Record a pod..) a má predvyplnený 1. argumennt
onWidget()
onValues()
canInvoke()
invoke(cbk)
onResult()
finish()
onResult()

Response

Potvrdiť Response

Odpoveď zo servra je vyžiadanie grafického potvrdenia, toho čo sa má NAOZAJ udiať po potvrdení. Príkladom je fyzické zmazanie Entity a zobrazenie taktiež zmazania jej agregovaných objektov, spätných referencií varovaní, chybách alebo iných veciach...

result.confirmResult = {}