Postup přípravy

Každý nástroj, existující i přidávaný, musí být uveden v XML souboru fxd-tools-settings.mxl v tagu tools jako potomek tool. Každý tento tag má dva potomky form a task-list, kde první z nich určuje podobu formuláře ve středové matici a druhý slouží pro ukládání nastavení úloh uživatelem nástroje. Každý nástroj v základním souboru nastavení programu musí mít nastaveny následující atributy:

<tool label="Zobrazovaný název"
name="qname-nastroje"
descr="Podrobnější popis zobrazovaný v horním okraji nad formulářem násstroje" subfolder="podslozka-v-programu"
setting-file="none|nazev-souboru.xml"
use-task-list="true|false" visible="true|false" available="true|false"
/>

Vedle zobrazovaného názvu, který by měl být stručný, aby byl celý viditelný na levém panelu hlavního výběru, je třeba nastavit pracovní název splňující parametry QName. Podrobnější popis o významu a použití nástroje jako celku zadejte do atributu descr. Ten se pak uživateli zobrazí v horním okrají bíleho rámu zvoleného nástroje. Důležitým údajem je pracovní podsložka nástroje - nezadávejte cestu, ale jen jeden název, nejlépe bez diakritiky a mezer, ale nemělo by to činit problémy (na druhou stranu se tento název při běžné praci nikde nezobrazuje a je lépe se diakritice a mezerám při práci se soubory a složkami vyhnout). Dalším nastavením je atribut setting-file, který buď pomocí klíčového slova none sděluje, že žádný soubor nastavení není použit nebo nastavuje jeho název. Můžete pak snadno využít třídy pro práci s XML soubory, kde budete po vytvoření objektu pouze volat jeho metodu load s typem 'tool-settings' a objekt se již postará o načtení ze správného umístění. Podrobnější popisy a další typy při využití třídy datXML najdete v jejím zdrojovém kódu, který je součástí frameworku.

Posledními třemi nastaveními při zakládání nástroje jsou volby (atributy) use-task-list, visible a available, kam je možné zapsat hodnoty true|false. První říká, zda si přejete používat seznam úloh. Pokud jej nezvolíte, bude nástroj pracovat tak, jako by měl v seznamu jedinou výchozí úlohu, kterou umístí do podsložky _universal a seznam úloh nezobrazuje. Druhou volbou je volba viditelnosti. To se může zdát na první pohled jako nesmysl. Jde ale o to, že můžete pro jeden kompilovaný exe se sadou nástrojů využívat několik pracovních složek (např. z různých počítačů nebo jen pomocí různých zástupců) a určovat tak jinou pracovní složku, kde máte umístěn vždy jiný soubor s nastaveními. Pak se můžete rozhodnout, že do složky, kam má např. přístup většina uživatelů umožníte použití jen vybraných nástrojů a do složky, kam mají např. přístup jen administrátoři umistíte nastavení pomocí kterého zpřístupníte všechny nebo většinu nástrojů. To zda je nástroj možné použít určuje totiž právě seznam nástrojů v hlavním souboru nastavení. Poslední nastavení má obdobný význam. Rozdíl je jen v tom, že zatímco při visible='false' není nástroj vůbec vidět, při nastavení available='false' viditelný je, ale je neaktivní a nelze jej otevřít a použít.


Nastavení formuláře

Každý nástroj, i v případě, že nepoužívá seznam úloh, používá formluář úlohy pro základní nastavení a většinou i spouštění procesu nebo jeho různých částí. Formulář je zadáván rovněž do souboru hlavních nastavení fxd-tools-settings.mxl jako potomek tool. Tento potomek má dalšího potomka s názvem form, kde se vypíše seznam a umístění jednotlivých ovladačů nástroje. Například nastavení běžné kolonky může vypadat takto:

<text no="1"
name="my-field" caption="Moje kolonka"
title="Toto je jen pokusná kolonka"
top="1" left="1" width="4"
left-lbl="false" init-val=""
/>

Název opět musí splňovat vlastnosti QName pro XPath. Popisek caption by měl být krátký a výstižný a bližší popis vepsat do vlastnosti title. Vlastnosti top a left slouží k umístění nástroje v matici, která má přibližně 15 řádků (řádek je tak vysoký, aby se se na něj vejde celá běžná kolonka a ty tak mohou mít postupně hodnoty pocize shora 1, 2, 3 atd) a 15 sloupců. Této matice využívá i vlastnost width, kde úzká kolonka pro např. celočíselná zadání může mít klidně hodnotu 1. Cílem při návrhu těchto nastavení byla maximální možná jednoduchost a snadnost použití. Při složitějších návrzích je třeba použít jiné prostředí. Atribut left-lbl s možnými hodnotami true|false určuje, zda se popisek caption bude uvádět zleva a posune tak umístění kolonky o dvě pole matice doleva a nebo zda se bude zobrazovat shora a posune vlastní kolonku o jeden řádek níže, ale pozice zleva bude zachována. Posledním parametrem je init-val, kam je možné zadávat výchozí hodnotu při přidávání nové úlohy uživatelem.

Tag samotný a jeho název text určuje typ kolonky. Typy mohou být následující:

text - běžná jednořádková kolonka, pro zadání krátkých textů, čísel, datumů apod.;

textarea - textová oblast pro zadání delších textů; oproti typu text má v nastaveních navíc ještě atribut lines, kde je zadána výška v řádcích matice formuláře;

check - zaškrtávací volba, která vrací hodnoty 'true' či 'false' (každý ovladač formuláře vrací své hodnoty jako řetězec); zde je bezpředmětné zadávat nastavení left-lbl - popisek je vždy napravo od vlastního zaškrtávacího čtverečku;

combo - rozbalovací roletka, která v XML má definovány volby pomocí obvyklých tagů option s atributy value; framework pak jako hodnotu vrací obsah value zvolené položky;

list - obdobně jako rozbalovací roletka definuje také seznam dětské tagy option - rozdíl mezi objema ovladači je jen v tom, že list je rozbalený a je třeba mu určit atribut lines podobně jako u textové oblasti;

command - tento ovladač zobrazí tlačítko odpovídající zadané šířce s odpovídajícím štítkem;

Každý z těchto typů musí mít nastaven parametr no, určující číslo ovladače, který je použit. Můžete tak pro některý nnástroj např. zadat 4 texty s čísly 1 až 4, 2 zaškrtávací pole s čísly 1 a 2 a jedno tlačítko s číslem 1. Každý typ má svou číselnou řadu a maximální možný počet ovladačů určitého typu pro daný nástroj. Maximální počty jsou následující:

text - 12,

textarea - 3,

check - 5,

combo - 5,

list - 2,

command - 5.


Použití výchozí třídy CblvToolEmpty

Zadáním XML nového nástroje do souboru fxd-tools-settings.mxl máme připraven základní předpoklad pro naprogramování nového nástroje. Nástroji je třeba vytvořit novou třídu, nejlépe využitím zkopírování a přejmenování výchozí prázdné třídy CblvToolEmpty. Dále ve třídě CblvFTsMaster v řídícím seznamu v proceduře SetToolMasterByToolName přiřadit nově vytvořenou třídu ke zvolenému QName nového nástroje v XML nastaveních.

Výchozí třída má přednastaveny polymorfní ovladače pro různé události frameworku (aktivace/deaktivace nástroje či úlohy, ovladače prvků formuláře aj.) a jsou v této třídě popsány komentáři. Dále je dobré v případě nejasností podívat se na to jak některé věci řeší již vestavěné nástroje popsané výše, které jsou ve zdrojových kódech také a je možné je dále rozvíjet. Výchozí framework najdete ke stažen zde.