Un semplice Add-on

Indice

 

Esempio di un Add-on

Questo esempio di Add-on è derivato da Stampa semiautomatica di file PDF, di cui eredita parte del codice.

Le due estensioni di OOo possono convivere.

La differenza principale è nel fatto che un Add-on oltre al codice vero e proprio fornisce anche una interfaccia utente (UI) cioè menu, barre degli strumenti, guida in linea, ecc...

Possono anche contenere modelli di documenti (cioè non avere codice) per una semplice distribuzione dei modelli.

L'utente può anche richiedere un aggiornamento dello stesso Add-on: la nuova versione viene scaricata da OOo e, se non ci sono problemi di dipendenze (ad esempio la versione di OOo minima richiesta non corrisponde), viene installata.

Una versione più completa di questo Add-on è disponibile qui: http://www.acca-esse.it/it/ext/index.html, contiene menu, barra degli strumenti e fornisce alcune funzionalità aggiuntive.

Può rappresentare il passo successivo per chi vuole approfondire l'argomento.

Scopo

Questa estensione è derivata da Stampa semiautomatica di file PDF, esegue quindi le stesse funzioni.

Si rimanda a Stampa semiautomatica di file PDF per i dettagli.

In questo caso sono stati aggiunti un paio di menu e una barra degli strumenti.

I due menu sono ovviamente ridondanti, uno solo di solito è sufficiente, ma lo scopo è quello di dare una dimostrazione delle possibilità offerte dalle estensioni.

Il codice basic contiene alcune funzioni in più per la gestione dei menu e della barra degli strumenti (toolbar).

ATTENZIONE: se il file PDF esiste, viene riscritto senza alcuna altra informazione da parte della macro.

ATTENZIONE: i documenti PDF emessi vengono protetti da password, generata in modo PSEUDO casuale.

Come si installa

Per prima cosa scaricate il file estensione di OpenOffice.org (oxt, usate il tasto destro del mouse in Firefox per richiedere lo scaricamento) EsportaPDF_SLP.oxt (info) lungo 101 kbyte, scaricatelo in una cartella di vostra scelta.

La versione di OOo minima richiesta è la 2.3.x. Alcune proprietà del filtro di esportazione PDF richiamate dalle funzioni basic saranno disponibili solo dalla versione 2.4. Non dovrebbero esserci problemi al loro utilizzo con la serie 2.3.x.

Se avete già installato estensioni, andate al capitolo successivo, altrimenti per l'installazione in OpenOffice.org procedete in questo modo:

  1. dal menu di OpenOffice.org selezionate Strumenti e poi Gestione estensioni....
  2. Selezionate Estensioni personali e poi premete il pulsante Aggiungi.
  3. Cercate e selezionate il file che avete scaricato al punto 1, apritelo con Apri.
  4. Verrà presentata la licenza dell'estensione, che in questo caso è la LGPL 2.1.
  5. Scorrete il testo fino alla fine, il pulsante Accetto si attiva, confermatelo.
  6. La nuova estensione, EsportaPDF_SLIP.oxt, è installata. Se la selezionate e spostate il cursore del mouse su di essa, apparirà una breve descrizione.
  7. Per poter vedere i nuovi menu e la nuova barra degli strumenti, chiudete OOo, anche Quickstart se attivo, riavviate OOo.

Se provate ad espandere l'albero sotto Estensioni personali, dovreste vedere:

  • Estensioni personali
    • EsportaPDF_SLIP.oxt
      • una serie di file componenti l'estensione

Ora siete pronti per utilizzarla, l'estensione è installata nelle vostre macro personali, con un documento aperto (per es. un documento di Writer) dovreste trovare una nuova voce di menu Esporta PDF che presenterà un sottomenu e quattro voci di menu sotto di esso.

E' anche presente un nuovo sottomenu Add-on nel menu Strumenti.

La nuova barra degli strumenti ha il nome Strumento Esporta PDF e potete attivarla/disattivarla con i consueti comandi (Visualizza > Barre degli strumenti )

I menu e la barra degli strumenti non sono presenti se nessun documento è aperto.

 

Il progetto

Potete scaricare il progetto EsportaPDF_SLP.oxt.prj-0.1.40.tar.bz2 (info) lungo 150 kbyte, scaricatelo in una cartella di vostra scelta.

Contiene tutti i file necessari per rigenerare l'estensione, sono descritti di seguito.

Struttura

Il progetto viene espanso in un direttorio di nome EsportaPDF_SLP.oxt.prj-0.1.40 e comprende una serie di file e directory, descritti di seguito

I direttori

EsportaPDF_SLP.oxt.prj-0.1.40/it_linux_pinerolo_EsportaPDF Contiene le istruzioni e i dialoghi basic
EsportaPDF_SLP.oxt.prj-0.1.40/registration contiene le licenze
EsportaPDF_SLP.oxt.prj-0.1.40/Office/ contiene i dati di configurazione per la barra degli strumenti.
EsportaPDF_SLP.oxt.prj-0.1.40/META-INF/ contiene l'indice degli elementi componenti l'estensione.
EsportaPDF_SLP.oxt.prj-0.1.40/icons/ Contiene le icone usate dall'estensione vengono referenziate da

 

I file

Nelle tabelle seguenti i file vengono descritti brevemente.

EsportaPDF_SLP.oxt copia dell'estensione
project_files.inc file incluso nei due script bash seguenti per generare l'estensione
pack-project.sh script bash per generare l'archivio del progetto
create-extension.sh script bash per generare l'estensione
update.sgml file utilizzato dallo script create-extension.sh per generare il file EsportaPDF_SLP.update.xml necessario per l'aggiornamento automatico
description.sgml file utilizzato dallo script create-extension.sh per generare il file description.xml contenuto dall'estensione, vedere la Development Guide dell'API di OOo a 5.5 description.xml per dettagli.
COPYING copia della licenza
META-INF/manifest.xml contiene l'elenco dei file contenuti nell'estensione, vedere la Development Guide dell'API di OOo a

5.2 File Format per dettagli.

Addons.xcu descrive i menu e le toolbar da aggiungere, vedere la Develeopment Guide dell'API di OOo a Configuration per dettagli sul file.
registration/lgpl-en.txt

registration/lgpl-it.txt

registration/lgpl-2.1.txt

registration/lgpl-fr.txt

Questi quattro file contengono il testo della licenza e sono referenziati da description.xml al momento dell'installazione. Viene scelta la lingua corrispondente all'interfaccia di OOo in quel momento.
pkg-desc/pkg-description.txt contiene una breve descrizione dell'estensione. Apparirà ad estensione installata, quando selezionata dal 'Gestore estensioni'.
Office/UI/MathWindowState.xcu

Office/UI/BaseWindowState.xcu

Office/UI/CalcWindowState.xcu

Office/UI/BasicIDEWindowState.xcu

Office/UI/StartModuleWindowState.xcu

Office/UI/DrawWindowState.xcu

Office/UI/ImpressWindowState.xcu

Office/UI/WriterWindowState.xcu

Questi file contengono la definizione di stato corrente della barra degli strumenti dichiarata in AddOns.xcu. Ne esiste uno per ciascuna applicazione di OOo con in più lo stato dell'interfaccia.

 

Come si modifica

Le funzionalità in basic si modificano usando l'IDE basic di OOo. Al termine delle modifiche:

  1. con i comandi standard di OOo (Strumenti > Macro > Organizza Macro > Macro, pulsante Gestisci poi scheda Library ) si salva la libreria come basic (selezionare 'Esporta > Esporta come libreria BASIC') nel direttorio del progetto.
  2. con un editore di testi standard (vi, emacs) si modifica il file project_files.inc, incrementando la versione,
  3. da una consolle avviate:
./create-extension.sh

per ricreare l'estensione.

 

Aggiornamento automatico

Il file description.xml assieme a EsportaPDF_SLP.update.xml permette di gestire l'aggiornamento automatico dell'estensione.

I valori riportati all'interno dei file sono quelli necessari per un aggiornamento automatico in una Intranet.

Quello che si ottiene se si abilita la riga 85 commentata in create-extension.sh

Dettagli disponibili nella Development Guide dell'API di OOo a 5.9 Online Update of Extensions

 

Prima generazione di una estensione

Uno strumento utile per la generazione di una estensione a partire da una macro basic è il BasicAddonBuilder distribuito come estensione nel sito indicato. Da installare e da usare per generare velocemente un'estensione, completa di menu e barra degli strumenti.

 

Riferimenti

Documentazione nel wiki di OOo:

Extension Development (in inglese).

Estensioni di OpenOffice.org (in italiano).

Alcune estensioni interessanti si trovano qui:

http://www.paolo-mantovani.org

e qui:

OpenOffice.org repository for Extensions

La mailing list sviluppatori in italiano: dev a it punto openoffice punto org

 

Licenza d'uso

La licenza è la LGPL 2.1.