Project

General

Profile

Développer une application JTheque

Une application JTheque est en fait simplement un conteneur pour des modules. Sans modules, elle ne fait rien. Elle permet juste de fournir un cadre aux modules. Elle doit être complètement indépendante des modules et vice-versa.

Dans JTheque, une application ne contient pas de codes, juste des fichiers de configuration.

Une application a un nom, une version, mais n'ajoute aucune fonctionnalité, ce sont les modules qui s'en chargeront.

Une application se compose de plusieurs choses :
  • Un fichier XML (application.xml) décrivant l'application
  • Des images (obligatoirement dans le dossier core/images)
  • Eventuellement des fichiers .properties i18n dans le dossier core/i18n

Il faut commencer par déclarer un fichier XML (application.xml) pour l'application avec le numéro de version :

<?xml version="1.0" encoding="UTF-8"?>
<application version="1.0">
    ...
</application>

1. Internationalisation

La première chose à faire est de déclarer les langues supportées par l'application. Cela se passe dans la balise i18n du fichier application.xml :

<application>
      <i18n>
            <languages>
                 <fr />
                 <en />
                 <de />
            </languages>
      </i18n>
</application>

Vous pouvez choisir n'importe quelle combinaison de ces 3 langues. Pour le moment, ce sont les seules langues que le core supporte, il n'est donc pas possible d'en utiliser une autre.

Pour ce qui est de l'internationalisation de l'application, on peut définir directement les différentes valeurs dans le fichier application.xml ou utiliser des fichiers d'internationalisation au format i18n.

Dans le premier cas, il faut écrire directement dans le fichier XML :

<i18n>
      ...

      <name>
            <fr>Nom de l'application</fr>
            <en>Name of the application</en>
      </name>
      <author>
            <fr>Auteur de l'application</fr>
            <en>Author of the application</en>
      </author>
      <site>
            <fr>Site web de l'application</fr>
            <en>Website of the application</en>
      </site>
      <email>
            <fr>Email de l'application</fr>
            <en>Email of the application</en>
      </email>
      <copyright>
            <fr>Petit copyright de l'application</fr>
            <en>Little copyright of the application</en>
      </copyright>
</i18n>

A adapter bien sûr en fonction des langues supportées.

Ou alors, on peut utiliser des fichiers d'internationalisation i18n, ce qui est un peu plus propre. Pour cela, il suffit de déclarer la balise <files /> dans le fichier xml :

<i18n>
      ...

      <files />
</i18n>

Ensuite de quoi, il vous faut créer des fichiers d'internationalisation. Le resource bundle doit se nommer application et les fichiers doivent se trouver dans le dossier core/i18n. Voici l'équivalent de la première technique :

Fichier application_fr.properties :

name=Nom de l'application
author=Auteur de l'application
site=Site web de l'application
email=Email de l'application
copyright=Petit copyright de l'application

Fichier application_en.properties :

name=Name of the application
author=Author of the application
site=Website of the application
email=Email of the application
copyright=Little copyright of the application

2. Images

Il faut ensuite définir 2 images :

  • Une icône pour les fenêtres
  • Un logo pour l'affichage dans la vue "A propos de".

Par exemple, pour utiliser des fichiers logo.png et icon.png, il faudra faire :

<logo image="logo" type="png"/>
<icon image="icon" type="png"/>

Ces deux images doivent se trouver dans le dossier core/images. Les types d'images supportés sont le png, le gif, le jpg et le jpeg.

3. Licence

Vous pouvez aussi déclarer des options pour la licence du programme. Par défaut, la licence ne sera pas affiché dans la vue "A propos de", pour qu'elle y soit, il faut avoir un fichier texte contenant la licence et le mettre dans le dossier core. Ensuite de quoi, il faut le déclarer dans le fichier application.xml :

<options>
      <licence>Fichier.txt</licence>
</options>

4. Propriétés

La dernière chose qu'il est possible de spécifier pour une application, ce sont des propriétés qui seront ensuite disponibles par les modules. Pour cela, il vous suffit de déclarer des éléments dans la balise properties du fichier application.xml :

<properties>
      <property1>Value 1</property1>
      <property2>Value 2</property2>
      <property3>Value 3</property3>
      <debug>all</debug>
</properties>

Vous pourrez ensuite les récupérer dans les modules avec :

String property1 = Core.getApplication().getProperty("property1");