Třída: cForm
Předek: cItem
Třída cForm je bází všech
formulářových objektů systému Freelance. Vizuálně představuje okno s ovládacími
prvky, které reaguje na povely z toolbaru a připojeného menu. Okno lze
maximalizovat, přesouvat tahem za horní rám anebo upravovat velikost tahem za
pravý dolní roh. Jedinými přípustnými objekty vnořenými ve formuláři jsou
následníci třídy cControl.
Členské
proměnné třídy ( publikovaná část )
protected String saveCommand;
obsahuje příkaz pro uložení dat
odesílaný FastX serveru.
Je-li prázdný: není-li definován validátor formuláře, formulář nereaguje
na tlačítko Save. Je-li validátor instalován, volá se jeho metoda onCustomSave().
Je-li příkaz definován: odešle se spolu s daty formuláře FastX
serveru.
Poznámka: V odvozené třídě cWFXForm je proměnná inicializována automaticky, jinak je
potřeba ji naplnit explicitně v konstruktoru formuláře anebo obsloužit
příslušnou metodu validátoru.
protected int headerSize;
automaticky inicializovaná proměnna,
obsahuje výšku horního rámu v pixelech.
public cUniEval uniEval;
reference na připojený validační
objekt. V odvozené třídě cWFXForm je inicializována automaticky, jinak je potřeba ji naplnit explicitně v
konstruktoru formuláře.
public boolean checkModifyOnCancel = true;
pokud=false, editace žádného ovl.
prvku nesignalizuje stav editace formuláři
a storno nevyvolá dotaz na uložení změn. Tuto proměnnou také ovlivňuje
příznak ve vlastnostech formuláře (FeDeveloper/FormMaster).
Konstruktory
public cForm( cDesktop parent,
int x, int y, int w, int h, String aTitle )
konstruktor vytvoří nový formulář a
vloží ho do dané pracovní plochy
Členské
metody třídy ( publikovaná část )
public void load()
metoda vyprázdní ovládací prvky a poté
( je-li připojen objekt cUniEval ) vyvolá cUniEval.onLoad()
public void clear()
metoda vyprázdní ovládací prvky a poté
( je-li připojen objekt cUniEval ) vyvolá cUniEval.onNew()
public String setTitle( String
title )
metoda nastavuje titulek formuláře
public cControl getControl(
String name )
metoda vrátí referenci na jmenovaný
ovládací prvek, anebo null.
public String replaceMetaSymbols(
String text, boolean b2Web )
metoda nahradí veškeré metasymboly ve vstupním řetězci a vrátí nový řetězec. Pokud je b2Web=true,
je vracený řetězec upraven do formátu přípustného pro HTTP příkazy.
public boolean close( boolean
bSave )
pokud je bSave=true, metoda
provede validaci editovaných ovládacích prvků a je-li úspěšná, sestaví saveString
z výsledků volání metod getSaveString() jednotlivých ovládacích prvků a odešle příkaz
pro uložení - saveCommand - a saveString FastX serveru. Pokud je
bSave=false anebo ukládání dat proběhne úspěšně, okno je zavřeno.
public boolean save()
metoda save() má za úkol uložit
data z formuláře. Její chování záleží na obsahu proměnné saveCommand
a na přítomnosti či nepřítomnosti validátoru. Proto ji popisují následující tabulky:
Tabulka 1: saveCommand je
prázdný
Krok |
Formulář |
Validátor |
1. |
|
canSave() |
2. |
Validace
aktuálního ovládacího prvku |
|
3. |
|
onCustomSave() |
4. |
Konec a
vrácení výsledku metody |
|
Tabulka 1: saveCommand není
prázdný
Krok |
Formulář |
Validátor |
1. |
|
canSave() |
2. |
Validace
všech ovládacích prvků a příprava parametrů pro FastX server |
|
3. |
Odeslání
saveCommand a parametrů FastX serveru |
|
4. |
|
Je-li krok 4
úspěšný, volá se onSaveOk() |
5. |
Konec a
vrácení výsledku metody |
|
Vrátí-li libovolná ze zůčastněných
metod false, zpracování končí chybou.
public void clearModify()
metoda vynuluje příznaky ovládacích
prvků signalizující jejich editaci.
public boolean enableAll(
boolean bEnable )
metoda povolí anebo zablokuje editaci
všech ovládacích prvků.
public void maximize()
metoda maximalizuje okno ( je-li
povolena změna velikosti )
public void restore()
metoda obnoví velikost a pozici okna
před maximalizací
public void refresh()
metoda aktualizuje obsah formuláře.
Virtuální
metody
public void onPaintHeader()
metoda volaná frameworkem, má za úkol
vykreslit horní rám
public void onPaintBody()
metoda volaná frameworkem, má za úkol
vykreslit pozadí formuláře
public void onPaintStatus()
metoda volaná frameworkem, má za úkol
vykreslit status bar
public void onMenu( cMenu menu
)
metoda volaná frameworkem,
aktivoval-li uživatel některé menu. Parametrem je reference na toto menu.
Standardní implementace nejprve volá metodu cUniEval.OnMenu() - má-li formulář
registrovaný validační objekt. Pokud tato metoda zprávu nezpracuje - vrátí false
anebo uniEval není registrován, provede se zpracování standardních událostí (
maximalizace, zavření okna apod. ).
public boolean onControlValidate(
cControl control )
metoda volaná frameworkem při validaci
některého ovládacího prvku. Standardní implementace volá cUniEval.onValidate(),
je-li připojený validační objekt. Tuto metodu má tedy smysl překrývat pouze v
případě, že chceme obejít doporučenou implementaci validačního objektu. Pokud
metoda vrátí false, validace je neúspěšná.
public String getMenuName()
metoda volaná frameworkem, vrací jméno
připojeného menu. Standardně "form".