https://github.com/foxesworld/foxesengine
An Engine that is used for FoxesLauncher LTS
https://github.com/foxesworld/foxesengine
dev engine foxesworld framework java swing swing-suite ui
Last synced: 6 months ago
JSON representation
An Engine that is used for FoxesLauncher LTS
- Host: GitHub
- URL: https://github.com/foxesworld/foxesengine
- Owner: FoxesWorld
- Created: 2024-02-26T10:57:35.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2025-08-28T06:11:56.000Z (8 months ago)
- Last Synced: 2025-08-28T08:27:24.919Z (8 months ago)
- Topics: dev, engine, foxesworld, framework, java, swing, swing-suite, ui
- Language: Java
- Homepage:
- Size: 19.7 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FoxEngine
### Как использовать?
Для начала создаем класс и наследуемся от `org.foxesworld.engine.Engine`.
После наследования конструктор вашего класса должен вызывать супер-класс со следующими аргументами:
```java
super(poolSize, worker, configFiles);
```
#### Аргументы
| Аргумент | Тип | Описание |
| ----------- | ----------------------- | ------------------------------------------------ |
| poolSize | int | Размер пула потоков для многопоточной работы |
| worker | String | Имя рабочего |
| configFiles | Map\> | Коллекция с именами и POJO классами конфигурации |
#### Методы, которые нужно реализовать
| Метод | Описание |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| preInit() | Предварительная инициализация |
| init() | Инициализация |
| postInit() | Постинициализация |
| onPanelsBuilt() | Вызывается при построении всех панелей |
| onAdditionalPanelBuild(JPanel panel) | Вызывается при построении каждой дополнительной панели |
| onGuiBuilt() | Вызывается при завершении построения UI |
| onPanelBuild(Map\ panels, String componentGroup, Container parentPanel) | Вызывается при построении каждой панели |
| actionPerformed(ActionEvent e) | Вызывается при совершении действия |
| updateFocus(boolean hasFocus) | Вызывается при получении фокуса окном (или его потере) |
### Базовая реализация
Для построения UI нужен метод, он принимает массив стилей компонентов:
```java
private void buildGui(String[] styles) {
setStyleProvider(new StyleProvider(styles));
setGuiBuilder(new GuiBuilder(this));
getGuiBuilder().getComponentFactory().setComponentFactoryListener(new InitialValue(this)); //Регистрация слушателя, который вызывается при создании каждого компонента для установки базового значения
getGuiBuilder().addGuiBuilderListener(this);
getGuiBuilder().buildGuiAsync(fileProperties.getFrameTpl(), getFrame().getRootPanel());
this.setIconUtils(new IconUtils(this));
}
```
Пример базовой реализации есть в файле `org.foxesworld.engine.Test`