What's new in Freelance

 

The Second Edition
2002-08-22

ü        SmartSeek
Hledání v tabulkových editorech lze provádět klepnutím na záhlaví sloupce, které vyvolá menu obsahující všechny hodnoty sloupce ve stávajícím výběru. Klepnutí na konkrétní hodnotu automaticky nastaví výběrovou podmínku. Výběrové podmínky lze jednoduše kombinovat.

The Second Edition
2002-07-07

·        Freelance
Hledání v tabulkových editorech obsahuje záložku Sloupce, ve které lze nastavovat zobrazení/skrývání jednotlivých sloupců

Jazyková lokalizace je jednodušeji a silněji podporována prohledáváním slovníku podle textů popisných polí ve formulářích a titulků sloupců v editačních tabulkách. WRO reporty a HTML části HP stránek mohou obsahovat metasymbol @@VOC(nějaký text), který je nahrazován buď slovníkovým ekvivalentem hodnoty nějaký text, anebo tímto textem, nebyl-li ve slovníku nalezen.

FDX (Freelance Data Exchange) je nová služba řešící na obecné úrovni problematiku transferů dat z různých zdrojů do různých cílů. Zdrojem můžou být databáze, textové soubory a může jich být libovolné množství. Cílem může být databáze, soubor, Freelance klient a též lze vytvářet jejich kombinace. FreelanceDeveloper je vybaven editorem FDX transferů, který umožňuje práci s připravenými šablonami pro základní typy reportů, tedy seznamy, formuláře a kontingenční tabulky.

Rozšířená lokalizace v rámci platformy pro Microsoft JVM i Sun Java Plugin, umožňující volbu fontů nespecifických pro verzi Java 1.1, např. Tahoma, Verdana atd.

·        FastX
Programování:
Nové X operátory:
   
xwebhp(string hpFileAndParameters )
                
operátor vyvolá zpracování zadané HP stránky, případně s parametry. Formát parametru hpFileAndParameters je
                
<jméno_stránky>.hp[&parametry…]. Operátor je obdobou nové direktivy <embed:…>, která slouží k vnořování HP stránek v jejich HTML části.
HP stránky: Nová direktiva <embed:hp_file_name.hp[&parametry…]>
   
direktiva se používá v HTML části HP stránky, podobně jako třeba <xcall:…>. Za dvojtečkou je potřeba uvést jméno stránky, případně doplněné o parametry       oddělené ‘&’. Direktiva podporuje strukturovanou tvorbu stránek, např. jednotným formátem hlaviček, patiček apod.
Příklad HTML části HP stránky:  

          <embed:header.hp>
          <xcall:buildBody>
          <embed:footer.hp>
XIF výrazy (FDX a WRO), HP stránky: Nová direktiva @@FILE(<jméno souboru>)
   
direktiva je nahrazena obsahem souboru. Kořenový adresář je FCO doména, tedy zpravidla c:\inetpub\wwwroot\ffs\<jméno aplikace>
XIF výrazy (FDX a WRO), HP stránky: Nová direktiva @@VOC(<fráze>)
   
direktiva je nahrazena ekvivalentem fráze nalezeným ve slovníku. Není-li nalezen ekvivalent, výsledkem je samotná fráze.

 

The Second Edition
2002-03-25

                                   Druhé vydání Freelance obsahuje mimo jiné:

ü       Optimalizovaný X runtime, zejména správa paměti, volání funkcí a provádění X kódu

ü       Rozšířené využití e-mailu a SMS (aplikace BusinessOnline)

ü       Komprese přenášených dat a z toho plynoucí zrychlení práce na pomalých sítích

ü       Funkce pro kompresi dat

ü       Nové pomůcky v aplikaci Freelance Developer pro automatizaci vývojového procesu a ladění

FastX

2002-03-19

·        Freelance

Programování: Nové metody
 
Class cUniEval
public void setDecimals ( String editList, int decimals )     nastaví pro čárkou oddělený seznam editačních polí anebo sloupců maximální počet desetinných míst

2002-02-28

·        FastX
Programování:
Nové X operátory:
   
xsqlquery( long cursor, string sqlSelect, long & fetchStatus, … )
                
operátor spustí SQL SELECT příkaz sqlSelect. Poté inicializuje FETCH buffery (jako xsqlinto) a provede FETCH (xsqlfetchnext). Výsledek, případně                  kód chyby zapíše do fetchStatus. Pokud je fetchStatus roven 0,  znamená to, že byl načten řádek dat. Je-li roven 1, žádná data nebyla                              nalezena. Ostatní hodnoty znamenají kód chyby. Následují-li za fetchStatus další proměnné a byla-li načtena  data, operátor do těchto proměnných                  zapíše hodnoty sloupců přečteného řádku, podobně jako operátor xsqlgetdata, počínaje prvním sloupcem SELECT příkazu.
   
xsqlgetdata( long cursor, long fromColumn, … )
                
operátor umožňuje hromadné čtení dat z řádky získané pomocí xsqlfetch*, zastupuje vícenásobné volání xsqlgetstr, xsqlgetlong resp. xsqlgetdbl.
   
xsqlbinddata( long cursor, long fromParameter, … )
                
operátor umožňuje hromadné vázání dat na parametry zkompilovaného SQL příkazu. Zastupuje vícenásobné volání xsqlbindstr, xsqlbindlong resp.                  xsqlbinddbl.
   
Tip:      na jednodušší a rychlejší přístup k datům:
                
                
long         cur, fetch, YEAR, MONTH
          string       errTxt, NAME, BIRTHDAY
          double       SALARY

                
try
                 xsqlconn( cur )
                 =( YEAR, 2000 )
                 =( MONTH, 1 )
                 xsqlprep( cur, ’SELECT NAME, BIRTHDAY FROM USERS WHERE YEAR=:1 AND MONTH=:2 )
                 xsqlbinddata( cur, 1, YEAR, MONTH )
                 /* dříve
                 xsqlbindlong( cur, 1, YEAR )
                 xsqlbindlong( cur, 2, MONTH )
                 */
                 xsqlinto( cur, 1 )
                 xsqlexec( cur, 1, YEAR, MONTH )
                 xsqlfetchnext( cur, fetch )
                 while! ( fetch )
                       xsqlgetdata( cur, 1, NAME, BIRTHDAY )
                       /* dříve
                       xsqlgetstr( cur, 1, NAME )
                       xsqlgetstr( cur, 2, BIRTHDAY )
                       */
                       xsqlfetchnext( cur, fetch )
                 end
                
xsqlquery( cur, ’SELECT SALARY FROM SALARIES WHERE NAME=\’’ $ NAME $ ’\’, fetch, SALARY )
                 if ( fetch )
                       xwebout(’Salary not found.‘)
                 end
                 while! ( fetch )
                       xwebout(’Salary...‘)
                       xsqlfetchnext( cur, fetch ) /* next salary */
                       xsqlgetdata( cur, 1, SALARY )
                 end
                 catch
                 xsqlerrorinfo( fetch, errTxt )
                 end
          xsqldisconn( cur )

·        Freelance

1.      Programování: Nové metody
 
Class cUniEval
public static String user()          vrátí jméno přihlášeného uživatele
public static String USER()         vrátí jméno přihlášeného uživatele převedené na velká písmena
public static String database()  vrátí jméno přihlášené databáze
public static String DATABASE()            vrátí jméno přihlášené databáze převedené na velká písmena

2002-02-07

·        FastX

1.      Důsledná kontrola licence (CompressLink, SecureLink)
Dosavadní verze umožňovala používat SecureLink i nelicencovaným subjektům.

2.      Optimalizace správy paměti v X runtime
Byla zmenšena režie nahrávání X modulů a snížena četnost realokací paměti při operacích nad proměnnými typu string.

3.      Možnost komprese dat odesílaných serverem klientovi (verze CompressLink)
Implementace komprese přenášených dat.

4.      Optimalizace manipulace s parametry FastX příkazu
Původní kapacita interního bufferu operátoru xwebparam činila 4096B. Operátor byl reimplementován a při snížení paměťových nároků je maximální délka hodnoty parametru daná množstvím paměti OS.

5.      Programování: Integrace ZLIB knihovny a implementace funkcí pro kompresi/dekompresi:

zlib.dll je open-source knihovna implementující funkce GNU-ZIP. FastX server tuto knihovnu integruje a exportuje dvě funkce pro kompresi/ dekompresi bloku dat:

fastx.dll:
/*allocated*/
char * _export FGZIP(    char * src,                  /*IN*/
                                        int * size                    
/*IN/OUT*/
); 
funkce zkomprimuje blok dat src o délce *size. Alokuje potřebnou paměť a zkomprimovaná data do ní zapíše. Do proměnné *size zapíše velikost zkomprimovaných dat. Od běžné kompresní funkce se liší tím, že zkomprimovaná data obsahují údaj o původní délce, tudíž není potřeba tento údaj uchovávat zvlášť a opravou CRC.
Tip: Funkci FGZIP() lze použít i pro komprimovaný přenos HTTP dat. V tom případě je potřeba zařadit do hlavičky HTTP odpovědi položku Content-Encoding: gzip.

/*allocated*/
char * _export FGUNZIP(           char * FGZIPcompressedData,                     /*IN*/
                                        int * size                    
/*IN/OUT*/
); 
funkce dekomprimuje blok dat o délce *size vytvořený funkcí FGZIP.
Alokuje potřebnou paměť a dekomprimovaná data do ní zapíše. Do proměnné *size zapíše velikost dat.

6.      Programování: Podpora zpracování souborů odesílaných HTTP protokolem
FastX nyní podporuje vzdálený zápis souborů.
Tip: HTML definuje způsob odesílaní souborů po sítí pomocí značky <input type="file" >. Tato značka musí být součástí formuláře deklarovaného <form enctype="multipart/form-data" method="POST" action=...>. Soubor lze zpracovávat třeba v HP stránce a to následujícím způsobem: je-li atribut action roven například "/ffs/fastx.dll?Task=app.form&Data=upload.hp", lze jméno a obsah souboru získat následujícím X kódem:

long            rm, sm, size, ContentLength
string    data, ContentType, ContentTransferEncoding, ContentDisposition

xwebgetformupload( size, data )     /* tento operátor načte veškeré soubory do data */
                              /* data můžete následně zpracovat funkcemi RECMAIL_* */
if
( size )
   =( rm, RECMAIL_initData, data, size )
   if! ( rm )
          xret( 0 )
   end
   xstralloc( ContentType, 1024 )                 /* alokovat buffery */
   xstralloc( ContentTransferEncoding, 1024 )
   xstralloc( ContentDisposition, 1024 )
   =( sm, RECMAIL_first, rm )
   /* souborů může být i několik, pro každý z nich: */
   while ( sm )
          /* alokovat buffer pro data souboru */
          RECMAIL_content(sm,ContentType,ContentDisposition,ContentTransferEncoding,ContentLength)
          xstralloc( data, ContentLength )        /* alokovat data pro data souboru */
          RECMAIL_body( sm, data, ContentLength ) /* na
číst soubor do data */
          xstrchar=( data, ContentLength, 0 )     /* zakončit 0 (volitelné) */
          =( fileName, RECMAIL_fileName, sm )     /* zjistit jméno souboru */
          if ( fileName )
                /* zpracovat soubor */
          end
         
          =( sm, RECMAIL_next, rm, sm )           /* dal
ší soubor...*/
   end
   RECMAIL_done( rm )                             /* konec
*/
end

7.      Programování: Nové X operátory:

xsqlgetprimarykey( long cursor, string tableName,  string primaryKey ) operátor zapíše do primaryKey primární klíč tabulky tableName.
xwebformupload( long size, string data ) operátor přečte do data obsah HTML formuláře (všechny parametry a připojené soubory)

xloadfilebin(string data, long size, string fileName ) operátor přečte do data obsah souboru fileName. Proměnná size obsahuje velikost přečtených dat.

Nové XIF operátory pro manipulaci s binárními daty
xifbin( long xif,  string data,  long size ) operátor přečte do data obsah XIF položky xif. Proměnná size obsahuje velikost přečtených dat.
xifbin=( long xif,  string data,  long size ) operátor zapíše do XIF položky xif obsah binární proměnné data. Proměnná size obsahuje velikost zapisovaných dat.
xifbinbyname( string xif,  string data,  long size ) operátor přečte do data obsah XIF položky xif identifikované jménem. Proměnná size obsahuje velikost přečtených dat.
xifbinbyname=( string xif,  string data,  long size ) operátor zapíše do XIF položky xif identifikované jménem obsah binární proměnné data. Proměnná size obsahuje velikost zapisovaných dat.


·        Freelance

1.      Zlepšení vzhledu a ovládání
Editační formuláře a ovládací prvky mají jemnější vzhled. Nyní je snadnější otevírat nabídky hodnot kliknutím na pravý horní roh. Tip: Klepnutí pravým tlačítkem myši do editačního pole otevře menu Kopírovat/Vložit.

2.      Zlepšený tisk editačních tabulek
Data jsou zformátována do HTML tabulky, což je přehlednější, než stávající řešení.
Tip: Při kliknutí na název výstupu se spustí Microsoft Excel a data jsou do něj automaticky přenesena.

3.      Oprava validace editačních polí
Pokud byla zadána prázdná anebo chybná hodnota, pole svázaná SQL relací nebyla aktualizována.

4.      Programování: Nové metody

Class cApplet
Přístup k parametrům: (ekvivalenty X operátoru xparameter(...), xdbparameter(...) )
public String getParamText( String namePath )          
přečte hodnotu jmenovaného parametru aplikace jako String
public long getParamLong( String namePath ) přečte hodnotu jmenovaného parametru aplikace jako long
public double getParamDouble( String namePath )přečte hodnotu jmenovaného parametru aplikace jako double
public String getDBParamText( String namePath )       přečte hodnotu jmenovaného parametru aplikace jako String
public long getDBParamLong( String namePath )         přečte hodnotu jmenovaného parametru aplikace jako long
public double getDBParamDouble( String namePath )přečte hodnotu jmenovaného parametru aplikace jako double
HP a WRO:
public void hpIn( String params, String inWindow )
otevře HP stránku v pojmenovaném okně prohlížeče
public void wroIn( String params, String inWindow ) otevře WRO report v pojmenovaném okně prohlížeče
public static boolean strInList( String list, String s, String del ) zjistí, zda v seznamu list odděleném řetězcem del existuje řetězec s.
public void openFastXDocumentIn( String task, String params, String inWindow ) vyvolá FastX task s parametry params a výsledek přesměruje do pojmenovaného okna prohlížeče inWindow
public void openFastXDocument( String task, String params ) vyvolá FastX task s parametry params a výsledek přesměruje do nového okna prohlížeče

Class cBrowse
public cForm prepareToolbar( int height ) se používá v WTX browsech. Vytvoří v horní části toolbar s výškou height, do kterého lze vkládat ovládací prvky. Vrací odkaz na formulář, ve kterém je browse vnořen a do nějž lze ovládací prvky vložit.
public void editColumn() spustí editační režim u prvního editovatelého sloupce. Používá se typicky po addRow().
public void refreshWithContext()
aktualizuje data a nastaví kontext (řádku a sloupec) na původní pozici.
public void setDefault( String colName, String value ) nastav
í implicitní hodnotu sloupce.

Class cDesktop
public void enableMenu( int id, boolean bEnable ) povolí/ zakáže menu s akcí id.
public cForm getFormInsensitive( String name) najde formulář jménem name bez ohledu na velká/malá písmena.

Class cEdit
public boolean evalRelationSilent()
slouží k 'tiché' validaci SQL relace. Pokud selže, svázaná pole jsou vyprázdněna a nejsou zobrazena žádná hlášení.
public void setSelectOptionsFromSQL( String select2cols ) vyvolá SQL SELECT příkaz a na jeho základě sestaví výběrové menu editačního pole. SELECT musí vybírat právě dva sloupce, první je použit pro titulky menu a druhý pro datové hodnoty.

Class cForm
public void modify()       funkce označí formulář jako modifikovaný (souvisí s ukládáním dat).
public cForm           prepareToolbar( int height )

Class cRequester
public String fastxNoCompressed( String req, String params )           spustí FastX příkaz a potlačí kompresi výsledných dat (je-li aktuálně zapnuta). Hodí se při volání příkazů s krátkými výslednými daty, čímž snižuje režii FastX serveru.

Class cSql
public int[] SqlGetLengths( String select ) zjistí šířku dat sloupců v SELECT příkazu.

Class cUniEval
public void setEnabledList( boolean bSet, String nameList ) hromadně povolí/ zakáže editaci ovládacích prvků anebo sloupců vyjmenovaných v seznamu nameList. Jména musí být oddělena čárkami.
public void setEnabledAll( boolean bSet, String nameLike, String nameNotLike ) hromadně povol
í/ zakáže editaci ovládacích prvků začínajících textem nameLike a nezačínajícími textem nameNotLike.

5.      Programování: Nové metasymboly
Nové metasymboly ve WRO reportech, HTML zdrojích HP stránek a SELECT příkazech WTX a WFX:
@@NULL(<hodnota>) je nahrazen hodnotou.
Je-li hodnota prázdná, je nahrazen textem NULL.
@@STRNULL(<hodnota >) je nahrazen hodnotou v apostrofech. Je-li hodnota prázdná, je nahrazen textem NULL.


2001-11-01

·        Freelance: automatické formátování desetinných čísel při zobrazení v editační tabulce a poli

·        Freelance: Nová metoda <cUniEval>.checkFormSaved().

·        Freelance: oprava chování víceřádkových textových polí (odezva na backspace)

2001-10-16

·        Freelance: Nová komponenta, typ MX, jméno MultiCheckBox, class freelance.plus.controls.cMultiCheck. Jedná se o programovatelnou sadu zaškrtávacích polí s možností dynamicky měnit obsah, vzhled a počet políček.

·        FastX: přesnější výpočet délky numerických datových sloupců

·        FeDeveloper: FileMaster podporuje mazání souborů

2001-10-07

·        Freelance: Zásadní změna architektury editačních formulářů, otevřený systém komponent. Komponenta je zapouzdřená definice ovládacího prvku s definovaným souborem vlastností a Java třídou, která jej implementuje. Komponenta je z definice implementačně nezávislá, tudíž přenositelná mezi jednotlivými formuláři, případně i aplikacemi i instalacemi.

·        FeDeveloper: ComponentBrowser je nástroj k editaci stávajících a vytváření nových komponent.

·        X runtime: nové operátory
xwebparamlong(>long<, string paramName ) a xwebparamdouble(>double<, string paramName ) pře
čtou hodnotu parametru jako long resp. double.

2001-09-25

·        FeDeveloper: TableMaster automaticky vytváří WTX šablony včetně relací na jiné tabulky a nabídek.

·        Freelance: Nové metody cUniEval.parDouble() a cUniEval.parList()

·        FeDeveloper: X debugger disponuje velmi komfortním výběrem X modulů k ladění a běžících aplikací.

·        Freelance: kosmetické úpravy ve vzhledu edit. polí, tabulek. Jsou ještě krásnějsí...

·        FeDeveloper: FormMaster/Prohlížení zobrazuje i ovládací prvky typu CustomControl

·        Freelance: změna v edit. tabulkách (lze hromadně mazat řádky)

·        Freelance: Nová metoda <cUniEval>.getBrowse()

2001-09-18

·        Freelance: Nový interface iEditNotification. Spolu s novými metodami <cControl>.setEditNotification() a <cControl>.editNotify() implementuje konzistentní interface pro okamžité zachytávání uživatelských akcí a změn hodnot ovl. prvků.

·        FeDeveloper: FormMaster korektně pracuje s rámečky; zvýrazňuje vybraný rámeček, který lze i odebrat.

·        FeDeveloper: DirectSQL poskytuje podrobnější popis chyby SQL příkazu.

·        Freelance: změna konverze string->double; větší volnost v zadávání numerických hodnot do editačních polí/sloupců. Tolerována je záměna desetinné tečky a čárky a mezery uvnitř čísla.

·        Freelance: změna konverze double->string. Původní, javovská konvertovala čísla menší než 0.001 anebo větší než
10 000 000 na exponenciální zápis.

 

2001-09-10

·        FastX: public X libraries - sdílené knihovny funkcí. Představují nejrychlejší a a paměťově nejméně náročnou variantu sdílení programového kódu. Definují se v položce FeDeveloper|FastX Manager|System|X runtime|X libraries jako čárkami oddělený seznam jmen X knihoven (bez koncovky xl). Kořenový adresář je c:\fastx\common\x\xl.

·        FeDeveloper: FormMaster: lze editovat i vnořené tabulky. Je potřeba je explicitně ukládat.

·        FeDeveloper: FormMaster: nová funkce Prohlížení formulářů, ukazuje formulář v runtime modu.

·        Freelance: Nový ovládací prvek freelance.plus.controls.cCalendar - kalendář.

2001-09-07

·        FeDeveloper: FormMaster: Choice(ComboBox) a ListBox mají novou vlastnost: implicitní seznam hodnot. Freelance těmito hodnota automaticky seznamy a komba inicializuje.

·        FeDeveloper: jména validátorů ve vlastnostech formulářů, edit. tabulek a appletů lze zadávat bez jména aplikace - Freelance jej implicitně doplní jménem běžící aplikace.

·        FeDeveloper: parametry Java kompilátoru jsou nyní v parametru javacopt aplikace fdev.

·        Freelance: Nový parametr apletu: AUTOLOGIN. Je-li roven Y a zároveň jsou zadány ostatní parametry přihlášení (DB,US,PWD), Freelance se automaticky přihlásí k databázi.

·        Freelance: Nové užitečné metody cUniEval.setLimitsBySqlQuery(),cUniEval.setLimitsBySql(). Implementují automatické omezení editačních délek podle délek SQL sloupců.

·         FeDeveloper: změna parametrů aplikace/ vytvoření nové má okamžitý efekt.
Varování: při této akci jsou reinicializovány všechny X knihovny a preloaded X moduly. Použití této vlastnosti za běžného provozu může mít nepředvídatelné následky. Důrazně doporučujeme odhlásit uživatele ze systému a změny provést až poté.

2001-09-03

·         Freelance: možnost automatického nastavení maximální edit. délky polí ve WFX formuláři (FeDeveloper|FormMaster|Vlastnosti|Automaticky omezit délku podle SQL)

·         Freelance: možnost explicitního nastavení maximální edit. délky polí (FeDeveloper|FormMaster|Vlastnosti edit. pole)

2001-08-31

·         Freelance: odchod klávesou Esc anebo tlačítkem Storno z uživatelsky editovaného formuláře otevře dialog s dotazem na uložení změn. Tato volba je implicitně aktivní a lze ji ovlivnit ve vlastnostech šablony formuláře (FeDeveloper/FormMaster)

·         Freelance: Nové metody <cResourceInterpreter>.modifyControl()            /*nastavení příznaku editace ovl. prvku */
a
<cResourceInterpreter>.repaintControl()                                          /*překreslení ovl. prvku */.

·          

·         Freelance: Nová metoda <cControl>.modify()                    /*nastavení příznaku editace ovl. prvku */.

·         Freelance: Nová proměnná <cControl>.checkModify           /* implicitně=true; pokud=false, editace ovl. prvku nesignalizuje stav editace formuláři a storno nevyvolá dotaz na uložení změn */.

·         Freelance: Nová proměnná <cForm>.checkModifyOnCancel  /* implicitně=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)*/.

·         FeDeveloper: Hledání a nahrazování v editorech je nyní plně kontextové (začíná na pozici kurzoru a také z ní přečte slovo a nabídne jej jako hledaný výraz).

·         FeDeveloper: CodeMaster For Java má nyní dvě podoby Assist (F2) a Search (F3). Assist podporuje tvorbu validátoru, zatímco Search kontextově vypíše informace o proměnné/ třídě, na které leží editační kurzor.

·         FastX: X libraries - sdílené knihovny funkcí nyní i pro jednotlivé aplikace (<appname>|Xlibraries). Konfigurují se App Masterem. XMaster má nové menu X knihovny... Předchozí verze podporovala pouze deklaraci systémových knihoven sdílených všemi aplikacemi ( init.ad / Xlibraries ).

2001-08-28

·         Freelance: Metody cUniEval.par(), <cUniEval>.ctlPar() a cApplet.par(). Slouží k jednoduchému a přehlednému předávání parametrů při volání FastX příkazů (hp stránky, reporty, ostatní FastX dokumenty).

·         Freelance: Metoda <cApplet>.hpIn() a <cApplet>.wroIn(). Otevírá hp/wro dokument v zadaném okně browseru.

·         Freelance: Metoda <cApplet>.openFastXDocumentIn(). Otevírá FastX dokument v zadaném okně browseru.

·         FeDeveloper: CodeMaster for X/Java. Pomocník pro orientaci ve zdrojových textech. Volá se F2 nad okny XMaster/ JMaster.

·         FastX: X libraries - sdílené knihovny funkcí. Představují nejrychlejší a a paměťově nejméně náročnou variantu sdílení programového kódu. Zatím pouze systémová, nedokumentovaná varianta.

·         FastX: X runtime: zrychlení běhu o 7-9%, zrychlení linkování DLL funkcí, zmenšení modulů linkujících DLL funkce.