Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.logic.model.editor / src / net / mograsim / logic / model / editor / Editor.java
index b6de1ac..90baafb 100644 (file)
@@ -1,6 +1,5 @@
 package net.mograsim.logic.model.editor;
 
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Optional;
@@ -20,12 +19,11 @@ 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.components.GUIComponent;
-import net.mograsim.logic.model.model.wires.GUIWire;
+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;
-import net.mograsim.logic.model.serializing.IdentifyParams;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
 import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler;
 import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
 import net.mograsim.logic.model.snippets.symbolrenderers.DefaultSymbolRenderer;
@@ -36,7 +34,6 @@ public final class Editor
        final Set<ComponentInfo> copyBuffer = new HashSet<>();
        public final DeserializedSubmodelComponent toBeEdited;
        public final HandleManager handleManager;
-       final static Map<GUIComponent, String> identifierPerComponent = new HashMap<>();
        public final EditorGUI gui;
        public final StateManager stateManager;
        private final SaveLoadManager saveManager;
@@ -56,12 +53,10 @@ public final class Editor
                saveManager = new SaveLoadManager(this);
                dialogManager = new DialogManager(gui.shell);
 
-               toBeEdited.submodel.addComponentRemovedListener(c -> identifierPerComponent.remove(c));
-
                gui.open();
        }
 
-       public ViewModelModifiable getSubmodel()
+       public LogicModelModifiable getSubmodel()
        {
                return toBeEdited.getSubmodelModifiable();
        }
@@ -127,7 +122,7 @@ public final class Editor
                selection.clear();
                for (ComponentInfo info : copyBuffer)
                {
-                       GUIComponent comp = addComponent(info.identifier, info.params);
+                       ModelComponent comp = addComponent(info.identifier, info.params);
                        ComponentHandle h = handleManager.getHandle(comp);
                        h.reqMove(info.relX, info.relY);
                        selection.add(h);
@@ -154,7 +149,7 @@ public final class Editor
                        String selected = gui.getAddListSelected();
                        try
                        {
-                               GUIComponent c = addComponent(selected, params);
+                               ModelComponent c = addComponent(selected, params);
                                selection.clear();
                                selection.add(handleManager.getHandle(c));
                                moveSelection(x, y);
@@ -171,18 +166,9 @@ public final class Editor
                }
        }
 
-       private GUIComponent addComponent(String identifier, JsonElement params)
-       {
-               GUIComponent comp = IndirectGUIComponentCreator.createComponent(toBeEdited.getSubmodelModifiable(), identifier, params);
-               identifierPerComponent.put(comp, identifier);
-               return comp;
-       }
-
-       public static String getIdentifier(GUIComponent c)
+       private ModelComponent addComponent(String identifier, JsonElement params)
        {
-               if (identifierPerComponent.containsKey(c))
-                       return identifierPerComponent.get(c);
-               return c.getIDForSerializing(new IdentifyParams());
+               return IndirectModelComponentCreator.createComponent(toBeEdited.getSubmodelModifiable(), identifier, params);
        }
 
        public void duplicate()
@@ -225,7 +211,7 @@ public final class Editor
        @SuppressWarnings("unused")
        public void addWire(PinHandle a, PinHandle b)
        {
-               new GUIWire(toBeEdited.getSubmodelModifiable(), a.getPin(), b.getPin(), new Point[0]);
+               new ModelWire(toBeEdited.getSubmodelModifiable(), a.getPin(), b.getPin(), new Point[0]);
        }
 
        public static enum Snapping
@@ -248,7 +234,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());