giovedì 9 ottobre 2008

Nuova versione del contenitore con bordi per BlackBerry

Iniziando a lavorare seriamente con il RoundedVerticalFieldManager (il mio contenitore con bordi per BlackBerry), ho scoperto subito un comportamento non proprio corretto. Ho inserito nel contenitore varie tipologie di componenti (campi di input e bottoni) e il risultato è stato un disastro:
Spostandosi in alto e in basso con il cursore e inserendo del testo, tutto lo sfondo viene come "mangiato" e l'effetto finale non è proprio quello desiderato. Ho dovuto introdurre diversi controlli per gestire queste situazioni (e non penso di averle ancora individuate tutte) e per fare in modo che lo sfondo venga salvaguardato durante l'interazione con i componenti in primo piano. Alla fine il risultato è decisamente più accettabile:
Ho anche dato una pulitina al codice, togliendo di mezzo un po' di costanti che erano rimaste in giro, e ho aggiornato l'archivio presente sul server Web di DataFox e potete quindi continuare a scaricarlo cliccando qui.
Adesso spero di potermi dedicare allo sviluppo dell'applicazione vera e propria! A forza di sviluppare software usando componenti già pronti ci si dimentica di quanto sia difficile farseli da sé.....

mercoledì 8 ottobre 2008

Estensioni per Joomla! 1.5

Stiamo portando avanti con un gruppo musicale un progetto molto interessante, il cui scopo è la realizzazione di un sito Web che faccia conoscere a tutti il loro progetto artistico e che possa rappresentare un punto di aggregazione per altri gruppi o singoli con le stesse passioni e aspirazioni. Non voglio anticipare altro, visto che siamo a buon punto e spero di poter annunciare a breve l'inaugurazione del sito proprio da questo blog. Poiché questo sistema deve permettere sia di inserire e gestire contenuti di varia natura (testi, musiche, video, ecc.) che di mettere in contatto persone lontane fisicamente ma vicine spiritualmente, ho scelto di usare come piattaforma di sviluppo Joomla! 1.5, opportunamente arricchito con componenti, moduli, temi, ecc..
Con questo post inizio una serie di interventi che hanno come obiettivo l'esame delle estensioni che ho deciso di utilizzare in questo progetto. Non voglio confrontare estensioni simili e decretare un vincitore, semplicemente elencare le estensioni usate e indicare pregi ed eventuali difetti riscontrati. Poiché il budget disponibile è praticamente nullo, tutte le estensioni (individuate grazie a Joomla Extensions Directory) sono gratuite.
  • EventList - è un componente (corredato da alcuni moduli aggiuntivi) che permette di gestire eventi che si svolgono nel corso del tempo. E' possibile gestire anche le sedi associate a questi eventi. Si possono utilizzare sia l'interfaccia di amministrazione che l'interfaccia pubblica per inserire e modificare i dati. Gli eventi vengono organizzati in categorie e queste ultime possono essere utilizzate come criterio di ricerca o di visualizzazione. Ritengo che questa estensione sia molto valida, l'unico difetto che ho trovato riguarda alcune imprecisioni della traduzione in italiano, che ho dovuto sistemare a mano.
  • JoomlaPack - è un componente che consente di eseguire backup completi del sito Joomla! su cui si sta lavorando. Vengono salvati sia i dati presenti sul DB che il contenuto del file system. In tal modo è possibile eseguire l'operazione di Restore anche se il sito è andato completamente perduto. Trovo che questa estensione sia molto valida e che permetta di salvaguardare tutto il lavoro fatto. Forse manca un meccanismo per eseguire periodicamente i backup o per farli scattare in conseguenza di qualche operazione sul sito.
  • AllVideos - è un plugin che permette di arricchire articoli di testo con contenuti multimediali, ad esempio video o audio. Tali contenuti possono essere presenti sul server che ospita Joomla!, oppure possono essere prelevati direttamente da Internet, ad esempio da YouTube. Sono molteplici i formati supportati (flv, swf, mov, mp4, wmv, wma, mp3, 3gp, divx), così come i portali da cui scaricare i contenuti multimediali. Per inserire un video in formato flv all'interno di un articolo è sufficiente scrivere: {flv}nome file{/flv}.
Per oggi mi fermo qui, la prossima volta vi parlerò di altre estensioni utili. Ma prima di salutarvi, un'altra novità direttamente dal sito Web di DataFox. Per ogni corso di formazione previsto per il calendario 2008/2009 è presente una nuova scheda di dettaglio, da cui è possibile scaricare la brochure in PDF. Quindi potete andare a vedere il programma del corso su Joomla!, di quello sulla programmazione Java, di quello sulla programmazione Web, su .NET, su PHP e MySQL, su Grails, e su tutti gli altri.

martedì 7 ottobre 2008

Contenitore con bordi per BlackBerry

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.
Ricerca personalizzata