Le point d'accès à la bibliothèque JAR est une classe qui étend la classe Library
. La principale tâche de la bibliothèque est de dresser la liste des outils disponibles dans la bibliothèque ; le plus souvent, les outils sont tous des outils permettant d'ajouter les différents composants définis - c'est-à-dire des instances de la classe AddTool
fonctionnant avec différentes 'factories' de composants.
package com.cburch.gray; import java.util.Arrays; import java.util.List; import com.cburch.logisim.tools.AddTool; import com.cburch.logisim.tools.Library; /** La bibliothèque de composants à laquelle l'utilisateur peut accéder. */ public class Components extends Library { //** * Identifiant unique de la bibliothèque, utilisé comme référence dans les fichiers de projet. * Ne PAS modifier car cela peu empêcher le chargement des fichiers de projet. * * La valeur de l'identifiant doit être une chaîne unique parmi toutes les bibliothèques. */ public static final String _ID = "Components"; /** La liste de tous les outils contenus dans cette bibliothèque. * Techniquement, les bibliothèques contiennent des outils, ce qui est * un concept un peu plus général que les composants ; en pratique, * cependant, vous voudrez le plus souvent créer des AddTools pour * les nouveaux composants qui peuvent être ajoutés au circuit. */ private List<AddTool> tools; /** Construit une instance de cette bibliothèque. C'est par ce * constructeur que Logisim accède en premier lorsqu'il ouvre * le fichier JAR : Il recherche une méthode de construction * sans argument de la classe désignée par l'utilisateur. */ public Components() { tools = Arrays.asList(new AddTool[] { new AddTool(new GrayIncrementer()), new AddTool(new SimpleGrayCounter()), new AddTool(new GrayCounter()), }); } /** Renvoie le nom de la bibliothèque que l'utilisateur verra. */ public String getDisplayName() { return "Gray Tools"; } /** Renvoie une liste de tous les outils disponibles dans cette * bibliothèque. */ public List<AddTool> getTools() { return tools; } }
Suite : Simple Gray Code Counter.