• Non ci sono risultati.

6 INTERAZIONE CON DOCUMENTI DINAMICI

6.3 Gestori di eventi

Un gestore di evento è un programma Perl in grado di operare in maniera completamente indipendente. Il suo scopo è quello di creare una visualizzazione grafica di una certa mossa scacchistica, utilizzando una normale sessione di lavoro in Microsoft Word. L’evento da gestire è la

scelta, da parte dell’utente, di visualizzare una mossa ben precisa, individuata in un apposito menù che riporta tutte le mosse disponibli. Vediamo, nello specifico, cosa effettivamente un gestore di evento fa:

1. Utilizzando la libreria PGN_Parser.pm acquisisce ed analizza il file PGN contenente la partita di scacchi. In particolare, il gioco viene sviluppato fino alla mossa a cui l’evento è legato.

2. Costruisce la pagina HTML con la rappresentazione grafica della partita fino al punto sviluppato in 1. La struttura di ogni pagina riporta un’intestazione contenente tutti i dati della partita, un diagramma scacchistico ed un menù, ordinato per turni di gioco, con riferimenti a tutte le mosse. Ogni voce del menù, quindi, è un collegamento al gestore di evento relativo alla mossa descritta dalla voce stessa, una struttura del tutto simile a quella vista in figura 5.5. La generazione del codice HTML si ottiene tramite la medesima libreria HtmlTools.pm realizzata per la soluzione in MS Reader, nella quale viene utilizzata la fonte scacchistica “Alpha.ttf” per la rappresentazione dei pezzi sul piano di gioco.

3. Interagisce con Word: se esiste una finestra del word processor già aperta la cattura e ne chiude il contenuto, altrimenti ne apre una nuova.

4. Scrive il listato HTML costruito in 2 in un file temporaneo denominato Source.tmp.

5. Carica il file temporaneo in Word, sfruttando la finestra dell’applicazione aperta in 3.

L’interazione tra il sistema e l’utente può essere schematizzata come riportato in figura 6.3. In essa vediamo che l’utente può scegliere una qualsiasi delle mosse della partita, rappresentate nel file HTML da dei comuni link. Con un semplice click del mouse viene richiamato il gestore di evento corrispondente alla mossa selezionata, il quale chiude l’attuale sessione di “Source.tmp”, aggiorna il suddetto file e lo riapre nella medesima finestra di Word. In altre parole Word viene utilizzato come un browser web, dove tutti i documenti vengono aperti e consultati in

Figura 6.3: schema di interazione tra l’utente ed il sistema di generazione dei documenti elettronici in ambiente Word.

6.4 Osservazioni

6.4.1 Microsoft Word vs Microsoft Reader

Si può notare un’analogia tra il sistema sviluppato in ambiente Word e quello sviluppato per MS Reader: in entrambi i casi viene prodotto un documento per ogni mossa scacchistica che compare nel file PGN (pagine HTML per MS Reader e gestori di eventi per Word), ma mentre in ambiente MS Reader viene creata una pagina fisica per ogni mossa, in ambiente Word la pagina fisica è sempre e solo una. I gestori di eventi sono indubbiamente più leggeri, in termini di allocazione di memoria, di un documento HTML completo e consentono all’utente di analizzare solo le informazioni che più lo interessano, in quanto esse non esistono fisicamente fintantoché non è l’utente stesso a richiederle.

Il paragone fatto con la realizzazione per MS Reader può essere esteso a qualsiasi sistema software in grado di produrre solo documenti statici: basti pensare alla miriade di pubblicazioni scacchistiche in formato RTF reperibili in rete e renderizzabili anche in MS Word.

In definitiva, questa soluzione presenta un alto livello di dinamicità, senza soffrire di particolari tempi di ritardo dovuti alle frequenti interazioni col modulo di conversione.

6.4.2 Considerazioni tecniche

Il sistema realizzato in ambiente Word è da considerarsi più un esperimento, una dimostrazione di ciò che è possibile fare, piuttosto che una soluzione definitiva al problema della generazione dinamica di

documenti interattivi. Questo perché è proprio la natura stessa del word processor a porre dei limiti di realizzazione:

• Il sistema di sicurezza integrato in Word chiede una conferma ogni qualvolta si tenti di aprire un file esterno al documento. Questo significa dare una conferma manuale ogni volta che si attiva un gestore di evento.

• Avere n gestori per n mosse scacchistiche può creare situazioni difficili da gestire, specialmente per quanto riguarda la divulgazione dei documenti. Era stata affrontata l’idea di creare un unico gestore generico, in grado di visualizzare e gestire qualsiasi file PGN, ma l’impossibilità di effettuare passaggio di parametri dall’ambiente Word a programmi esterni ha posto un pesante vincolo di progettazione (il passaggio di parametri a programmi locali è impossibile, mentre in rete attraverso collegamenti ipertestuali è possibile).

L’aspetto interessante dell’esperimento sta nel poter utilizzare le funzionalità del word processor sui contenuti generati, potendo così editare, salvare in formato diverso o quant’altro le pagine HTML visualizzate.

La gestione di un oggetto Windows come l’applicativo Word, attraverso un linguaggio tipicamente non ad oggetti come Perl, è stata possibile attraverso la libreria Win32-OLE [MSW]. Tale libreria si comporta come un vero e proprio middleware, fornendo funzioni che si interfacciano alle primitive Visual Basic per la gestione degli oggetti (anche nella forma assomigliano a funzioni Visual Basic).

Tutto il codice sviluppato per il sistema di creazione dinamica di documenti interattivi in ambiente Microsoft Word è visionabile all’appendice C.

7 EDITING DI DOCUMENTI INTERATTIVI

Documenti correlati