Třída:         cControl

          Předek:     cItem

cControl je báze všech objektů, které mohou vystupovat ve formuláři ( cForm, cTabForm ). Nevytvářejí se instance této třídy, nýbrž jejích potomků, které implementují různé objekty užívatelského rozhraní, jako cBrowse, cEdit, cChoice, cCheckBox, cImage, cLabel, cList.

 

Konstruktory

public      cControl( Panel parent, int x, int y, int w, int h )

vytvoří nový objekt cControl.

Členské proměnné třídy

public      boolean     checkModify = true;

proměnná definuje, zda editace prvku označí též rodičovský formulář jako modifikovaný. Pokud checkModify=true, také označí rodičovský formulář jako modifikovaný, takže při odchodu stornem je uživatel dotázán, zda si přeje uložit změny.

Členské metody třídy ( publikovaná část )

Čtení a zápis dat

Následující sada funkcí představuje univerzální rozhraní pro přístup k datům ovládacích prvků. Tyto metoda lze uplatnit na všechny potomky třídy cControl. Jejich implementace se však v jednotlivých typech samozřejmě liší.
Objekty cEdit, cChoice, cLabel a cList těmito funkcemi manipulují s obsahem editačního prvku, tedy čtou, případně zapisují editovanou hodnotu.
Objekt cCheckBox pracuje pouze s hodnotami A a N jako parametry respektive výsledky volání setText/ getText. Funkce setText() takto ovlivňuje stav ovládacího prvku.
Objekt cImage funkcemi setText/ getText nastavuje anebo vrací cestu k obrázku.
Objekt cBrowse pracuje s těmito metodami pouze při zapnuté editaci některé buňky, setText/ getText lze použít tedy pouze při validaci buňky.

public      String      getText()

metoda vrátí hodnotu ovládacího prvku jako String

public      void setText( String value )

metoda nastaví hodnotu ovládacího prvku

public      long getLong()

metoda vrátí hodnotu ovládacího prvku jako long

public      void setLong( long value )

metoda nastaví hodnotu ovládacího prvku

public      double      getDouble()

metoda vrátí hodnotu ovládacího prvku jako double

public      void setDouble( double value )

metoda nastaví hodnotu ovládacího prvku

 

Tvorba vlastních ovládacích prvků

public      Component createControl()

tato metoda je volána při vytváření ovládacího prvku a má za úkol vytvořit instanci vizuálního objektu, nejedná-li se o lightweight control, tedy prvek, který se zobrazuje sám. Například cEdit touto metodou vytvoří objekt třídy TextField. Metoda má vrátit odkaz na vytvořený objekt, případně this, jedná-li se o lightweight control.

public      Component getControl()

tato metoda vrací odkaz na vizuální objekt anebo this, jedná-li se o lightweight control.

Ostatní

public      void modify()

metoda označí prvek jako editovaný (při odchodu se spustí validace). Pokud checkModify=true, také označí rodičovský formulář jako modifikovaný, takže při odchodu stornem je uživatel dotázán, zda si přeje uložit změny.

public      cForm       getForm()

metoda vrací odkaz na rodičovský formulář.

public      String      getSaveString()

Freelance volá metodu getSaveString() při ukládání dat formuláře pro každý vnořený ovládací prvek. Každý typ ovládacího prvku implementuje tuto metodu jiným způsobem. Základní implementace v třídě cControl je <JMÉNO_PRVKU>=<HODNOTA_PRVKU>. Výsledkem sady volání je parametrický řetězec, který se spolu s příkazem pro ukládání dat odešle FastX serveru.

public      String      getName()

metoda vrací identifikační jméno prvku

public      void setName( String name )

metoda nastaví identifikační jméno prvku

public      void setEnabled( boolean bEnabled )

metoda povolí anebo zakáže editaci ovládacího prvku

protected   String      getPopup()

Freelance volá tuto metodu při otevírání popup menu. Metoda vrací jméno popup menu. Tuto funkci implementuje zatím pouze třída cBrowse, počítá se s ní i u dalších tříd, například cImage.

public      void setEditNotification( iEditNotification notification )

metoda zaregistruje k ovl. prvku objekt implementující interface iEditNotification. Interface definuje metodu
public void iEdited( cControl item ). Tato metoda je vol
ána při každé uživatelské změně hodnoty ovl. prvku typu cEdit, cText, cChoice, cCheckBox a cList. Spolu s metodou editNotify() vytváří konzistentní interface pro implementaci okamžité (nikoli až validační) odezvy na uživatelské vstupy.

Příklad (chceme, aby validátor implementoval odezvu při editaci pole NAME a CITY):

public      class cMyEval extends cUniEval
implements iEditNotification
{
    public void onCreate( String itemName )
    {
        super.onCreate( itemName );
        form.getControl( "NAME" ).setEditNotification( this );
        form.getControl( "CITY" ).setEditNotification( this );
    }
    public void iEdited( cControl item )
    {
        // called on each NAME & CITY field editation
        if ( item.getName().equals( "CITY" ) )
        {
            ...any code for CITY change...
        }
        else
        {
            ...any code for NAME change...
        }
    }
}

public      void editNotify()

metoda zjistí, je-li registrován objekt interface iEditNotification. Pokud ano, zavolá jeho metodu public void iEdited( cControl item ). Implicitně tuto metodu volají ovl. prvku typu cEdit, cText, cChoice, cCheckBox a cList.