Widget predstavuje klasický prepoužiteľný kontajner, čiže on (alebo viacero panelov v záložkách) a špeciálne oblasti title a tools.

Pridávaním/uberaním panelov sa dynamicky prepína widget na TabSet a ScrollContainer.

Špeciálne oblasti sú definovateľné v podobe stromu (GUI) Akcií, ktoré sú dynamicky vizualizované/použiteľné podľa potrieb widgetu.

WidgetContainer

Super trieda pre ostatné implementácie. Definuje základné chovanie, ako poloha nadpisu či toolbaru, alebo chovanie kontainera, ktorý môže nadobudnúť podobu TabSet.

Tool system

Widget je dekorovateľný ďaľšími GUI prvkami v podobe stromov Akcií pre oblasti tools a title. Každý widget má vlastnú inštanciu stromu a jeho definícia sa hľadá postupne vo widgete, jeho triede a nakoniec super triedach. Default názov konfigurácie pre tools je TOOLS a pre title TITLE.

Akcie sa dynamicky rendrujú ako Canvas, skrývajú, ničia alebo disablujú podľa stavu widgetu. Ak špeciálna časť nemá vykreslenú žiadnu Akciu, tiež sa skryje.

Akcie v strome musia obsahovať aspoň id. Podľa neho sa aj hľadá globálna definícia Akcie, s default vlastnosťami. parentId je id nadradenej položky, viac o Akciách. // register global Action WidgetAction.ACTIONS.myAction1 = { title: 'test run', run: function() { alert ('done'); } }; // register Widget-specific global Action WRecordDetail.ACTIONS.akcia2 = { ... } // define class-level TITLE WRecordDetail.TITLE = [ {id: 'serviceTitle'}, // ref to global Action {id: 'akcia2', ficon: 'fa fa-rt'} // ref to widget Action + overwrite ]; // instance-level TOOLS WListAssoc.create({ ID: 'testWidget', // singleton TOOLS: [ {id: 'somePanel'}, // grouping Canvas {id: 'myAction1', parentId: 'somePanel'}, {id: 'closeWidget', parentId: 'somePanel'} ] });
časť tools
TOOLSarray objektov ako definícií a poradia umiestnenia v špeciálnej časti.
toolsShowfalse explicitne skryje tools
resizeToolsfalse vypne možnosť resize tools, ťahom myši (len ak tools sú naľavo, napravo)
toolsPositionleft|right|top|bottom prepína umiestnenie tools
toolsMargin
toolsPropertiesdodatočné vlastnosti tools layoutu (FlowLayout pre left|right, inak VStack)
toolsButtonPropertiesdodatočné vlastnosti špeciálne pre Buttony v rámci tools
footerToolstrue zapne umiestnenie tools vo window footer (ak sa v ňom zobrazuje), miesto klasickej polohy
updateTools()znovunastaví Akcie v špeciálnych častiach, po väčšej zmene stavu widgetu
refreshTools()malá zmena na widgete - znovunastaví viditeľnosť/disabled na Akciách

Panel system

Panel je základný zobrazovaný Canvas v rámci widgetu. Ak má widget viac panelov, použije sa TabSet. Panel môže mať name pre identifikáciu, či title pre nadpis v Tab.

časť tools
TITLEarray objektov ako definícií a poradia umiestnenia v špeciálnej časti
titleShowfalse explicitne skryje title

Widget vlastnosti

mainScrollProperties
mainTabSetProperties
addPanel(panel, insertAt, select)pridá Canvas panel na nejakú pozíciu a aktivuje nový tab
removePanel(panel)odstráni Canvas
createWindow(props)vloží widget do modálneho okna Window + props
windowedreferencia na Window, v ktorom je widget
windowClassWindow | AdvancedWindow či iná trieda okna
styleNamemedzerou oddelený zoznam CSS classov, default widget
detailWindowbool - otvarat pod-detaily do popup window
initWidget(props)konštruktor widgetu, niekde vnútri je potrebné zavolať this.Super('initWidget', arguments);.