• Non ci sono risultati.

La classe EventoNuovoSitoMabon

4.1 Organizzazione dei le e struttura gerarchica

5.2.2 L'oggetto sito Mabon

5.2.3.3 La classe EventoNuovoSitoMabon

Il costruttore della classe riceve un riferimento all'istanza della classe SitoMabon appena creata.

5.2.4 L'oggetto scheda

5.2.4.1 Generale

Le schede sono il cuore dell'applicazione Mabon, la cui natura è appunto quella di essere un software di catalogazione.

Un'oggetto scheda non rappresenta una scheda intesa come documento u- ciale nel gergo storicoartistico, ma l'insieme dei dati che descrivono l'oggetto a cui la scheda si riferisce; la validità giuridica dei dati in esso contenuti, come si vedrà, viene espresso dal valore di un apposito attributo modicabile solo da un validatore.

Una rappresentazione delle relazioni tra l'interfaccia e la implementazione si trova in Figura 5.5.

5.2.4.2 La classe IScheda

Come già illustrato in 3.1.2 nella pagina 28, una scheda è un oggetto che consta di quattro categorie di campi deniti nell'interfaccia IScheda come in gura precedente.

necessari al funzionamento del programma ma non propriamente facenti parte della categorizzazione storicoartistica:

ˆ lo stato indica se una scheda è ancora una bozza, cioè non approvata da un validatore, o un documento eettivo;

ˆ il titolo è una rappresentazione compatta della scheda nel formato stato  autore  soggetto che viene utilizzata ogni qualvolta sia necessaria una rappresentazione breve dell'oggetto, ad esempio in un elenco.

I tre campi etichette, fondo_archivistico e supporto di tipo Choice utilizzano rispettivamente i vocabolari Etichette, Fondi e Supporti per ore all'u- tente le possibili opzioni da scegliere per compilare il campo. Tali vocabolari vengono creati da Zope tramite opportuni generatori specicati nel registro dei componenti.

IScheda è anche l'interfaccia primaria  cioè caratterizzante  un oggetto che la implementi.

5.2.4.3 La classe Scheda

La classe Scheda fornisce il componente di contenuto per l'oggetto scheda e implementa quanto specicato nell'interfaccia IScheda.

La derivazione da Persistent consente un'interazione con lo ZODB automa- tica e trasparente per il programmatore: la creazione, cancellazione e modica delle istanze di Scheda saranno automaticamente inoltrate al database senza che il programmatore debba aggiungere ulteriori linee di codice, sebbene sia possibile modicare questo comportamento in caso di necessità.

Vengono aggiunti due nuovi attributi a quelli forniti dall'interfaccia: __name__ e __parent__. Tali attributi sono necessari per le relazioni di contenimento tra

l'istanza dell'oggetto Scheda e l'istanza dell'oggetto ContenitoreScheda ed in ge- nerale per poter scorrere la catena delle relazioni di contenimento in entrambi i sensi come più dettagliatamente illustrato in 5.1.1.1 nella pagina 45.

L'interfaccia caratterizzante l'oggetto Scheda è come anticipato IScheda, ma ne sono fornite anche altre: IAttributeAnnotatable, IZopeDublinCoreAnnotatable e IPersistent. Le due interfacce I*Annotatable vengono sfruttate tramite degli adattatori presenti nelle librerie di Zope per registare informazioni non associabili ai campi propri di una scheda, ma che sono tuttavia utili, quali commenti dello schedatore e le date di creazione e modica dell'istanza.

5.2.5 L'oggetto utente

5.2.5.1 Generale

L'oggetto utente contiene tutte le informazioni caratterizzanti un utente del sistema: anagraca, informazioni prettamente informatiche, ruolo e i parametri per un'identicazione univoca e sicura da parte del programma.

Una rappresentazione delle relazioni tra l'interfaccia e la implementazione si trova in Figura 5.6.

5.2.5.2 La classe IUtente

La sezione concernente l'anagraca dell'utente è costituita dagli attributi nome e cognome, quella informatica da email, quella identicativa da login e password e inne il ruolo ricoperto dall'omonimo campo.

L'Interfaccia IUtente presenta anche l'ulteriore campo titolo necessario al funzionamento del programma:

ˆ il titolo è una rappresentazione compatta dell'utente nel formato login  cognome, nome che viene utilizzata ogni qualvolta sia necessaria una rappresentazione breve dell'oggetto, ad esempio in un elenco.

Figura 5.6: Diagramma della classe Utente

Il campo ruolo di tipo Choice utilizza il vocabolario Ruoli per mostrare all'Am- ministratore le possibili scelte tra le quali selezionare il ruolo da far ricoprire al- l'utente. Tale vocabolario viene creato da Zope tramite un opportuno generatore specicato nel registro dei componenti.

IUtente è anche l'interfaccia primaria  cioè caratterizzante  un oggetto che la implementi.

5.2.5.3 La classe Utente

La classe Utente fornisce il componente di contenuto per l'oggetto utente e implementa quanto specicato nell'interfaccia IUtente.

La derivazione da Persistent consente un'interazione con lo ZODB automa- tica e trasparente per il programmatore: la creazione, cancellazione e modica delle istanze di Utente saranno automaticamente inoltrate al database senza che

il programmatore debba aggiungere ulteriori linee di codice, sebbene sia possibile modicare questo comportamento in caso di necessità.

Vengono aggiunti due nuovi attributi a quelli forniti dall'interfaccia: __name__ e __parent__. Tali attributi sono necessari per le relazioni di contenimento tra l'istanza dell'oggetto Utente e l'istanza dell'oggetto ContenitoreScheda ed in ge- nerale per poter scorrere la catena delle relazioni di contenimento in entrambi i sensi come più dettagliatamente illustrato in 5.1.1.1 nella pagina 45.

L'interfaccia caratterizzante l'oggetto utente è come anticipato IUtente, ma ne sono fornite anche altre: IAttributeAnnotatable, IZopeDublinCoreAnnotatable e IPersistent. Le due interfacce I*Annotatable vengono sfruttate tramite degli adattatori presenti nelle librerie di Zope per registare informazioni non associabili ai campi propri di un utente, ma che sono tuttavia utili, quali commenti dello amministratore e le date di creazione e modica dell'istanza ovvero dell'account utente.

Altri componenti

6.1 Gestori di eventi, adattatori, viste, visualizza-

tori e generatori

6.1.1 Generale

L'interazione dei vari componenti principali e secondari del programma fra essi stessi e con quelli oerti da Zope è svolta da vari adattatori e gestori di eventi. In alcuni sono necessarie istanze di oggetti che vengono create da appositi generatori.

Documenti correlati