35
OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose". Historique ED Date Auteur Action 01 24/03/2003 TD (Quadrille Ingénierie) Création du document 02 19/04/2003 TD (Quadrille Ingénierie) Prise en compte des remarques UTC 03 13/07/2005 Olivier Gauwin Correction de fautes d'orthographe 1/35

SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL

RésuméCe document explicite la conception du logiciel "Osmose".

Historique

ED Date Auteur Action

01 24/03/2003 TD (QuadrilleIngénierie)

Création du document

02 19/04/2003 TD (QuadrilleIngénierie)

Prise en compte des remarques UTC

03 13/07/2005 OlivierGauwin

Correction de fautes d'orthographe

1/35

Page 2: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Sommaire1.INTRODUCTION.................................................................................................................................................4

2.Architecture de l’application (Vue objet)............................................................................................................5

3.Conception (Vue fichier)......................................................................................................................................6

3.1.Le modèle de données...................................................................................................................................7

3.2.Le document osmose.....................................................................................................................................73.2.1.L’arbre......................................................................................................................................................73.2.2.La présentation.........................................................................................................................................8

3.3.L’application..................................................................................................................................................93.3.1.Composition.............................................................................................................................................93.3.2.Internationalisation...................................................................................................................................9

3.4.L’espace de structuration...........................................................................................................................103.4.1.Principe de fonctionnement...................................................................................................................10

3.5.L’éditeur d’élément.....................................................................................................................................123.5.1.L’éditeur des propriétés d’un élément...................................................................................................123.5.2.L’éditeur générique................................................................................................................................123.5.3.L’éditeur de texte simple........................................................................................................................133.5.4.L’éditeur d’image...................................................................................................................................133.5.5.L’éditeur de sons....................................................................................................................................133.5.6.L’éditeur de vidéo..................................................................................................................................133.5.7.Notifications...........................................................................................................................................13

3.6.Les fichiers Osmose.....................................................................................................................................14

3.7.Partie commune...........................................................................................................................................15

3.8.L’éditeur de transparent.............................................................................................................................16

3.9.La génération automatique de transparent..............................................................................................17

3.10.L’éditeur de thème.....................................................................................................................................17

3.11.L’exportation d’un document...................................................................................................................18

3.12.Le visionnage de transparent...................................................................................................................19

3.13.L’impression de transparent....................................................................................................................21

3.14.La recherche dans une présentation........................................................................................................21

3.15.Le presse papier ........................................................................................................................................22

3.16.L’annuler refaire........................................................................................................................................223.16.1.Principe de fonctionnement.................................................................................................................22

3.17.Le menu......................................................................................................................................................23

3.18.Les boîtes de dialogues..............................................................................................................................24

3.19.Les préférences utilisateur.......................................................................................................................25

3.20.L’image et le dessin...................................................................................................................................273.20.1.Principe de fonctionnement.................................................................................................................27

3.21.Le son .........................................................................................................................................................28

3.22.La vidéo......................................................................................................................................................29

3.23.L’aide..........................................................................................................................................................29

4.Développement....................................................................................................................................................30

4.1.Outils.............................................................................................................................................................30

4.2.Librairies utilisées.......................................................................................................................................304.2.1.JMF.........................................................................................................................................................304.2.2.Lecture des sons MP3............................................................................................................................30

2/35

Page 3: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

5.Annexes................................................................................................................................................................31

5.1.DTD des fichiers Osmose............................................................................................................................31

5.2.DTD des fichiers thèmes.............................................................................................................................33

5.3.DTD des fichiers XML exportés................................................................................................................35

3/35

Page 4: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

1. INTRODUCTION

Ce document explicite la conception du logiciel OSMOSE. Il explique entre autres les pointssuivants :

Découpage de l’application en sous-système.

Modèle des données internes à l’application.

Format des fichiers d’échanges.

4/35

Page 5: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

2. Architecture de l’application (Vue objet)

OSMApplication

OSMSlideEditor

OSMDocumentEditor

OSMSlideViewer

OSMSlidePrinter

OSMSearcher

OSMPreferences

OSMImport

OSMExport

OSMImportTabTxt

OSMExportTabTxt

OSMExportXML

OSMExportHTML

OSMElementEditor

OSMImageElementEditor

OSMTextElementEditor

OSMRichTextElementEditor

OSMVideoElementEditor

OSMTabElementEditor

OSMSoundElementEditor

OSMThemeEditor

OSMInformationsEditor

OSMOptionsEditor

OSMFile

L’application Osmose se découpe en différents modules, chacun permettant de modifier le modèle dedonnées :

Le module OSMDocumentEditor permet d’éditer l’arbre d’une présentation.

Le module OSMElementEditor permet d’éditer les propriétés des éléments de l’arbre. Ilcontient des éditeurs pour chaque type de médias : OSMTextElementEditor,OSMImageElementEditor…

Le module OSMSlideEditor permet d’éditer les transparents de la présentation.

Le module OSMThemeEditor permet d’éditer le thème de la présentation.

Le module OSMSlidePrinter permet d’imprimer la présentation.

Le module OSMSearcher permet d’effectuer des recherches dans la présentation.

Le module OSMInformationsEditor permet d’éditer les informations sur la présentation.

Le module OSMOptionsEditor permet d’éditer les options de la présentation.

Le module OSMImport permet d’effectuer des imports de données.

Le module OSMExport permet d’effectuer des exports de données.

Le module OSMPreferences permet de modifier les préférences de l’application.

Le module OSMFile permet d’effectuer les sauvegardes et les chargements des fichiersOsmose.

5/35

Page 6: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3. Conception (Vue fichier)Le découpage en fichier sources est assez proche de la vue objet. Les sources de l’applicationOsmose se découpent en différents paquets :

clipBoard : gestion du presse papier.

common : fichiers communs entre plusieurs parties.

data : modèle de données.

dialog : boîte de dialogue (options, préférences…).

documenteditor : espace de structuration.

draw : éditeur de dessin.

elementeditor : éditeur d’élément.

export : gestion des exports.

file : gestion des fichiers (sauvegarde).

help : boîte de dialogue « a propos ».

menucommand : commandes du menu.

search : gestion de la recherche dans un document.

slideeditor : édition des transparents.

slideprinter : impression des transparents.

slidesummary : gestion du sommaire.

slideviewer : visualisation d’un transparent.

sound : gestion du son.

themeeditor : éditeur de thème.

undoredo : gestion du « annuler / refaire ».

user : gestion des préférences utilisateur.

video : gestion de la vidéo.

6/35

Page 7: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.1. Le modèle de données

OSMSlideModelOSMSlide

Les OSMElement sontchainables en arbre(DefaultMutableTreeNode)

OSMPresentationInfosOSMPresentationOptions

OSMPresentationTheme

OSMPageModel

OSMTabMedia

OSMVidMedia

OSMSndMedia

OSMImgMedia

OSMRtfMedia

OSMTxtMedia

OSMColor

OSMColorPalet

OSMPresentation

OSMElement

OSMDocument

OSMPage

OSMMedia

3.2. Le document osmoseL’élément de base d’un document osmose est la classe OSMDocument. Cet élément contient uneliste des racines de tous les arbres composant un document. Les racines des arbres sont desOSMElement.

3.2.1. L’arbreL’arbre contient des éléments OSMElement. Chaque OSMElement dérive de la classe JavaDefaultMutableTreeNode qui sont en fait des feuilles d’arbres. Une feuille d’arbre est un objet pouvantavoir n fils de même nature que lui.

3.2.1.1. Les éléments

Chaque élément contient des Médias modélisés par la classe OSMMedia.

3.2.1.2. Les médias

La classe OSMMedia représente un média générique, sans type. Elle s’étend donc en 6 types declasses :

OSMTxtMedia pour les médias textes simples.

OSMRtfMedia pour les médias textes riches.

OSMImgMedia pour les médias images.

OSMSndMedia pour les médias sons.

OSMVidMedia pour les médias vidéo.

7/35

Page 8: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

OSMTabMedia pour les médias tableaux.

3.2.2. La présentationLe document contient la présentation modélisée par la classe OSMPresentation. Une présentationcontient un ensemble de page, modélisé par OSMPage.

1.1.1. Les pages

La classe OSMPage représente une page générique (sans type) de la présentation. Dans la version 1d’Osmose, on utilise des transparents, dérivant de ces pages génériques.

1.1.2. Les transparents

Chaque transparent est modélisé par la classe OSMSlide, dérivant de OSMPage.

Chaque OSMElement pointe sur le transparent OSMSlide associé, lui même pointant vers l’élémentOSMElement.

Chaque transparent contient un ensemble de médias.

1.1.3. Le thème

Un thème est représenté par la classe générique OSMTheme. Ce thème contient un ensemble demodèle représenté par la classe OSMPageModel.

1.1.4. Le thème d’une présentation

A l’instar des pages et des slides, le thème se dérive dans Osmose v1 en unOSMPresentationTheme, celui-ci étant un thème associé à une présentation. Ce thème contient unensemble de modèles représentés par la classe OSMSlideModel, celle-ci dérivant deOSMPageModel.

1.1.5. Le modèle d’un thème

Un modèle de thème contient les informations suivantes :

Format d’affichage du titre (OSMItemFormat).

Format d’affichage du corps (OSMItemFormat).

Format d’affichage du numéro de page (OSMItemFormat).

Format d’affichage des médias texte simple (OSMItemFormat).

Format des puces du corps (OSMItemChips).

Format du fond (OSMItemBackground).

1.1.6. Les informations de la présentation

Ces informations sont modélisées par la classe OSMPresentationInfos.

1.1.7. Les options de la présentation

Ces options sont modélisées par la classe OSMPresentationOptions.

8/35

Page 9: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.3. L’application

3.3.1. CompositionOsmose est une application de type MDI. C’est à dire qu’elle permet à l’utilisateur de travailler enparallèle sur plusieurs documents.

Le cœur de l’application se situe dans le paquet osmose.application. Ce paquet contient les fichierssuivants :

OSMApplication.java : Cœur de l’application.

OSMApplicationFrame.java : Fenêtre principale de l’application.

OSMApplicationMacOsX.java : Cœur de l’application pour MacOsX.

OSMImageFactory.java : Chargement des images.

OSMInitFrame.java : Fenêtre d’initialisation.

OSMMenuWorkAroundUI.java : Correction du bug de disparition des menus.

OSMProperties.java : Gestion des propriétés de l’application.

La classe OSMApplicationFrame est un JFrame qui contient un JDesktopPane. Ce type de panelpermet d’afficher des fenêtres internes. L’application dispose de 3 types de fenêtres internes :

Espace de structuration : une par document ouvert.

Editeur multimédia : une seule pour l’application.

Mise en forme : une seule pour l’application.

La classe OSMInitFrame affiche une image au chargement de l’application.

La classe OSMApplication est le cœur de l’application. C’est elle qui au démarrage créé toutes lesinstances de classes nécessaires.

La classe OSMApplicationMacOsX dérive de la classe OSMApplication. C’est le cœur de l’applicationpour les systèmes MacOsX. Cette classe est sensible aux événements propres à ce système etpermet en particulier d’être notifié quand l’utilisateur appuie sur « Pomme + Q ».

La classe OSMImageFactory charge au démarrage de l’application toutes images qui serontnécessaires. Les images se trouvent dans le répertoire images.

La classe OSMProperties permet de gérer les propriétés de l’application. Elle dérive de la classeProperties de Java. Elle permet de gérer des variables de type entier ou chaîne de caractère. Lefichier de propriétés se trouve dans le fichier config/osmose.properties.

3.3.2. InternationalisationL’application utilise les propriétés d’internationalisation de Java. L’application dispose d’une variablestatique « Localisation » permettant de trouver une chaîne de caractère à tous les niveaux del’application.

L’application est pour l’instant disponible en anglais ou en français. L’utilisateur peut modifier la langueet le pays dans le fichier de propriétés. On peut aisément ajouter une langue en créant un nouveaufichier osmose_Pays_langue.properties. Ce fichier doit se trouver à la racine des classes del’application, dans le jar.

9/35

Page 10: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.4. L’espace de structurationL’espace de structuration concerne la fenêtre permettant à l’utilisateur de dessiner l’arbre de sesidées. Il correspond au paquet java osmose.application.documenteditor. Ce paquet contient lesfichiers suivants :

OSMElementComponent.java : Représente un élément dans l’espace de structuration.

OSMLinkComponent.java : Représente un lien entre deux éléments dans l’espace destructuration.

OSMColorComponent.java : Représente une couleur de la barre des couleurs en bas del’espace de structuration.

OSMTreeEditorColorBar.java : Représente la barre de couleurs en bas de l’espace destructuration.

OSMTreeEditorTrashcan.java : Représente la poubelle dans l’espace de structuration.

OSMTreeEditorNavBar.java : Représente la barre de navigation dans l’espace destructuration.

OSMTreeEditorPanel.java : Représente l’espace de structuration.

OSMTreeEditorFrame.java : Représente la fenêtre de l’espace de structuration.

notification\OSMTreeEditorEvent.java : Événement de notification.

notification\OSMTreeEditorListener.java : Interface d’audition d’événement de l’espace destructuration.

notification\OSMTreeEditorNotifier.java : Permet la notification d’événement.

3.4.1. Principe de fonctionnementUn OSMElementComponent est un composant Swing Java. Ce composant est capable dereprésenter un élément du modèle de données :

Affichage du titre de l’élément.

Affichage d’une icône pour chaque média composant l’élément.

Possibilité de dimensionnement automatique (Taille fixe ou variable).

Sensibilité au simple clic pour sélection.

Sensibilité au « drag » pour déplacer un groupe d’élément.

Le composant OSMLinkComponent est un composant Swing dessinant un trait entre 2 points. Ilpermet de représenter les liaisons entre éléments dans l’espace de structuration.

Le composant OSMColorComponent est un composant Swing capable de représenter une couleur dela barre des couleurs :

Affichage de la couleur en question.

Affichage du nom de la couleur.

Sensibilité au simple clic pour définir la couleur d’un élément.

Sensibilité au double clic pour permettre à l’utilisateur d’éditer les propriétés des couleursdu document.

Le composant OSMTreeEditorColorBar est un composant regroupant 7 OSMColorComponent. Il n’estcapable de rien d’autre.

Le composant OSMTreeEditorTrashcan est un composant Swing transparent représentant l’espaceréservé à la poubelle dans l’espace de structuration. Il est sensible au simple clic pour permettre àl’utilisateur de retrouver les éléments récemment supprimés.

Le composant OSMTreeEditorNavBar est un composant Swing découpé en trois zones permettant àl’utilisateur de se déplacer dans l’espace de structuration :

Tiers gauche : déplacement vers la gauche.

10/35

Page 11: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Tiers centre : recentrage.

Tiers droit : déplacement vers la droite.

Le composant OSMTreeEditorPanel est un JLayeredPanel Java. Il permet de contenir les composantsprécédemment cités. Il est capable des actions suivantes :

Sensibilité au double clic pour créer un élément.

Fonction permettant de déplacer les éléments.

Fonction permettant de lier et séparer les éléments.

Fonction permettant de supprimer des éléments.

Fonction permettant de se déplacer dans l’espace de structuration.

Mise à jour du modèle de données en conséquence.

Affichage d’une image de fond représentant l’espace de structuration pour l’utilisateur.

Quant aux notifications émanant de l’espace de structuration, elles peuvent être de 2 naturesdifférentes :

Événement de sélection d’un élément.

Événement de liaison entre deux éléments.

11/35

Page 12: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.5. L’éditeur d’élémentL’éditeur d’élément concerne la fenêtre « éditeur multimédia » permettant à l’utilisateur les actionssuivantes :

Édition du titre de l’élément.

Association de médias à l’élément.

Édition de l’URL associée à l’élément.

Cet éditeur correspond au paquet java osmose.application.elementeditor. Ce paquet est composé desfichiers suivants :

OSMEditTabPane.java : Panel permettant d’afficher les onglets de l’éditeur.

OSMMediaElementEditorPanel.java : Correspond à un éditeur générique dont dériventtous les éditeurs.

OSMImageElementEditorPanel.java : Correspond à l’éditeur d’image.

OSMSoundElementEditorPanel.java : Correspond à l’éditeur de sons.

OSMTextElementEditorPanel.java : Correspond à l’éditeur de textes simples.

OSMVideoElementEditorPanel.java : Correspond à l’éditeur de vidéo.

OSMElementEditorPanel.java : Correspond au panel principal de l’éditeur multimédia.

OSMElementEditorFrame.java : Correspond à la fenêtre de l’éditeur.

notification\OSMElementEditorEvent.java : Evénement de notification.

notification\OSMElementEditorListener.java : Interface d’audition des événements.

notification\OSMElementEditorNotifier.java : Permet la notification des événements.

OSMMediaFileFilter.java : Filtre pour les sélecteurs de fichier.

3.5.1. L’éditeur des propriétés d’un élémentCet éditeur permet à l’utilisateur d’effectuer les actions suivantes :

Modifier le titre d’un élément.

Modifier l’URL associée à un élément.

Possibilité d’indiquer si le titre de l’élément fait parti du transparent.

Chaque modification dans cet éditeur met à jour le modèle de données en conséquence. Cet éditeurcorrespond à la classe OSMElementEditorPanel.

Cette classe embarque elle-même une instance de OSMEditTabPane.Cette classe contient une instance de chaque éditeur :

OSMImageElementEditorPanel : Permet d’importer ou dedessiner une image.

OSMTextElementEditorPanel : Permet d’importer ou desaisir du texte simple.

OSMSoundElementEditorPanel : Permet d’importer ou desaisir des sons.

OSMVideoElementEditorPanel : Permet d’importer desvidéos.

3.5.2. L’éditeur génériqueL’éditeur générique est représenté par la classe OSMMediaElementEditorPanel. Cet éditeur permetles actions suivantes :

Possibilité de supprimer les médias en cours d’édition.

12/35

OSMElementEditorPanel

OSMEditTabPanel

OSMImageElementEditorPanel

OSMTextElementEditorPanel

OSMSoundElementEditorPanel

OSMVideoElementEditorPanel

Page 13: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Possibilité d’indiquer si le média est présent ou non dans la présentation.

Cet éditeur possède deux états :

VIRGIN_STATE : L’éditeur n’a aucun média en édition et propose donc l’import et/ou lasaisie suivant le type de média.

RUN_STATE : L’éditeur a un média en édition, il affiche donc l’éditeur correspondant.

3.5.3. L’éditeur de texte simpleCet éditeur est représenté par la classe OSMTextElementEditorPanel. Il permet les actions suivantes :

Saisie de texte simple, sans mise en forme autre que la prise en compte des sauts delignes.

Pour cela, ce panel utilise un composant Swing, le JTextArea offrant toutes ces fonctionnalités.

3.5.4. L’éditeur d’imageCet éditeur est représenté par la classe OSMImageElementEditorPanel. Il utilise le paquetosmose.application.draw qui est explicité plus loin dans le document.

3.5.5. L’éditeur de sonsCet éditeur est représenté par la classe OSMSoundElementEditorPanel. Il utilise le paquetosmose.application.sound qui est explicité plus loin dans le document.

3.5.6. L’éditeur de vidéoCet éditeur est représenté par la classe OSMVideoElementEditorPanel. Il utilise le paquetosmose.application.video qui est explicité plus loin dans le document.

3.5.7. NotificationsLes notifications émises par cette partie sont les suivantes :

Ajout d’un média.

Suppression d’un média.

Prise en compte du titre de l’élément dans le transparent.

Prise en compte du média dans le transparent.

13/35

Page 14: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.6. Les fichiers OsmoseCette partie concerne les entrées sorties de type fichiers de l’application. Elle concerne le paquetosmose.application.file. Ce paquet contient les fichiers suivants :

OSMFile.java : Classe générique pour les fichiers.

OSMFileFilter.java : Filtre sur les fichiers « Osmose ».

OSMFileImport.java : Importation de texte simple.

OSMFileLoad.java : Chargement d’une présentation Osmose.

OSMFileSaveAs.java : Sauvegarde d’une présentation Osmose.

OSMThemeFileFilter.java : Filtre sur les fichiers « Thèmes ».

OSMThemeFileLoad.java : Chargement d’un thème Osmose.

OSMThemeFileSave.java : Sauvegarde d’un thème Osmose.

La classe OSMFile permet d’effectuer des opérations générales pour l'enregistrement ou la lecturedes fichiers :

Définition des balises XML

Création des répertoires pour la sauvegarde

Copie des fichiers de média

Vérification de la version du fichier par rapport à la version du logiciel lors de la lectured'un fichier

La OSMFileFilter permet de filtrer les fichiers dont l’extension est « .osmose ».

La classe OSMFileImport permet de générer une présentation Osmose à partir d'un fichier textecorrectement formaté (cf. document de spécifications). Cette classe lit le fichier ligne par ligne et, pourchaque texte trouvé, crée un élément dont le titre correspond au texte. Une ligne vide (sans texte)donne un élément vide (sans titre). Une ligne commençant par une tabulation créera un élément fils.

Les éléments ainsi générés s'ajoutent à la présentation courante (si aucune présentation n'estouverte, les éléments sont mis dans un nouveau document). L'import ne permet de créer que deséléments contenant uniquement un titre (aucun média associé et aucun thème).

La OSMFileSaveAs permet d’effectuer la sauvegarde de la présentation et du thème associé(utilisation de la classe OSMThemeFileSave). Un flag indique s’il s'agit d'une première sauvegarde"enregistrer sous …" ou d'une sauvegarde d'une présentation déjà existante. Les données sontsauvegardées au format XML (cf. la description DTD en annexe). Pour chaque élément, on indique lesmédias associés ; ceux-ci sont copiés dans le sous-répertoire medias. L'arborescence générée sur ledisque est du type : (Exemple avec pour nom du fichier osmose de sauvegarde :presentation.osmose) :

Répertoire "presentation"

fichier "presentation.osmose" : Description du document.

sous-répertoire "theme" contenant le fichier "presentation.theme" et les médiasassociés au thème.

répertoire "medias" contenant tous les fichiers médias (son, image, vidéo, …)

La classe OSMFileLoad permet le chargement d’un fichier Osmose. Elle hérite de OSMFile. La lecturedu fichier permet de recréer l'arborescence de la présentation d'origine avec les médias associés àchaque élément, les informations sur la présentation ainsi que les options. A la fin du chargement, unefenêtre de l'espace de structuration contenant la présentation est affichée.

La classe OSMThemeFileFilter filtre les fichiers contenant le thème d'une présentation, c'est-à-dire lesfichiers d'extension « .theme ».

14/35

Page 15: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

La classe OSMThemeFileLoad hérite de OSMFile. Elle permet le chargement d'un thème soit lors del'édition d'un thème, soit dans l'espace de mise en forme, soit lors du chargement d'une présentation.Elle récupère toutes les informations nécessaires à l'élaboration du thème : police d'écriture desdifférents textes, type de fond, type de puces…

L’arborescence de sauvegarde d’un thème est la suivante (Exemple avec pour nom de fichierpresentation.theme) :

presentation.theme : Le fichier décrivant le thème.

Dans le même répertoire, tous les médias associés au thème.

La classe OSMThemeFileSave hérite de OSMFile. Elle permet la sauvegarde du thème courant soitdepuis la fenêtre d'édition d'un thème, soit lors de la sauvegarde de la présentation. Le thème estsauvegarde au format XML (cf. description DTD en annexe).

3.7. Partie communeCette partie concerne les fichiers du package osmose.application.common. Ce paquet regroupe descomposants utiles à plusieurs autres paquets de l’application. Il contient les fichiers suivants :

OSMBackGroundComponent.java : Composant générique permettant d’afficher un fonduni, dégradé ou provenant d’une image.

OSMComponent.java : Composant générique déplaçable.

OSMEditorPanel.java : Panel générique d’un transparent.

OSMFrame.java : Fenêtre générique.

OSMFullScreenFrame.java : Fenêtre ayant la faculté de pouvoir s’afficher en plein écran.

OSMPropertyChangeEventDispatcher.java : Dispatcher d’événement.

OSMResizableComponent.java : Composant générique redimensionnable.

OSMSlidePanel.java : Panel générique d’affichage d’un transparent.

OSMTxtComponent.java : Composant générique pouvant afficher un texte.

OSMFormLayout.java : Layout générique.

OSMGraphPaperLayout.java : Layout générique.

slidecomponent\OSMSlideBody.java : Partie d’un transparent représentant le corps.

slidecomponent\OSMSlideBodyLine.java : Partie d’un transparent représentant une lignedu corps.

slidecomponent\OSMSlideComponent.java : Composant générique d'un transparent.

slidecomponent\OSMSlideImgComponent.java : Composant d’un transparent capabled’afficher une image.

slidecomponent\OSMSlideMediaImg.java : Composant image d’un transparent.

slidecomponent\OSMSlideMedias.java : Composant gérant l'ensemble des médias d’untransparent.

slidecomponent\OSMSlideMediaTxt.java : Composant texte d’un transparent.

slidecomponent\OSMSlideMediaVid.java : Composant vidéo d’un transparent.

slidecomponent\OSMSlideMediaVideoViewer.java : Composant permettant la visualisationd’une vidéo sans contrôleur.

slidecomponent\OSMSlideNumber.java : Composant numéro de page d’un transparent.

slidecomponent\OSMSlideTitle.java : Composant titre d’un transparent.

slidecomponent\OSMSlideTxtComponent.java : Composant générique d’un transparentcapable d’afficher un texte.

15/35

Page 16: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

slidecomponent\OSMSlideVidComponent.java : Composant générique d’un transparentcapable d’afficher une vidéo.

3.8. L’éditeur de transparentCette partie concerne la fenêtre de mise en forme des transparents. Elle permet à l’utilisateur demodifier à sa guise l'ensemble des transparents composant sa présentation. Elle concerne le paquetosmose.application.slideeditor. Ce paquet contient les fichiers suivants :

OSMSlideEditorPanel.java : Panel permettant de visualiser et modifier les transparents.

OSMSlideEditorNotesSoundPanel.java : Panel son pour les notes orales.

OSMSlideEditorNotesWritePanel.java : Panel pour les notes écrites.

OSMOralNotesPanel.java : Panel pour les notes orales.

OSMSlideEditorNavPanel.java : Panel permettant de se déplacer dans les transparentsde la présentation.

OSMSlideEditorNotesPanel.java : Panel des notes du transparents (écrites + orales).

OSMSlideEditorFrame.java : Fenêtre de mise en forme.

OSMModelSelector.java : Panel de sélection de modèle et de thème.

notification\OSMSlideEditorEvent.java : Événement émanant de l’éditeur de mise enforme.

notification\OSMSlideEditorListener.java : Interface d’audition des événements.

notification\OSMSlideEditorNotifier.java : Permet la notification des événements.

La classe OSMSlideEditorPanel est le cœur de l’éditeur de mise en forme. C’est un Panel swingcapable de contenir tous les composants du transparent :

OSMSlideTitle pour le titre.

OSMSlideBody pour le corps.

OSMSlideNumber pour le numéro de page.

OSMSlideBackground pour le fond du transparent.

OSMSlideMedias pour gérer tous les médias du transparent. Et pour chaque type demédias :

OSMSlideMediaTxt pour les textes.

OSMSlideMediaImg pour les images.

OSMSlideMediaVid pour les vidéos.

Tous ces composants sont autonomes une fois qu’ils connaissent l’élément ou le média du modèle dedonnées dont ils dépendent. Le panel OSMSlideEditorPanel étant sensible à la sélection d’un élémentdans l’espace de structuration, il est aisé de redessiner le transparent correspondant. Ce même panelest aussi sensible à l’inclusion d’un titre ou d’un média dans l’éditeur multimédia, ce qui permet deremettre à jour le transparent en conséquence.

Les composants sont tous repositionnables et redimensionnables. Tous changements effectués surces composants sont reportés dans le modèle de données.

La classe permet OSMSlideEditorNavPanel permet à l’utilisateur de se déplacer dans lestransparents :

Aller au premier transparent.

Aller au transparent précédent.

Aller au transparent suivant.

Aller au dernier transparent.

Aller au transparent sommaire (Bouton grisé si pas de sommaire).

16/35

Page 17: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Aller au transparent titre (Bouton grisé si pas de titre).

La classe OSMSlideEditorNotesPanel permet de saisir des notes pour chaque transparent de laprésentation :

Notes écrites. Toute modification de ces notes est reportée immédiatement dans lemodèle de données.

Notes orales : On utilise pour cela le composant son vu plus loin.

La classe OSMModelSelector permet les actions suivantes :

Chargement d’un nouveau thème pour la présentation courante.

Choix d’un modèle pour le transparent courant.

Le seul événement que peut générer cette partie est le suivant :

Sélection d’un objet dans le transparent.

Ces notifications permettent d’assurer l’articulation « fond forme » de l’application.

3.9. La génération automatique de transparentCette partie concerne la génération automatique des transparents titre, sommaire et titre de partie.

La génération du transparent titre consiste en la création d’un transparent statique uniquement modifiépar les informations sur la présentation et par les labels des préférences utilisateur.

La génération du sommaire et des titres de parties concerne la classe OSMSummaryCreator dupaquet osmose.application.slidesummary.

Cette classe permet de « pointer » les éléments du modèle de données appartenant au sommaire ougénérant un titre de partie.

Pour ce faire, l’application parcourt l’arbre en ne gardant que les branches dont un fils au moins passepar la ligne médiane. L’application compare alors la profondeur de l’élément avec la profondeur voulupar l’utilisateur et marque les éléments concernés.

Le transparent « sommaire » consiste en une liste des titres des éléments titre de partie.

Les transparents « titre » de partie consistent en des transparents ne contenant que le titre del’élément associé.

3.10. L’éditeur de thèmeCette partie concerne l’édition d’un thème. Elle permet à l’utilisateur de choisir des propriétésd’affichages des ces transparents. Elle concerne le paquet osmose.application.themeditor. Ce paquetcontient les fichiers suivants :

OSMThemeBackgroundEditorPanel.java : Édition des propriétés du fond.

OSMThemeChipsEditorPanel.java : Édition des puces.

OSMThemeChooseModelEditorPanel.java : Sélection du modèle en cours d’édition.

OSMThemeContraintsEditorPanel.java : Édition des contraintes.

OSMThemeEditorFrame.java : Fenêtre édition de thème.

OSMThemeEditorPanel.java : Panel général de la fenêtre.

OSMThemeFormatEditorPanel.java : Édition d’un format d’affichage.

OSMThemeMediasEditorPanel.java : Édition des médias.

themecomponent\OSMThemeBackGroundComponent.java : Composant affichant un fondde transparent.

themecomponent\OSMThemeConstraintsComponent.java : Composant pour éditer lescontraintes.

17/35

Page 18: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

themecomponent\OSMThemeMediasConstraintsComponent.java : Édition descontraintes.

La classe OSMThemeFormatEditorPanelpermet d’éditer les propriétés pour le titre, lecorps, le numéro de page et les médias textesimple. Elle permet de modifier les propriétéssuivantes :

Affichage ou non.

Héritage ou non.

Police utilisée.

Taille de la police.

Texte en gras.

Texte en italique.

Texte souligné.

Couleur du texte.

La classe OSMThemeChipsEditorPanel permet de sélectionner les puces à utiliser pour les 5premiers niveaux du corps du transparent. Un choix est fait par défaut mais il est possible d’éditer lecaractère utilisé. Si l’utilisateur saisit un texte de plus d’un caractère de long, seul le premier caractèreest conservé.

La classe OSMThemeMediasEditorPanel permet d’indiquer si les médias seront présents ou non dansle transparent.

La classe OSMThemeBackgroundEditorPanel permet de sélectionner un fond pour le transparent :

Fond uni par sélection d’une couleur.

Fond dégradé par sélection de deux couleurs et du sens du dégradé (Horizontal ouvertical).

Fond image après sélection d’un fichier par l’utilisateur.

La classe OSMThemeConstraintsPanel permet d’éditer les contraintes pour le titre, le corps, lenuméro de page et les médias. Elle se présente comme un éditeur de transparent simplifié. Lescadres définissent en fait les zone de chaque objet pour un modèle donné. Cette classe permet ausside pré visualiser les propriétés du titre, du corps, des numéros de pages, des médias et du fond.

La classe OSMThemeChooseModelEditorPanel permet de sélectionner le modèle sur lequell’utilisateur veut apporter des modifications. Il permet aussi l’ajout ou la suppression d’un modèle duthème.

Dans cette fenêtre, toute modification par l’utilisateur met à jour le modèle de données enconséquence.

3.11. L’exportation d’un documentCette partie concerne l’exportation d’un document Osmose dans un format spécifique. Elle concernele paquet osmose.application.export. Ce paquet ne contient que le fichier effectuant l’export au formatHTML :

OSMExportHTML.java.

L’exportation peut se faire sous 3 formats différents :

Format texte : export de l’arbre de structuration sous forme de texte tabulé.

Format XML : export de l’arbre de structuration sous forme d’arbre XML.

Format HTML : export sous forme de site web.

18/35

OSMThemeEditorPanel

OSMThemeChooseModelEditorPanel

OSMThemeFormatEditorPanel

OSMThemeFormatEditorPanel

OSMThemeFormatEditorPanel

OSMThemeChipsEditorPanel

OSMThemeMediasEditorPanel

OSMThemeBackgroundEditorPanel

OSMThemeContraintsEditorPanel

Page 19: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

L’export au format HTML utilise des fichiers « template » qui se trouve dans le répertoire « config ».Ces fichiers sont des fichiers HTML comportant des balises qui seront remplacés au moment del’exportation effective. Ces fichiers sont les suivants :

end.html : Page de fin.

frame-slide.html : Page générique contenant un cadre.

frame.html : Page générique contenant des cadres.

image.html : Page générique permettant d’afficher une image.

index.html : Page index de départ du site.

slide.html : Page contenant un transparent générique.

video.html : Page générique permettant d’afficher une vidéo.

video.ico : Icône accolée à une vidéo.

wave.html : Page générique permettant de lire un son.

Au moment de l’exportation, l’application crée donc les pages suivantes :

Une page par transparent.

Une page par média image.

Une page par média vidéo.

Une page par média son.

L’application met aussi a jour les liens permettant de naviguer dans le site web.

La difficulté se situe dans la lecture des sons les uns à la suite des autres. Une première solution aconsisté à utiliser une « applet » pour effectuer la lecture de ces sons. En effet, l’utilisation de laclasse OSMSoundPlayListPlayer était facile.

Malheureusement, cette solution entraînait une faille de sécurité inacceptable sous le navigateurinternet Explorer 6 de Microsoft.

La solution suivante est donc utilisée :

L’application crée une page par son à lire.

L’application connaissant la durée du son, elle ajoute une balise dans cette page pourcharger la page correspondante au son suivant au bout de ce temps donné.

La page des sons est affichée dans une « iframe » de la page du transparent.

L’intérêt de cette solution est qu’elle n’utilise que des balises standards HTML et est donc compatibleavec tous les navigateurs de tous les systèmes pour peu qu’ils possèdent les plugin permettant lalecture des sons bien évidemment.

Le site web généré se présente sous la forme suivante sur le disque :

Un fichier index qui débute la présentation.

Un répertoire « XXXX_fichiers » qui contient tous les transparents ainsi que tous lesmédias associés.

3.12. Le visionnage de transparentCette partie permet de visualiser les transparents en plein écran. Elle concerne le paquetosmose.application.slideviewer. Ce paquet contient les fichiers suivants :

OSMSlideViewer.java : Fenêtre de visualisation d’un transparent.

OSMSlideViewerPanel.java : Panel permettant d’afficher un transparent.

19/35

Page 20: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

La classe OSMSlideViewer hérite de la classe commune OSMFullScreenFrame. Elle possède donc lacapacité de s’afficher en plein écran.

La classe OSMSlideViewerPanel est un panel permettant de construire un transparent avec une tailledonnée. Il utilise les mêmes composants que l’éditeur de transparent (sauf pour la vidéo).

Dans ce panel, les composants sont bien sûr non déplaçables et non redimensionnables. Si lecomposant est un composant image ou vidéo, il est sensible au clic de souris pour s’afficher en pleinécran quand l’utilisateur clique dessus.

Ce panel utilise beaucoup de parties de l’application :

Affichage de textes pour le titre, le corps, le numéro de page, les médias texte simple.

Affichage d’images.

Affichage et lecture de vidéo.

Lecture de son.

Il fait donc appel à la partie commune (vu plus haut) mais aussi à la partie vidéo et à la partie son (vuaprès).

Ce panel est aussi sensible aux événements émanant du clavier pour permettre à l’utilisateur de sedéplacer dans les transparents.

Nota : Sur MacOsX, la visualisation plein écran avec Java est impossible pour cause de bugs connuschez Apple.

20/35

Page 21: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.13. L’impression de transparentCette partie concerne l’impression d’un ou plusieurs transparents de la présentation. Elle concerne lepaquet osmose.application.slideprinter. Ce paquet content les fichiers suivants :

OSMSlidePrinter.java : Permet d’imprimer la présentation.

OSMGradientCreator.java : Permet de créer une image PNG représentant le fonddégradé d’un transparent.

La classe OSMSlidePrint utilise l’API java d’impression : java.awt.print. Elle utilise le composantOSMSlideViewerPanel pour pouvoir créer un transparent à la taille adéquat avant impression.

Cette classe implémente les interfaces Printable et Pageable pour permettre à l’API JavaPrinting de :

Connaître le nombre de page dans le document.

Connaître le format d’impression de la page.

Imprimer une page.

La classe OSMGradientCreator a été rendue nécessaire car l’impression d’un composant dégradé nefonctionnait pas sur MacOsX. Par contre, l’impression d’un fond image fonctionnait. L’applicationOsmose transforme donc un fond dégradé en fond image avant impression (sur MacOsXuniquement).

3.14. La recherche dans une présentationCette partie permet d’effectuer des recherches dans la présentation. Elle se retrouve dans le paquetJava osmose.application.search. Ce paquet contient les fichiers suivants :

OSMSearcher.java : Permet d’effectuer la recherche dans un document.

Une instance de cette classe est associée à chaque OSMDocument du modèle de données. Cetteclasse permet les actions suivantes :

Sauvegarde du texte à rechercher.

Respect ou non de la casse.

Obtention du prochain élément satisfaisant la recherche.

Obtention du précédent élément satisfaisant la recherche.

Suivant ou se trouve le texte recherché, cette classe met le focus sur :

Le titre de l’élément.

L’URL associé à l'élément.

Le texte simple associé à l’élément.

L’élément si le texte se trouve dans la note écrite.

L’élément si le texte se trouve dans un nom de fichier.

21/35

Page 22: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.15. Le presse papierCette partie permet à l’utilisateur d’effectuer des couper/copier/coller d’éléments d’un document vers lemême document ou vers un autre document. Elle concerne le paquet osmose.application.clipboard.Ce paquet ne contient qu’un seul fichier :

OSMClipBoard.java : Gestion du presse papier.

Il existe une instance unique ce cette classe pour toute l’application. Ce composant permet d’effectuerles actions suivantes :

Copier les éléments sélectionnés dans un document temporaire (presse papier).

Coller les éléments du presse papier dans un document (qui peut être le même).

La difficulté se situe dans le fait qu’il ne faut pas oublier de copier tous les éléments associés :

Les éléments.

Pour chaque élément, tous les médias associés, sans oublier de copier les fichiers.

Pour chaque élément, le transparent associé.

Pour chaque transparent, les notes écrites et orales si elles existent.

Le collage est plus simple. Il utilise en fait la fonction permettant d’insérer un document dans un autre.

3.16. L’annuler refaireCette partie permet d’annuler ou de refaire la dernière action. Les actions annulables sont lessuivantes :

Coupage d’un élément.

Collage d’un élément.

Suppression d’un élément.

Déplacement d’un objet dans l’éditeur de mise en forme.

Dimensionnement d’un objet dans l’éditeur de mise en forme.

Cette partie correspond au paquet Java osmose.application.undoredo. Ce paquet contient les fichierssuivants :

OSMAction.java : Action générique.

OSMActionCut.java : Action de coupage d’un élément.

OSMActionPaste.java : Action de collage d’un élément.

OSMActionSuppress.java : Action de suppression d’un élément.

OSMActionMove.java : Action de déplacement d’un élément.

OSMActionResize.java : Action de dimensionnement d’un élément.

OSMUndoRedo.java : Permet d’effectuer l’annulation ou de refaire la dernière action.

3.16.1.Principe de fonctionnementLa classe OSMAction représente une action générique. Elle est capable des actions suivantes :

Indiquer si l’action est annulable.

Indiquer si l’action annulée peut être refaite.

Indiquer un label pour annuler l’action.

Indiquer un label pour refaire l’action annulée.

22/35

Page 23: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Annuler l’action.

Refaire l’action annulée.

Dans cette classe générique, les fonctions annuler et refaire sont sans effet. Chaque action dérivedonc de cette classe OSMAction et surcharge ces 6 fonctions.

La classe OSMUndoRedo comporte une instance unique pour l’application. Elle permet les actionssuivantes :

Sauvegarder la dernière action.

Obtenir la dernière action.

Le fonctionnement est alors simple. Par exemple, pour une action de déplacement d’un objet :

Avant le déplacement, sauvegarde de la position dans l’objet.

Après le déplacement, création d’une instance de OSMActionMove.

Sauvegarde de cette instance dans l’instance de OSMUndoReco.

Le menu undo appelle la méthode « undo » de la dernière action, sans même s’occuperde son type.

Cette action est autonome est effectue elle-même l’annulation.

3.17. Le menuCette partie permet à l’utilisateur d’effectuer différentes actions au moyen d’un menu dans la fenêtreprincipale. Elle concerne le paquet osmose.application.menucommand. Ce paquet contient les fichierssuivants :

OSMMenuFileClose.java : Fermeture du fichier courant (Fichier -> Fermer).

OSMMenuFileExit.java : Sortie de l’application (Fichier -> Quitter).

OSMMenuFileExport.java : Export du fichier courant (Fichier -> Exporter).

OSMMenuFileImport.java : Import d’un texte ascii tabulé (Fichier -> Importer).

OSMMenuFileInsert.java : Insertion d’un document dans le document courant (Fichier ->Insérer).

OSMMenuFileLoad.java : Chargement d’un fichier (Fichier -> Ouvrir).

OSMMenuFileNew.java : Création d’un nouveau document vierge (Fichier -> Nouveau).

OSMMenuFilePrint.java : Impression du fichier courant (Fichier -> Imprimer).

OSMMenuFileSave.java : Sauvegarde du fichier courant (Fichier -> Sauver).

OSMMenuFileSaveAs.java : Sauvegarde du fichier courant (Fichier -> Sauver sous).

OSMMenuEditCopy.java : Copie d’un élément (Édition -> Copier).

OSMMenuEditCut.java : Coupage d’un élément (Édition -> Couper).

OSMMenuEditDel.java : Suppression d’un élément (Édition -> Supprimer).

OSMMenuEditPaste.java : Collage d’un élément coupé ou copié (Édition -> Coller).

OSMMenuEditPreferences.java : Édition des préférences de l’application.

OSMMenuEditUndo.java : Annulation de la dernière action (Édition -> Annuler).

OSMMenuEditRedo.java : Refaire la dernière action annulée (Édition -> Refaire).

OSMMenuEditSearch.java : Chercher dans la présentation (Édition -> Rechercher).

OSMMenuEditSearchNext.java : Recherche du suivante (Édition -> Rechercher lesuivant).

OSMMenuEditSearchPrev.java : Recherche du précédent (Édition -> Recherche duprécédent).

OSMMenuEditSelectAll.java : Sélection de tous les éléments (Édition -> Sélectionnertout).

23/35

Page 24: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

OSMMenuEditUnSelectAll.java : Désélection de tous les éléments (Édition ->Désélectionner tout).

OSMMenuEditTheme.java : Édition du thème de la présentation courante (Document ->Thème).

OSMMenuDocumentColors.java : Édition des couleurs du documents (Document ->Couleurs).

OSMMenuDocumentInfo.java : Édition des informations sur le document (Document ->Informations).

OSMMenuDocumentOptions.java : Édition des options sur le document (Document ->Options).

OSMMenuDocumentView.java : Visualisation du document (Document -> Visualiser etDocument -> Visualiser avec les notes orales).

OSMMenuHelpAbout.java : Boite « A propos » de l’application. (Aide -> A propos).

OSMMenuHelpHelp.java : Obtention d’aide sur Osmose (Aide -> Aide).

3.18. Les boîtes de dialoguesCette partie regroupe les boites de dialogues permettant à l’utilisateur de paramétrer son document oul’application. Elle concerne le paquet Java osmose.application.dialog. Ce paquet contient les fichierssuivants :

OSMDialogApplicationPreferences.java : Réglage des préférences utilisateur.

OSMDialogDocInfo.java : Modification des informations sur la présentation.

OSMDialogDocumentColors.java : Modification des couleurs du document.

OSMDialogExport.java : Exportation d’une présentation.

OSMDialogPresentationOption.java : Réglage des options de la présentation.

OSMDialogSearch.java : Recherche dans la présentation.

Toutes les classes du paquet héritent de la classe Swing JDialog. Toutes ces boîtes de dialogue sontsensibles aux événements clavier : fermeture de la boîte lors de l'appui sur "Entrée" ou "Echap".

La classe OSMDialogApplicationPreferences permet à l'utilisateur de choisir ces préférences (médiapar défaut, chemin du browser web, type d'audio, …). Elle utilise le paquet user détaillé plus loin.

La classe OSMDialogDocInfo permet à l’utilisateur d’éditer les informations sur le document courant :

Titre du document.

Nom de l’auteur.

Organisme de l’auteur.

Adresse de l’auteur.

Version du document.

Date du document (Par défaut mis à la date courante de la machine hôte).

Mots-clés.

Résumé.

Objectifs.

Certains champs correspondants à ces informations sont sur plusieurs lignes. Ils utilisent alors leretour à la ligne automatique et sont inclus dans un « scrollpane » pour afficher une barre dedéfilement si le texte est trop long.

La classe OSMDialogDocumentColors permet à l’utilisateur de modifier la palette des couleursapplicables aux éléments :

Edition du nom de chaque couleur.

24/35

Page 25: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Sensibilité aux clics de souris pour permettre à l’utilisateur de modifier la couleur surlaquelle il a cliqué.

La classe OSMDialogExport permet à l’utilisateur de réaliser une exportation de sa présentation(texte, XML ou HTML). Cette classe utilise le paquet export qui est détaillé plus loin.

La classe OSMDialogPresentationOption permet à l’utilisateur de définir les options pour laprésentation courante :

Type de document (Non utilisé dans cette version d’Osmose).

Création d’un transparent de titre.

Création d’un transparent de sommaire.

Réglage de la profondeur du sommaire.

Création de pages de titre de partie.

Réglage de la profondeur des titres de parties.

La classe OSMDialogSearch permet à l'utilisateur de saisir un texte pour effectuer une recherche dansle document :

Saisie du texte à rechercher.

Indication de prise en compte ou non de la casse lors de la recherche.

Le texte cherché et la prise en compte de la casse sont sauvegardés dans les préférences utilisateurspour qu’ils soient réaffichés lors de la prochaine recherche.

3.19. Les préférences utilisateurCette partie concerne l’enregistrement sur disque de tous les paramètres dépendants d’un utilisateur.Elle concerne le paquet osmose.application.user. Ce paquet ne contient qu’un seul fichier :

OSMUser.java : Gestion des préférences utilisateurs.

Le fichier créé se trouve dans le répertoire « Home » de l’utilisateur. S’il n’existe pas, l’applicationprend des valeurs par défaut et ce fichier est créé à la première modification par l’utilisateur.

Ce fichier enregistre les propriétés suivantes :

export.html.snd.included : Inclusion du son dans l’export HTML.

insert.lastpath : Dernier chemin d’insertion.

labels.author : Label pour auteur.

save.lastpath : Dernier chemin de sauvegarde.

export.format.pdf : Export au format PDF.

export.html.not.included : Inclusions notes dans l’export HTML.

labels.resume : Label pour résumé.

Browser : Chemin du browser web.

audio.channels : Nombre de canaux audio.

export.format.xml : Export au format XML.

export.html.frame.included : Inclusions de frame dans l’export HTML.

theme.lastpath : Dernier chemin pour les thèmes.

import.media.lastpath : Dernier chemin pour les médias.

search.text : Dernier texte recherché.

node.link.create.distance : Distance de création d’un lien.

load.lastpath : Dernier chemin de chargement.

export.format.html : Export au format HTML.

25/35

Page 26: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

theme.image.lastpath : Dernier chemin image pour les thèmes.

export.file : Nom du fichier d’export.

export.html.vid.included : Inclusion des vidéos dans l’export HTML.

export.pdf.url.included : Exploitation des URLs dans les documents PDF.

media.default : Média par défaut.

audio.samplesize : Taille en bits des échantillons audio.

node.link.delete.distance : Distance de rupture de lien.

export.txt.media.included : Inclusion des médias textes dans l’export HTML.

labels.summary : Label pour sommaire.

elements.size : Taille des éléments.

labels.version : Label pour version.

search.case : Respect de la casse dans la recherche.

labels.keywords : Label pour mots clès.

import.lastpath : Dernier chemin d’import.

export.format.rtf : Export au format RTF.

export.html.com.included : Inclusion des commentaires dans l’export HTML.

labels.purpose : Label pour objectifs.

theme.lasteditorpath : Dernier chemin de l’éditeur de thème.

export.html.img.included : Inclusion des images dans l’export HTML.

export.format.txt : Export au format texte.

audio.samplerate : Fréquence d’échantillonnage audio.

elements.maxsize : Taille maxi des éléments.

26/35

Page 27: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

3.20. L’image et le dessinCette partie permet à l’utilisateur d’éditer une image. Elle est utilisée par l’éditeur d’élémentprécédemment vu. Elle concerne le paquet osmose.application.draw. Ce paquet contient les fichierssuivants :

OSMDialogImageSize.java : Permet à l’utilisateur d’indiquer la taille de l’image qu’il veutcréer.

OSMDrawingColorComponent.java : Représente une couleur de la barre des couleurs del’éditeur.

OSMDrawingColorPanel.java : Représente la barre des couleurs de l’éditeur.

OSMDrawingPanel.java : Représente le panel permettant de dessiner.

OSMDrawingTextComponent.java : Composant permettant de dessiner.

OSMDrawingToolsPanel.java : Représente la barre des outils disponibles pour dessiner.

OSMImageEditorPanel.java : Panel utilisé par l’éditeur d’élément.

notification\OSMDrawingEvent.java : Evénement émanant de l’éditeur d’image.

notification\OSMDrawingListener.java : Interface d’audition des événements.

notification\OSMDrawingNotifier.java : Permet la notification des événements.

3.20.1.Principe de fonctionnementLe composant OSMDrawingColorComponentpermet les actions suivantes :

Affichage de la couleur associée.

Sensibilité au simple clic poursélectionner la couleur courante.

Sensibilité au double clic pour éditer lacouleur associée.

Le composant OSMDrawingColorPanel représentela barre des couleurs de l’éditeur. Elle rassemble enfait plusieurs composantsOSMDrawingColorComponent.

Le composant OSMDrawingToolsPanel est un ensemble de boutons permettant de sélectionner l’outilcourant de dessin. Il permet de choisir parmi les possibilités suivantes :

Dessin à main levée.

Dessin d’un trait.

Effacement d’une partie du dessin.

Dessin d’un texte.

Dessin d’un ovale.

Dessin d’un rectangle.

Remplissage d’une zone du dessin.

Le composant OSMDrawingPanel permet à l’utilisateur de dessiner. Il utilise alors l’outil courant deOSMDrawingToolsPanel et la couleur courante de OSMDrawingColorPanel.

Le principe est le même pour tous les outils. On dessine d’abord dans la méthode paint et quandl’utilisateur valide, on dessine dans l’image associée.

Par exemple, pour dessiner un rectangle :

L’outil rectangle est sélectionné.

27/35

OSMImageEditorPanel

OSMDrawingToolsPanel

OSMDrawingPanel

OSMDrawingColorsPanel

OSMDrawingColorComponent

OSMDrawingColorComponent

OSMDrawingColorComponent

OSMDrawingColorComponent

Page 28: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Dès que l’utilisateur clique, le composant OSMDrawingPanel redessine en permanence unrectangle entre le point où l’utilisateur a cliqué et le pointeur de la souris.

Quand l’utilisateur relâche la souris, le composant OSMDrawingPanel dessine unrectangle dans l’image associée, puis redessine celle-ci.

Le seul événement généré par ce panel permet de savoir quand l’image a changé.

Le composant OSMImageEditorPanel regroupe les 3 composants suivants :

OSMDrawingColorPanel pour la sélection des couleurs.

OSMDrawingToolsPanel pour la sélection des outils.

OSMDrawingPanel pour le dessin.

C’est ce panel qui est utilisé pour l’édition d’une image dans l’éditeur multimédia.

3.21. Le sonCette partie concerne la lecture et l’enregistrement d’un son. Elle est utilisée dans toutes les parties del’application nécessitant des sons :

Enregistrement et lecture d’un média son.

Enregistrement et lecture d’une note orale.

Elle concerne le paquet osmose.application.sound. Ce paquet contient les fichiers suivants :

OSMPlayListPlayer.java : Lecture d’un ensemble de son.

OSMSoundConfigPanel.java : Permet la configuration de l’enregistrement.

OSMSoundPanel.java : Panel permettant d’enregistrer ou de lire un son.

OSMSoundPlayerRecorder.java : Permet d’enregistrer ou de lire un son.

OSMSoundTime.java : Permet de connaître la durée d’un fichier son.

notification\OSMSoundEvent.java : Événement émanant du composant.

notification\OSMSoundListener.java : Interface d’audition des événements.

La classe OSMSoundPlayerRecorder permet l’enregistrement d’un son et la lecture d’un fichier son.Elle utlise l’API JavaSound.

Cette classe comporte deux threads :

Le thread Playback s’occupe de la lecture.

Le thread Capture s’occupe de l’enregistrement.

Quand un son n’est pas en train d’être lu, il est déchargé du player. Ceci permet à l’applicationd’effacer un média, ce qui serait impossible si le fichier était « bloqué » par le player.

Le panel OSMSoundPanel propose un panel générique composé de deux boutons pour enregistrer etlire un son, ainsi que d’une « timeline ». Celle-ci ne permet pas de se déplacer dans le son, l’APIJavaSound ne gérant pas cette option avec tous les types de sons. Elle n’a donc qu’une valeurindicative pour l’utilisateur. Ce panel affiche aussi la durée du son et la position pendant la lecture.

La classe OSMSoundConfigPanel offre un panel permettant de configurer les propriétésd’enregistrement :

Taille des échantillons (8 ou 16 bits).

Mode (Mono ou Stéréo).

Fréquence d’échantillonnage (8000, 11025, 16000, 22050 ou 44100 Hz).

Ce panel est utilisé dans les préférences de l’application. Ces propriétés sont utilisées pour tous lesenregistrements dans l’application (médias sons et notes orales).

Les événements possibles émanant du lecteur enregistreur sont les suivants :

Début de lecture.

28/35

Page 29: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

Fin de lecture.

Début d’enregistrement.

Fin d’enregistrement.

Mise a jour temps pendant lecture.

Mise a jour temps pendant enregistrement.

Chargement fichier.

La classe OSMPlayListPlayer permet de lire une liste de fichier sons. Elle utilise unOSMSoundPlayerRecorder. L’événement de fin de lecture d’un son lui permet de lancer la lecture duson suivant.

3.22. La vidéoCette partie permet de visualiser une vidéo. Elle concerne le paquet osmose.application.video. Cepaquet contient les fichiers suivants :

OSMVideoSizeValidator.java : Permet de savoir si une vidéo sera lisible et de connaître lataille de toutes les vidéos compatibles.

OSMVideoPanel.java : Permet de lire une vidéo.

La classe OSMVideoSizeValidator utilise JMF pour connaître la taille d’une vidéo. Pour cela, elleutilise la classe VideoFormat.

La classe OSMVideoPanel utilise aussi JMF pour lire une vidéo. Étant donné le caractère multiplateforme du logiciel Osmose, nous sommes obligés d’utiliser JFM dans sa version « crossplatform ». Cela restreint le nombre de formats de vidéo lisibles.

De nombreux formats étant lisibles dans les browser web du commerce, les vidéos non prises encharge par Osmose sont tout de même utilisables. Elles apparaissent alors comme « exportableuniquement » et ne sont donc prises en charge que dans l’export HTML.

Pour ne pas la déformer, la vidéo lue est placée dans un « scrollpane » offrant des ascenseurs sinécessaires.

Le composant OSMVideoPanel lit la vidéo et affiche aussi un contrôleur permettant d’arrêter lalecture, et de se déplacer dans la vidéo. C’est ce panel qui est utilisé dans l’éditeur multimédia pourvisualiser les vidéo.

3.23. L’aideCette partie traite de l’aide sur l’application. Elle concerne le paquet osmose.application.help.

Ce paquet ne contient qu’un seul fichier :

OSMAboutBox.java : Boite de dialogue « A propos ».

Le menu permet également d’accéder à une page qui se trouve dans document. Cette page est unepage HTML standard. Elle sera le début du guide utilisateur du logiciel (Guide produit par l’UTC).

29/35

Page 30: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

4. Développement

4.1. OutilsL’application a été développée sous JBuilder 9 édition personnel.

L’application se compile aussi aisément sous Eclipse.

Il ne faut pas oublier d’inclure les librairies suivante :

lib/jmf.jar : Librairie JMF « cross platform ».

lib/mp3/tritonus_share.jar : Librairie mp3.

lib/mp3/mp3spi1.8.jar : Librairie mp3.

lib/mp3/jl0.4.jar : Librairie mp3.

Attention, si on veut compiler l’application sous Windows ou Linux, il faut penser à rapatrier la librairieui.jar de MacOsX.

4.2. Librairies utilisées

4.2.1. JMFLa librairie JMF est distribuée par SUN. Elle est libre d’utilisation sous réserve de la distribuerconjointement avec le fichier « readme.html ». (http://java.sun.com/products/java-media/jmf/).

Cette libraire se compose donc des fichiers suivants :

lib/jmf.jar : La librairie.

lib/readme.html : La licence associée.

4.2.2. Lecture des sons MP3La lecture des sons MP3 est assurée par la librairie tritonus (http://www.tritonus.org) . Cette librairieest distribuée sous la licence LGPL (http://www.opensource.org/licenses/lgpl-license.php).

Cette libraire se compose donc des fichiers suivants :

lib/mp3/tritonus_share.jar : La librairie.

lib/mp3/mp3spi1.8.jar : La librairie.

lib/mp3/jl0.4.jar : La librairie.

lib/mp3/lesser.txt : La licence associée.

lib/mp3/readme.txt : Fichier « a lire » en anglais.

lib/mp3/lisezmoi.txt : Fichier « a lire » en français.

30/35

Page 31: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

5. Annexes

5.1. DTD des fichiers Osmose<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT author.add (#PCDATA)>

<!ATTLIST author.add

include CDATA #REQUIRED

>

<!ELEMENT author.name (#PCDATA)>

<!ATTLIST author.name

include CDATA #REQUIRED

>

<!ELEMENT author.org (#PCDATA)>

<!ATTLIST author.org

include CDATA #REQUIRED

>

<!ELEMENT body (x, y, w, h)>

<!ELEMENT color (#PCDATA)>

<!ELEMENT date (#PCDATA)>

<!ATTLIST date

include CDATA #REQUIRED

>

<!ELEMENT document (element+, presentation, presentation.properties, slide+)>

<!ATTLIST document

soft-version CDATA #REQUIRED

type CDATA #REQUIRED

lastid CDATA #REQUIRED

>

<!ELEMENT element (#PCDATA | color | media | parent | title | url | x | y)*>

<!ATTLIST element

ontheline (false | true) #REQUIRED

collapsed CDATA #REQUIRED

fathercollapsed CDATA #REQUIRED

>

<!ELEMENT h (#PCDATA)>

<!ELEMENT keywords (#PCDATA)>

<!ATTLIST keywords

include CDATA #REQUIRED

>

<!ELEMENT media (#PCDATA | h | w | x | y | videoheight | videoreadable | videowidth)*>

<!ATTLIST media

type CDATA #REQUIRED

include CDATA #REQUIRED

position CDATA #REQUIRED

>

<!ELEMENT model (#PCDATA)>

<!ELEMENT number (x, y, w, h)>

<!ELEMENT oralnotes (#PCDATA)>

<!ELEMENT parent (#PCDATA)>

<!ELEMENT parttitle.depth (#PCDATA)>

31/35

Page 32: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

<!ELEMENT parttitle.include (#PCDATA)>

<!ELEMENT presentation (presentation_property+)>

<!ELEMENT presentation.properties (title, author.name, author.org, author.add, date, version, keywords, resume,purpose, title.include, summary.include, summary.depth, parttitle.include, parttitle.depth)>

<!ELEMENT presentation_property (#PCDATA)>

<!ATTLIST presentation_property

name (colors.color1.color | colors.color1.label | colors.color2.color | colors.color2.label |colors.color3.color | colors.color3.label | colors.color4.color | colors.color4.label | colors.color5.color |colors.color5.label | colors.color6.color | colors.color6.label | colors.color7.color | colors.color7.label)#REQUIRED

type (java.awt.Color | java.lang.String) #REQUIRED

>

<!ELEMENT purpose (#PCDATA)>

<!ATTLIST purpose

include CDATA #REQUIRED

>

<!ELEMENT resume (#PCDATA)>

<!ATTLIST resume

include CDATA #REQUIRED

>

<!ELEMENT slide (model, title, number, body, writtennotes, oralnotes)>

<!ATTLIST slide

parent CDATA #REQUIRED

type CDATA #REQUIRED

>

<!ELEMENT summary.depth (#PCDATA)>

<!ELEMENT summary.include (#PCDATA)>

<!ELEMENT title (#PCDATA | h | w | x | y)*>

<!ATTLIST title

include CDATA #IMPLIED

>

<!ELEMENT title.include (#PCDATA)>

<!ELEMENT url (#PCDATA)>

<!ELEMENT version (#PCDATA)>

<!ATTLIST version

include CDATA #REQUIRED

>

<!ELEMENT videoheight (#PCDATA)>

<!ELEMENT videoreadable (#PCDATA)>

<!ELEMENT videowidth (#PCDATA)>

<!ELEMENT w (#PCDATA)>

<!ELEMENT writtennotes (#PCDATA)>

<!ELEMENT x (#PCDATA)>

<!ELEMENT y (#PCDATA)>

32/35

Page 33: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

5.2. DTD des fichiers thèmes<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT background (gradtype, color1, color2)>

<!ATTLIST background

herited CDATA #REQUIRED

displayed CDATA #REQUIRED

type CDATA #REQUIRED

>

<!ELEMENT blue (#PCDATA)>

<!ELEMENT body (font, color, constraints)>

<!ATTLIST body

herited CDATA #REQUIRED

displayed CDATA #REQUIRED

>

<!ELEMENT chips (level+)>

<!ATTLIST chips

herited CDATA #REQUIRED

displayed CDATA #REQUIRED

>

<!ELEMENT color (red, green, blue)>

<!ELEMENT color1 (red, green, blue)>

<!ELEMENT color2 (red, green, blue)>

<!ELEMENT constraints (x, y, w, h)>

<!ELEMENT font (name, size)>

<!ATTLIST font

bold (false | true) #REQUIRED

italic CDATA #REQUIRED

underlined CDATA #REQUIRED

>

<!ELEMENT gradtype (#PCDATA)>

<!ELEMENT green (#PCDATA)>

<!ELEMENT h (#PCDATA)>

<!ELEMENT level (#PCDATA)>

<!ATTLIST level

num (0 | 1 | 2 | 3 | 4) #REQUIRED

>

<!ELEMENT medias (constraints)>

<!ATTLIST medias

herited CDATA #REQUIRED

displayed CDATA #REQUIRED

>

<!ELEMENT model (#PCDATA | background | body | chips | medias | number | texts | title)*>

<!ELEMENT name (#PCDATA)>

<!ELEMENT number (font, color, constraints)>

<!ATTLIST number

herited CDATA #REQUIRED

displayed CDATA #REQUIRED

>

<!ELEMENT red (#PCDATA)>

<!ELEMENT size (#PCDATA)>

33/35

Page 34: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

<!ELEMENT texts (font, color)>

<!ATTLIST texts

herited CDATA #REQUIRED

>

<!ELEMENT theme (#PCDATA | model)*>

<!ATTLIST theme

soft-version CDATA #REQUIRED

type CDATA #REQUIRED

>

<!ELEMENT title (font, color, constraints)>

<!ATTLIST title

herited CDATA #REQUIRED

displayed CDATA #REQUIRED

>

<!ELEMENT w (#PCDATA)>

<!ELEMENT x (#PCDATA)>

<!ELEMENT y (#PCDATA)>

34/35

Page 35: SPECIFICATION DU LOGICIEL - UTCidylle/osmose/IMG/pdf/Conception_fr.pdf · OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL Résumé Ce document explicite la conception du logiciel "Osmose"

5.3. DTD des fichiers XML exportés<?xml version="1.0" encoding="UTF-8"?>

<!ELEMENT document (element+)>

<!ELEMENT element (#PCDATA | element)*>

35/35