Luglio 31, 2007

Laszlo 4 dummies

Archiviato in: coding, WEB 2.0, SOA, Open Source — virgilio @ 10:07 pm

Rich client applications. Supponiamo che sappiate cosa sono ed entriamo nel vivo di come realizzare un prototipo con tecnologia Flash.

LogoLaszloAl momento, fra le tante cose disponibili, si trovano Flex,un tool spettacolare (non del tutto free) della Adobe e questo (free in alcune versioni/condizioni) che è abbastanza facile da imparare e utilizzeremo in questo esempio.

Obiettivo: realizzare un menu che somigli al DirectoryIndex, ovvero che dinamicamente mostri un link per ogni directory in un certo percorso del server. E’ utile? Bè, proprio per la sua dinamicità permette di essere utilizzato come componente in applicazioni più evolute. E poi permette di dare un tocco grafico che nessuno immagina dietro le quinte il banale comando “ls” :)

Iniziamo dall’architettura:

Avremo una pagina index.html che caricherà il file swf prodotto con Laszlo. Il componente flash caricherà una lista di directory presa da un flusso xml. Questo flusso, generato a sua volta da una pagina php (esempio di interrogazione di un servizio HTTP), ci permette di arricchire il DirectoryIndex con dei commenti e delle logiche personalizzate. Esiste infine un file xml dove vendono scritti i commenti da usare per i link e che rappresenta un datasource.
Ultima nota: la pagina php che espone il servizio “elencaApplicazioni” è invocabile anche direttamente (infatti index.html contiene un link diretto nel caso il browser non supporti flash) per far vedere la logica di base per esporre un servizio sia in html-plain che Ajax-like.

Un po’ di disegni:
schemaLaszlo

Alcuni snippet di codice:

index.lzx

dataset name=”mydata” type=”http” request=”true” xsrc=”elencaApplicazioni.php?format=xml” mce_src=”elencaApplicazioni.php?format=xml”
per puntare ad un datasource

class name=”applicazione” height=”85″ bgcolor=”0xD6D6E7″ width=”100%”
così si creano gli oggetti grafici, una gerarchia ad oggetti tipo Swing, per avere un pannello che raccoglie gli n links

basebutton resource=”tab_top_mid” clickable=”true” stretches=”both”
…method event=”onclick”

e così si specializza il comportamento ad esempio di un bottone con i simpatici effetti di movimento tipici di Flash

image resource=”freccia” onclick=”LzBrowser.loadURL(this.parent.parent.titolo.nomeApp.getText())”
interagiamo con il browser per guidare la navigazione

view datapath=”mydata:/applicazioni” x=”2″ y=”40″ clip=”true”
iterazione su tutto il datasource per costruire la lista dei bottoni, ciascuno è un’istanza della classe BaseButton dichiarata prima

elencaApplicazioni.php

$contents = fread($handle, filesize($filename));
si recupera il file xml di dati (o l’output di ls o query su db)

$mode = $_GET[’format’];
if ($mode==’xml’) {
header (”content-type: text/xml”);
echo $contents;

per capire se bisogna rispondere in html o xml

else {
xml_parse($xml_parser, $contents, true);
foreach ($lista as $param) {
echo …
creazione pagina html plain

Risultato finale:

risultatoFinale
Da qui in avanti…
ma lo sapete che Laszlo ha una componente server, da installare sul vostro web application layer, che elabora i file lzx a runtime? è quindi immediato editare il sorgente e rigenerare il componente flash. Anzi, in alcuni scenari non ci si preoccupa nemmeno di fare il packaging finale del file swf ma si lasciano direttamente in link ai file lzx…

e sapete che lo stesso file lzx invece di produrre un oggetto flash può, dalla versione 4, produrre del dhtml? Date un occhio a our-first-iphone-app
alla prossima!

Nessun Commento »

Non c’è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URI

Lascia un tuo commento