User Tools

Site Tools


doc:fr:appendicec

This is an old revision of the document!


(12/01/2022 traduction en cours - NE PAS UTILISER ! le code JAVA n'a pas encore été contrôlé caractère par caractère)

Guide du développeur

Si vous savez programmer en Java, vous pouvez utiliser JSesh comme bibliothèque pour vos propres programmes.

Obtenir le code

La méthode préférée est d'utiliser git, avec la commande :

git clone https://github.com/rosmord/jsesh.git

Normalement, la branche master contient du code à jour et compilable. C'est le seul que je suggère de cloner. D'autres branches sont

  • production : corrections en cours et petits changements, qui seront appliqués à la branche master. C'est un travail en cours, alors ne vous attendez pas à ce qu'il compile tout le temps.
  • développement : travail en cours pour la prochaine version de JSesh
  • jfx-test : quelques travaux pour voir comment adapter JSesh à Java FX.

Compilation du code

c'est

  mvn installer

Avant cela, vous pouvez choisir la version de JSesh que vous souhaitez compiler. Diverses versions sont étiquetées. Alors, vous pourriez faire quelque chose comme

  git checkout version-5.3
  mvn propre installer

pour compiler JSesh version 5.3. toutes les balises peuvent être répertoriées en tapant

  balise git

Ensuite, vous pouvez utiliser les bibliothèques JSesh dans votre programme en les référençant dans votre pom.xml. Par exemple:

<dépendance>
  <groupId>org.qenherkhopeshef</groupId>
    <artifactId>jseshGlyphs</artifactId>
    <version>5.3</version>
  </dépendance>
  <dépendance>
    <groupId>org.qenherkhopeshef</groupId>
    <artifactId>jsesh</artifactId>
    <version>5.3</version>
  </dépendance>
  <dépendance>
  <groupId>org.qenherkhopeshef</groupId>
    <artifactId>qenherkhopeshefUtils</artifactId>
    <version>5.3</version>
  </dépendance>

Notez qu'à partir de JSesh 6.7, le groupId sera remplacé par

    <groupId>org.qenherkhopeshef.jsesh</groupId>

afin de simplifier la gestion des dépôts maven (je veux pouvoir supprimer facilement toutes les anciennes versions de JSesh avec un simple rm sur mon ordinateur)

Si vous voulez *exécuter* JSesh, le module est jseshAppli. La dernière version de jsesh-installer fournit deux dossiers, un pour Mac et un pour Windows, avec des distributions presque prêtes - la fin de la construction de la production est actuellement manuelle, voir README.md à la racine du projet JSesh.

Comment faire

Ajouter un champ d'édition hiéroglyphique dans une interface SWING

En fait, c'est assez facile à faire. Vous devez avoir jsesh.jar dans votre chemin de classe, et probablement aussi jseshGlyphs.jar si vous voulez les polices complètes. Ensuite, avoir un champ hiéroglyphique dans votre application est aussi simple que :

// Le package peut changer un jour dans un (loin) avenir.
importer le package jsesh.mdcDisplayer.swing.editor.* ;
publique MaClasse .... {
   void buildInterface() {
           // Un gros éditeur, mieux placé dans un JScrollPane
           Editeur JMDCEditor= new JMDCEditor();
           // Un éditeur de type TextField
           JMDCField mdcField= new JMDCField();
    }
}

Maintenant, vous pouvez manipuler le texte directement via la classe HieroglyphicTextModel, qui représente le texte sous forme de liste d'objets, ou, si vous n'avez besoin que de fonctionnalités simples, utilisez les méthodes setMDCText(String mdc) et getMDCText() pour définir et récupérer le contenu du champ en tant que “Manuel de codage”.

Vous pouvez interdire l'édition du texte avec “setEditable(false)

Une chose qui manque actuellement dans les bibliothèques (mais qui devrait être corrigée bientôt) est un moyen de diriger facilement les informations de la palette vers divers widgets JSesh (cela peut être fait avec la structure globale, mais ce n'est pas automatique du tout).

Produire une image bitmap à partir d'un texte MDC

Il existe un certain nombre de raisons pour lesquelles vous pouvez souhaiter produire une image à partir d'un texte MDC. Par exemple, vous pouvez utiliser JSesh comme bibliothèque dans une application Web.

Bien sûr, vous devez avoir à la fois jsesh.jar et jseshGlyphs.jar dans votre chemin de classe. Actuellement (JSesh 2.13.7), vous avez également besoin de jvectClipboard-1.0.jar, mais c'est une dépendance que je supprimerai dans peu de temps. Vous aurez besoin de jvectClipboard-1.0.jar si vous souhaitez produire du SVG, WMF ou similaire. Ensuite, le code Java suivant fera l'affaire :

    public static BufferedImage buildImage (String mdcText) lève MDCSyntaxError {
            // Créer le système de dessin :
            Dessin MDCDrawingFacade = new MDCDrawingFacade();
           // Créer l'image
           Résultat BufferedImage = drawing.createImage(mdcText);
           résultat de retour
}

C'est tout. Une fois que vous avez une BufferedImage, elle peut être affichée à l'écran ou écrite en JPEG ou PNG en utilisant ImageIO.

En option, il est possible de personnaliser le rendu. Voici un exemple complet prêt à l'emploi :

 /**
 * Comment utiliser JSesh pour créer des bitmaps en Java.
 * compiler : javac -cp .:/FOLDER_CONTAINING/jsesh.jar TestJSeshBitmap.java
 * exécuter : java -cp .:/FOLDER_CONTAINING/jsesh.jar TestJSeshBitmap
 *
 * jseshGlyphs.jar et jvectClipboard-1.0.jar doivent se trouver dans le même dossier que jsesh.jar.
 * (normalement, il n'est pas nécessaire de les ajouter explicitement au chemin de classe, car jsesh.jar contient les
 * informations dans son manifeste.
 */
 
importer javax.imageio.ImageOI ;
importer java.io.*;
importer java.awt.image.* ;
importer jsesh.mdcDisplayer.preferences.*;
importer jsesh.mdcDisplayer.draw.*;
importer jsesh.mdc.*;
 
Test de classe publique {
    public static BufferedImage buildImage (String mdcText) lève MDCSyntaxError {
        // Créer le système de dessin :
        Dessin MDCDrawingFacade = new MDCDrawingFacade();
        // Changer l'échelle, en choisissant la hauteur du cadrat en pixels.
        dessin.setCadratHeight(60);
        // Changer un certain nombre de paramètres
        DrawingSpecification drawingSpecifications = new DrawingSpecificationsImplementation();
        PageLayout pageLayout= new PageLayout();
        pageLayout.setLeftMargin(5) ;
        pageLayout.setTopMargin(5) ;
        dessinSpécifications.setPageLayout(pageLayout);
        drawing.setDrawingSpecifications(drawingSpecifications);
        // Créer l'image
       Résultat BufferedImage = drawing.createImage(mdcText);
       renvoyer le résultat ;
    }
 
public static void main(String args[]) lève MDCSyntaxError, IOException {
              // Créer l'image
              BufferedImage img= buildImage("i-w-r:a-C1-m-p*t:pt");
              Fichier f = nouveau Fichier("example.png");
              // enregistrez-le en png (mieux que jpeg dans ce cas)
              ImageIO.write(img, "png", f);
  }
}

La taille des signes est contrôlée à l'aide de 'drawing.setCadratHeight();'. (note à moi-même : il devrait être plus facile de changer la taille de tout en utilisant la spécification de dessin !!!)

doc/fr/appendicec.1641996861.txt.gz · Last modified: 2022/01/12 15:14 by dmorandi