Stránky a jejich části

Rozhraní COMEX je popsáno ve formě definic stránek, nikoli nutně webových. Stránky jsou složeny ze součástek (komponent) organizovaných do rámců. V definicích stránek dochází ke spojování aplikačního obsahu ve formě tříd a obecného programového vybavení ve formě modifikátorů.

Stabilita struktury definic, popisující všechny tři části, je klíčová pro celkovou stablitu systému COMEX jako celku. Díky důslednému oddělení na popisy knihoven modifikátorů a popisy aplikačního obsahu tříd je zachována flexibilita a nezávislost tvorby v obou rozměrech.

Základem spojování aplikačního obsahu a programových komponent do součástek na stránce je struktura zápisu, tedy syntaxe odkazů na zdroje součástek umisťovaných na stránky.


Syntaxe odkazů COMEX

Ke správnému propojování aplikačního obsahu tříd a dostupných programových komponent modifikátorů, ke kterému dochází v definicích stránek, slouží především struktura odkazů používaných COMEX systéme...


Třídy a rozsahy

V syntaxi odkazů je za klíčovýcm slovem comex uváděn nejprve název třídy a za ním pak název tzv. rozsahu této třídy. Obojí slouží pro upřesnění předpokládaných způsobů využití finální komponenty a modifikátoru, který je odpovědný za její realizaci. Zároveň je také dáno, že definice comex neexistují pro třídy, ale každá je určena třídou a rozsahem. Teprve tedy konkrétní rozsah dává třídě její určení a tedy i smysluplnou definici. V odkazu je patrné, že identifikace instance třídy se uvádí až za jejím rozsahem. Také všechny komponenty existují nejen ve třídě, ale vždy i v některém jejím rozsahu.

Následující tabulka uvádí přehled tříd a jejich rozsahů, ve kterých mohou být definovány:

třída rozsah příklady modifikátorů
folder header anchor, info
content list, mainMenu, sideMenu
table header anchor, info
data grid, graph, calendar, cards
form filter, item, table
content list, sideMenu
document header info
form filter, item, table
preview inpage, print, download
action header info
envelope button, info, switch, input
schema preview, download, anchor
special - banner, image, button, caption

Bližší popis jednotlivých tříd a jejich rozsahů najdete v kapitole třídy, případně také náhled na úkázky definic ve stručných příkladech.


Instance tříd

V systému COMEX jsou využívány dva druhy syntaxe odkazů na komponenty:

neinstanční - typy a knihovny

instanční - konkrétní komponenty na konkrétních stránkách

První z nich slouží především pro registraci modifikátorů pro tvorbu komponent na stránkách, ale také jako systém odkazů na základní datové typy. V odkazu chybí specifikace instance třídy indikované dvojtečkou za uvedením rozsahu. Odkazy na typy jsou ještě jednodušší, skládají s pouze z klíčového slovy comex a názvu patřičného typu (viz. přehled základních datových typů comex).

Při registraci modifikátorů je třeba v každé definici modifikátoru, tedy v kmenovém uzlu modifier uvést atribut inclusion v syntaxi neinstančního odkazu, který říká, kam uvedená definice patří. Parametry, které vyžaduje a vlastnosti, které komponenty vznilé dle daného modifikátoru nabízejí jsou pak v této definici uváděny s neinstančními odkazy na základní typy, pokud nemají určeny typy vlastní nebo nejsou komplexního charakteru.

Druhý typ instanční pak slouží pro sestavení komponenty na stránce nebo k různým druhům vazeb mezi komponentami. Tyto odkazy se liší právě uvedením instance, tedy aplikačního obsahu určeného pro danou komponentu. Odkaz atributu source v uzlu component může obsahovat například odkaz comex.table.data:1023.grid, který odkazuje na seznam kontaktů (tabulka id 1023) a zobrazuje jej formou kontaktů (celý příklad viz. stručné příklady).


Použití odkazů

Syntakticky stejné nebo obdobné odkazy comex... jsou využívány na různých místech k různým účelům.


Zařazení definice modifikátoru

Každá definice modifier musí být přiřazena k určité třídě, rozsahu a doplněna názvem. Pro zařazení modifikátoru se odkaz zavádí do atributu:

inclusion

Syntaxe tohoto atributu obsahuje neinstanční odkaz v syntaxi:

syntax
comex.{class}.{range}.{name}

Název uváděný na konci výrazu musí být v dané třídě a rozsahu jedinečný, tj. nesmí jej užívat žádná jiná definice modifikátoru, protože tyto odkazy slouží k jedinečné identifikaci

Obslužné soubory modifikátoru, jako jsou skripty, styly aj. jsou ukládány ve složkách, jejichž struktura koresponudje se zařazením modifikátoru do systému (více viz. modifikátory).


Umístění komponenty

Při vkládání komponenty na stránku rovněž používáme strukturu odkazu comex.{class}.{range}.{name}, tentokráte však již instanční:

syntax
comex.{class}.{range}:{instance}.{name}

Můžeme tak na stránku umístit tabulku s přehledem plateb, kterou jsme si v intranetu připravili pod ID 1234. Tedy pro vytvoření komponenty na stránce použijeme modifikátor grid z třídy table za pomoci instance 1234 a do atributu source uzlu component v definici stránky uvedeme odkaz:

comex.table.data:1234.grid

Tento zápis zajistí zobrazení připravené tabulky faktur.

Stejné instanční odkazy používáme i pro zajištění komunikace komponent mezi sebou na stránce, ať již jde o komunikaci při vyvolání událostí nebo při načítání či vkládání dat z či do komponenty.


Upřesnění komponenty názvem

Jsou-li na jedné stránce dvě komponenty naprosto stejného druhu a instance (opravdu velmi vzácné ale nikoli vyloučené), pak je používán doplňkový název, aby byly tyto vzájemně odlišeny. Tento název se pak při odkazování uvádí do hranatých závorek za odkaz běžný. Nazveme-li si komponentu mojeTabulka, bude pojmenovaný odkaz ten původní rozšiřovat následovně:

comex.table.data:1234.grid[mojeTabulka]

Takovéto instanční odkazy mohou být i více vypovídající.


Definice struktur

Jak bylo uvedeno, součástky na stránkách systému COMEX jsou tvořeny modifikátory. Modifikátory pro činnost vytvořených součástek a zejména pak pro komunikaci mezi nimi, ale také pro parametrizaci a nabídku vlastností definují různé struktury dat pomocí definičních uzlů většinou v rámci definic modifikátorů.

V podstatě jde o definici jednoduchých a strukturovaných datových typů.

Jednoduché datové typy přitom vycházejí z odkazu na některý základní datový typ comex a případně jej upřesňují dalšími restrikcemi pomocí definičního uzlu type.

Strukturované datové typy využívají ke svému popisu uzly:

Vždy může být jako potomek uváděn vždy jen jeden z obou uzlů. První z nich, property může být na větvi uváděn opakovaně, druhý může být uveden pouze v jediném výskytu. Uvedením některého z obou uzlů pak říkkáme, že uzel, kde k uvedení došlo je buď objektem (výskyt property) nebo polem (výskyt array-element). Vlastní potomek pak dále muže být definován buď jako jednoduchý typ nebo vnořeným uvedením uzlu property jako objekt či uzlu array-element jako pole. Datový typ pole je pak určován datovým typem jeho prvku. Typ je tedy upřesněn až v uzlu array-element.

Takto definované struktury vlastností, objektů a polí pak mohou být při aktivitách na stránce naplňovány sběrem hodnot - viz. další část.


Sběr hodnot

Při aktivní činnosti součástek na stránkce, jako josu vzájemná propojení a další činnosti, je zapotřebí získávat a předávat hodnoty, většinou umisťované do definovaných struktur.

Všechny uzly pro sběr hodnot využívají stejného principu. Buď jde o přímé zadání hodnoty:

atribut content

nebo jde o sestavení struktury jedním nebo několika potomky z následujícího výběru:

value pro vnořené zadání pojmenované hodnoty či dalšího sběru pomocí potomků,

call-method pro získání hodnoty voláním pojmenované metody některého objektu sučástky na stránce,

get-property pro načtení hodnoty pojmenované vlastnosti některého objektu sučástky na stránce.

Při výskytu více potomků je pak rozhodující atribut operator uvedený v rodičovském uzlu sběru hodnot. Operátor určuje, zda hodnoty získané z potomků mají být sloučeny jako řetězce, matematicky sečteny, sestaveny do objektu pojmenovaných hodnot nebo do pole hodnot apod. Seznam operátorů viz. popis atributu operator ve schematu uzlů pro sběr hodnot.

Sběr hodnot se může vyskytovat ve dvou typech definic a sice v definicích tříd ve specifických, k tomu účelu určených uzlů a pak v definici stránek, kde slouží pro sběr hodnot při parametrizaci a sběru hodnot.

Další informace ke stránkám viz. popis Stránky nebo dokumentace k definici uzlu cxd:page.


Tři hlavní druhy definicStránky a jejich částiPropojení součástíStručné příklady definicDostupnost definicDefinice jazkových mutací