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.