Ho iniziato a sviluppare l'applicazione per
BlackBerry di cui vi ho parlato nei post precedenti, cercando di sfruttare tutti i momenti liberi che sono riuscito a trovare. Per l'interfaccia utente mi sono ispirato alle varie applicazioni standard preinstallate sul telefonino (ad esempio Tasks), quindi ho creato uno schermo principale e uno di dettaglio, con una serie di campi di input con cui l'utente può interagire per inserire e modificare le informazioni. Ho cercato di organizzare questo form suddividendo i campi in gruppi logici, racchiusi all'interno di aree delimitate in qualche modo. Il candidato ideale per svolgere questo ruolo è la classe
Border (che si trova nel package
net.rim.device.api.ui.decor), da applicare ad un componente (in questo caso un contenitore) tramite il metodo
setBorder della classe
Field. Dopo aver scritto tutto il codice, ecco la sgradita sorpresa: il programma funziona senza problemi con l'emulatore del modello 9000, ma utilizzando un modello precedente si ottiene un errore bloccante.

Dopo un po' di ricerche, scopro (con una certa incredulità per tale mancanza) che tutto questo funziona solo con il JDE (e di conseguenza con la libreria di runtime) 4.6.0. Suddetti classi e metodi nella versione 4.5.0 non esistono proprio e quindi non si può che verificare l'errore di Class Not Found.
Come ovviare a questa situazione? Eliminando l'uso del
Border tutto va a meraviglia, ma il risultato è abbastanza penoso da un punto di vista estetico. Dopo vari tentativi falliti (ad esempio l'uso di una bitmap come sfondo del contentore), arrivo alla soluzione attuale, che mi soddisfa abbastanza, anche se può essere sicuramente migliorata. Ho creato una sottoclasse di
VerticalFieldManager (package
net.rim.device.api.ui.container), visto che i vari campi devono essere disposti verticalmente, e ho sovrascritto il metodo
paintBackground. In questo metodo ho riempito il rettangolo che rappresenta il contenitore con un colore di sfondo e su questo ho disegnato un rettangolo con i bordi stondati più piccolo, riempito di bianco. Il risultato è visibile in figura:

Per completare il componente bisognerebbe dare un maggior effetto tridimensionale, come di profondità alla parte interna, ma per ora può andare bene anche così. Ho preparato un archivio contenente il codice sorgente del
RoundedVerticalFieldManager (package
it.datafox.bb.ui.container), che può essere scaricato da
qui. Per posizionare correttamente i componenti all'interno del contenitore è necessario utilizzare il metodo
setPadding, come nel seguente esempio:
provaVFM.setPadding(new XYEdges(7, 5, 6, 7));
Alcune novità anche per quanto riguarda il sito Web di
DataFox. Abbiamo infatti creato tante sottosezioni relative ai moduli di
Desmo Finanza e di
Desmo Monitor Investimenti. Quindi funzionalità importanti come il
Controllo Limiti Normativi, il
Registro Ordini, il
Calcolo dei Rendimenti, la
Performance Contribution e la
Performance Attribution hanno finalmente lo spazio e l'approfondimento che meritano.
Nessun commento:
Posta un commento