Renamed ViewModel to LogicModel
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 5 Sep 2019 18:17:16 +0000 (20:17 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 5 Sep 2019 18:17:16 +0000 (20:17 +0200)
69 files changed:
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modeldff4_finewe.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelinc12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelnor12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelram5_12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/Modelsel4_12.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904RegCTInstrDecode.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2904/ModelAm2904ShiftInstrDecode.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910InstrPLA.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910RegCntr.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/components/am2910/ModelAm2910SP.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/am2900/machine/Am2900Machine.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ModelComponentTestbench.java
net.mograsim.logic.model.am2900/src/net/mograsim/logic/model/examples/ReserializeJSONsSettingUsages.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2901/Am2901Testbench.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2904/Am2904Testbench.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/am2910/Am2910Testbench.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/SwitchWithDisplay.java
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/util/TestEnvironmentHelper.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/HandleManager.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/WireHandle.java
net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java
net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIRenderer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUIStandaloneGUI.java
net.mograsim.logic.model/src/net/mograsim/logic/model/SimpleLogicUIStandalone.java
net.mograsim.logic.model/src/net/mograsim/logic/model/examples/ClickableSubmodelComponentsTest.java
net.mograsim.logic.model/src/net/mograsim/logic/model/examples/RSLatchExample.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModelModifiable.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java [deleted file]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java [deleted file]
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/ModelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelAndGate.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelBitDisplay.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelClock.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelFixedOutput.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelManualSwitch.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelMerger.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNandGate.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelNotGate.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelOrGate.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelSplitter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTextComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/ModelTriStateBuffer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularHardcodedModelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/SimpleRectangularModelGate.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SimpleRectangularSubmodelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelInterface.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWire.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/ModelWireCrossPoint.java
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/Pin.java
net.mograsim.logic.model/src/net/mograsim/logic/model/modeladapter/LogicCoreAdapter.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/DeserializedSubmodelComponent.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectModelComponentCreator.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LegacySubmodelComponentSerializer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LogicModelParams.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LogicModelSerializer.java [new file with mode: 0644]
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentParams.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/SubmodelComponentSerializer.java
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelParams.java [deleted file]
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java [deleted file]
net.mograsim.logic.model/src/net/mograsim/logic/model/util/ModellingTool.java
net.mograsim.machine/src/net/mograsim/machine/Machine.java
net.mograsim.machine/src/net/mograsim/machine/standard/memory/ModelMemoryWA.java
net.mograsim.plugin.core/src/net/mograsim/plugin/SimulationPreview.java

index 954d5c0..a3ec2f5 100644 (file)
@@ -11,7 +11,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class Modeldff12 extends SimpleRectangularHardcodedModelComponent
 {
-       public Modeldff12(ViewModelModifiable model, String name)
+       public Modeldff12(LogicModelModifiable model, String name)
        {
                super(model, "dff12", name, "D flip flop\n12 bits");
                setSize(40, 20);
index eb49666..5b565ad 100644 (file)
@@ -13,7 +13,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -22,7 +22,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class Modeldff4_finewe extends SimpleRectangularHardcodedModelComponent
 {
-       public Modeldff4_finewe(ViewModelModifiable model, String name)
+       public Modeldff4_finewe(LogicModelModifiable model, String name)
        {
                super(model, "dff4_finewe", name, "D flip flop\n4 bits");
                setSize(35, 90);
index 0ba3404..7979ae3 100644 (file)
@@ -11,7 +11,7 @@ import java.util.Map;
 import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class Modelinc12 extends SimpleRectangularHardcodedModelComponent
 {
-       public Modelinc12(ViewModelModifiable model, String name)
+       public Modelinc12(LogicModelModifiable model, String name)
        {
                super(model, "inc12", name, "Incrementer");
                setSize(40, 20);
index 9ff945d..6ca7b14 100644 (file)
@@ -11,7 +11,7 @@ import java.util.Map;
 import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class Modelnor12 extends SimpleRectangularHardcodedModelComponent
 {
-       public Modelnor12(ViewModelModifiable model, String name)
+       public Modelnor12(LogicModelModifiable model, String name)
        {
                super(model, "nor12", name, "=0");
                setSize(35, 20);
index 6658f81..5be6303 100644 (file)
@@ -15,7 +15,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -24,7 +24,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class Modelram5_12 extends SimpleRectangularHardcodedModelComponent
 {
-       public Modelram5_12(ViewModelModifiable model, String name)
+       public Modelram5_12(LogicModelModifiable model, String name)
        {
                super(model, "ram5_12", name, "RAM\n5 x 12 Bit");
                setSize(40, 40);
index 3d26c19..b13a4d0 100644 (file)
@@ -12,7 +12,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -21,7 +21,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class Modelsel4_12 extends SimpleRectangularHardcodedModelComponent
 {
-       public Modelsel4_12(ViewModelModifiable model, String name)
+       public Modelsel4_12(LogicModelModifiable model, String name)
        {
                super(model, "sel4_12", name, "4-way SEL\n12 bit");
                setSize(80, 40);
index a6ebd2b..999f8bf 100644 (file)
@@ -11,7 +11,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class ModelAm2904RegCTInstrDecode extends SimpleRectangularHardcodedModelComponent
 {
-       public ModelAm2904RegCTInstrDecode(ViewModelModifiable model, String name)
+       public ModelAm2904RegCTInstrDecode(LogicModelModifiable model, String name)
        {
                super(model, "Am2904RegCTInstrDecode", name, "Instruction\ndecode");
                setSize(80, 80);
index 96b6222..74cdd44 100644 (file)
@@ -12,7 +12,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -21,7 +21,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class ModelAm2904ShiftInstrDecode extends SimpleRectangularHardcodedModelComponent
 {
-       public ModelAm2904ShiftInstrDecode(ViewModelModifiable model, String name)
+       public ModelAm2904ShiftInstrDecode(LogicModelModifiable model, String name)
        {
                super(model, "Am2904ShiftInstrDecode", name, "Shift \ninstruction\ndecode");
                setSize(60, 80);
index 5929bc2..414c0a5 100644 (file)
@@ -10,7 +10,7 @@ import java.util.Map;
 import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -19,7 +19,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class ModelAm2910InstrPLA extends SimpleRectangularHardcodedModelComponent
 {
-       public ModelAm2910InstrPLA(ViewModelModifiable model, String name)
+       public ModelAm2910InstrPLA(LogicModelModifiable model, String name)
        {
                super(model, "Am2910InstrPLA", name, "Instr.\nPLA");
                setSize(30, 85);
index 534dea4..193b58b 100644 (file)
@@ -11,7 +11,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class ModelAm2910RegCntr extends SimpleRectangularHardcodedModelComponent
 {
-       public ModelAm2910RegCntr(ViewModelModifiable model, String name)
+       public ModelAm2910RegCntr(LogicModelModifiable model, String name)
        {
                super(model, "Am2910RegCntr", name, "Register/\nCounter");
                setSize(40, 40);
index 60787f0..a4491d2 100644 (file)
@@ -11,7 +11,7 @@ import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.SimpleRectangularHardcodedModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.snippets.symbolrenderers.PinNamesSymbolRenderer.
 
 public class ModelAm2910SP extends SimpleRectangularHardcodedModelComponent
 {
-       public ModelAm2910SP(ViewModelModifiable model, String name)
+       public ModelAm2910SP(LogicModelModifiable model, String name)
        {
                super(model, "Am2910SP", name, "Stack\npointer");
                setSize(40, 30);
index a771947..bf98d73 100644 (file)
@@ -3,8 +3,8 @@ package net.mograsim.logic.model.am2900.machine;
 import net.mograsim.logic.core.components.CoreClock;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.logic.model.model.ViewModel;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModel;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.modeladapter.CoreModelParameters;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
@@ -15,20 +15,20 @@ import net.mograsim.machine.Register;
 public class Am2900Machine implements Machine
 {
        private Am2900MachineDefinition machineDefinition;
-       private ViewModelModifiable viewModel;
+       private LogicModelModifiable logicModel;
        private Timeline timeline;
        private CoreClock clock;
 
        public Am2900Machine(Am2900MachineDefinition am2900MachineDefinition)
        {
                this.machineDefinition = am2900MachineDefinition;
-               viewModel = new ViewModelModifiable();
-               IndirectModelComponentCreator.createComponent(viewModel,
+               logicModel = new LogicModelModifiable();
+               IndirectModelComponentCreator.createComponent(logicModel,
                                "resloader:Am2900Loader:jsonres:net/mograsim/logic/model/am2900/components/ModelAm2900.json");
                CoreModelParameters params = new CoreModelParameters();
                params.gateProcessTime = 50;
                params.wireTravelTime = 10;
-               timeline = LogicCoreAdapter.convert(viewModel, params);
+               timeline = LogicCoreAdapter.convert(logicModel, params);
        }
 
        @Override
@@ -45,9 +45,9 @@ public class Am2900Machine implements Machine
        }
 
        @Override
-       public ViewModel getModel()
+       public LogicModel getModel()
        {
-               return viewModel;
+               return logicModel;
        }
 
        @Override
index 20b25db..38d362e 100644 (file)
@@ -6,7 +6,7 @@ import java.util.List;
 
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
 import net.mograsim.logic.model.am2900.Am2900Loader;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
@@ -23,7 +23,7 @@ public class ModelComponentTestbench
        }
 
        @SuppressWarnings("unused") // for ModelWires being created
-       public static void createTestbench(ViewModelModifiable model)
+       public static void createTestbench(LogicModelModifiable model)
        {
                Am2900Loader.setup();
                ModelComponent comp = IndirectModelComponentCreator.createComponent(model,
index 085cb8f..a102f76 100644 (file)
@@ -12,7 +12,7 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import net.mograsim.logic.model.am2900.Am2900Loader;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.wires.ModelWire;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -52,7 +52,7 @@ public class ReserializeJSONsSettingUsages
                try
                {
                        DeserializedSubmodelComponent comp = (DeserializedSubmodelComponent) IndirectModelComponentCreator
-                                       .createComponent(new ViewModelModifiable(), "jsonfile:" + json.toString());
+                                       .createComponent(new LogicModelModifiable(), "jsonfile:" + json.toString());
                        System.out.println("Reserializing " + json);
                        comp.getSupermodelPins().entrySet().stream().sorted(Comparator.comparing(Entry::getKey)).map(Entry::getValue).forEach(pin ->
                        {
@@ -81,7 +81,7 @@ public class ReserializeJSONsSettingUsages
                comp.removeSubmodelInterface(interfacePin.name);
                comp.addSubmodelInterface(
                                new MovablePin(comp, interfacePin.name, interfacePin.logicWidth, usage, interfacePin.getRelX(), interfacePin.getRelY()));
-               ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
+               LogicModelModifiable submodelModifiable = comp.getSubmodelModifiable();
                wiresConnectedToPin.forEach(w -> new ModelWire(submodelModifiable, w.getPin1(), w.getPin2()));
        }
 }
\ No newline at end of file
index e9ce12a..ef760f1 100644 (file)
@@ -9,7 +9,7 @@ import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
 import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
 import net.mograsim.logic.model.am2900.Am2900Loader;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.atomic.ModelAndGate;
 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
@@ -30,7 +30,7 @@ public class Am2901Testbench
                SimpleLogicUIStandalone.executeVisualisation(Am2901Testbench::createTestbench, Am2901Testbench::beforeRun);
        }
 
-       public static void createTestbench(ViewModelModifiable model)
+       public static void createTestbench(LogicModelModifiable model)
        {
                ModelComponent comp = IndirectModelComponentCreator.createComponent(model, "Am2901");
                ModellingTool tool = ModellingTool.createFor(model);
index 7ead54a..e46561d 100644 (file)
@@ -7,7 +7,7 @@ import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
 import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
 import net.mograsim.logic.model.am2900.Am2900Loader;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
@@ -23,9 +23,9 @@ public class Am2904Testbench
                SimpleLogicUIStandalone.executeVisualisation(Am2904Testbench::create, Am2904Testbench::beforeRun);
        }
 
-       public static void create(ViewModelModifiable model)
+       public static void create(LogicModelModifiable model)
        {
-               // TODO replace with proper ViewModel deserialization
+               // TODO replace with proper LogicModel deserialization
                DeserializedSubmodelComponent testbench = (DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(model,
                                "jsonfile:Am2904Testbench.json", "testbench");
                testbench.setSize(1000, 1000);
index 6185a75..59ac5b1 100644 (file)
@@ -6,7 +6,7 @@ import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
 import net.mograsim.logic.model.SimpleLogicUIStandalone.VisualisationObjects;
 import net.mograsim.logic.model.am2900.Am2900Loader;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.Orientation;
 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
@@ -25,7 +25,7 @@ public class Am2910Testbench
        }
 
        @SuppressWarnings("unused") // for ModelWires being created
-       public static void create(ViewModelModifiable model)
+       public static void create(LogicModelModifiable model)
        {
                ModelComponent am2910 = IndirectModelComponentCreator.createComponent(model, "Am2910", "Am2910");
                ModelClock C = new ModelClock(model, new ModelClockParams(1000, Orientation.RIGHT));
index 2726154..c085c52 100644 (file)
@@ -3,7 +3,7 @@ package net.mograsim.logic.model.am2900.util;
 import net.mograsim.logic.core.components.CoreBitDisplay;
 import net.mograsim.logic.core.components.CoreManualSwitch;
 import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -16,7 +16,7 @@ public class SwitchWithDisplay
        private final ModelBitDisplay modelBitDisplay;
        private final ModelManualSwitch modelManualSwitch;
 
-       public SwitchWithDisplay(ViewModelModifiable model, Pin target)
+       public SwitchWithDisplay(LogicModelModifiable model, Pin target)
        {
                pin = target;
                modelBitDisplay = new ModelBitDisplay(model, pin.logicWidth);
index a71c9de..4bae8ec 100644 (file)
@@ -19,8 +19,8 @@ import net.mograsim.logic.model.LogicUIStandaloneGUI;
 import net.mograsim.logic.model.am2900.Am2900Loader;
 import net.mograsim.logic.model.am2900.TestableCircuit;
 import net.mograsim.logic.model.am2900.TestableCircuit.Result;
-import net.mograsim.logic.model.model.ViewModel;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModel;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
@@ -42,7 +42,7 @@ public class TestEnvironmentHelper
 
        private ModelComponent component;
        private Timeline timeline;
-       private ViewModelModifiable viewModel;
+       private LogicModelModifiable logicModel;
        private ModellingTool modellingTool;
        private HashMap<String, ModelManualSwitch> idSwitchMap = new HashMap<>();
        private HashMap<String, ModelBitDisplay> idDisplayMap = new HashMap<>();
@@ -78,11 +78,11 @@ public class TestEnvironmentHelper
        public void setup(DebugState debug)
        {
                this.debug = debug;
-               // Create view model
-               viewModel = new ViewModelModifiable();
-               modellingTool = ModellingTool.createFor(viewModel);
+               // Create logic model
+               logicModel = new LogicModelModifiable();
+               modellingTool = ModellingTool.createFor(logicModel);
                Am2900Loader.setup();
-               component = IndirectModelComponentCreator.createComponent(viewModel, modelId);
+               component = IndirectModelComponentCreator.createComponent(logicModel, modelId);
                setField(componentField, component);
 
                component.getPins().values().forEach(this::extendModelPin);
@@ -91,7 +91,7 @@ public class TestEnvironmentHelper
                CoreModelParameters params = new CoreModelParameters();
                params.gateProcessTime = 50;
                params.wireTravelTime = 10;
-               timeline = LogicCoreAdapter.convert(viewModel, params);
+               timeline = LogicCoreAdapter.convert(logicModel, params);
                timelineField.ifPresent(f -> setField(f, timeline));
 
                // Bind switches/displays to this test class
@@ -113,17 +113,17 @@ public class TestEnvironmentHelper
                        Class<?> type = f.getType();
                        if (CoreManualSwitch.class.isAssignableFrom(type))
                        {
-                               ModelManualSwitch gms = new ModelManualSwitch(viewModel, p.logicWidth);
+                               ModelManualSwitch gms = new ModelManualSwitch(logicModel, p.logicWidth);
                                modellingTool.connect(p, gms.getOutputPin());
                                idSwitchMap.put(p.name, gms);
                        } else if (CoreBitDisplay.class.isAssignableFrom(type))
                        {
-                               ModelBitDisplay gbd = new ModelBitDisplay(viewModel, p.logicWidth);
+                               ModelBitDisplay gbd = new ModelBitDisplay(logicModel, p.logicWidth);
                                modellingTool.connect(p, gbd.getInputPin());
                                idDisplayMap.put(p.name, gbd);
                        } else if (SwitchWithDisplay.class.isAssignableFrom(type))
                        {
-                               SwitchWithDisplay swd = new SwitchWithDisplay(viewModel, p);
+                               SwitchWithDisplay swd = new SwitchWithDisplay(logicModel, p);
                                setField(f, swd);
                        } else
                        {
@@ -149,18 +149,18 @@ public class TestEnvironmentHelper
        {
                // Debug code
                HashSet<ModelWire> wiresIncludingSubmodels = new HashSet<>();
-               Queue<ViewModel> modelsToIterate = new LinkedList<>();
-               modelsToIterate.add(viewModel);
+               Queue<LogicModel> modelsToIterate = new LinkedList<>();
+               modelsToIterate.add(logicModel);
                while (modelsToIterate.size() > 0)
                {
-                       ViewModel model = modelsToIterate.poll();
+                       LogicModel model = modelsToIterate.poll();
                        wiresIncludingSubmodels.addAll(model.getWiresByName().values());
                        for (ModelComponent comp : model.getComponentsByName().values())
                                if (comp instanceof SubmodelComponent)
                                        modelsToIterate.offer(((SubmodelComponent) comp).submodel);
                }
                System.out.println(wiresIncludingSubmodels.size());
-               viewModel.setRedrawHandler(() -> wiresIncludingSubmodels.forEach(w ->
+               logicModel.setRedrawHandler(() -> wiresIncludingSubmodels.forEach(w ->
                {
                        if (debugWires)
                        {
@@ -260,8 +260,8 @@ public class TestEnvironmentHelper
        {
                try
                {
-                       new LogicUIStandaloneGUI(viewModel).run();
-                       viewModel.setRedrawHandler(null);
+                       new LogicUIStandaloneGUI(logicModel).run();
+                       logicModel.setRedrawHandler(null);
                }
                catch (Exception e)
                {
index 6f3919a..c269719 100644 (file)
@@ -20,7 +20,7 @@ import net.mograsim.logic.model.editor.handles.PinHandle;
 import net.mograsim.logic.model.editor.states.StateManager;
 import net.mograsim.logic.model.editor.ui.DialogManager;
 import net.mograsim.logic.model.editor.ui.EditorGUI;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.ModelWire;
 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
@@ -61,7 +61,7 @@ public final class Editor
                gui.open();
        }
 
-       public ViewModelModifiable getSubmodel()
+       public LogicModelModifiable getSubmodel()
        {
                return toBeEdited.getSubmodelModifiable();
        }
@@ -248,7 +248,7 @@ public final class Editor
 
        public static void openNewEditor()
        {
-               DeserializedSubmodelComponent toBeEdited = new DeserializedSubmodelComponent(new ViewModelModifiable(), null, null, null);
+               DeserializedSubmodelComponent toBeEdited = new DeserializedSubmodelComponent(new LogicModelModifiable(), null, null, null);
                toBeEdited.setOutlineRenderer(new DefaultOutlineRenderer(toBeEdited));
                toBeEdited.setSymbolRenderer(new DefaultSymbolRenderer(toBeEdited));
                toBeEdited.setHighLevelStateHandler(new DefaultHighLevelStateHandler());
index ac38722..bbe202b 100644 (file)
@@ -6,7 +6,7 @@ import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Shell;
 
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
@@ -68,7 +68,7 @@ public class SaveLoadManager
                fdShell.dispose();
                if (result != null)
                {
-                       new Editor((DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(new ViewModelModifiable(),
+                       new Editor((DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(new LogicModelModifiable(),
                                        "jsonfile:" + result));
                }
        }
index 8281501..63d922a 100644 (file)
@@ -10,19 +10,19 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.model.editor.Editor;
 import net.mograsim.logic.model.editor.Editor.ComponentInfo;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.serializing.IdentifyParams;
 
 public class ComponentHandle extends Handle
 {
-       private final ViewModelModifiable model;
+       private final LogicModelModifiable model;
        public final ModelComponent parent;
        private final static double POS_OFFSET = 2.0d;
        private final static double LENGTH_OFFSET = POS_OFFSET * 2;
        boolean selected = false;
 
-       public ComponentHandle(ViewModelModifiable model, ModelComponent parent)
+       public ComponentHandle(LogicModelModifiable model, ModelComponent parent)
        {
                super(4);
                this.model = model;
index 37818e1..0a33509 100644 (file)
@@ -16,7 +16,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.mograsim.logic.model.editor.Editor;
 import net.mograsim.logic.model.editor.states.EditorState;
 import net.mograsim.logic.model.editor.util.PrioritySet;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.ModelWire;
@@ -52,7 +52,7 @@ public class HandleManager
                handleAddedListeners = new ArrayList<>();
                handleRemovedListeners = new ArrayList<>();
 
-               ViewModelModifiable model = editor.getSubmodel();
+               LogicModelModifiable model = editor.getSubmodel();
 
                model.addComponentAddedListener(c -> registerComponent(c));
 
@@ -83,7 +83,7 @@ public class HandleManager
                        System.err.println("Warning! HandleManager was already initialized.");
                else
                {
-                       ViewModelModifiable model = editor.getSubmodel();
+                       LogicModelModifiable model = editor.getSubmodel();
                        Map<String, ModelComponent> compsByName = model.getComponentsByName();
                        Set<ModelComponent> comps = new HashSet<>(compsByName.values());
                        ModelComponent interfaceComp = compsByName.get(SubmodelComponent.SUBMODEL_INTERFACE_NAME);
index d5e80c8..61fd0a6 100644 (file)
@@ -9,7 +9,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.model.editor.states.EditorState;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.wires.ModelWire;
 
 public class WireHandle extends Handle
@@ -17,10 +17,10 @@ public class WireHandle extends Handle
        private boolean selected = false;
        private final static double WIDTH = 2.0;
        private final static double WIDTH_SQUARED = WIDTH * WIDTH;
-       private final ViewModelModifiable model;
+       private final LogicModelModifiable model;
        public final ModelWire parent;
 
-       public WireHandle(ViewModelModifiable model, ModelWire parent)
+       public WireHandle(LogicModelModifiable model, ModelWire parent)
        {
                super(5);
                this.model = model;
index 24bd3ea..b017437 100644 (file)
@@ -22,7 +22,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.haspamelodica.swt.helper.zoomablecanvas.ZoomableCanvas;
 import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.logic.model.model.ViewModel;
+import net.mograsim.logic.model.model.LogicModel;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelInterface;
@@ -38,9 +38,9 @@ public class LogicUICanvas extends ZoomableCanvas
 {
        private static final boolean OPEN_DEBUG_SETHIGHLEVELSTATE_SHELL = false;
 
-       private final ViewModel model;
+       private final LogicModel model;
 
-       public LogicUICanvas(Composite parent, int style, ViewModel model)
+       public LogicUICanvas(Composite parent, int style, LogicModel model)
        {
                super(parent, style, Preferences.current().getBoolean("net.mograsim.logic.model.improvetext"));
 
@@ -76,7 +76,7 @@ public class LogicUICanvas extends ZoomableCanvas
                }
        }
 
-       private void openDebugSetHighLevelStateShell(ViewModel model)
+       private void openDebugSetHighLevelStateShell(LogicModel model)
        {
                Shell debugShell = new Shell();
                debugShell.setLayout(new GridLayout(2, false));
@@ -161,14 +161,14 @@ public class LogicUICanvas extends ZoomableCanvas
                debugShell.open();
        }
 
-       private void recalculateComponentSelector(List<ModelComponent> componentsByItemIndex, Combo componentSelector, ViewModel model)
+       private void recalculateComponentSelector(List<ModelComponent> componentsByItemIndex, Combo componentSelector, LogicModel model)
        {
                componentsByItemIndex.clear();
                componentSelector.setItems();
                addComponentSelectorItems(componentsByItemIndex, "", componentSelector, model);
        }
 
-       private void addComponentSelectorItems(List<ModelComponent> componentsByItemIndex, String base, Combo componentSelector, ViewModel model)
+       private void addComponentSelectorItems(List<ModelComponent> componentsByItemIndex, String base, Combo componentSelector, LogicModel model)
        {
                model.getComponentsByName().values().stream().sorted((c1, c2) -> c1.name.compareTo(c2.name)).forEach(c ->
                {
index b90e259..1df2f7b 100644 (file)
@@ -5,7 +5,7 @@ import org.eclipse.swt.SWT;
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModel;
+import net.mograsim.logic.model.model.LogicModel;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.preferences.Preferences;
@@ -14,9 +14,9 @@ public class LogicUIRenderer
 {
        private static final boolean DRAW_PINS = false;
 
-       private final ViewModel model;
+       private final LogicModel model;
 
-       public LogicUIRenderer(ViewModel model)
+       public LogicUIRenderer(LogicModel model)
        {
                this.model = model;
        }
index 700f69b..49182d6 100644 (file)
@@ -7,7 +7,7 @@ import org.eclipse.swt.widgets.Shell;
 
 import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasOverlay;
 import net.haspamelodica.swt.helper.zoomablecanvas.helper.ZoomableCanvasUserInput;
-import net.mograsim.logic.model.model.ViewModel;
+import net.mograsim.logic.model.model.LogicModel;
 
 /**
  * Standalone simulation visualizer graphical user interface.
@@ -20,7 +20,7 @@ public class LogicUIStandaloneGUI implements Runnable
        private final Shell shell;
        private final LogicUICanvas ui;
 
-       public LogicUIStandaloneGUI(ViewModel model)
+       public LogicUIStandaloneGUI(LogicModel model)
        {
                display = new Display();
                shell = new Shell(display);
index 6a31d47..03d0335 100644 (file)
@@ -3,46 +3,46 @@ package net.mograsim.logic.model;
 import java.util.function.Consumer;
 
 import net.mograsim.logic.core.timeline.Timeline;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.modeladapter.CoreModelParameters;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 
 public class SimpleLogicUIStandalone
 {
-       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel)
+       public static void executeVisualisation(Consumer<LogicModelModifiable> setupLogicModel)
        {
-               executeVisualisation(setupViewModel, (Consumer<VisualisationObjects>) null);
+               executeVisualisation(setupLogicModel, (Consumer<VisualisationObjects>) null);
        }
 
-       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, Consumer<VisualisationObjects> beforeRun)
+       public static void executeVisualisation(Consumer<LogicModelModifiable> setupLogicModel, Consumer<VisualisationObjects> beforeRun)
        {
                CoreModelParameters params = new CoreModelParameters();
                params.gateProcessTime = 50;
                params.wireTravelTime = 10;
-               executeVisualisation(setupViewModel, params, beforeRun);
+               executeVisualisation(setupLogicModel, params, beforeRun);
        }
 
-       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, CoreModelParameters params)
+       public static void executeVisualisation(Consumer<LogicModelModifiable> setupLogicModel, CoreModelParameters params)
        {
-               executeVisualisation(setupViewModel, params, null);
+               executeVisualisation(setupLogicModel, params, null);
        }
 
-       public static void executeVisualisation(Consumer<ViewModelModifiable> setupViewModel, CoreModelParameters params,
+       public static void executeVisualisation(Consumer<LogicModelModifiable> setupLogicModel, CoreModelParameters params,
                        Consumer<VisualisationObjects> beforeRun)
        {
-               // setup view model
-               ViewModelModifiable viewModel = new ViewModelModifiable();
-               setupViewModel.accept(viewModel);
+               // setup logic model
+               LogicModelModifiable logicModel = new LogicModelModifiable();
+               setupLogicModel.accept(logicModel);
 
                // convert to core model
-               Timeline timeline = LogicCoreAdapter.convert(viewModel, params);
+               Timeline timeline = LogicCoreAdapter.convert(logicModel, params);
 
                // initialize UI and executer
-               LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(viewModel);
+               LogicUIStandaloneGUI ui = new LogicUIStandaloneGUI(logicModel);
                LogicExecuter exec = new LogicExecuter(timeline);
 
                if (beforeRun != null)
-                       beforeRun.accept(new VisualisationObjects(viewModel, timeline, ui, exec));
+                       beforeRun.accept(new VisualisationObjects(logicModel, timeline, ui, exec));
 
                // run it
                exec.startLiveExecution();
@@ -52,12 +52,12 @@ public class SimpleLogicUIStandalone
 
        public static class VisualisationObjects
        {
-               public final ViewModelModifiable model;
+               public final LogicModelModifiable model;
                public final Timeline timeline;
                public final LogicUIStandaloneGUI gui;
                public final LogicExecuter executer;
 
-               public VisualisationObjects(ViewModelModifiable model, Timeline timeline, LogicUIStandaloneGUI gui, LogicExecuter executer)
+               public VisualisationObjects(LogicModelModifiable model, Timeline timeline, LogicUIStandaloneGUI gui, LogicExecuter executer)
                {
                        this.model = model;
                        this.timeline = timeline;
index ac09b1c..14073bd 100644 (file)
@@ -1,7 +1,7 @@
 package net.mograsim.logic.model.examples;
 
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.ModelBitDisplay;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
 import net.mograsim.logic.model.model.components.submodels.SimpleRectangularSubmodelComponent;
@@ -14,7 +14,7 @@ public class ClickableSubmodelComponentsTest
                SimpleLogicUIStandalone.executeVisualisation(ClickableSubmodelComponentsTest::createExample);
        }
 
-       public static void createExample(ViewModelModifiable model)
+       public static void createExample(LogicModelModifiable model)
        {
                @SuppressWarnings("unused") // Wire
                SimpleRectangularSubmodelComponent comp = new SimpleRectangularSubmodelComponent(model, 1, "")
index 2c71dc1..5f68c9c 100644 (file)
@@ -2,7 +2,7 @@ package net.mograsim.logic.model.examples;
 
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.mograsim.logic.model.SimpleLogicUIStandalone;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
 import net.mograsim.logic.model.model.components.atomic.ModelNotGate;
 import net.mograsim.logic.model.model.components.atomic.ModelOrGate;
@@ -17,7 +17,7 @@ public class RSLatchExample
        }
 
        @SuppressWarnings("unused") // for Wires being created
-       public static void createRSLatchExample(ViewModelModifiable model)
+       public static void createRSLatchExample(LogicModelModifiable model)
        {
                ModelManualSwitch rIn = new ModelManualSwitch(model, 1);
                rIn.moveTo(100, 100);
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModel.java
new file mode 100644 (file)
index 0000000..eb6f7ee
--- /dev/null
@@ -0,0 +1,153 @@
+package net.mograsim.logic.model.model;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Consumer;
+
+import net.mograsim.logic.model.model.components.ModelComponent;
+import net.mograsim.logic.model.model.wires.ModelWire;
+
+public class LogicModel
+{
+       private final Map<String, ModelComponent> components;
+       private final Map<String, Runnable> componentDestroyFunctions;
+       private final Map<String, ModelComponent> componentsUnmodifiable;
+       private final Map<String, ModelWire> wires;
+       private final Map<String, Runnable> wireDestroyFunctions;
+       private final Map<String, ModelWire> wiresUnmodifiable;
+
+       private final List<Consumer<? super ModelComponent>> componentAddedListeners;
+       private final List<Consumer<? super ModelComponent>> componentRemovedListeners;
+       private final List<Consumer<? super ModelWire>> wireAddedListeners;
+       private final List<Consumer<? super ModelWire>> wireRemovedListeners;
+       private final List<Consumer<? super Runnable>> redrawHandlerChangedListeners;
+
+       private Runnable redrawHandler;
+
+       protected LogicModel()
+       {
+               components = new HashMap<>();
+               componentDestroyFunctions = new HashMap<>();
+               componentsUnmodifiable = Collections.unmodifiableMap(components);
+               wires = new HashMap<>();
+               wireDestroyFunctions = new HashMap<>();
+               wiresUnmodifiable = Collections.unmodifiableMap(wires);
+
+               componentAddedListeners = new ArrayList<>();
+               componentRemovedListeners = new ArrayList<>();
+               wireAddedListeners = new ArrayList<>();
+               wireRemovedListeners = new ArrayList<>();
+               redrawHandlerChangedListeners = new ArrayList<>();
+       }
+
+       /**
+        * Adds the given component to the list of components and calls all componentAddedListeners. Don't call this method from application
+        * code as it is automatically called in {@link ModelComponent}'s constructor.
+        * 
+        * @author Daniel Kirschten
+        */
+       protected void componentCreated(ModelComponent component, Runnable destroyed)
+       {
+               if (components.containsKey(component.name))
+                       throw new IllegalStateException("Don't add the same component twice!");
+               components.put(component.name, component);
+               componentDestroyFunctions.put(component.name, destroyed);
+               callComponentAddedListeners(component);
+               requestRedraw();
+       }
+
+       /**
+        * Destroyes the given component, removes it from the list of components and calls all componentRemovedListeners.
+        * 
+        * @author Daniel Kirschten
+        */
+       protected void destroyComponent(ModelComponent component)
+       {
+               componentDestroyFunctions.get(component.name).run();
+               if (!components.containsKey(component.name))
+                       throw new IllegalStateException("Don't remove the same component twice!");
+               components.remove(component.name);
+               callComponentRemovedListeners(component);
+               requestRedraw();
+       }
+
+       /**
+        * Adds the given wire to the list of wires and calls all wireAddedListeners.
+        * 
+        * @author Daniel Kirschten
+        */
+       protected void wireCreated(ModelWire wire, Runnable destroyed)
+       {
+               if (wires.containsKey(wire.name))
+                       throw new IllegalStateException("Don't add the same wire twice!");
+               wires.put(wire.name, wire);
+               wireDestroyFunctions.put(wire.name, destroyed);
+               callWireAddedListeners(wire);
+               requestRedraw();
+       }
+
+       /**
+        * Destroys the given wire, removes it from the list of wires and calls all wireRemovedListeners.
+        * 
+        * @author Daniel Kirschten
+        */
+       protected void destroyWire(ModelWire wire)
+       {
+               wireDestroyFunctions.get(wire.name).run();
+               if (!wires.containsKey(wire.name))
+                       throw new IllegalStateException("Don't remove the same wire twice!");
+               wires.remove(wire.name);
+               callWireRemovedListeners(wire);
+               requestRedraw();
+       }
+
+       public Map<String, ModelComponent> getComponentsByName()
+       {
+               return componentsUnmodifiable;
+       }
+
+       public Map<String, ModelWire> getWiresByName()
+       {
+               return wiresUnmodifiable;
+       }
+
+       // @formatter:off
+       public void addComponentAddedListener         (Consumer<? super ModelComponent> listener) {componentAddedListeners      .add   (listener);}
+       public void addComponentRemovedListener       (Consumer<? super ModelComponent> listener) {componentRemovedListeners    .add   (listener);}
+       public void addWireAddedListener              (Consumer<? super ModelWire     > listener) {wireAddedListeners           .add   (listener);}
+       public void addWireRemovedListener            (Consumer<? super ModelWire     > listener) {wireRemovedListeners         .add   (listener);}
+       public void addRedrawHandlerChangedListener   (Consumer<? super Runnable    > listener) {redrawHandlerChangedListeners.add   (listener);}
+
+       public void removeComponentAddedListener      (Consumer<? super ModelComponent> listener) {componentAddedListeners      .remove(listener);}
+       public void removeComponentRemovedListener    (Consumer<? super ModelComponent> listener) {componentRemovedListeners    .remove(listener);}
+       public void removeWireAddedListener           (Consumer<? super ModelWire     > listener) {wireAddedListeners           .remove(listener);}
+       public void removeWireRemovedListener         (Consumer<? super ModelWire     > listener) {wireRemovedListeners         .remove(listener);}
+       public void removeRedrawHandlerChangedListener(Consumer<? super Runnable    > listener) {redrawHandlerChangedListeners.remove(listener);}
+
+       private void callComponentAddedListeners     (ModelComponent c) {componentAddedListeners      .forEach(l -> l.accept(c));}
+       private void callComponentRemovedListeners   (ModelComponent c) {componentRemovedListeners    .forEach(l -> l.accept(c));}
+       private void callWireAddedListeners          (ModelWire      w) {wireAddedListeners           .forEach(l -> l.accept(w));}
+       private void callWireRemovedListeners        (ModelWire      w) {wireRemovedListeners         .forEach(l -> l.accept(w));}
+       private void callRedrawHandlerChangedListener(Runnable     r) {redrawHandlerChangedListeners.forEach(l -> l.accept(r));}
+       // @formatter:on
+
+       public void setRedrawHandler(Runnable handler)
+       {
+               this.redrawHandler = handler;
+               callRedrawHandlerChangedListener(handler);
+       }
+
+       public Runnable getRedrawHandler()
+       {
+               return redrawHandler;
+       }
+
+       public void requestRedraw()
+       {
+               if (redrawHandler != null)
+                       redrawHandler.run();
+       }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModelModifiable.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/LogicModelModifiable.java
new file mode 100644 (file)
index 0000000..4801d41
--- /dev/null
@@ -0,0 +1,65 @@
+package net.mograsim.logic.model.model;
+
+import java.util.Set;
+
+import net.mograsim.logic.model.model.components.ModelComponent;
+import net.mograsim.logic.model.model.wires.ModelWire;
+
+public class LogicModelModifiable extends LogicModel
+{
+       public String getDefaultComponentName(ModelComponent component)
+       {
+               Set<String> componentNames = getComponentsByName().keySet();
+               // TODO get the ID of component
+               // The following does not work because this method is called in the constructor of DeserializedSubmodelComponent at a time where
+               // idForSerializingOverride is not yet set
+//             String componentID = null;
+//             if (component instanceof DeserializedSubmodelComponent)
+//                     componentID = ((DeserializedSubmodelComponent) component).idForSerializingOverride;
+//             if (componentID == null)
+//                     componentID = component.getClass().getSimpleName();
+               String componentID = component.getClass().getSimpleName();
+               String nameBase = componentID + '#';
+               for (int i = 0;; i++)
+               {
+                       String nameCandidate = nameBase + i;
+                       if (!componentNames.contains(nameCandidate))
+                               return nameCandidate;
+               }
+       }
+
+       public String getDefaultWireName()
+       {
+               Set<String> wireNames = getWiresByName().keySet();
+               for (int i = 0;; i++)
+               {
+                       String nameCandidate = "unnamedWire#" + i;
+                       if (!wireNames.contains(nameCandidate))
+                               return nameCandidate;
+               }
+       }
+
+       @Override
+       public void componentCreated(ModelComponent component, Runnable destroyed)
+       {
+               super.componentCreated(component, destroyed);
+       }
+
+       @Override
+       public void destroyComponent(ModelComponent component)
+       {
+               super.destroyComponent(component);
+       }
+
+       @Override
+       public void wireCreated(ModelWire wire, Runnable destroyed)
+       {
+               super.wireCreated(wire, destroyed);
+       }
+
+       @Override
+       public void destroyWire(ModelWire wire)
+       {
+               super.destroyWire(wire);
+       }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java
deleted file mode 100644 (file)
index b0d6a3c..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-package net.mograsim.logic.model.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.function.Consumer;
-
-import net.mograsim.logic.model.model.components.ModelComponent;
-import net.mograsim.logic.model.model.wires.ModelWire;
-
-public class ViewModel
-{
-       private final Map<String, ModelComponent> components;
-       private final Map<String, Runnable> componentDestroyFunctions;
-       private final Map<String, ModelComponent> componentsUnmodifiable;
-       private final Map<String, ModelWire> wires;
-       private final Map<String, Runnable> wireDestroyFunctions;
-       private final Map<String, ModelWire> wiresUnmodifiable;
-
-       private final List<Consumer<? super ModelComponent>> componentAddedListeners;
-       private final List<Consumer<? super ModelComponent>> componentRemovedListeners;
-       private final List<Consumer<? super ModelWire>> wireAddedListeners;
-       private final List<Consumer<? super ModelWire>> wireRemovedListeners;
-       private final List<Consumer<? super Runnable>> redrawHandlerChangedListeners;
-
-       private Runnable redrawHandler;
-
-       protected ViewModel()
-       {
-               components = new HashMap<>();
-               componentDestroyFunctions = new HashMap<>();
-               componentsUnmodifiable = Collections.unmodifiableMap(components);
-               wires = new HashMap<>();
-               wireDestroyFunctions = new HashMap<>();
-               wiresUnmodifiable = Collections.unmodifiableMap(wires);
-
-               componentAddedListeners = new ArrayList<>();
-               componentRemovedListeners = new ArrayList<>();
-               wireAddedListeners = new ArrayList<>();
-               wireRemovedListeners = new ArrayList<>();
-               redrawHandlerChangedListeners = new ArrayList<>();
-       }
-
-       /**
-        * Adds the given component to the list of components and calls all componentAddedListeners. Don't call this method from application
-        * code as it is automatically called in {@link ModelComponent}'s constructor.
-        * 
-        * @author Daniel Kirschten
-        */
-       protected void componentCreated(ModelComponent component, Runnable destroyed)
-       {
-               if (components.containsKey(component.name))
-                       throw new IllegalStateException("Don't add the same component twice!");
-               components.put(component.name, component);
-               componentDestroyFunctions.put(component.name, destroyed);
-               callComponentAddedListeners(component);
-               requestRedraw();
-       }
-
-       /**
-        * Destroyes the given component, removes it from the list of components and calls all componentRemovedListeners.
-        * 
-        * @author Daniel Kirschten
-        */
-       protected void destroyComponent(ModelComponent component)
-       {
-               componentDestroyFunctions.get(component.name).run();
-               if (!components.containsKey(component.name))
-                       throw new IllegalStateException("Don't remove the same component twice!");
-               components.remove(component.name);
-               callComponentRemovedListeners(component);
-               requestRedraw();
-       }
-
-       /**
-        * Adds the given wire to the list of wires and calls all wireAddedListeners.
-        * 
-        * @author Daniel Kirschten
-        */
-       protected void wireCreated(ModelWire wire, Runnable destroyed)
-       {
-               if (wires.containsKey(wire.name))
-                       throw new IllegalStateException("Don't add the same wire twice!");
-               wires.put(wire.name, wire);
-               wireDestroyFunctions.put(wire.name, destroyed);
-               callWireAddedListeners(wire);
-               requestRedraw();
-       }
-
-       /**
-        * Destroys the given wire, removes it from the list of wires and calls all wireRemovedListeners.
-        * 
-        * @author Daniel Kirschten
-        */
-       protected void destroyWire(ModelWire wire)
-       {
-               wireDestroyFunctions.get(wire.name).run();
-               if (!wires.containsKey(wire.name))
-                       throw new IllegalStateException("Don't remove the same wire twice!");
-               wires.remove(wire.name);
-               callWireRemovedListeners(wire);
-               requestRedraw();
-       }
-
-       public Map<String, ModelComponent> getComponentsByName()
-       {
-               return componentsUnmodifiable;
-       }
-
-       public Map<String, ModelWire> getWiresByName()
-       {
-               return wiresUnmodifiable;
-       }
-
-       // @formatter:off
-       public void addComponentAddedListener         (Consumer<? super ModelComponent> listener) {componentAddedListeners      .add   (listener);}
-       public void addComponentRemovedListener       (Consumer<? super ModelComponent> listener) {componentRemovedListeners    .add   (listener);}
-       public void addWireAddedListener              (Consumer<? super ModelWire     > listener) {wireAddedListeners           .add   (listener);}
-       public void addWireRemovedListener            (Consumer<? super ModelWire     > listener) {wireRemovedListeners         .add   (listener);}
-       public void addRedrawHandlerChangedListener   (Consumer<? super Runnable    > listener) {redrawHandlerChangedListeners.add   (listener);}
-
-       public void removeComponentAddedListener      (Consumer<? super ModelComponent> listener) {componentAddedListeners      .remove(listener);}
-       public void removeComponentRemovedListener    (Consumer<? super ModelComponent> listener) {componentRemovedListeners    .remove(listener);}
-       public void removeWireAddedListener           (Consumer<? super ModelWire     > listener) {wireAddedListeners           .remove(listener);}
-       public void removeWireRemovedListener         (Consumer<? super ModelWire     > listener) {wireRemovedListeners         .remove(listener);}
-       public void removeRedrawHandlerChangedListener(Consumer<? super Runnable    > listener) {redrawHandlerChangedListeners.remove(listener);}
-
-       private void callComponentAddedListeners     (ModelComponent c) {componentAddedListeners      .forEach(l -> l.accept(c));}
-       private void callComponentRemovedListeners   (ModelComponent c) {componentRemovedListeners    .forEach(l -> l.accept(c));}
-       private void callWireAddedListeners          (ModelWire      w) {wireAddedListeners           .forEach(l -> l.accept(w));}
-       private void callWireRemovedListeners        (ModelWire      w) {wireRemovedListeners         .forEach(l -> l.accept(w));}
-       private void callRedrawHandlerChangedListener(Runnable     r) {redrawHandlerChangedListeners.forEach(l -> l.accept(r));}
-       // @formatter:on
-
-       public void setRedrawHandler(Runnable handler)
-       {
-               this.redrawHandler = handler;
-               callRedrawHandlerChangedListener(handler);
-       }
-
-       public Runnable getRedrawHandler()
-       {
-               return redrawHandler;
-       }
-
-       public void requestRedraw()
-       {
-               if (redrawHandler != null)
-                       redrawHandler.run();
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModelModifiable.java
deleted file mode 100644 (file)
index 7ebde10..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-package net.mograsim.logic.model.model;
-
-import java.util.Set;
-
-import net.mograsim.logic.model.model.components.ModelComponent;
-import net.mograsim.logic.model.model.wires.ModelWire;
-
-public class ViewModelModifiable extends ViewModel
-{
-       public String getDefaultComponentName(ModelComponent component)
-       {
-               Set<String> componentNames = getComponentsByName().keySet();
-               // TODO get the ID of component
-               // The following does not work because this method is called in the constructor of DeserializedSubmodelComponent at a time where
-               // idForSerializingOverride is not yet set
-//             String componentID = null;
-//             if (component instanceof DeserializedSubmodelComponent)
-//                     componentID = ((DeserializedSubmodelComponent) component).idForSerializingOverride;
-//             if (componentID == null)
-//                     componentID = component.getClass().getSimpleName();
-               String componentID = component.getClass().getSimpleName();
-               String nameBase = componentID + '#';
-               for (int i = 0;; i++)
-               {
-                       String nameCandidate = nameBase + i;
-                       if (!componentNames.contains(nameCandidate))
-                               return nameCandidate;
-               }
-       }
-
-       public String getDefaultWireName()
-       {
-               Set<String> wireNames = getWiresByName().keySet();
-               for (int i = 0;; i++)
-               {
-                       String nameCandidate = "unnamedWire#" + i;
-                       if (!wireNames.contains(nameCandidate))
-                               return nameCandidate;
-               }
-       }
-
-       @Override
-       public void componentCreated(ModelComponent component, Runnable destroyed)
-       {
-               super.componentCreated(component, destroyed);
-       }
-
-       @Override
-       public void destroyComponent(ModelComponent component)
-       {
-               super.destroyComponent(component);
-       }
-
-       @Override
-       public void wireCreated(ModelWire wire, Runnable destroyed)
-       {
-               super.wireCreated(wire, destroyed);
-       }
-
-       @Override
-       public void destroyWire(ModelWire wire)
-       {
-               super.destroyWire(wire);
-       }
-}
\ No newline at end of file
index 6853e38..d2ead74 100644 (file)
@@ -9,7 +9,7 @@ import java.util.function.Consumer;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.serializing.IdentifyParams;
 import net.mograsim.logic.model.serializing.JSONSerializable;
@@ -17,7 +17,7 @@ import net.mograsim.logic.model.snippets.HighLevelStateHandler;
 
 /**
  * The base class for all model components.<br>
- * A <code>ModelComponent</code> has a reference to the ViewModel it belongs to.<br>
+ * A <code>ModelComponent</code> has a reference to the LogicModel it belongs to.<br>
  * A <code>ModelComponent</code> has a name. This name is unique in the model the <code>ModelComponent</code> belongs to.<br>
  * A <code>ModelComponent</code> has a position and size. The size can only be modified by subclasses.
  * 
@@ -28,7 +28,7 @@ public abstract class ModelComponent implements JSONSerializable
        /**
         * The model this component is a part of.
         */
-       protected final ViewModelModifiable model;
+       protected final LogicModelModifiable model;
        /**
         * The name of this component. Is unique for all components in its model.
         */
@@ -52,7 +52,7 @@ public abstract class ModelComponent implements JSONSerializable
 
        // creation and destruction
 
-       public ModelComponent(ViewModelModifiable model, String name)
+       public ModelComponent(LogicModelModifiable model, String name)
        {
                this.model = model;
                this.name = name == null ? model.getDefaultComponentName(this) : name;
@@ -66,13 +66,13 @@ public abstract class ModelComponent implements JSONSerializable
                this.pinRemovedListeners = new ArrayList<>();
 
                // TODO this will crash the high level state debug shell because submodel is not yet set.
-               // The same problem exists in ViewModelModifiable.getDefaultComponentName; see there
+               // The same problem exists in LogicModelModifiable.getDefaultComponentName; see there
                model.componentCreated(this, this::destroyed);
        }
 
        /**
-        * Destroys this component. This method is called from {@link ViewModelModifiable#componentDestroyed(ModelComponent) destroyComponent()}
-        * of the model this component is a part of.<br>
+        * Destroys this component. This method is called from {@link LogicModelModifiable#componentDestroyed(ModelComponent)
+        * destroyComponent()} of the model this component is a part of.<br>
         * When overriding, make sure to also call the original implementation.
         * 
         * @author Daniel Kirschten
index 820991b..4d145d1 100644 (file)
@@ -1,19 +1,19 @@
 package net.mograsim.logic.model.model.components.atomic;
 
 import net.mograsim.logic.core.components.gates.CoreAndGate;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 
 public class ModelAndGate extends SimpleRectangularModelGate
 {
-       public ModelAndGate(ViewModelModifiable model, int logicWidth)
+       public ModelAndGate(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelAndGate(ViewModelModifiable model, int logicWidth, String name)
+       public ModelAndGate(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, "AndGate", "&", false, logicWidth, name);
                setInputCount(2);// TODO make variable
index fbcaf64..9573b3d 100644 (file)
@@ -9,7 +9,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.components.CoreBitDisplay;
 import net.mograsim.logic.core.types.BitVectorFormatter;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -31,12 +31,12 @@ public class ModelBitDisplay extends ModelComponent
        private final LogicObserver logicObs;
        private CoreBitDisplay bitDisplay;
 
-       public ModelBitDisplay(ViewModelModifiable model, int logicWidth)
+       public ModelBitDisplay(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelBitDisplay(ViewModelModifiable model, int logicWidth, String name)
+       public ModelBitDisplay(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
                this.logicWidth = logicWidth;
index e26e3ff..6bf2ecb 100644 (file)
@@ -10,7 +10,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.components.CoreClock;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.Orientation;
 import net.mograsim.logic.model.model.components.OrientationCalculator;
@@ -36,12 +36,12 @@ public class ModelClock extends ModelComponent
        private OrientationCalculator oc;
        private CoreClock clock;
 
-       public ModelClock(ViewModelModifiable model, ModelClockParams params)
+       public ModelClock(LogicModelModifiable model, ModelClockParams params)
        {
                this(model, params, null);
        }
 
-       public ModelClock(ViewModelModifiable model, ModelClockParams params, String name)
+       public ModelClock(LogicModelModifiable model, ModelClockParams params, String name)
        {
                super(model, name);
                this.params = params;
index 2bdd36e..2ff06f2 100644 (file)
@@ -10,7 +10,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.types.BitVectorFormatter;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -29,7 +29,7 @@ public class ModelFixedOutput extends ModelComponent
 
        public final BitVector bits;
 
-       public ModelFixedOutput(ViewModelModifiable model, BitVector bits, String name)
+       public ModelFixedOutput(LogicModelModifiable model, BitVector bits, String name)
        {
                super(model, name);
                this.bits = bits;
index b7053d3..25d3a69 100644 (file)
@@ -11,7 +11,7 @@ import net.mograsim.logic.core.components.CoreManualSwitch;
 import net.mograsim.logic.core.types.Bit;
 import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.types.BitVectorFormatter;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -34,12 +34,12 @@ public class ModelManualSwitch extends ModelComponent
        private final LogicObserver logicObs;
        private CoreManualSwitch manualSwitch;
 
-       public ModelManualSwitch(ViewModelModifiable model, int logicWidth)
+       public ModelManualSwitch(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelManualSwitch(ViewModelModifiable model, int logicWidth, String name)
+       public ModelManualSwitch(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
                this.logicWidth = logicWidth;
index 79ea13e..fbea650 100644 (file)
@@ -6,7 +6,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.types.BitVectorFormatter;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -29,12 +29,12 @@ public class ModelMerger extends ModelComponent
        private final ReadEnd[] inputEnds;
        private ReadEnd outputEnd;
 
-       public ModelMerger(ViewModelModifiable model, int logicWidth)
+       public ModelMerger(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelMerger(ViewModelModifiable model, int logicWidth, String name)
+       public ModelMerger(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
                this.logicWidth = logicWidth;
index fa584d6..d06c81c 100644 (file)
@@ -1,19 +1,19 @@
 package net.mograsim.logic.model.model.components.atomic;
 
 import net.mograsim.logic.core.components.gates.CoreNandGate;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 
 public class ModelNandGate extends SimpleRectangularModelGate
 {
-       public ModelNandGate(ViewModelModifiable model, int logicWidth)
+       public ModelNandGate(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelNandGate(ViewModelModifiable model, int logicWidth, String name)
+       public ModelNandGate(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, "NandGate", "&", true, logicWidth, name);
                setInputCount(2);// TODO make variable
index a24bbc0..995aea9 100644 (file)
@@ -1,19 +1,19 @@
 package net.mograsim.logic.model.model.components.atomic;
 
 import net.mograsim.logic.core.components.gates.CoreNotGate;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 
 public class ModelNotGate extends SimpleRectangularModelGate
 {
-       public ModelNotGate(ViewModelModifiable model, int logicWidth)
+       public ModelNotGate(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelNotGate(ViewModelModifiable model, int logicWidth, String name)
+       public ModelNotGate(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, "NotGate", "1", true, logicWidth, name);
                setInputCount(1);
index 2a80d64..888188d 100644 (file)
@@ -1,19 +1,19 @@
 package net.mograsim.logic.model.model.components.atomic;
 
 import net.mograsim.logic.core.components.gates.CoreOrGate;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.SimpleGateAdapter;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 
 public class ModelOrGate extends SimpleRectangularModelGate
 {
-       public ModelOrGate(ViewModelModifiable model, int logicWidth)
+       public ModelOrGate(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelOrGate(ViewModelModifiable model, int logicWidth, String name)
+       public ModelOrGate(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, "OrGate", "\u22651", false, logicWidth, name);// ">=1"
                setInputCount(2);
index 1bf22b0..24d6578 100644 (file)
@@ -6,7 +6,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.types.BitVectorFormatter;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -29,12 +29,12 @@ public class ModelSplitter extends ModelComponent
        private ReadEnd inputEnd;
        private final ReadEnd[] outputEnds;
 
-       public ModelSplitter(ViewModelModifiable model, int logicWidth)
+       public ModelSplitter(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelSplitter(ViewModelModifiable model, int logicWidth, String name)
+       public ModelSplitter(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
                this.logicWidth = logicWidth;
index d45bfa8..6a0c93f 100644 (file)
@@ -5,7 +5,7 @@ import org.eclipse.swt.graphics.Color;
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
 import net.mograsim.logic.model.modeladapter.componentadapters.NoLogicAdapter;
@@ -19,12 +19,12 @@ public class ModelTextComponent extends ModelComponent
        private final String text;
        private boolean calculatedSize;
 
-       public ModelTextComponent(ViewModelModifiable model, String text)
+       public ModelTextComponent(LogicModelModifiable model, String text)
        {
                this(model, text, null);
        }
 
-       public ModelTextComponent(ViewModelModifiable model, String text, String name)
+       public ModelTextComponent(LogicModelModifiable model, String text, String name)
        {
                super(model, name);
                this.text = text;
index 733d4b6..45e653c 100644 (file)
@@ -6,7 +6,7 @@ import com.google.gson.JsonSyntaxException;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.Orientation;
 import net.mograsim.logic.model.model.components.OrientationCalculator;
@@ -32,12 +32,12 @@ public class ModelTriStateBuffer extends ModelComponent
        private ModelTriStateBufferParams params;
        private OrientationCalculator oc;
 
-       public ModelTriStateBuffer(ViewModelModifiable model, ModelTriStateBufferParams params)
+       public ModelTriStateBuffer(LogicModelModifiable model, ModelTriStateBufferParams params)
        {
                this(model, params, null);
        }
 
-       public ModelTriStateBuffer(ViewModelModifiable model, ModelTriStateBufferParams params, String name)
+       public ModelTriStateBuffer(LogicModelModifiable model, ModelTriStateBufferParams params, String name)
        {
                super(model, name);
                this.params = params;
index 4314a43..b395695 100644 (file)
@@ -7,7 +7,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
 import net.mograsim.logic.core.wires.CoreWire.ReadWriteEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.modeladapter.LogicCoreAdapter;
@@ -38,7 +38,7 @@ public abstract class SimpleRectangularHardcodedModelComponent extends ModelComp
 
        // creation and destruction
 
-       public SimpleRectangularHardcodedModelComponent(ViewModelModifiable model, String id, String name, String centerText)
+       public SimpleRectangularHardcodedModelComponent(LogicModelModifiable model, String id, String name, String centerText)
        {
                super(model, name);
                this.id = id;
index 890c482..ea16e4c 100644 (file)
@@ -11,7 +11,7 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Font;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -36,7 +36,7 @@ public class SimpleRectangularModelGate extends ModelComponent
        private MovablePin outputPin;
        private final List<Pin> inputPins;
 
-       protected SimpleRectangularModelGate(ViewModelModifiable model, String id, String label, boolean isInverted, int logicWidth, String name)
+       protected SimpleRectangularModelGate(LogicModelModifiable model, String id, String label, boolean isInverted, int logicWidth, String name)
        {
                super(model, name);
                this.id = id;
index 33a0bb3..5e01fe0 100644 (file)
@@ -6,7 +6,7 @@ import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.model.wires.PinUsage;
@@ -30,12 +30,12 @@ public class SimpleRectangularSubmodelComponent extends SubmodelComponent
        private final List<String> outputPinNames;
        private final List<String> outputPinNamesUnmodifiable;
 
-       public SimpleRectangularSubmodelComponent(ViewModelModifiable model, int logicWidth, String label)
+       public SimpleRectangularSubmodelComponent(LogicModelModifiable model, int logicWidth, String label)
        {
                this(model, logicWidth, label, null);
        }
 
-       public SimpleRectangularSubmodelComponent(ViewModelModifiable model, int logicWidth, String label, String name)
+       public SimpleRectangularSubmodelComponent(LogicModelModifiable model, int logicWidth, String label, String name)
        {
                super(model, name);
                this.label = label;
index 7eaba80..a08c093 100644 (file)
@@ -11,8 +11,8 @@ import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.gcs.TranslatedGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.model.LogicUIRenderer;
-import net.mograsim.logic.model.model.ViewModel;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModel;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -35,11 +35,11 @@ public abstract class SubmodelComponent extends ModelComponent
        /**
         * A modifiable view of {@link #submodel}.
         */
-       protected final ViewModelModifiable submodelModifiable;
+       protected final LogicModelModifiable submodelModifiable;
        /**
         * The model this {@link SubmodelComponent} consists of.
         */
-       public final ViewModel submodel;
+       public final LogicModel submodel;
        /**
         * The list of all submodel interface pins of this {@link SubmodelComponent} on the submodel side.
         */
@@ -99,10 +99,10 @@ public abstract class SubmodelComponent extends ModelComponent
 
        // creation and destruction
 
-       public SubmodelComponent(ViewModelModifiable model, String name)
+       public SubmodelComponent(LogicModelModifiable model, String name)
        {
                super(model, name);
-               this.submodelModifiable = new ViewModelModifiable();
+               this.submodelModifiable = new LogicModelModifiable();
                this.submodel = submodelModifiable;
                this.submodelPins = new HashMap<>();
                this.submodelMovablePinsUnmodifiable = Collections.unmodifiableMap(submodelPins);
index d2e6b3d..c5e8154 100644 (file)
@@ -2,14 +2,14 @@ package net.mograsim.logic.model.model.components.submodels;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.Pin;
 import net.mograsim.logic.model.serializing.IdentifyParams;
 
 public class SubmodelInterface extends ModelComponent
 {
-       public SubmodelInterface(ViewModelModifiable model, String name)
+       public SubmodelInterface(LogicModelModifiable model, String name)
        {
                super(model, name);
        }
index 8283749..6d45c7b 100644 (file)
@@ -15,7 +15,7 @@ import net.mograsim.logic.core.types.BitVector;
 import net.mograsim.logic.core.types.BitVectorFormatter;
 import net.mograsim.logic.core.wires.CoreWire;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.preferences.ColorDefinition;
 import net.mograsim.preferences.ColorManager;
 import net.mograsim.preferences.Preferences;
@@ -30,7 +30,7 @@ public class ModelWire
        /**
         * The model this wire is a part of.
         */
-       private final ViewModelModifiable model;
+       private final LogicModelModifiable model;
        /**
         * The name of this wire. Is unique for all wires in its model.
         */
@@ -80,7 +80,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2)
+       public ModelWire(LogicModelModifiable model, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2)
        {
                this(model, null, pin1, pin2);
        }
@@ -90,7 +90,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, Pin pin2)
+       public ModelWire(LogicModelModifiable model, ModelWireCrossPoint pin1, Pin pin2)
        {
                this(model, null, pin1, pin2);
        }
@@ -100,7 +100,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, Pin pin1, ModelWireCrossPoint pin2)
+       public ModelWire(LogicModelModifiable model, Pin pin1, ModelWireCrossPoint pin2)
        {
                this(model, null, pin1, pin2);
        }
@@ -110,7 +110,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, Pin pin1, Pin pin2)
+       public ModelWire(LogicModelModifiable model, Pin pin1, Pin pin2)
        {
                this(model, null, pin1, pin2);
        }
@@ -120,7 +120,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2, Point... path)
        {
                this(model, null, pin1, pin2, path);
        }
@@ -130,7 +130,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, ModelWireCrossPoint pin1, Pin pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, ModelWireCrossPoint pin1, Pin pin2, Point... path)
        {
                this(model, null, pin1, pin2, path);
        }
@@ -140,7 +140,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, Pin pin1, ModelWireCrossPoint pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, Pin pin1, ModelWireCrossPoint pin2, Point... path)
        {
                this(model, null, pin1, pin2, path);
        }
@@ -150,7 +150,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, Pin pin1, Pin pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, Pin pin1, Pin pin2, Point... path)
        {
                this(model, null, pin1, pin2, path);
        }
@@ -160,7 +160,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2)
+       public ModelWire(LogicModelModifiable model, String name, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2)
        {
                this(model, name, pin1, pin2, (Point[]) null);
        }
@@ -170,7 +170,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, Pin pin2)
+       public ModelWire(LogicModelModifiable model, String name, ModelWireCrossPoint pin1, Pin pin2)
        {
                this(model, name, pin1, pin2, (Point[]) null);
        }
@@ -180,7 +180,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, Pin pin1, ModelWireCrossPoint pin2)
+       public ModelWire(LogicModelModifiable model, String name, Pin pin1, ModelWireCrossPoint pin2)
        {
                this(model, name, pin1, pin2, (Point[]) null);
        }
@@ -190,7 +190,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, Pin pin1, Pin pin2)
+       public ModelWire(LogicModelModifiable model, String name, Pin pin1, Pin pin2)
        {
                this(model, name, pin1, pin2, (Point[]) null);
        }
@@ -200,7 +200,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, String name, ModelWireCrossPoint pin1, ModelWireCrossPoint pin2, Point... path)
        {
                this(model, name, pin1.getPin(), pin2.getPin(), path);
        }
@@ -210,7 +210,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, ModelWireCrossPoint pin1, Pin pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, String name, ModelWireCrossPoint pin1, Pin pin2, Point... path)
        {
                this(model, name, pin1.getPin(), pin2, path);
        }
@@ -220,7 +220,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, Pin pin1, ModelWireCrossPoint pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, String name, Pin pin1, ModelWireCrossPoint pin2, Point... path)
        {
                this(model, name, pin1, pin2.getPin(), path);
        }
@@ -230,7 +230,7 @@ public class ModelWire
         * 
         * @author Daniel Kirschten
         */
-       public ModelWire(ViewModelModifiable model, String name, Pin pin1, Pin pin2, Point... path)
+       public ModelWire(LogicModelModifiable model, String name, Pin pin1, Pin pin2, Point... path)
        {
                this.model = model;
                this.name = name == null ? model.getDefaultWireName() : name;
@@ -257,7 +257,7 @@ public class ModelWire
        }
 
        /**
-        * Destroys this wire. This method is called from {@link ViewModelModifiable#wireDestroyed(ModelWire) wireDestroyed()} of the model this
+        * Destroys this wire. This method is called from {@link LogicModelModifiable#wireDestroyed(ModelWire) wireDestroyed()} of the model this
         * wire is a part of.
         * 
         * @author Daniel Kirschten
index 28181b2..75b619d 100644 (file)
@@ -5,7 +5,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.core.LogicObserver;
 import net.mograsim.logic.core.types.BitVectorFormatter;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.serializing.IdentifyParams;
 import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
@@ -46,12 +46,12 @@ public class ModelWireCrossPoint extends ModelComponent
 
        // creation and destruction
 
-       public ModelWireCrossPoint(ViewModelModifiable model, int logicWidth)
+       public ModelWireCrossPoint(LogicModelModifiable model, int logicWidth)
        {
                this(model, logicWidth, null);
        }
 
-       public ModelWireCrossPoint(ViewModelModifiable model, int logicWidth, String name)
+       public ModelWireCrossPoint(LogicModelModifiable model, int logicWidth, String name)
        {
                super(model, name);
                this.logicWidth = logicWidth;
index 38ba204..eb8df88 100644 (file)
@@ -9,7 +9,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.mograsim.logic.model.model.components.ModelComponent;
 
 /**
- * A connection interface between a ModelComponent and the rest of a ViewModel. Pins usually are created by {@link ModelComponent}s
+ * A connection interface between a ModelComponent and the rest of a LogicModel. Pins usually are created by {@link ModelComponent}s
  * themselves. <br>
  * A pin has a name identifying it. Pin names are unique for a {@link ModelComponent}: Every pin of a {@link ModelComponent} has a different
  * name, but different {@link ModelComponent}s can have pins with the same name.
index 397f913..70f256a 100644 (file)
@@ -13,7 +13,7 @@ import java.util.stream.Collectors;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.core.wires.CoreWire;
 import net.mograsim.logic.core.wires.CoreWire.ReadEnd;
-import net.mograsim.logic.model.model.ViewModel;
+import net.mograsim.logic.model.model.LogicModel;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelInterface;
@@ -31,23 +31,23 @@ public class LogicCoreAdapter
                componentAdapters.put(componentAdapter.getSupportedClass(), componentAdapter);
        }
 
-       public static Timeline convert(ViewModel viewModel, CoreModelParameters params)
+       public static Timeline convert(LogicModel logicModel, CoreModelParameters params)
        {
                // TODO replace Timeline with CoreModel as soon as it exists
                Timeline timeline = new Timeline(10);
 
-               convert(viewModel, params, timeline, Map.of());
+               convert(logicModel, params, timeline, Map.of());
 
                return timeline;
        }
 
-       private static void convert(ViewModel viewModel, CoreModelParameters params, Timeline timeline, Map<Pin, CoreWire> externalWires)
+       private static void convert(LogicModel logicModel, CoreModelParameters params, Timeline timeline, Map<Pin, CoreWire> externalWires)
        {
-               Map<Pin, CoreWire> logicWiresPerPin = convertWires(getAllPins(viewModel), viewModel.getWiresByName().values(), externalWires,
+               Map<Pin, CoreWire> logicWiresPerPin = convertWires(getAllPins(logicModel), logicModel.getWiresByName().values(), externalWires,
                                params, timeline);
                Map<Pin, CoreWire> logicWiresPerPinUnmodifiable = Collections.unmodifiableMap(logicWiresPerPin);
 
-               for (ModelComponent modelComp : viewModel.getComponentsByName().values())
+               for (ModelComponent modelComp : logicModel.getComponentsByName().values())
                {
                        if (modelComp instanceof SubmodelComponent)
                        {
@@ -65,9 +65,9 @@ public class LogicCoreAdapter
                }
        }
 
-       private static Set<Pin> getAllPins(ViewModel viewModel)
+       private static Set<Pin> getAllPins(LogicModel logicModel)
        {
-               return viewModel.getComponentsByName().values().stream().flatMap(component -> component.getPins().values().stream())
+               return logicModel.getComponentsByName().values().stream().flatMap(component -> component.getPins().values().stream())
                                .collect(Collectors.toSet());
        }
 
index c52fe29..cb7d474 100644 (file)
@@ -2,7 +2,7 @@ package net.mograsim.logic.model.serializing;
 
 import com.google.gson.JsonElement;
 
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -15,7 +15,7 @@ public class DeserializedSubmodelComponent extends SubmodelComponent
         * If a DeserializedSubmodelComponent is part of another SubmodelComponent, when it it serialized, it should not return its internal
         * structure, but rather the component ID used to create it.
         * 
-        * @see SubmodelComponentSerializer#deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)
+        * @see SubmodelComponentSerializer#deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)
         *      SubmodelComponentSerializer.deserialize(...)
         * @see SubmodelComponentSerializer#serialize(SubmodelComponent, java.util.function.Function) SubmodelComponentSerializer.serialize(...)
         */
@@ -25,7 +25,7 @@ public class DeserializedSubmodelComponent extends SubmodelComponent
         */
        public final JsonElement paramsForSerializingOverride;
 
-       public DeserializedSubmodelComponent(ViewModelModifiable model, String name, String idForSerializingOverride,
+       public DeserializedSubmodelComponent(LogicModelModifiable model, String name, String idForSerializingOverride,
                        JsonElement paramsForSerializingOverride)
        {
                super(model, name);
@@ -51,7 +51,7 @@ public class DeserializedSubmodelComponent extends SubmodelComponent
                super.setHighLevelStateHandler(handler);
        }
 
-       public ViewModelModifiable getSubmodelModifiable()
+       public LogicModelModifiable getSubmodelModifiable()
        {
                return submodelModifiable;
        }
index b658574..fce47c1 100644 (file)
@@ -12,7 +12,7 @@ import com.google.gson.JsonElement;
 import com.google.gson.JsonNull;
 import com.google.gson.JsonObject;
 
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.util.JsonHandler;
@@ -76,22 +76,22 @@ public class IndirectModelComponentCreator
                componentSuppliers.put(id, componentSupplier);
        }
 
-       public static ModelComponent createComponent(ViewModelModifiable model, String id)
+       public static ModelComponent createComponent(LogicModelModifiable model, String id)
        {
                return createComponent(model, id, (String) null);
        }
 
-       public static ModelComponent createComponent(ViewModelModifiable model, String id, String name)
+       public static ModelComponent createComponent(LogicModelModifiable model, String id, String name)
        {
                return createComponent(model, id, JsonNull.INSTANCE, name);
        }
 
-       public static ModelComponent createComponent(ViewModelModifiable model, String id, JsonElement params)
+       public static ModelComponent createComponent(LogicModelModifiable model, String id, JsonElement params)
        {
                return createComponent(model, id, params, null);
        }
 
-       public static ModelComponent createComponent(ViewModelModifiable model, String id, JsonElement params, String name)
+       public static ModelComponent createComponent(LogicModelModifiable model, String id, JsonElement params, String name)
        {
                if (id == null)
                        throw new NullPointerException("Component ID is null");
@@ -184,7 +184,7 @@ public class IndirectModelComponentCreator
                return id.matches("jsonfile:(.+)|(resloader:([^:]+):)?(jsonres|class):[^:]+");
        }
 
-       private static SubmodelComponent loadComponentFromJsonObject(ViewModelModifiable model, String id, String name, JsonObject jsonContents)
+       private static SubmodelComponent loadComponentFromJsonObject(LogicModelModifiable model, String id, String name, JsonObject jsonContents)
        {
                componentCache.putIfAbsent(id, jsonContents);
                SerializablePojo jsonContentsAsSerializablePojo = JsonHandler.parser.fromJson(jsonContents, SerializablePojo.class);
@@ -217,6 +217,6 @@ public class IndirectModelComponentCreator
 
        public static interface ComponentSupplier
        {
-               public ModelComponent create(ViewModelModifiable model, JsonElement params, String name);
+               public ModelComponent create(LogicModelModifiable model, JsonElement params, String name);
        }
 }
\ No newline at end of file
index f456aad..37b05a9 100644 (file)
@@ -9,7 +9,7 @@ import java.util.function.Function;
 import com.google.gson.JsonElement;
 
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.ModelWire;
@@ -37,23 +37,23 @@ public final class LegacySubmodelComponentSerializer
        // convenience methods
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams)}, but first reading the
         * {@link LegacySubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath) throws IOException
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class));
        }
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, JsonElement)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, JsonElement)}, but first reading the
         * {@link LegacySubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String idForSerializingOverride,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String idForSerializingOverride,
                        JsonElement paramsForSerializingOverride) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class), idForSerializingOverride,
@@ -61,23 +61,23 @@ public final class LegacySubmodelComponentSerializer
        }
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String)}, but first reading the
         * {@link LegacySubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String name) throws IOException
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String name) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class), name);
        }
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)}, but first reading the
         * {@link LegacySubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String name, String idForSerializingOverride,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String name, String idForSerializingOverride,
                        JsonElement paramsForSerializingOverride) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, LegacySubmodelComponentParams.class), name, idForSerializingOverride,
@@ -85,34 +85,34 @@ public final class LegacySubmodelComponentSerializer
        }
 
        /**
-        * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no
+        * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no
         * <code>idForSerializingOverride</code> set and using the default name.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params)
+       public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params)
        {
                return deserialize(model, params, null, null, null);
        }
 
        /**
-        * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} using the default name.
+        * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} using the default name.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params,
                        String idForSerializingOverride, JsonElement paramsForSerializingOverride)
        {
                return deserialize(model, params, null, idForSerializingOverride, paramsForSerializingOverride);
        }
 
        /**
-        * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no
+        * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement)} with no
         * <code>idForSerializingOverride</code> set.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params, String name)
+       public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params, String name)
        {
                return deserialize(model, params, name, null, null);
        }
@@ -164,7 +164,7 @@ public final class LegacySubmodelComponentSerializer
         * @author Daniel Kirschten
         */
        @SuppressWarnings("unused") // for ModelWire being created
-       public static SubmodelComponent deserialize(ViewModelModifiable model, LegacySubmodelComponentParams params, String name,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, LegacySubmodelComponentParams params, String name,
                        String idForSerializingOverride, JsonElement paramsForSerializingOverride)
        {
                DeserializedSubmodelComponent comp = new DeserializedSubmodelComponent(model, name, idForSerializingOverride,
@@ -176,7 +176,7 @@ public final class LegacySubmodelComponentSerializer
                        comp.addSubmodelInterface(new MovablePin(comp, iPinParams.name, iPinParams.logicWidth, PinUsage.TRISTATE, iPinParams.location.x,
                                        iPinParams.location.y));
                LegacySubmodelParameters submodelParams = params.submodel;
-               ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
+               LogicModelModifiable submodelModifiable = comp.getSubmodelModifiable();
                Map<String, ModelComponent> componentsByName = submodelModifiable.getComponentsByName();
                ModelComponent[] components = new ModelComponent[submodelParams.subComps.length];
                for (int i = 0; i < components.length; i++)
@@ -206,7 +206,7 @@ public final class LegacySubmodelComponentSerializer
         * Subcomponents are serialized in the following way: <br>
         * If a subcomponent is a <code>SubmodelComponent</code> which has been deserialized, and it has an
         * {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride} set (e.g. non-null; see
-        * {@link #deserialize(ViewModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement) deserialize(...)}), this ID and
+        * {@link #deserialize(LogicModelModifiable, LegacySubmodelComponentParams, String, String, JsonElement) deserialize(...)}), this ID and
         * the component's {@link DeserializedSubmodelComponent#paramsForSerializingOverride paramsForSerializingOverride} are written.<br>
         * If this case doesn't apply (e.g. if the subcomponent is not a <code>SubmodelComponent</code>; or it is a
         * <code>SubmodelComponent</code>, but hasn't been deserialized; or it has no
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LogicModelParams.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LogicModelParams.java
new file mode 100644 (file)
index 0000000..187d82c
--- /dev/null
@@ -0,0 +1,38 @@
+package net.mograsim.logic.model.serializing;
+
+import com.google.gson.JsonElement;
+
+import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
+import net.mograsim.logic.model.util.Version;
+
+public class LogicModelParams extends SerializablePojo
+{
+       public ComponentParams[] components;
+       public WireParams[] wires;
+
+       public LogicModelParams(Version version)
+       {
+               super(version);
+       }
+
+       public static class ComponentParams
+       {
+               public String id;
+               public String name;
+               public Point pos;
+               public JsonElement params;
+       }
+
+       public static class WireParams
+       {
+               public PinParams pin1, pin2;
+               public String name;
+               public Point[] path;
+
+               public static class PinParams
+               {
+                       public String compName;
+                       public String pinName;
+               }
+       }
+}
\ No newline at end of file
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LogicModelSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/LogicModelSerializer.java
new file mode 100644 (file)
index 0000000..c3b70bd
--- /dev/null
@@ -0,0 +1,190 @@
+package net.mograsim.logic.model.serializing;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import com.google.gson.JsonElement;
+
+import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
+import net.mograsim.logic.model.model.LogicModel;
+import net.mograsim.logic.model.model.LogicModelModifiable;
+import net.mograsim.logic.model.model.components.ModelComponent;
+import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
+import net.mograsim.logic.model.model.wires.ModelWire;
+import net.mograsim.logic.model.serializing.LogicModelParams.ComponentParams;
+import net.mograsim.logic.model.serializing.LogicModelParams.WireParams;
+import net.mograsim.logic.model.serializing.LogicModelParams.WireParams.PinParams;
+import net.mograsim.logic.model.util.JsonHandler;
+import net.mograsim.logic.model.util.Version;
+
+public class LogicModelSerializer
+{
+       public static final Version CURRENT_JSON_VERSION = Version.parseSemver("0.1.1");
+
+       // convenience methods
+       /**
+        * Like {@link #deserialize(LogicModelParams)}, but first reading the {@link LogicModelParams} from the given file path.
+        * 
+        * @author Daniel Kirschten
+        */
+       public static LogicModelModifiable deserialize(String sourcePath) throws IOException
+       {
+               return deserialize(JsonHandler.readJson(sourcePath, LogicModelParams.class));
+       }
+
+       /**
+        * Like {@link #deserialize(LogicModelModifiable, LogicModelParams)}, but first reading the {@link LogicModelParams} from the given file
+        * path.
+        * 
+        * @author Daniel Kirschten
+        */
+       public static void deserialize(LogicModelModifiable model, String sourcePath) throws IOException
+       {
+               deserialize(model, JsonHandler.readJson(sourcePath, LogicModelParams.class));
+       }
+
+       /**
+        * Like {@link #deserialize(LogicModelModifiable, LogicModelParams)}, but using a newly created {@link LogicModelModifiable}.
+        * 
+        * @author Daniel Kirschten
+        */
+       public static LogicModelModifiable deserialize(LogicModelParams params)
+       {
+               LogicModelModifiable model = new LogicModelModifiable();
+               deserialize(model, params);
+               return model;
+       }
+
+       /**
+        * Like {@link #serialize(LogicModel)}, but instead of returning the generated {@link LogicModelParams} they are written to a file at the
+        * given path.
+        * 
+        * @author Daniel Kirschten
+        */
+       public static void serialize(LogicModel model, String targetPath) throws IOException
+       {
+               JsonHandler.writeJson(serialize(model), targetPath);
+       }
+
+       /**
+        * Like {@link #serialize(LogicModel, IdentifierGetter)}, but instead of returning the generated {@link LogicModelParams} they are written
+        * to a file at the given path.
+        * 
+        * @author Daniel Kirschten
+        */
+       public static void serialize(LogicModel model, IdentifyParams idParams, String targetPath) throws IOException
+       {
+               JsonHandler.writeJson(serialize(model, idParams), targetPath);
+       }
+
+       /**
+        * {@link #serialize(LogicModel, IdentifierGetter)} using a default {@link IdentifierGetter} (see <code>IdentifierGetter</code>'s
+        * {@link IdentifierGetter#IdentifierGetter() default constructor})
+        * 
+        * @author Daniel Kirschten
+        */
+       public static LogicModelParams serialize(LogicModel model)
+       {
+               return serialize(model, new IdentifyParams());
+       }
+
+       // "core" methods
+       /**
+        * Deserializes components and wires from the specified {@link LogicModelParams} and adds them to the given {@link LogicModelModifiable}.
+        * 
+        * @author Fabian Stemmler
+        * @author Daniel Kirschten
+        */
+       @SuppressWarnings("unused") // for ModelWire being created
+       public static void deserialize(LogicModelModifiable model, LogicModelParams params)
+       {
+               Map<String, ModelComponent> componentsByName = model.getComponentsByName();
+               ModelComponent[] components = new ModelComponent[params.components.length];
+               for (int i = 0; i < components.length; i++)
+               {
+                       ComponentParams compParams = params.components[i];
+                       components[i] = IndirectModelComponentCreator.createComponent(model, compParams.id, compParams.params, compParams.name);
+                       components[i].moveTo(compParams.pos.x, compParams.pos.y);
+               }
+
+               for (int i = 0; i < params.wires.length; i++)
+               {
+                       WireParams wire = params.wires[i];
+                       new ModelWire(model, wire.name, componentsByName.get(wire.pin1.compName).getPin(wire.pin1.pinName),
+                                       componentsByName.get(wire.pin2.compName).getPin(wire.pin2.pinName), wire.path);
+               }
+       }
+
+       /**
+        * Returns {@link LogicModelModifiable}, which describe the components and wires in the given {@link LogicModel}. <br>
+        * Components are serialized in the following way: <br>
+        * If a component is a <code>SubmodelComponent</code> which has been deserialized, and it has an
+        * {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride} set (e.g. non-null; see
+        * {@link SubmodelComponentSerializer#deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)
+        * SubmodelComponentSerializer.deserialize(...)}), this ID and the component's
+        * {@link DeserializedSubmodelComponent#paramsForSerializingOverride paramsForSerializingOverride} are written.<br>
+        * If this case doesn't apply (e.g. if the component is not a <code>SubmodelComponent</code>; or it is a <code>SubmodelComponent</code>,
+        * but hasn't been deserialized; or it has no {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride}
+        * set), the ID defined by <code>idGetter</code> and the params obtained by {@link ModelComponent#getParamsForSerializing() getParams()}
+        * are written.
+        * 
+        * @author Fabian Stemmler
+        * @author Daniel Kirschten
+        */
+       public static LogicModelParams serialize(LogicModel model, IdentifyParams idParams)
+       {
+               LogicModelParams modelParams = new LogicModelParams(CURRENT_JSON_VERSION);
+
+               Map<String, ModelComponent> components = new HashMap<>(model.getComponentsByName());
+               components.remove(SubmodelComponent.SUBMODEL_INTERFACE_NAME);
+               Set<ComponentParams> componentsParams = new HashSet<>();
+               for (ModelComponent component : components.values())
+               {
+                       ComponentParams compParams = new ComponentParams();
+                       componentsParams.add(compParams);
+                       compParams.pos = new Point(component.getPosX(), component.getPosY());
+                       DeserializedSubmodelComponent innerCompCasted;
+                       if (component instanceof DeserializedSubmodelComponent
+                                       && (innerCompCasted = (DeserializedSubmodelComponent) component).idForSerializingOverride != null)
+                       {
+                               compParams.id = innerCompCasted.idForSerializingOverride;
+                               compParams.params = innerCompCasted.paramsForSerializingOverride;
+                       } else
+                       {
+                               compParams.id = component.getIDForSerializing(idParams);
+                               compParams.params = component.getParamsForSerializingJSON(idParams);
+                       }
+                       compParams.name = component.name;
+               }
+               modelParams.components = componentsParams.toArray(ComponentParams[]::new);
+               Arrays.sort(modelParams.components, Comparator.comparing(c -> c.name));
+
+               Collection<ModelWire> wires = model.getWiresByName().values();
+               Set<WireParams> wiresParams = new HashSet<>();
+               for (ModelWire innerWire : wires)
+               {
+                       WireParams innerWireParams = new WireParams();
+                       wiresParams.add(innerWireParams);
+                       PinParams pin1Params = new PinParams(), pin2Params = new PinParams();
+
+                       pin1Params.pinName = innerWire.getPin1().name;
+                       pin1Params.compName = innerWire.getPin1().component.name;
+                       pin2Params.pinName = innerWire.getPin2().name;
+                       pin2Params.compName = innerWire.getPin2().component.name;
+                       innerWireParams.name = innerWire.name;
+                       innerWireParams.pin1 = pin1Params;
+                       innerWireParams.pin2 = pin2Params;
+                       innerWireParams.path = innerWire.getPath();
+               }
+               modelParams.wires = wiresParams.toArray(WireParams[]::new);
+               Arrays.sort(modelParams.wires, Comparator.comparing(c -> c.name));
+
+               return modelParams;
+       }
+}
\ No newline at end of file
index 1cb5fcb..97b3c7c 100644 (file)
@@ -16,7 +16,7 @@ public class SubmodelComponentParams extends SerializablePojo
        public double width, height;
        public InterfacePinParams[] interfacePins;
        public double innerScale;
-       public ViewModelParams submodel;
+       public LogicModelParams submodel;
 
        // functionality that needs to be expressed in Java code
        public String symbolRendererSnippetID;
index d09ed4a..ce770ac 100644 (file)
@@ -6,7 +6,7 @@ import java.util.Comparator;
 
 import com.google.gson.JsonElement;
 
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
 import net.mograsim.logic.model.model.wires.MovablePin;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -32,23 +32,23 @@ public final class SubmodelComponentSerializer
        // convenience methods
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, SubmodelComponentParams)}, but first reading the {@link SubmodelComponentParams} from
+        * Like {@link #deserialize(LogicModelModifiable, SubmodelComponentParams)}, but first reading the {@link SubmodelComponentParams} from
         * the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath) throws IOException
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, SubmodelComponentParams.class));
        }
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, SubmodelComponentParams, String, JsonElement)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, SubmodelComponentParams, String, JsonElement)}, but first reading the
         * {@link SubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String idForSerializingOverride,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String idForSerializingOverride,
                        JsonElement paramsForSerializingOverride) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, SubmodelComponentParams.class), idForSerializingOverride,
@@ -56,23 +56,23 @@ public final class SubmodelComponentSerializer
        }
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, SubmodelComponentParams, String)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, SubmodelComponentParams, String)}, but first reading the
         * {@link SubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String name) throws IOException
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String name) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, SubmodelComponentParams.class), name);
        }
 
        /**
-        * Like {@link #deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)}, but first reading the
+        * Like {@link #deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)}, but first reading the
         * {@link SubmodelComponentParams} from the given file path.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, String sourcePath, String name, String idForSerializingOverride,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, String sourcePath, String name, String idForSerializingOverride,
                        JsonElement paramsForSerializingOverride) throws IOException
        {
                return deserialize(model, JsonHandler.readJson(sourcePath, SubmodelComponentParams.class), name, idForSerializingOverride,
@@ -80,34 +80,34 @@ public final class SubmodelComponentSerializer
        }
 
        /**
-        * {@link #deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)} with no
+        * {@link #deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)} with no
         * <code>idForSerializingOverride</code> set and using the default name.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, SubmodelComponentParams params)
+       public static SubmodelComponent deserialize(LogicModelModifiable model, SubmodelComponentParams params)
        {
                return deserialize(model, params, null, null, null);
        }
 
        /**
-        * {@link #deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)} using the default name.
+        * {@link #deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)} using the default name.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, SubmodelComponentParams params, String idForSerializingOverride,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, SubmodelComponentParams params, String idForSerializingOverride,
                        JsonElement paramsForSerializingOverride)
        {
                return deserialize(model, params, null, idForSerializingOverride, paramsForSerializingOverride);
        }
 
        /**
-        * {@link #deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)} with no
+        * {@link #deserialize(LogicModelModifiable, SubmodelComponentParams, String, String, JsonElement)} with no
         * <code>idForSerializingOverride</code> set.
         * 
         * @author Daniel Kirschten
         */
-       public static SubmodelComponent deserialize(ViewModelModifiable model, SubmodelComponentParams params, String name)
+       public static SubmodelComponent deserialize(LogicModelModifiable model, SubmodelComponentParams params, String name)
        {
                return deserialize(model, params, name, null, null);
        }
@@ -159,7 +159,7 @@ public final class SubmodelComponentSerializer
         * @author Daniel Kirschten
         */
        @SuppressWarnings("unused") // for ModelWire being created
-       public static SubmodelComponent deserialize(ViewModelModifiable model, SubmodelComponentParams params, String name,
+       public static SubmodelComponent deserialize(LogicModelModifiable model, SubmodelComponentParams params, String name,
                        String idForSerializingOverride, JsonElement paramsForSerializingOverride)
        {
                Version version = params.version;
@@ -174,8 +174,8 @@ public final class SubmodelComponentSerializer
                        // TRISTATE because we don't have a better choice
                        comp.addSubmodelInterface(new MovablePin(comp, iPinParams.name, iPinParams.logicWidth,
                                        hasUsageSerialized ? iPinParams.usage : PinUsage.TRISTATE, iPinParams.location.x, iPinParams.location.y));
-               ViewModelModifiable submodelModifiable = comp.getSubmodelModifiable();
-               ViewModelSerializer.deserialize(comp.getSubmodelModifiable(), params.submodel);
+               LogicModelModifiable submodelModifiable = comp.getSubmodelModifiable();
+               LogicModelSerializer.deserialize(comp.getSubmodelModifiable(), params.submodel);
                comp.setSymbolRenderer(SubmodelComponentSnippetSuppliers.symbolRendererSupplier.getSnippetSupplier(params.symbolRendererSnippetID)
                                .create(comp, params.symbolRendererParams));
                comp.setOutlineRenderer(SubmodelComponentSnippetSuppliers.outlineRendererSupplier
@@ -187,8 +187,8 @@ public final class SubmodelComponentSerializer
 
        /**
         * Returns {@link SubmodelComponentParams}, which describe this {@link SubmodelComponent}. <br>
-        * See {@link ViewModelSerializer#serialize(net.mograsim.logic.model.model.ViewModel, IdentifierGetter)
-        * ViewModelSerializer.serialize(...)} for how subcomponents are serialized.<br>
+        * See {@link LogicModelSerializer#serialize(net.mograsim.logic.model.model.LogicModel, IdentifierGetter)
+        * LogicModelSerializer.serialize(...)} for how subcomponents are serialized.<br>
         * CodeSnippets are serialized using the ID defined by <code>idGetter</code> and the params obtained by the respective
         * <coce>getParamsForSerializing</code> methods ({@link Renderer#getParamsForSerializing()}).
         * 
@@ -199,7 +199,7 @@ public final class SubmodelComponentSerializer
        {
                SubmodelComponentParams params = new SubmodelComponentParams(JSON_VERSION_CURRENT_SERIALIZING);
                params.innerScale = comp.getSubmodelScale();
-               params.submodel = ViewModelSerializer.serialize(comp.submodel, idParams);
+               params.submodel = LogicModelSerializer.serialize(comp.submodel, idParams);
 
                params.width = comp.getWidth();
                params.height = comp.getHeight();
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelParams.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelParams.java
deleted file mode 100644 (file)
index 6f4f82c..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-package net.mograsim.logic.model.serializing;
-
-import com.google.gson.JsonElement;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.util.Version;
-
-public class ViewModelParams extends SerializablePojo
-{
-       public ComponentParams[] components;
-       public WireParams[] wires;
-
-       public ViewModelParams(Version version)
-       {
-               super(version);
-       }
-
-       public static class ComponentParams
-       {
-               public String id;
-               public String name;
-               public Point pos;
-               public JsonElement params;
-       }
-
-       public static class WireParams
-       {
-               public PinParams pin1, pin2;
-               public String name;
-               public Point[] path;
-
-               public static class PinParams
-               {
-                       public String compName;
-                       public String pinName;
-               }
-       }
-}
\ No newline at end of file
diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/ViewModelSerializer.java
deleted file mode 100644 (file)
index 443fe05..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-package net.mograsim.logic.model.serializing;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import com.google.gson.JsonElement;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.model.model.ViewModel;
-import net.mograsim.logic.model.model.ViewModelModifiable;
-import net.mograsim.logic.model.model.components.ModelComponent;
-import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
-import net.mograsim.logic.model.model.wires.ModelWire;
-import net.mograsim.logic.model.serializing.ViewModelParams.ComponentParams;
-import net.mograsim.logic.model.serializing.ViewModelParams.WireParams;
-import net.mograsim.logic.model.serializing.ViewModelParams.WireParams.PinParams;
-import net.mograsim.logic.model.util.JsonHandler;
-import net.mograsim.logic.model.util.Version;
-
-public class ViewModelSerializer
-{
-       public static final Version CURRENT_JSON_VERSION = Version.parseSemver("0.1.1");
-
-       // convenience methods
-       /**
-        * Like {@link #deserialize(ViewModelParams)}, but first reading the {@link ViewModelParams} from the given file path.
-        * 
-        * @author Daniel Kirschten
-        */
-       public static ViewModelModifiable deserialize(String sourcePath) throws IOException
-       {
-               return deserialize(JsonHandler.readJson(sourcePath, ViewModelParams.class));
-       }
-
-       /**
-        * Like {@link #deserialize(ViewModelModifiable, ViewModelParams)}, but first reading the {@link ViewModelParams} from the given file
-        * path.
-        * 
-        * @author Daniel Kirschten
-        */
-       public static void deserialize(ViewModelModifiable model, String sourcePath) throws IOException
-       {
-               deserialize(model, JsonHandler.readJson(sourcePath, ViewModelParams.class));
-       }
-
-       /**
-        * Like {@link #deserialize(ViewModelModifiable, ViewModelParams)}, but using a newly created {@link ViewModelModifiable}.
-        * 
-        * @author Daniel Kirschten
-        */
-       public static ViewModelModifiable deserialize(ViewModelParams params)
-       {
-               ViewModelModifiable model = new ViewModelModifiable();
-               deserialize(model, params);
-               return model;
-       }
-
-       /**
-        * Like {@link #serialize(ViewModel)}, but instead of returning the generated {@link ViewModelParams} they are written to a file at the
-        * given path.
-        * 
-        * @author Daniel Kirschten
-        */
-       public static void serialize(ViewModel model, String targetPath) throws IOException
-       {
-               JsonHandler.writeJson(serialize(model), targetPath);
-       }
-
-       /**
-        * Like {@link #serialize(ViewModel, IdentifierGetter)}, but instead of returning the generated {@link ViewModelParams} they are written
-        * to a file at the given path.
-        * 
-        * @author Daniel Kirschten
-        */
-       public static void serialize(ViewModel model, IdentifyParams idParams, String targetPath) throws IOException
-       {
-               JsonHandler.writeJson(serialize(model, idParams), targetPath);
-       }
-
-       /**
-        * {@link #serialize(ViewModel, IdentifierGetter)} using a default {@link IdentifierGetter} (see <code>IdentifierGetter</code>'s
-        * {@link IdentifierGetter#IdentifierGetter() default constructor})
-        * 
-        * @author Daniel Kirschten
-        */
-       public static ViewModelParams serialize(ViewModel model)
-       {
-               return serialize(model, new IdentifyParams());
-       }
-
-       // "core" methods
-       /**
-        * Deserializes components and wires from the specified {@link ViewModelParams} and adds them to the given {@link ViewModelModifiable}.
-        * 
-        * @author Fabian Stemmler
-        * @author Daniel Kirschten
-        */
-       @SuppressWarnings("unused") // for ModelWire being created
-       public static void deserialize(ViewModelModifiable model, ViewModelParams params)
-       {
-               Map<String, ModelComponent> componentsByName = model.getComponentsByName();
-               ModelComponent[] components = new ModelComponent[params.components.length];
-               for (int i = 0; i < components.length; i++)
-               {
-                       ComponentParams compParams = params.components[i];
-                       components[i] = IndirectModelComponentCreator.createComponent(model, compParams.id, compParams.params, compParams.name);
-                       components[i].moveTo(compParams.pos.x, compParams.pos.y);
-               }
-
-               for (int i = 0; i < params.wires.length; i++)
-               {
-                       WireParams wire = params.wires[i];
-                       new ModelWire(model, wire.name, componentsByName.get(wire.pin1.compName).getPin(wire.pin1.pinName),
-                                       componentsByName.get(wire.pin2.compName).getPin(wire.pin2.pinName), wire.path);
-               }
-       }
-
-       /**
-        * Returns {@link ViewModelModifiable}, which describe the components and wires in the given {@link ViewModel}. <br>
-        * Components are serialized in the following way: <br>
-        * If a component is a <code>SubmodelComponent</code> which has been deserialized, and it has an
-        * {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride} set (e.g. non-null; see
-        * {@link SubmodelComponentSerializer#deserialize(ViewModelModifiable, SubmodelComponentParams, String, String, JsonElement)
-        * SubmodelComponentSerializer.deserialize(...)}), this ID and the component's
-        * {@link DeserializedSubmodelComponent#paramsForSerializingOverride paramsForSerializingOverride} are written.<br>
-        * If this case doesn't apply (e.g. if the component is not a <code>SubmodelComponent</code>; or it is a <code>SubmodelComponent</code>,
-        * but hasn't been deserialized; or it has no {@link DeserializedSubmodelComponent#idForSerializingOverride idForSerializingOverride}
-        * set), the ID defined by <code>idGetter</code> and the params obtained by {@link ModelComponent#getParamsForSerializing() getParams()}
-        * are written.
-        * 
-        * @author Fabian Stemmler
-        * @author Daniel Kirschten
-        */
-       public static ViewModelParams serialize(ViewModel model, IdentifyParams idParams)
-       {
-               ViewModelParams modelParams = new ViewModelParams(CURRENT_JSON_VERSION);
-
-               Map<String, ModelComponent> components = new HashMap<>(model.getComponentsByName());
-               components.remove(SubmodelComponent.SUBMODEL_INTERFACE_NAME);
-               Set<ComponentParams> componentsParams = new HashSet<>();
-               for (ModelComponent component : components.values())
-               {
-                       ComponentParams compParams = new ComponentParams();
-                       componentsParams.add(compParams);
-                       compParams.pos = new Point(component.getPosX(), component.getPosY());
-                       DeserializedSubmodelComponent innerCompCasted;
-                       if (component instanceof DeserializedSubmodelComponent
-                                       && (innerCompCasted = (DeserializedSubmodelComponent) component).idForSerializingOverride != null)
-                       {
-                               compParams.id = innerCompCasted.idForSerializingOverride;
-                               compParams.params = innerCompCasted.paramsForSerializingOverride;
-                       } else
-                       {
-                               compParams.id = component.getIDForSerializing(idParams);
-                               compParams.params = component.getParamsForSerializingJSON(idParams);
-                       }
-                       compParams.name = component.name;
-               }
-               modelParams.components = componentsParams.toArray(ComponentParams[]::new);
-               Arrays.sort(modelParams.components, Comparator.comparing(c -> c.name));
-
-               Collection<ModelWire> wires = model.getWiresByName().values();
-               Set<WireParams> wiresParams = new HashSet<>();
-               for (ModelWire innerWire : wires)
-               {
-                       WireParams innerWireParams = new WireParams();
-                       wiresParams.add(innerWireParams);
-                       PinParams pin1Params = new PinParams(), pin2Params = new PinParams();
-
-                       pin1Params.pinName = innerWire.getPin1().name;
-                       pin1Params.compName = innerWire.getPin1().component.name;
-                       pin2Params.pinName = innerWire.getPin2().name;
-                       pin2Params.compName = innerWire.getPin2().component.name;
-                       innerWireParams.name = innerWire.name;
-                       innerWireParams.pin1 = pin1Params;
-                       innerWireParams.pin2 = pin2Params;
-                       innerWireParams.path = innerWire.getPath();
-               }
-               modelParams.wires = wiresParams.toArray(WireParams[]::new);
-               Arrays.sort(modelParams.wires, Comparator.comparing(c -> c.name));
-
-               return modelParams;
-       }
-}
\ No newline at end of file
index 06ce3ca..58a86ea 100644 (file)
@@ -1,6 +1,6 @@
 package net.mograsim.logic.model.util;
 
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.wires.ModelWire;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -8,9 +8,9 @@ import net.mograsim.logic.model.model.wires.ModelWireCrossPoint;
 
 public class ModellingTool
 {
-       private ViewModelModifiable model;
+       private LogicModelModifiable model;
 
-       ModellingTool(ViewModelModifiable model)
+       ModellingTool(LogicModelModifiable model)
        {
                this.model = model;
        }
@@ -105,7 +105,7 @@ public class ModellingTool
                return new ModelWire(model, name, a, b);
        }
 
-       public static ModellingTool createFor(ViewModelModifiable model)
+       public static ModellingTool createFor(LogicModelModifiable model)
        {
                return new ModellingTool(model);
        }
index ef91fd4..372c188 100644 (file)
@@ -3,14 +3,14 @@ package net.mograsim.machine;
 import net.mograsim.logic.core.components.CoreClock;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.core.types.BitVector;
-import net.mograsim.logic.model.model.ViewModel;
+import net.mograsim.logic.model.model.LogicModel;
 
 public interface Machine {
        MachineDefinition getDefinition();
        
        void reset();
        
-       ViewModel getModel();
+       LogicModel getModel();
        
        CoreClock getClock();
        
index 8f40ced..78bd16f 100644 (file)
@@ -2,7 +2,7 @@ package net.mograsim.machine.standard.memory;
 
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
 import net.mograsim.logic.model.model.components.atomic.ModelAndGate;
 import net.mograsim.logic.model.model.wires.Pin;
@@ -26,7 +26,7 @@ public class ModelMemoryWA extends ModelComponent
        private Renderer                                                symbolRenderer;
        private Renderer                                                outlineRenderer;
 
-       public ModelMemoryWA(ViewModelModifiable model, MainMemoryDefinition definition, String name)
+       public ModelMemoryWA(LogicModelModifiable model, MainMemoryDefinition definition, String name)
        {
                super(model, name);
                this.definition = definition;
index bff6d61..5fcc168 100644 (file)
@@ -9,7 +9,7 @@ import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
 import net.mograsim.logic.core.timeline.Timeline;
 import net.mograsim.logic.model.LogicExecuter;
 import net.mograsim.logic.model.LogicUICanvas;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.atomic.ModelManualSwitch;
 import net.mograsim.logic.model.model.components.atomic.ModelNotGate;
 import net.mograsim.logic.model.model.components.atomic.ModelOrGate;
@@ -36,7 +36,7 @@ public class SimulationPreview implements IThemePreview
                // TODO this will change the global preferences; so if another LogicUICanvas redraws, it will use the "new" colors too.
                Preferences.setPreferences(currentThemePreferences);
 
-               ViewModelModifiable model = new ViewModelModifiable();
+               LogicModelModifiable model = new LogicModelModifiable();
                CoreModelParameters params = new CoreModelParameters();
                params.gateProcessTime = 50;
                params.wireTravelTime = 10;