Il rapporto intercorso tra il linguaggio di Sun e XML è stato da sempre molto stretto: tra le affermazioni a mio giudizio più calzanti vi è quella secondo cui “XML ha dato a Java qualcosa da fare”. Da una parte infatti il codice Java può essere tradotto da e verso XML attraverso Java Architecture for XML Binding (JAXB), piuttosto che dare luogo ad una libreria di tag (taglib) da utilizzare nelle Java Server Pages (JSP); dall’altra molte implementazioni di riferimento (come il parser XT) e in generale applicazioni per XML sono state sviluppate con questo linguaggio di programmazione.
Per quanto riguarda SVG, la fonte resta sempre l’Apache Software Foundation con la classe JSVGCanvas, che consente l’inserimento di un layout SVG all’interno di un programma Java, oltre a una certa interazione con esso: tra breve vedremo una classe Java che utilizzi come sfondo un layout derivato, appositamente per questo scopo, dai precedenti.
E’ opportuno notare come, per la seconda volta nel corso dell’articolo, sono stato in grado di modificare in modo sostanziale il layout originale (ad esempio il titolo e le dimensioni dei singoli elementi grafici) ponendo mano ad un file di testo con un comune editor, senza richiedere l’intervento di un grafico. La sovrapposizione di un design caratteristico alla pura funzionalità di un applicativo è d’altra parte una delle ragioni principali del successo del Web… digressioni a parte, le fasi per realizzare questo sono semplici:
Codice di [ PatataSVG.java ]:
...
// includere la classe JSVGCanvas
import org.apache.batik.swing.JSVGCanvas;
public class PatataSVG extends JApplet {
public void init() {
// un handle per il pannello principale
Container contentPane = getContentPane();
// utilizzo il posizionamento assoluto
contentPane.setLayout(null);
// creare la "tela" SVG
JSVGCanvas canvas = new JSVGCanvas();
try
{
// caricare l'immagine SVG
canvas.setURI( new File( "./interface.svg" ).toURL().toString() );
}
catch (Exception e)
{
System.out.println("File ./interface.svg not found");
}
...
// aggiungere la "tela" SVG al pannello principale
contentPane.add( canvas );
// posizionare lelemento
canvas.setBounds(0, 0, 810, 460);
...
}
...
}
In primo luogo è necessario istanziare l’oggetto in grado di racchiudere elementi SVG esterni all’applicazione:
// creare la "tela" SVG
JSVGCanvas canvas = new JSVGCanvas();
E’ ora possibile accedere ad un generico URL, in rete piuttosto che in locale, presso il quale scaricare il sorgente SVG:
// caricare l'immagine SVG
canvas.setURI( new File( "./interface.svg" ).toURL().toString() );
Tutto il resto del codice riguarda l’integrazione della componente SVG con l’interfaccia, oppure il funzionamento delle altre componenti Swing utilizzate nell’esempio, può quindi essere tralasciato ai fini della comprensione dell’articolo. Per eseguire il codice appena illustrato e necessario aprire in una directory arbitraria l’archivio contenente l’esempio e aggiungere al CLASSPATH, se già non l’avete fatto, la stringa:
[directory di istallazione di Batik]\batik.jar; [directory di istallazione di Batik]\lib\batik-swing.jar
Da linea di comando è possibile ora eseguire la classe opportuna:
[directory dell’archivio]>java PatataSVG

Per quanto visto sin’ora, l’utilizzo più diretto di SVG è quello di formato per la memorizzazione di generici oggetti grafici, da declinare successivamente nel layout del proprio sito, della propria brochure, piuttosto che l’interfaccia del software che si sta progettando. E’ anche possibile utilizzare questo formato per generare in modo automatico contenuti da inserire nelle animazioni in Flash.
Il Document Object Model (DOM) è senza dubbio il paradigma maggiormente conosciuto dagli sviluppatori Web, dal momento che vi si ricorre per realizzare la maggior parte delle funzionalità di DynamicHTML. ECMAScript è il principale linguaggio per accedervi e la sua implementazione in Flash di Macromedia, ActionScript, consente di importare un’immagine SVG traducendola nel formato vettoriale SWF, che si fonda grossomodo sulle stesse primitive grafiche. In genere anche i layout delle interfacce in Flash sono elaborati con Photoshop, e solo in fase di produzione vengono importati o addirittura ricreati nell’ambiente vettoriale fornito da Macromedia.
Actionscript permette invece di ricavare questo formato in modo automatico da un sorgente SVG e raggiungere così una notevole fetta d’utenza, con la diffusione del plugin per Flash nei moderni browser. Un esempio di questo, purtroppo in lingua inglese, si trova presso actionscript-toolbox.com. Un numero ancora maggiore d’informazioni e tutorial sull’argomento si trovano presso il sito Flash Developer dot nl, così come nell’ottimo libro Flash XML StudioLab.
Guida PodcastingUn percorso in 16 lezioni, per entrare nella filosofia del podcast... |
Guida Smil 2.0Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per... |
Guida Web serviceCosa sono, a cosa servono e come si creano servizi Web, i sistemi... |
Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.
Iscriviti alla newsletter