Library Class

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.

Components

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.