diff --git a/.idea/misc.xml b/.idea/misc.xml index 0b4fa18..c4f391f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -13,7 +13,7 @@ - + \ No newline at end of file diff --git a/src/main/java/fabrik/simulator/pic16f84/Commands.java b/src/main/java/fabrik/simulator/pic16f84/Commands.java index 7fab199..f34645b 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Commands.java +++ b/src/main/java/fabrik/simulator/pic16f84/Commands.java @@ -588,7 +588,7 @@ public class Commands extends PICComponent implements CommandInterface { @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java index 45ff56e..33adadc 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java +++ b/src/main/java/fabrik/simulator/pic16f84/Controller_Frontend.java @@ -3,7 +3,6 @@ package fabrik.simulator.pic16f84; import com.gluonhq.charm.glisten.control.ToggleButtonGroup; import fabrik.simulator.pic16f84.interfaces.*; -import fabrik.simulator.pic16f84.interfaces.WatchdogTimerInterface; import javafx.application.Platform; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -42,7 +41,7 @@ public class Controller_Frontend extends PICComponent implements FrontendControl private int [] prog; private int [][] read; private int [] ind; - private PICComponents picComponents; + private PICComponentLocator picComponents; private boolean isBreakpointReached = false; @@ -553,9 +552,9 @@ public class Controller_Frontend extends PICComponent implements FrontendControl } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); - this.picComponents = picComponents; + public void initialize(PICComponentLocator locator) { + super.initialize(locator); + this.picComponents = locator; System.out.println("Frontend"); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java b/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java index c8263e3..a9fe284 100644 --- a/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java +++ b/src/main/java/fabrik/simulator/pic16f84/CreateWindow.java @@ -4,11 +4,9 @@ import fabrik.simulator.pic16f84.interfaces.*; import javafx.application.Application; import javafx.fxml.FXMLLoader; -import javafx.scene.Node; import javafx.scene.Parent; import javafx.scene.Scene; -import javafx.scene.control.Tab; import javafx.scene.layout.GridPane; import javafx.scene.layout.VBox; import javafx.stage.Stage; @@ -17,7 +15,7 @@ import java.io.IOException; import java.util.Objects; public class CreateWindow extends Application { - private PICComponents picComponents = new PICComponents(); // Subjekt + private PICComponentLocator picComponents = new PICComponentLocator(); // Subjekt public static GridPane grid = new GridPane(); private static VBox table; @@ -40,6 +38,7 @@ public class CreateWindow extends Application { FXMLLoader codewindow = new FXMLLoader(CreateWindow.class.getResource("frontend.fxml")); codewindow.setController(picComponents.getComponent(FrontendControllerInterface.class)); Parent code = codewindow.load(); + table = Table.init(picComponents); grid.add(table, 1, 1); grid.add(code, 0, 1); diff --git a/src/main/java/fabrik/simulator/pic16f84/DataRegister.java b/src/main/java/fabrik/simulator/pic16f84/DataRegister.java index 42a7245..a88328e 100644 --- a/src/main/java/fabrik/simulator/pic16f84/DataRegister.java +++ b/src/main/java/fabrik/simulator/pic16f84/DataRegister.java @@ -39,8 +39,8 @@ public class DataRegister extends PICComponent implements DataRegisterInterface } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); System.out.println("DataRegister.\n"); initOrReset(); } diff --git a/src/main/java/fabrik/simulator/pic16f84/EEPROM.java b/src/main/java/fabrik/simulator/pic16f84/EEPROM.java index 19791a1..747b76f 100644 --- a/src/main/java/fabrik/simulator/pic16f84/EEPROM.java +++ b/src/main/java/fabrik/simulator/pic16f84/EEPROM.java @@ -1,7 +1,6 @@ package fabrik.simulator.pic16f84; -import eu.hansolo.tilesfx.Command; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; @@ -173,7 +172,7 @@ public class EEPROM extends PICComponent implements EEPROMInterface { } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/EmptyRegister.java b/src/main/java/fabrik/simulator/pic16f84/EmptyRegister.java index 535b694..6a31434 100644 --- a/src/main/java/fabrik/simulator/pic16f84/EmptyRegister.java +++ b/src/main/java/fabrik/simulator/pic16f84/EmptyRegister.java @@ -145,7 +145,7 @@ public class EmptyRegister implements DataRegisterInterface { } @Override - public void initialize(PICComponents picComponents) { + public void initialize(PICComponentLocator picComponents) { } } diff --git a/src/main/java/fabrik/simulator/pic16f84/IOPorts.java b/src/main/java/fabrik/simulator/pic16f84/IOPorts.java index d723dc6..f8f675e 100644 --- a/src/main/java/fabrik/simulator/pic16f84/IOPorts.java +++ b/src/main/java/fabrik/simulator/pic16f84/IOPorts.java @@ -227,8 +227,8 @@ public class IOPorts extends PICComponent implements IOPortInterface { } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); System.out.println("IOPorts.\n"); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/Interrupts.java b/src/main/java/fabrik/simulator/pic16f84/Interrupts.java index d734b1c..8561389 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Interrupts.java +++ b/src/main/java/fabrik/simulator/pic16f84/Interrupts.java @@ -1,9 +1,5 @@ package fabrik.simulator.pic16f84; -import eu.hansolo.tilesfx.Command; -import fabrik.simulator.pic16f84.interfaces.CommandInterface; -import fabrik.simulator.pic16f84.interfaces.DataRegisterInterface; -import fabrik.simulator.pic16f84.interfaces.FrontendControllerInterface; import fabrik.simulator.pic16f84.interfaces.InterruptInterface; public class Interrupts extends PICComponent implements InterruptInterface { @@ -66,7 +62,7 @@ public class Interrupts extends PICComponent implements InterruptInterface { @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/PICComponent.java b/src/main/java/fabrik/simulator/pic16f84/PICComponent.java index f5fe00e..c1c70ab 100644 --- a/src/main/java/fabrik/simulator/pic16f84/PICComponent.java +++ b/src/main/java/fabrik/simulator/pic16f84/PICComponent.java @@ -9,27 +9,23 @@ public abstract class PICComponent { IOPortInterface ioPorts; TimerInterface timer; InterruptInterface interrupts; - //TableInterface table; - //WindowManagement createWindow; FrontendControllerInterface frontendController; WatchdogTimerInterface watchdogTimer; ProgramStackInterface programStack; CommandInterface commands; ToggleButtonInterface toggleButtonExt; - void initialize(PICComponents picComponents) { - toggleButtonExt = (ToggleButtonInterface) picComponents.getComponent(ToggleButtonInterface.class); - dataRegister = (DataRegisterInterface) picComponents.getComponent(DataRegisterInterface.class); - eeprom = (EEPROMInterface) picComponents.getComponent(EEPROMInterface.class); - ioPorts = (IOPortInterface) picComponents.getComponent(IOPortInterface.class); - preScaler = (PreScalerInterface) picComponents.getComponent(PreScalerInterface.class); - timer = (TimerInterface) picComponents.getComponent(TimerInterface.class); - interrupts = (InterruptInterface) picComponents.getComponent(InterruptInterface.class); - //table = (TableInterface) picComponents.getComponent(TableInterface.class); - //createWindow = (WindowManagement) picComponents.getComponent(WindowManagement.class); - frontendController = (FrontendControllerInterface) picComponents.getComponent(FrontendControllerInterface.class); - watchdogTimer = (WatchdogTimerInterface) picComponents.getComponent(WatchdogTimerInterface.class); - programStack = (ProgramStackInterface) picComponents.getComponent(ProgramStackInterface.class); - commands = (CommandInterface) picComponents.getComponent(CommandInterface.class); + void initialize(PICComponentLocator locator) { + toggleButtonExt = locator.getComponent(ToggleButtonInterface.class); + dataRegister = locator.getComponent(DataRegisterInterface.class); + eeprom = locator.getComponent(EEPROMInterface.class); + ioPorts = locator.getComponent(IOPortInterface.class); + preScaler = locator.getComponent(PreScalerInterface.class); + timer = locator.getComponent(TimerInterface.class); + interrupts = locator.getComponent(InterruptInterface.class); + frontendController = locator.getComponent(FrontendControllerInterface.class); + watchdogTimer = locator.getComponent(WatchdogTimerInterface.class); + programStack = locator.getComponent(ProgramStackInterface.class); + commands = locator.getComponent(CommandInterface.class); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/PICComponents.java b/src/main/java/fabrik/simulator/pic16f84/PICComponentLocator.java similarity index 67% rename from src/main/java/fabrik/simulator/pic16f84/PICComponents.java rename to src/main/java/fabrik/simulator/pic16f84/PICComponentLocator.java index e40062f..5b5395a 100644 --- a/src/main/java/fabrik/simulator/pic16f84/PICComponents.java +++ b/src/main/java/fabrik/simulator/pic16f84/PICComponentLocator.java @@ -4,10 +4,11 @@ import fabrik.simulator.pic16f84.interfaces.*; import java.util.HashMap; -public class PICComponents { +public class PICComponentLocator { + // https://en.wikipedia.org/wiki/Service_locator_pattern private final HashMap, PICComponentInterface> componentCatalogue; - public PICComponents() { + public PICComponentLocator() { super(); this.componentCatalogue = new HashMap<>(); } @@ -16,8 +17,9 @@ public class PICComponents { this.componentCatalogue.put(componentClass, component); } - public PICComponentInterface getComponent(Class componentClass) { - return this.componentCatalogue.get(componentClass); + public T getComponent(Class componentClass) { + T component = (T) this.componentCatalogue.get(componentClass); + return component; } public void initAll() { diff --git a/src/main/java/fabrik/simulator/pic16f84/PreScaler.java b/src/main/java/fabrik/simulator/pic16f84/PreScaler.java index a54909f..f374f3e 100644 --- a/src/main/java/fabrik/simulator/pic16f84/PreScaler.java +++ b/src/main/java/fabrik/simulator/pic16f84/PreScaler.java @@ -54,7 +54,7 @@ public class PreScaler extends PICComponent implements PreScalerInterface { } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/ProgramStack.java b/src/main/java/fabrik/simulator/pic16f84/ProgramStack.java index 0ee1725..b81b576 100644 --- a/src/main/java/fabrik/simulator/pic16f84/ProgramStack.java +++ b/src/main/java/fabrik/simulator/pic16f84/ProgramStack.java @@ -48,7 +48,7 @@ public class ProgramStack extends PICComponent implements ProgramStackInterface } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/Table.java b/src/main/java/fabrik/simulator/pic16f84/Table.java index 3e0f734..e00ee18 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Table.java +++ b/src/main/java/fabrik/simulator/pic16f84/Table.java @@ -4,7 +4,6 @@ import fabrik.simulator.pic16f84.interfaces.*; import javafx.beans.property.SimpleStringProperty; import javafx.geometry.Insets; -import javafx.scene.chart.PieChart; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; @@ -46,7 +45,7 @@ public class Table { return s; } - public static VBox init(PICComponents picComponents){ + public static VBox init(PICComponentLocator picComponents){ dataRegister = (DataRegisterInterface) picComponents.getComponent(DataRegisterInterface.class); commands = (CommandInterface) picComponents.getComponent(CommandInterface.class); ioPorts = (IOPortInterface) picComponents.getComponent(IOPortInterface.class); diff --git a/src/main/java/fabrik/simulator/pic16f84/Timer.java b/src/main/java/fabrik/simulator/pic16f84/Timer.java index 168d7f4..45415b8 100644 --- a/src/main/java/fabrik/simulator/pic16f84/Timer.java +++ b/src/main/java/fabrik/simulator/pic16f84/Timer.java @@ -1,8 +1,5 @@ package fabrik.simulator.pic16f84; -import fabrik.simulator.pic16f84.interfaces.DataRegisterInterface; -import fabrik.simulator.pic16f84.interfaces.FrontendControllerInterface; -import fabrik.simulator.pic16f84.interfaces.InterruptInterface; import fabrik.simulator.pic16f84.interfaces.TimerInterface; public class Timer extends PICComponent implements TimerInterface { @@ -67,7 +64,7 @@ public class Timer extends PICComponent implements TimerInterface { } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/ToggleButtonGroupExt.java b/src/main/java/fabrik/simulator/pic16f84/ToggleButtonGroupExt.java index 1871d8a..4868ca9 100644 --- a/src/main/java/fabrik/simulator/pic16f84/ToggleButtonGroupExt.java +++ b/src/main/java/fabrik/simulator/pic16f84/ToggleButtonGroupExt.java @@ -1,7 +1,6 @@ package fabrik.simulator.pic16f84; import com.gluonhq.charm.glisten.control.ToggleButtonGroup; -import fabrik.simulator.pic16f84.interfaces.IOPortInterface; import fabrik.simulator.pic16f84.interfaces.ToggleButtonInterface; import javafx.collections.ListChangeListener; import javafx.event.EventHandler; @@ -59,8 +58,8 @@ public class ToggleButtonGroupExt extends PICComponent implements ToggleButtonIn }; @Override - public void initialize(PICComponents picComponents) { + public void initialize(PICComponentLocator locator) { System.out.println("ToggleButtonGroupExt"); - super.initialize(picComponents); + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/WatchdogTimer.java b/src/main/java/fabrik/simulator/pic16f84/WatchdogTimer.java index e1b3b7f..a2c16b4 100644 --- a/src/main/java/fabrik/simulator/pic16f84/WatchdogTimer.java +++ b/src/main/java/fabrik/simulator/pic16f84/WatchdogTimer.java @@ -53,7 +53,7 @@ public class WatchdogTimer extends PICComponent implements WatchdogTimerInterfac } @Override - public void initialize(PICComponents picComponents) { - super.initialize(picComponents); + public void initialize(PICComponentLocator locator) { + super.initialize(locator); } } diff --git a/src/main/java/fabrik/simulator/pic16f84/interfaces/PICComponentInterface.java b/src/main/java/fabrik/simulator/pic16f84/interfaces/PICComponentInterface.java index 5803db2..763fbb9 100644 --- a/src/main/java/fabrik/simulator/pic16f84/interfaces/PICComponentInterface.java +++ b/src/main/java/fabrik/simulator/pic16f84/interfaces/PICComponentInterface.java @@ -1,7 +1,7 @@ package fabrik.simulator.pic16f84.interfaces; -import fabrik.simulator.pic16f84.PICComponents; +import fabrik.simulator.pic16f84.PICComponentLocator; public interface PICComponentInterface { - void initialize(PICComponents picComponents); + void initialize(PICComponentLocator picComponents); } diff --git a/src/test/java/fabrik/simulator/pic16f84/CommandsTests.java b/src/test/java/fabrik/simulator/pic16f84/CommandsTests.java index a81e121..43d7721 100644 --- a/src/test/java/fabrik/simulator/pic16f84/CommandsTests.java +++ b/src/test/java/fabrik/simulator/pic16f84/CommandsTests.java @@ -9,13 +9,13 @@ import org.junit.jupiter.api.Test; class CommandsTests { - PICComponents picComponents; + PICComponentLocator picComponents; public CommandsTests() {} @BeforeEach void resetComponents() { - picComponents = new PICComponents(); + picComponents = new PICComponentLocator(); } @Test diff --git a/src/test/java/fabrik/simulator/pic16f84/DataRegisterTests.java b/src/test/java/fabrik/simulator/pic16f84/DataRegisterTests.java index b40c794..b72b12e 100644 --- a/src/test/java/fabrik/simulator/pic16f84/DataRegisterTests.java +++ b/src/test/java/fabrik/simulator/pic16f84/DataRegisterTests.java @@ -9,13 +9,13 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.mock; class DataRegisterTests { - PICComponents picComponents; + PICComponentLocator picComponents; public DataRegisterTests() {} @BeforeEach void resetComponents() { - picComponents = new PICComponents(); + picComponents = new PICComponentLocator(); } diff --git a/src/test/java/fabrik/simulator/pic16f84/EEPROMTests.java b/src/test/java/fabrik/simulator/pic16f84/EEPROMTests.java index 604cc1a..5f8962c 100644 --- a/src/test/java/fabrik/simulator/pic16f84/EEPROMTests.java +++ b/src/test/java/fabrik/simulator/pic16f84/EEPROMTests.java @@ -20,14 +20,14 @@ import static org.mockito.Mockito.mock; class EEPROMTests { - PICComponents picComponents; + PICComponentLocator picComponents; String savedEEPROM; public EEPROMTests() {} @BeforeEach void resetComponentsAndReadEEPROM() throws IOException { - picComponents = new PICComponents(); + picComponents = new PICComponentLocator(); savedEEPROM = Files.readString(Path.of("eeprom.json")); } diff --git a/src/test/java/fabrik/simulator/pic16f84/WatchDogTimerTests.java b/src/test/java/fabrik/simulator/pic16f84/WatchDogTimerTests.java index d6ee7d6..3b601c4 100644 --- a/src/test/java/fabrik/simulator/pic16f84/WatchDogTimerTests.java +++ b/src/test/java/fabrik/simulator/pic16f84/WatchDogTimerTests.java @@ -10,11 +10,11 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; class WatchDogTimerTests { - private PICComponents picComponents; + private PICComponentLocator picComponents; @BeforeEach void resetComponents() { - picComponents = new PICComponents(); + picComponents = new PICComponentLocator(); } @Test