Akcia je malá časť chovania GUI - najčastejšie vykreslená/interaktívna a patriaca Widgetu.

Akcia na widgete je inštanciou definície akcie, ktorá môže byť implementovaná globálne, pre typ widgetu alebo DS.

Akcie sú organizované do stromovej štruktúry (napr. Panel a jeho Buttons) a môžu byť multiplikovateľné.

Vačšina vlastností akcie môže mať podobu CALLBACK (CB) s parametrami (inštancia akcie, payload - multiplikácia) a this ako Widget.

// globálna implementácia WidgetAction.ACTIONS.mojaAkcia = { ... }; // widget only implementácia WListService.ACTIONS.printList = { ... }; // DS implementácia someDataSource.ACTIONS.dsAkcia = { ... };
idunikátny identifikátor v rámci stromu, zároveň implementácia
inheritsbool | CB - true disabluje Canvas
widgetwidget, ktorému akcia patrí

Multiplikácia

Multiplikované akcie môžu vytvoriť viac Canvas v poradí, pre každý "datum". Ich úzke prepojenie znamená meniace sa GUI keď meniace sa multi.

multiarray | CB - aktuálny multiplikačný zoznam (získava sa pri každom refresh akcií)
{ // vytvorí 3 tlačítka multi: [1,2,3], getTitle: function(A, P) { return 'tlačítko ' + P; } } { // dynamické množstvo Labelov multi: function() { // called often return this.dataSource.getActiveUsers(); }, cls: 'Label', canvasProperties: function(A,P) { return { contents: P.username, width: '100%' }; } }

Stav GUI

showbool | CB - false znamená nezobrazovať Akciu (ak už existuje - destroy)
disabledbool | CB - true disabluje Canvas
isClosedbool - true stav expanded/collapsed pre roztvárateľné parenty
getSelectedvráti Canvas ak je selectnutý (aj multi)
isSelected()vráti boolean ak je Canvas selektnutý
select(P)označí Canvas ako selected (StatefulCanvas), prípadne ak multi, odznačí predošlý
deselect(P)odznačí Canvas
update()CB - pre špeiciálne update potreby
{ // akcia bez GUI show: false } { // dynamická akcia podľa záznamu vo widgete (this) show: function() { return this.getRecord('id'); // zobraz ak ma id }, disabled: function() { return !this.getRecord('active'); // disable ak nie je 'active' }, run: function(A) { if (!A.isSelected()) { A.select(); // označiť (ako aktívnu) ... } } }

Canvas

Štandarne sa pre akciu zobrazí tlačítko (Button).

Parent akcia sa zobrazuje podľa orientácie (na šírku/výšku) špeciálnej časti widgetu s akciami. Je to najčastejšie HStack, VStack, HLayout (Layout) alebo FlowLayout

Explicitné určenie SC triedy pre zobrazenie je cls a vlastnosti konštruktorá sú v canvasProperties

cls
styleNameCSS class pre Canvas, ekvivalent canvasProperties.styleName
canvasPropertiesvlastnosti inštancie/konštruktora
getCanvas(P)vráti referenciu na Canvas, aj podľa multi
// použiť iný typ buttonu { cls: 'ToolstripButton' } // dynamický orientovaný layout podľa umiestnenia vo widget.tools { cls: function() { return ['left','right'].contains( this.getToolsPosition() ) ? 'Vstack' : 'HStack'; }} // pomocný canvas pre widget { cls: 'DynamicForm', canvasProperties: { init: function() { this.Super('init', arguments); var A = this.widgetAction; // ref na akciu var W = A.widget; // ref na widget } } }

Lokalizácia

title
showTitlebool | SC - false vypne lokalizovaný text; naopak true pre parent akcie zapne dodatočný label (aj roztvárateľný)
iconimage src pre ikonu
ficonfont ikona - vyrobí HTML pred nadpisom: <i class="{ikona}"></i>
{ // icon button showTitle: false, }