X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.plugin.core%2Fsrc%2Fnet%2Fmograsim%2Fplugin%2Fnature%2FMachineContext.java;h=f3965f2a3976874e22a8f25de0273937adcff4a3;hb=b5d55c59d7069171bd928e4a945d9185ee4bc2b0;hp=1be6b2aa5ce674736af4654d6a19c23d30968eea;hpb=bf6c463d40e426d2d13936e25f9f38a399a9b769;p=Mograsim.git diff --git a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/MachineContext.java b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/MachineContext.java index 1be6b2aa..f3965f2a 100644 --- a/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/MachineContext.java +++ b/plugins/net.mograsim.plugin.core/src/net/mograsim/plugin/nature/MachineContext.java @@ -40,10 +40,12 @@ public class MachineContext final ScopedPreferenceStore prefs; Optional machineId = Optional.empty(); Optional machineDefinition = Optional.empty(); + @Deprecated(forRemoval = true) Optional activeMachine = Optional.empty(); private MachineContextStatus status = UNKOWN; + @Deprecated(forRemoval = true) private final Set machineListeners = new HashSet<>(); private final Set stateListeners = new HashSet<>(); @@ -86,6 +88,7 @@ public class MachineContext /** * Returns true if a machine is instantiated and (possibly) running */ + @Deprecated(forRemoval = true) public final boolean isActive() { return status == ACTIVE || status == ACTIVE_CHANGED; @@ -120,11 +123,13 @@ public class MachineContext /** * Sets the active machine in the {@link MachineContext}'s project scope. */ + @Deprecated(forRemoval = true) public final void setActiveMachine(Machine machine) { + Optional oldMachine = activeMachine; activeMachine = Optional.ofNullable(machine); updateStatus(); - notifyActiveMachineListeners(); + notifyActiveMachineListeners(oldMachine, activeMachine); } public final Optional getMachineId() @@ -137,6 +142,7 @@ public class MachineContext return machineDefinition; } + @Deprecated(forRemoval = true) public final Optional getActiveMachine() { // activateMachine(); // TODO is this the best way to deal with this? @@ -149,6 +155,7 @@ public class MachineContext * * @return true if the activation was successful */ + @Deprecated(forRemoval = true) public final boolean activateMachine() { if (status == ACTIVE) @@ -187,6 +194,7 @@ public class MachineContext * * @return the raw status of the project at the time of the call. */ + @SuppressWarnings("removal") public final MachineContextStatus reevaluateStatus() { if (!owner.exists()) @@ -204,12 +212,14 @@ public class MachineContext return ACTIVE; } + @Deprecated(forRemoval = true) private void doPostStatusChangedAction() { if ((status == DEAD || status == CLOSED) && activeMachine.isPresent()) { + Optional oldMachine = activeMachine; activeMachine = Optional.empty(); - notifyActiveMachineListeners(); + notifyActiveMachineListeners(oldMachine, activeMachine); } } @@ -235,6 +245,11 @@ public class MachineContext return; machineId = newMachineDefinitionId; machineDefinition = machineId.map(MachineRegistry::getMachine); + if (machineDefinition.isEmpty() && newMachineDefinitionId.isPresent()) + { + // TODO open a dialog + System.err.println("Machine definition for ID " + newMachineDefinitionId.get() + " not found"); + } updateStatus(); ProjectMachineContext.notifyListeners(new ProjectContextEvent(this, ProjectContextEventType.MACHINE_DEFINITION_CHANGE)); } @@ -247,17 +262,20 @@ public class MachineContext } } - private void notifyActiveMachineListeners() + @Deprecated(forRemoval = true) + private void notifyActiveMachineListeners(Optional oldMachine, Optional newMachine) { - machineListeners.forEach(ob -> ob.setMachine(activeMachine)); + machineListeners.forEach(ob -> ob.setMachine(oldMachine, newMachine)); } + @Deprecated(forRemoval = true) public void addActiveMachineListener(ActiveMachineListener ob) { machineListeners.add(ob); - ob.setMachine(activeMachine); + ob.setMachine(Optional.empty(), activeMachine); } + @Deprecated(forRemoval = true) public void removeActiveMachineListener(ActiveMachineListener ob) { machineListeners.remove(ob); @@ -280,9 +298,10 @@ public class MachineContext } @FunctionalInterface + @Deprecated(forRemoval = true) public static interface ActiveMachineListener { - void setMachine(Optional machine); + void setMachine(Optional oldMachine, Optional newMachine); } @FunctionalInterface