package fabrik.simulator.pic16f84;

import fabrik.simulator.pic16f84.interfaces.*;

public class Main {
    private static final PICComponentLocator picComponents = new PICComponentLocator(); // Subjekt

    public static void main(String[] args) {
        Commands commands = new Commands();
        picComponents.registerComponent(CommandInterface.class, commands);
        picComponents.registerComponent(ExecutionTimeSubject.class, commands);
        picComponents.registerComponent(DataRegisterInterface.class, new DataRegister());
        picComponents.registerComponent(EEPROMInterface.class, new EEPROM());
        picComponents.registerComponent(InterruptInterface.class, new Interrupts());
        picComponents.registerComponent(PreScalerInterface.class, new PreScaler());
        picComponents.registerComponent(ProgramStackInterface.class, new ProgramStack());
        picComponents.registerComponent(TimerInterface.class, new Timer());
        picComponents.registerComponent(WatchdogTimerInterface.class, new WatchdogTimer());
        CreateWindow window = new CreateWindow();
        picComponents.registerComponent(WindowManagement.class, window);
        picComponents.initAll();

        window.startFromMain(new String[]{});
    }
}
