Guide SCENARIbuilder

Structure du modèle

Mise en place

Objectifs

Vous avez un projet "HelloWorld", techniquement la première étape dans le début de chaque projet, c'est de préparer un atelier, ce qui est décrit dans cette première partie "mise en place".

Prérequis

Vous devez avoir SCENARIbuilder et OpenOffice.org installés sur votre ordinateur avant de commencer ce tutoriel.

Création de l'atelier

Dans SCENARIbuilder, il est courant de faire un atelier par nouveau modèle ou par famille de modèles. Vous allez créer un atelier HelloWorld.

Votre nouvel atelier est totalement vide, vous allez créer un espace helloworld à l'aide du bouton

Les modelets

Les modelets sont des bibliothèques d'items préfabriqués, des listes de fichiers (.model ou .transf...) qui permettent à un modélisateur d'avoir des éléments prêt à être intégrés dans le modèle, ce qui est plus pratique que de commencer avec un atelier totalement vide.

Les modelets

Commencez par télécharger le fichier zip qui regroupe les modelets base et binaries.

Pour trouver le répertoire dans lequel l'extraire :

  • faites un clic droit sur l'espace helloworld que vous avez créé ;
  • puis révéler dans le système de fichier ;
  • remontez au répertoire parent, et vous obtenez le répertoire sources là où le fichier zip doit être extrait ;
  • actualisez l'atelier en passant par le bouton d'action situé sur la barre de titre de l'atelier.

Vous devriez obtenir l'arborescence suivante :

Les autres modelets

Pour d'autres besoins spécifiques, d'autres modelets sont disponibles sur le wiki du projet modelet.

Composants du modèle

Les items

Comme dans SCENARIchain, un atelier contient des items, et chaque item a :

  • un nom de fichier ;
  • un type.

En général, les items SCENARIbuilder ont aussi des propriétés du type :

  • code  : identifiant utilisé en interne par le système SCENARI. Cela doit être une suite de caractères alphabétiques, courte de préférence, où il est d'usage de le faire correspondre au nom du fichier (sauf cas particulier).
  • name : le nom tel que l'auteur peu le lire dans l'interface d'édition, il peut contenir des espace et des caractères accentués.

Pour définir la structure de votre premier modèle, vous allez devoir créer 3 items, et faire appel à 2 items du répertoire modelets.

les fichiers .wspdef

Dans l'atelier qui représente un espace de travail, vous pouvez avoir plusieurs déclinaisons d'un modèle ou plusieurs modèles différents (par exemple, SCENARIdiscovery est composé de 6 modèles, mais les sources SCENARIbuilder sont dans un même atelier). Le fichier qui sert de point central à chaque modèle est un fichier .wspdef, chacun représente un modèle un une variation de modèle distinct.

helloworld.wspdef

Nous commencerons donc par créer le fichier helloworld.wspdef. Bouton , puis gestion des ateliers -> wspDefinition. Saisissez en premier tous les  champs :

Dans le fichier wspdef vous définissez :

  • keyWsp : le code de l'atelier.
  • majorVersion, mediumVersion, minorVersion : par exemple, nous créons le modèle helloworld version 0.0.1. Le changement de version peut avoir des conséquences sur les mises à jours lors de la diffusion du modèle, hors propos pour ce simple exemple.
  • mainView : liste les onglets qui apparaissent pour un item externe de l'interface d'édition. Pour ce début de helloworld, mettez simplement l'onglet édition, nous ajouterons plus tard l'onglet publication.

  • publicClasses : liste des items que l'auteur va avoir le droit de créer en item externe. Il faut donc au minimum spécifier un item qui dans le cas de helloworld sera la racine du document.

Dans notre modèle, nous allons permettre à l'auteur de créer des items de type "helloworld" à partir de l'interface d'édition, nous devons donc créer dans SCENARIbuilder un item correspondant qui est listé dans les publicClasses. Procédez par clic droit sur l'item vide pour réaliser cette opération :

Dans le reste de ce tutoriel, cette méthode sera à utiliser pour la plupart des créations d'items.

Les fichiers .model

Les fichiers .model servent à spécifier quels champs ou paragraphes de données seront disponibles à l'intérieur de l'éditeur, de les paramétrer et de choisir comment ils seront organisés entre eux (et implicitement quel sera la structure XML des documents écrits par l'auteur lorsqu'ils sont enregistrés).

helloworld.model

C'est le moment de choisir un type pour l'item racine. L'écran de création des items s'ouvre, vous allez choisir Primitives -> Primitives d'organisation -> compositionPrim . Les compositionPrim sont utilisées pour tous les contenus organisés en parties, chapitres, blocs d'informations, sections...

Reproduisez la structure de la capture d'écran précédente. Quelques particularités des compositionPrim :

  • namespace, prefix : en plus du code, elles sont mises en commun par un namespace, et sa version abrégée, le préfixe. Dans les cas courants, vous allez déclarer toujours le même namespace et préfixe pour tous les fichiers d'un atelier builder, l'interêt de ces informations est principalement dans le cas où plusieurs modélisateurs différents partagent des modèles avec le même nom. Ces noms sont utilisés en interne dans les fichiers de contenu que l'auteur va enregistrer par les éditeurs SCENARI. Le préfixe doit être court et ne pas commencer par la lettre "s" qui est réservée (s pour scenari).
  • part : une "part" est un champ de contenu qui pourrait avoir une sous-structure, en faisant appel par exemple à d'autres compositionPrim.
  • allowedModel : C'est la liste des modèles que l'auteur va pouvoir placer à l'intérieur de ce champ. Ne créez pas un nouvel item, mais placez-y par glisser-déposer depuis le volet d'exploration l'élément "paragraphe de texte" du modelet /base/sTxt/sTxt.model que vous avez installé au début de ce tutoriel.
  • meta : des méta-données associées à la part. Dans notre modèle, les parts ont des titres, nous allons donc utiliser dans les modelets : /base/sTitle/sTitle.model
  • set : un set signifie que l'auteur pourra créer autant de parts qu'il le souhaite (dans l'éditeur, cela déclenche l'ajout d'un bouton * à gauche de la part). En l'absence de set, le document ne pourrait contenir qu'une seule partie.
  • usage -> optional, usage -> required : dans l'interface d'édition, l'auteur de contenu devra obligatoirement remplir toutes les parts qui ont été paramétrées par le modélisateur en tant que "required", si ce n'est pas le cas, des croix rouges apparaissent dans le contenu.
  • internalized : en fonction du choix du modélisateur, l'auteur pourra éventuellement, ou sera obligé de créer les parties en tant qu'item externe. Rappel : il faut aussi que les allowedModel des parts soit déclarées en tant que publicClasses dans le wspdef pour que cette création d'item soit autorisée.

Tester

helloworld.wsptest

Félicitation, vous avez créé votre premier modèle helloworld... Maintenant, pour l'essayer :

  • créez un fichier wsptest dans l'espace helloworld (toujours par le bouton ) ;
  • ouvrez le wsptest et par glisser-déposer, reprenez votre fichier wspdef, pour spécifier quel modèle vous allez tester ;
  • choisissez compiler et tester.

L'interface SCENARItest s'ouvre. C'est une interface d'édition dédiée aux tests rapides lors du développement des modèles à partir de SCENARIbuilder, elle ressemble fort à celle de SCENARIchain. Vous pouvez y créer du contenu respectant les règles de votre modèle documentaire : un espace, un item helloworld, des parties...

L'interface d'édition du modèle Helloworld
L'interface d'édition du modèle Helloworld
L'écran de contrôle

En cas d'erreur, ou juste pour vérifier si tout va bien, faites appel à l'écran de contrôle à partir de l'onglet correspondant sur l'item helloworld.wspdef:

La génération

A la fin de cette première partie, votre modèle fonctionne dans l'éditeur, mais vous n'avez aucun moyen de publier votre contenu. Nous allons maintenant poursuivre notre conception de la chaîne éditoriale helloworld par la création de générateurs dans la suite de ce document.

(c) scenari-platform.org 2007