Класс Library
Точкой входа для подключаемой JAR-библиотеки является класс, наследующий класс Library. Основная задача этого класса — перечислить инструменты, предоставляемые данной библиотекой. В большинстве случаев все они представляют собой инструменты для добавления различных компонентов на схему, то есть являются экземплярами класса AddTool, связанными с соответствующими фабриками компонентов.
Класс 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;
/** Библиотека компонентов, к которой пользователь получает доступ. */
public class Components extends Library {
/** Список всех инструментов, содержащихся в этой библиотеке. Технически,
* библиотеки хранят инструменты (tools), что является чуть более общим
* понятием, чем компоненты. На практике же чаще всего создаются
* объекты AddTool для новых компонентов, которые можно добавлять на холст.
*/
private List<AddTool> tools;
/** Создаёт экземпляр этой библиотеки. Данный конструктор вызывается
* средой Logisim-evolution в первую очередь при открытии JAR-файла:
* программа ищет конструктор без аргументов у указанного пользователем класса.
*/
public Components() {
tools = Arrays.asList(new AddTool[] {
new AddTool(new GrayIncrementer()),
new AddTool(new SimpleGrayCounter()),
new AddTool(new GrayCounter()),
});
}
/** Возвращает отображаемое имя библиотеки, которое увидит пользователь. */
public String getDisplayName() {
return "Gray Tools";
}
/** Возвращает список всех инструментов, доступных в этой библиотеке. */
public List<AddTool> getTools() {
return tools;
}
}
Далее: Простой счётчик кода Грея.