OSMOSE - DOSSIER DE CONCEPTION DU LOGICIEL



Documents pareils
Publier un Carnet Blanc

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Publier dans la Base Documentaire

Utilisation de l éditeur.

Groupe Eyrolles, 2003, ISBN : X

Licence de Biologie, 1ère année. Aide. [Aide 1] Comment utiliser l'explorateur Windows? Comment créer des dossiers?

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

145A, avenue de Port Royal, Bonaventure (Québec) G0C 1E0 Sans frais :

Guide de l utilisateur. Faites connaissance avec la nouvelle plateforme interactive de

Prise en main rapide

INTERWRITE Workspace

Formation. Module WEB 4.1. Support de cours

L alternative, c est malin 1. Comment faire plein de choses pour pas cher sur MacIntosh

Comment accéder à d Internet Explorer

Parcours FOAD Formation EXCEL 2010

FICHIERS ET DOSSIERS

Tutorial Terminal Server sous

Organiser le disque dur Dossiers Fichiers

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

RACCOURCIS CLAVIERS. DEFINITION : Une «combinaison de touches» est un appui simultané sur plusieurs touches.

Mon aide mémoire traitement de texte (Microsoft Word)

SOMMAIRE. Présentation assistée sur ordinateur. Collège F.Rabelais 1/10

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

Table des matières ENVIRONNEMENT

Utiliser le logiciel Photofiltre Sommaire

Le cas «BOURSE» annexe

Synoptique des icônes Interwrite Workspace

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

On trouvera sur le site du CCDMD un exemple d album construit avec Cantare. (

INSERER DES OBJETS - LE RUBAN INSERTION... 3 TABLEAUX

Séminaire d information MIGRATION WINDOWS 7 ET OFFICE 2010

CREER UN PETIT SITE WEB EN COMPOSANT DES PAGES HTML

MANUEL TBI - INTERWRITE

Mes premiers diaporamas avec Open Office Impress?

Le cas «BOURSE» annexe

Manuel d utilisation du site web de l ONRN

Créer des documents interactifs

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

KIELA CONSULTING. Microsoft Office Open Office Windows - Internet. Formation sur mesure

Introduction à Expression Web 2

Table des matières. 1 À propos de ce manuel Icônes utilisées dans ce manuel Public visé Commentaires...

iil est désormais courant de trouver sur Internet un document

Module Communication - Messagerie V6. Infostance. Messagerie

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

1 CRÉER UN TABLEAU. IADE Outils et Méthodes de gestion de l information

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Banque d images SVT. Créer et utiliser une banque d images avec Picasa 2. Version anglaise -Windows 98. Banque photo en SVT : page 1 /14

Démarrer et quitter... 13

Manuel d utilisation du web mail Zimbra 7.1

Gestion de références bibliographiques

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

à l édition de textes

Formation Administrateur de Données Localisées (Prodige V3.2) Recherche et consultation des métadonnées

Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.

Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010

SANKORÉ. Le manuel qui manquait. Traite de la version du logiciel Sankoré

Guide d utilisation 2012

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

hager Logiciel PC pour configurateur Radio Tebis TX 100 Manuel d utilisation 6T7266

Services bancaires par Internet aux entreprises. Guide pratique pour : Transfert de fichiers Version

Access 2007 FF Access FR FR Base

Découvrez Windows NetMeeting

Manuel de formation Spaceman 1 ère journée

Joomla! Création et administration d'un site web - Version numérique

WinReporter Guide de démarrage rapide. Version 4

Utilisation de l'outil «Open Office TEXTE»

Utiliser Freemind à l'école

Contenu Microsoft Windows 8.1

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

Utilisation avancée de SugarCRM Version Professional 6.5

Utiliser un logiciel de présentation assistée par ordinateur

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Créer un diaporama avec Open Office. Sommaire

GUIDE D UTILISATION. Gestion de compte. à destination des intermédiaires

Guide d usage pour Word 2007

Espace Client Aide au démarrage

Centre de formation: Collège IBN BASSAM - TEMARA. Ce cours est proposé par le professeur d informatique:

- Université Paris V - UFR de Psychologie ASDP4 Info Introduction à Windows

AIDE à l utilisation du cédérom «L athlétisme à l école» Niveau Primaire SOMMAIRE

Présentation de Firefox

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

Créer une trace, obtenir son fichier gpx et sa carte Ou Afficher un fichier trace GPX

Mode Opératoire Windows XP

Créer un diaporama avec OpenOffice.org Impress

Guide d utilisation des services My Office

Silfid : Agence de création de site internet, formations et Conseils Retour sommaire

MAILING KOMPOZER... 2 CREEZ UNE PAGE... 2 FORMAT DE LA PAGE... 2 AJOUTER DU TEXTE SUR UNE PAGE... 4

Fiches d aide à l utilisation

Une ergonomie intuitive

Comment utiliser RoundCube?

Manuel Utilisateur Version 1.6 Décembre 2001

FAA : Fonctions Automatiques de l Application. Les fonctions automatiques incluses dans vos applications développées avec

26 Centre de Sécurité et de

Inspiration 7.5. Brève description d Inspiration. Avantages d Inspiration. Inconvénients d Inspiration

Gérer ses fichiers et ses dossiers avec l'explorateur Windows. Février 2013

Guide informatique AUDIT EVALUATION DE LA PRATIQUE DE L ANTIBIOPROPHYLAXIE EN MATERNITE

ENVOI EN NOMBRE DE MESSAGES AUDIO

COURS DE MS EXCEL 2010

UTILISATION DE L'APPLICATION «PARTAGE DE FICHIERS EN LIGNE»

SOMMAIRE. Comment se connecter?

Transcription:

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) 02 19/04/2003 TD (Quadrille Ingénierie) 03 13/07/2005 Olivier Gauwin Création du document Prise en compte des remarques UTC Correction de fautes d'orthographe 1/35

Sommaire 1.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...7 3.2.1.L arbre...7 3.2.2.La présentation...8 3.3.L application...9 3.3.1.Composition...9 3.3.2.Internationalisation...9 3.4.L espace de structuration...10 3.4.1.Principe de fonctionnement...10 3.5.L éditeur d élément...12 3.5.1.L éditeur des propriétés d un élément...12 3.5.2.L éditeur générique...12 3.5.3.L éditeur de texte simple...13 3.5.4.L éditeur d image...13 3.5.5.L éditeur de sons...13 3.5.6.L éditeur de vidéo...13 3.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...22 3.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...27 3.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...30 4.2.1.JMF...30 4.2.2.Lecture des sons MP3...30 2/35

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

1. INTRODUCTION Ce document explicite la conception du logiciel OSMOSE. Il explique entre autres les points suivants : Découpage de l application en sous-système. Modèle des données internes à l application. Format des fichiers d échanges. 4/35

2. Architecture de l application (Vue objet) OSMTextElementEditor OSMElementEditor OSMRichTextElementEditor OSMImport OSMExport OSMFile OSMImportTabTxt OSMExportTabTxt OSMExportXML OSMExportHTML OSMImageElementEditor OSMSoundElementEditor OSMVideoElementEditor OSMTabElementEditor OSMApplication OSMDocumentEditor OSMSlideEditor OSMSlideViewer OSMSlidePrinter OSMSearcher OSMThemeEditor OSMPreferences OSMInformationsEditor OSMOptionsEditor L application Osmose se découpe en différents modules, chacun permettant de modifier le modèle de donné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. Il contient 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 fichiers Osmose. 5/35

3. Conception (Vue fichier) Le découpage en fichier sources est assez proche de la vue objet. Les sources de l application Osmose 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

3.1. Le modèle de données OSMPresentationOptions OSMPresentationInfos OSMDocument OSMPresentation OSMPresentationTheme OSMColorPalet Les OSMElement sont chainables en arbre (DefaultMutableTreeNode) OSMColor OSMElement OSMPage OSMPageModel OSMTabMedia OSMVidMedia OSMSndMedia OSMRtfMedia OSMImgMedia OSMTxtMedia OSMSlide OSMSlideModel OSMMedia 3.2. Le document osmose L élément de base d un document osmose est la classe OSMDocument. Cet élément contient une liste des racines de tous les arbres composant un document. Les racines des arbres sont des OSMElement. 3.2.1. L arbre L arbre contient des éléments OSMElement. Chaque OSMElement dérive de la classe Java DefaultMutableTreeNode qui sont en fait des feuilles d arbres. Une feuille d arbre est un objet pouvant avoir 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 de classes : 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

OSMTabMedia pour les médias tableaux. 3.2.2. La présentation Le document contient la présentation modélisée par la classe OSMPresentation. Une présentation contient 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 1 d 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ément OSMElement. 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 de modè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 un OSMPresentationTheme, celui-ci étant un thème associé à une présentation. Ce thème contient un ensemble de modèles représentés par la classe OSMSlideModel, celle-ci dérivant de OSMPageModel. 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

3.3. L application 3.3.1. Composition Osmose est une application de type MDI. C est à dire qu elle permet à l utilisateur de travailler en parallèle sur plusieurs documents. Le cœur de l application se situe dans le paquet osmose.application. Ce paquet contient les fichiers suivants : 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 panel permet 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 les instances de classes nécessaires. La classe OSMApplicationMacOsX dérive de la classe OSMApplication. C est le cœur de l application pour les systèmes MacOsX. Cette classe est sensible aux événements propres à ce système et permet 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 seront né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 classe Properties de Java. Elle permet de gérer des variables de type entier ou chaîne de caractère. Le fichier de propriétés se trouve dans le fichier config/osmose.properties. 3.3.2. Internationalisation L application utilise les propriétés d internationalisation de Java. L application dispose d une variable statique «Localisation» permettant de trouver une chaîne de caractère à tous les niveaux de l application. L application est pour l instant disponible en anglais ou en français. L utilisateur peut modifier la langue et le pays dans le fichier de propriétés. On peut aisément ajouter une langue en créant un nouveau fichier osmose_pays_langue.properties. Ce fichier doit se trouver à la racine des classes de l application, dans le jar. 9/35

3.4. L espace de structuration L espace de structuration concerne la fenêtre permettant à l utilisateur de dessiner l arbre de ses idées. Il correspond au paquet java osmose.application.documenteditor. Ce paquet contient les fichiers 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 de structuration. OSMColorComponent.java : Représente une couleur de la barre des couleurs en bas de l espace de structuration. OSMTreeEditorColorBar.java : Représente la barre de couleurs en bas de l espace de structuration. OSMTreeEditorTrashcan.java : Représente la poubelle dans l espace de structuration. OSMTreeEditorNavBar.java : Représente la barre de navigation dans l espace de structuration. 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 de structuration. notification\osmtreeeditornotifier.java : Permet la notification d événement. 3.4.1. Principe de fonctionnement Un OSMElementComponent est un composant Swing Java. Ce composant est capable de repré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. Il permet 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 de la 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 couleurs du document. Le composant OSMTreeEditorColorBar est un composant regroupant 7 OSMColorComponent. Il n est capable de rien d autre. Le composant OSMTreeEditorTrashcan est un composant Swing transparent représentant l espace ré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

Tiers centre : recentrage. Tiers droit : déplacement vers la droite. Le composant OSMTreeEditorPanel est un JLayeredPanel Java. Il permet de contenir les composants pré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 natures différentes : Événement de sélection d un élément. Événement de liaison entre deux éléments. 11/35

3.5. L éditeur d élément L éditeur d élément concerne la fenêtre «éditeur multimédia» permettant à l utilisateur les actions suivantes : É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é des fichiers suivants : OSMEditTabPane.java : Panel permettant d afficher les onglets de l éditeur. OSMMediaElementEditorPanel.java : Correspond à un éditeur générique dont dérivent tous 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ément Cet é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 éditeur correspond à 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 de dessiner une image. OSMTextElementEditorPanel : Permet d importer ou de saisir du texte simple. OSMSoundElementEditorPanel : Permet d importer ou de saisir des sons. OSMVideoElementEditorPanel : Permet d importer des vidéos. OSMElementEditorPanel OSMEditTabPanel OSMImageElementEditorPanel OSMTextElementEditorPanel OSMSoundElementEditorPanel OSMVideoElementEditorPanel 3.5.2. L éditeur générique L éditeur générique est représenté par la classe OSMMediaElementEditorPanel. Cet éditeur permet les actions suivantes : Possibilité de supprimer les médias en cours d édition. 12/35

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 la saisie 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 simple Cet é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 de lignes. Pour cela, ce panel utilise un composant Swing, le JTextArea offrant toutes ces fonctionnalités. 3.5.4. L éditeur d image Cet éditeur est représenté par la classe OSMImageElementEditorPanel. Il utilise le paquet osmose.application.draw qui est explicité plus loin dans le document. 3.5.5. L éditeur de sons Cet éditeur est représenté par la classe OSMSoundElementEditorPanel. Il utilise le paquet osmose.application.sound qui est explicité plus loin dans le document. 3.5.6. L éditeur de vidéo Cet éditeur est représenté par la classe OSMVideoElementEditorPanel. Il utilise le paquet osmose.application.video qui est explicité plus loin dans le document. 3.5.7. Notifications Les 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

3.6. Les fichiers Osmose Cette partie concerne les entrées sorties de type fichiers de l application. Elle concerne le paquet osmose.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 lecture des 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 lecture d'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 texte correctement formaté (cf. document de spécifications). Cette classe lit le fichier ligne par ligne et, pour chaque 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'est ouverte, 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 sont sauvegardées au format XML (cf. la description DTD en annexe). Pour chaque élément, on indique les médias associés ; ceux-ci sont copiés dans le sous-répertoire medias. L'arborescence générée sur le disque 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édias associé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 lecture du 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, une fenê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 les fichiers d'extension «.theme». 14/35

La classe OSMThemeFileLoad hérite de OSMFile. Elle permet le chargement d'un thème soit lors de l'é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 des différents textes, type de fond, type de puces L arborescence de sauvegarde d un thème est la suivante (Exemple avec pour nom de fichier presentation.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 soit depuis la fenêtre d'édition d'un thème, soit lors de la sauvegarde de la présentation. Le thème est sauvegarde au format XML (cf. description DTD en annexe). 3.7. Partie commune Cette partie concerne les fichiers du package osmose.application.common. Ce paquet regroupe des composants utiles à plusieurs autres paquets de l application. Il contient les fichiers suivants : OSMBackGroundComponent.java : Composant générique permettant d afficher un fond uni, 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 ligne du corps. slidecomponent\osmslidecomponent.java : Composant générique d'un transparent. slidecomponent\osmslideimgcomponent.java : Composant d un transparent capable d afficher une image. slidecomponent\osmslidemediaimg.java : Composant image d un transparent. slidecomponent\osmslidemedias.java : Composant gérant l'ensemble des médias d un transparent. slidecomponent\osmslidemediatxt.java : Composant texte d un transparent. slidecomponent\osmslidemediavid.java : Composant vidéo d un transparent. slidecomponent\osmslidemediavideoviewer.java : Composant permettant la visualisation d 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 transparent capable d afficher un texte. 15/35

slidecomponent\osmslidevidcomponent.java : Composant générique d un transparent capable d afficher une vidéo. 3.8. L éditeur de transparent Cette partie concerne la fenêtre de mise en forme des transparents. Elle permet à l utilisateur de modifier à sa guise l'ensemble des transparents composant sa présentation. Elle concerne le paquet osmose.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 transparents de 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 en forme. 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 swing capable 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 de mé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 de données dont ils dépendent. Le panel OSMSlideEditorPanel étant sensible à la sélection d un élément dans l espace de structuration, il est aisé de redessiner le transparent correspondant. Ce même panel est aussi sensible à l inclusion d un titre ou d un média dans l éditeur multimédia, ce qui permet de remettre à jour le transparent en conséquence. Les composants sont tous repositionnables et redimensionnables. Tous changements effectués sur ces composants sont reportés dans le modèle de données. La classe permet OSMSlideEditorNavPanel permet à l utilisateur de se déplacer dans les transparents : 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

Aller au transparent titre (Bouton grisé si pas de titre). La classe OSMSlideEditorNotesPanel permet de saisir des notes pour chaque transparent de la présentation : Notes écrites. Toute modification de ces notes est reportée immédiatement dans le modè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 transparent Cette 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 du paquet osmose.application.slidesummary. Cette classe permet de «pointer» les éléments du modèle de données appartenant au sommaire ou gé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 passe par la ligne médiane. L application compare alors la profondeur de l élément avec la profondeur voulu par 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 de l élément associé. 3.10. L éditeur de thème Cette partie concerne l édition d un thème. Elle permet à l utilisateur de choisir des propriétés d affichages des ces transparents. Elle concerne le paquet osmose.application.themeditor. Ce paquet contient 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 fond de transparent. themecomponent\osmthemeconstraintscomponent.java : Composant pour éditer les contraintes. 17/35

themecomponent\osmthememediasconstraintscomponent.java : Édition des contraintes. La classe OSMThemeFormatEditorPanel permet d éditer les propriétés pour le titre, le corps, le numéro de page et les médias texte simple. Elle permet de modifier les propriétés suivantes : 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 5 premiers niveaux du corps du transparent. Un choix est fait par défaut mais il est possible d éditer le caractère utilisé. Si l utilisateur saisit un texte de plus d un caractère de long, seul le premier caractère est conservé. La classe OSMThemeMediasEditorPanel permet d indiquer si les médias seront présents ou non dans le transparent. La classe OSMThemeBackgroundEditorPanel permet de sélectionner un fond pour le transparent : Fond uni par sélection d une couleur. OSMThemeChooseModelEditorPanel OSMThemeFormatEditorPanel OSMThemeFormatEditorPanel OSMThemeFormatEditorPanel OSMThemeChipsEditorPanel Fond dégradé par sélection de deux couleurs et du sens du dégradé (Horizontal ou vertical). Fond image après sélection d un fichier par l utilisateur. OSMThemeEditorPanel La classe OSMThemeConstraintsPanel permet d éditer les contraintes pour le titre, le corps, le numéro de page et les médias. Elle se présente comme un éditeur de transparent simplifié. Les cadres définissent en fait les zone de chaque objet pour un modèle donné. Cette classe permet aussi de 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 lequel l utilisateur veut apporter des modifications. Il permet aussi l ajout ou la suppression d un modèle du thème. Dans cette fenêtre, toute modification par l utilisateur met à jour le modèle de données en conséquence. OSMThemeContraintsEditorPanel OSMThemeMediasEditorPanel OSMThemeBackgroundEditorPanel 3.11. L exportation d un document Cette partie concerne l exportation d un document Osmose dans un format spécifique. Elle concerne le paquet osmose.application.export. Ce paquet ne contient que le fichier effectuant l export au format HTML : 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

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 de l 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 a consisté à utiliser une «applet» pour effectuer la lecture de ces sons. En effet, l utilisation de la classe OSMSoundPlayListPlayer était facile. Malheureusement, cette solution entraînait une faille de sécurité inacceptable sous le navigateur internet 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 pour charger 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 compatible avec tous les navigateurs de tous les systèmes pour peu qu ils possèdent les plugin permettant la lecture 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 les médias associés. 3.12. Le visionnage de transparent Cette partie permet de visualiser les transparents en plein écran. Elle concerne le paquet osmose.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

La classe OSMSlideViewer hérite de la classe commune OSMFullScreenFrame. Elle possède donc la capacité de s afficher en plein écran. La classe OSMSlideViewerPanel est un panel permettant de construire un transparent avec une taille donné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 le composant 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 (vu après). Ce panel est aussi sensible aux événements émanant du clavier pour permettre à l utilisateur de se déplacer dans les transparents. Nota : Sur MacOsX, la visualisation plein écran avec Java est impossible pour cause de bugs connus chez Apple. 20/35

3.13. L impression de transparent Cette partie concerne l impression d un ou plusieurs transparents de la présentation. Elle concerne le paquet 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 fond dégradé d un transparent. La classe OSMSlidePrint utilise l API java d impression : java.awt.print. Elle utilise le composant OSMSlideViewerPanel 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é ne fonctionnait pas sur MacOsX. Par contre, l impression d un fond image fonctionnait. L application Osmose transforme donc un fond dégradé en fond image avant impression (sur MacOsX uniquement). 3.14. La recherche dans une présentation Cette partie permet d effectuer des recherches dans la présentation. Elle se retrouve dans le paquet Java 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. Cette classe 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

3.15. Le presse papier Cette partie permet à l utilisateur d effectuer des couper/copier/coller d éléments d un document vers le mê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 effectuer les 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 refaire Cette partie permet d annuler ou de refaire la dernière action. Les actions annulables sont les suivantes : 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 fichiers suivants : 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 fonctionnement La 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

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érive donc de cette classe OSMAction et surcharge ces 6 fonctions. La classe OSMUndoRedo comporte une instance unique pour l application. Elle permet les actions suivantes : 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 occuper de son type. Cette action est autonome est effectue elle-même l annulation. 3.17. Le menu Cette partie permet à l utilisateur d effectuer différentes actions au moyen d un menu dans la fenêtre principale. Elle concerne le paquet osmose.application.menucommand. Ce paquet contient les fichiers suivants : 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 le suivant). OSMMenuEditSearchPrev.java : Recherche du précédent (Édition - Recherche du précédent). OSMMenuEditSelectAll.java : Sélection de tous les éléments (Édition - Sélectionner tout). 23/35

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 et Document - 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 dialogues Cette partie regroupe les boites de dialogues permettant à l utilisateur de paramétrer son document ou l application. Elle concerne le paquet Java osmose.application.dialog. Ce paquet contient les fichiers suivants : 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 sont sensibles 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édia par 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 le retour à la ligne automatique et sont inclus dans un «scrollpane» pour afficher une barre de défilement si le texte est trop long. La classe OSMDialogDocumentColors permet à l utilisateur de modifier la palette des couleurs applicables aux éléments : Edition du nom de chaque couleur. 24/35

Sensibilité aux clics de souris pour permettre à l utilisateur de modifier la couleur sur laquelle 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 la pré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 dans le 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 utilisateurs pour qu ils soient réaffichés lors de la prochaine recherche. 3.19. Les préférences utilisateur Cette 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 application prend 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

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

3.20. L image et le dessin Cette partie permet à l utilisateur d éditer une image. Elle est utilisée par l éditeur d élément précédemment vu. Elle concerne le paquet osmose.application.draw. Ce paquet contient les fichiers suivants : OSMDialogImageSize.java : Permet à l utilisateur d indiquer la taille de l image qu il veut créer. OSMDrawingColorComponent.java : Représente une couleur de la barre des couleurs de l é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 fonctionnement OSMDrawingToolsPanel Le composant OSMDrawingColorComponent permet les actions suivantes : Affichage de la couleur associée. Sensibilité au simple clic pour sélectionner la couleur courante. Sensibilité au double clic pour éditer la couleur associée. Le composant OSMDrawingColorPanel représente la barre des couleurs de l éditeur. Elle rassemble en fait plusieurs composants OSMDrawingColorComponent. Le composant OSMDrawingToolsPanel est un ensemble de boutons permettant de sélectionner l outil courant 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 de OSMDrawingToolsPanel 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 quand l utilisateur valide, on dessine dans l image associée. Par exemple, pour dessiner un rectangle : OSMImageEditorPanel OSMDrawingPanel OSMDrawingColorsPanel OSMDrawingColorComponent OSMDrawingColorComponent OSMDrawingColorComponent OSMDrawingColorComponent L outil rectangle est sélectionné. 27/35

Dès que l utilisateur clique, le composant OSMDrawingPanel redessine en permanence un rectangle 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 un rectangle 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 son Cette partie concerne la lecture et l enregistrement d un son. Elle est utilisée dans toutes les parties de l 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 application d 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 et lire un son, ainsi que d une «timeline». Celle-ci ne permet pas de se déplacer dans le son, l API JavaSound ne gérant pas cette option avec tous les types de sons. Elle n a donc qu une valeur indicative 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és d 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 les enregistrements 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

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 un OSMSoundPlayerRecorder. L événement de fin de lecture d un son lui permet de lancer la lecture du son suivant. 3.22. La vidéo Cette partie permet de visualiser une vidéo. Elle concerne le paquet osmose.application.video. Ce paquet contient les fichiers suivants : OSMVideoSizeValidator.java : Permet de savoir si une vidéo sera lisible et de connaître la taille 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, elle utilise la classe VideoFormat. La classe OSMVideoPanel utilise aussi JMF pour lire une vidéo. Étant donné le caractère multi plateforme du logiciel Osmose, nous sommes obligés d utiliser JFM dans sa version «cross platform». 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 en charge par Osmose sont tout de même utilisables. Elles apparaissent alors comme «exportable uniquement» 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 si nécessaires. Le composant OSMVideoPanel lit la vidéo et affiche aussi un contrôleur permettant d arrêter la lecture, et de se déplacer dans la vidéo. C est ce panel qui est utilisé dans l éditeur multimédia pour visualiser les vidéo. 3.23. L aide Cette 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 une page HTML standard. Elle sera le début du guide utilisateur du logiciel (Guide produit par l UTC). 29/35

4. Développement 4.1. Outils L 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 librairie ui.jar de MacOsX. 4.2. Librairies utilisées 4.2.1. JMF La librairie JMF est distribuée par SUN. Elle est libre d utilisation sous réserve de la distribuer conjointement 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 MP3 La lecture des sons MP3 est assurée par la librairie tritonus (http://www.tritonus.org). Cette librairie est 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

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

<!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

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

<!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

5.3. DTD des fichiers XML exportés <?xml version="1.0" encoding="utf-8"? <!ELEMENT document (element+) <!ELEMENT element (#PCDATA element)* 35/35