|
La libreria di Java è composta, al momento in cui scrivo (Waba 1.0 beta7)
da sole 37 classi suddivise in 6 package. Molte classi sono modellate su
omonime classi del JDK e nella maggior parte dei casi rappresentano sostanzialmente
un subset dei loro "fratelli maggiori". Come si può intuire la dotazione
è ridotta allo stretto necessario. Tanto per fare un esempio abbiamo un
waba.util.Vector ma non una Hashtable. I package forniti con Waba sono:
waba.fx
waba.ui
waba.io
waba.lang
waba.sys
waba.util
Il package waba.fx fornisce il framework grafico di base, ovvero le classi
necessarie per disegnare testo e grafica: contesto grafico (Graphics),
font (Font e FontMetrics), rettangoli (Rect) e immagini (Image). Questo
framework è usato per costruire i componenti di interfaccia utente, disponibili
nel package waba.ui. La dotazione di compontenti GUI non è eccelsa ma
nemmeno poverissima: abbiamo i consueti bottoni, label, radio button e checkbox,
i campi di testo e le tab bar utilizzate per costruire dialoghi simili
a quelli tabbed di Windows. Oserei dire che questi ultimi sono quasi essenziali
date le limitazioni del display. Sempre per quanto riguarda l'interfaccia,
in Java AWT abbiamo Component e Container, mentre in Waba abbiamo Control
e Container che svolgono le stesse funzioni. È importante notare che i
Container come in Java possono contenere altri componenti di interfaccia,
ma a differenza di Java, in Waba non sono supportati i LayoutManager. Quando
un Control viene inserito in un container si devono anche specificare le
coordinate assolute del componente. Un altro aspetto importante è l'input-output
gestito dal package waba.io. Sui palmari l'unità di I/O generalmente non
è il file ma il database, ovvero una collezione di record ad accesso diretto:
infatti i palmari hanno solo RAM e quindi non ha senso imporre la lettura
sequenziale di un file quando è possibile senza problemi l'accesso diretto.
Quindi si usano principalmente i database, che in Waba sono chiamati Catalog.
Per la verità un Catalog assomiglia abbastanza ad un file di testo, dove
i record sono simili a linee di testo (ovvero sequenze di byte a lunghezza
variabile) con i metodi che consentono di andare avanti e indietro tra
questi record, e di leggerli o scriverli. Nulla di più. Waba ha anche una
classe File che rappresenta un file, ma non è utilizzabile sul PalmOS (che
non ha niente del genere) ma solo con Windows CE. Altre classi di I/O supportate
sono rappresentate da SerialPort, che consente l'accesso alla porta seriale
(presente in tutti i palmari), e da Socket che consente di stabilire connessioni
di rete quando il palmare è collegato ad Internet o ad una Intranet TCP/IP.
Oltre a quanto detto finora rimane poco altro. In waba.util abbiamo solo
il Vector di cui abbiamo già detto. In waba.lang abbiamo l'Object che ha
il solo metodo toString(), e due classi per gestire stringhe: la String
e la StringBuffer. Infine in waba.sys abbiamo una classe Convert per le
conversioni di tipi, la classe Time per gestire data e ora, ed infine la
classe Vm che raccoglie svariati metodi vari come copyArray() o getPlatform()
che possono essere considerati "di sistema".
|