X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fmodel%2Fcomponents%2Fatomic%2FModelManualSwitch.java;h=cf9735aebe524e131deab3519b43b4a8d08e6815;hb=0c97f70d199e1ffcd2bc13817f7bb12867ba033e;hp=7a995041aa919061acd38ca003ad12955a3bff36;hpb=58babf45ae7d259a296656451d796dbe601377a4;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java index 7a995041..cf9735ae 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java @@ -19,6 +19,7 @@ import net.mograsim.logic.model.modeladapter.LogicCoreAdapter; import net.mograsim.logic.model.modeladapter.componentadapters.ManualSwitchAdapter; import net.mograsim.logic.model.serializing.IdentifyParams; import net.mograsim.logic.model.serializing.IndirectModelComponentCreator; +import net.mograsim.logic.model.snippets.HighLevelStateHandler; import net.mograsim.preferences.Preferences; public class ModelManualSwitch extends ModelComponent @@ -48,6 +49,49 @@ public class ModelManualSwitch extends ModelComponent setSize(width, height); addPin(this.outputPin = new Pin(model, this, "", logicWidth, PinUsage.OUTPUT, width, height / 2)); + setHighLevelStateHandler(new HighLevelStateHandler() + { + @Override + public Object getHighLevelState(String stateID) + { + switch (stateID) + { + case "out": + if (manualSwitch != null) + return manualSwitch.getValues(); + return null; + default: + throw new IllegalArgumentException("No high level state with ID " + stateID); + } + } + + @Override + public void setHighLevelState(String stateID, Object newState) + { + switch (stateID) + { + case "out": + if (manualSwitch != null) + manualSwitch.setState((BitVector) newState); + break; + default: + throw new IllegalArgumentException("No high level state with ID " + stateID); + } + } + + @Override + public String getIDForSerializing(IdentifyParams idParams) + { + return null; + } + + @Override + public Object getParamsForSerializing(IdentifyParams idParams) + { + return null; + } + }); + init(); } @@ -108,35 +152,6 @@ public class ModelManualSwitch extends ModelComponent return manualSwitch != null; } - @Override - public Object getHighLevelState(String stateID) - { - switch (stateID) - { - case "out": - if (manualSwitch != null) - return manualSwitch.getValues(); - return null; - default: - return super.getHighLevelState(stateID); - } - } - - @Override - public void setHighLevelState(String stateID, Object newState) - { - switch (stateID) - { - case "out": - if (manualSwitch != null) - manualSwitch.setState((BitVector) newState); - break; - default: - super.setHighLevelState(stateID, newState); - break; - } - } - @Override public boolean clicked(double x, double y) {