JSesh 8 est une réécriture majeure. La compatibilité de l'API avec le code ancien n'était pas un objectif : vous devrez donc mettre à jour le code qui utilise JSesh comme bibliothèque. Cette page liste les principaux changements. Le guide JSesh 8 décrit en détail la nouvelle API.
./gradlew build) au lieu de Maven.org.qenherkhopeshef.jsesh. Les anciennes versions utilisaient org.qenherkhopeshef (voir le guide JSesh 7)../gradlew publishToMavenLocal. Les projets Gradle comme Maven peuvent les utiliser.Le code est maintenant organisé par domaine. Les classes utilisées dans les exemples de JSesh 7 ont bougé ainsi :
| JSesh 7 | JSesh 8 |
|---|---|
jsesh.mdcDisplayer.swing.editor (JMDCEditor, JMDCField) |
jsesh.ui.editor |
jsesh.mdcDisplayer.draw (MDCDrawingFacade) |
jsesh.render.draw |
jsesh.mdc (MDCSyntaxError) |
jsesh.parser |
TopItemList (le modèle de texte) |
HieroglyphicText (jsesh.model) |
Si un import ne compile pas, la référence rapide donne l'emplacement actuel des principaux points d'entrée.
Les DrawingSpecification et PageLayout, modifiables, sont remplacés par le JSeshStyle immuable, que l'on modifie par un constructeur :
JSesh 7 :
MDCDrawingFacade drawing = new MDCDrawingFacade();
drawing.setCadratHeight(60);
DrawingSpecification drawingSpecifications = new DrawingSpecificationsImplementation();
PageLayout pageLayout = new PageLayout();
pageLayout.setLeftMargin(5);
pageLayout.setTopMargin(5);
drawingSpecifications.setPageLayout(pageLayout);
drawing.setDrawingSpecifications(drawingSpecifications);
BufferedImage result = drawing.createImage(mdcText);
JSesh 8 :
MDCDrawingFacade facade = MDCDrawingFacade.buildDefault();
facade.setCadratHeight(60);
JSeshStyle style = JSeshStyle.DEFAULT.copy()
.geometry(g -> g.leftMargin(5).topMargin(5))
.build();
facade.setStyle(style);
BufferedImage result = facade.createImage(mdcText);
Voir Concepts de base.
Polices, base de signes et glossaire sont maintenant réunis dans un objet HieroglyphResources, construit avec HieroglyphResourcesBuilder. Des composants comme JMDCEditor et JMDCField les acceptent dans leurs constructeurs, ce qui permet de partager les polices. Voir Ressources et polices.
La sortie SVG nécessite la bibliothèque séparée org.qenherkhopeshef:jvectclipboard ; voir le svgExportDemo.