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".