Removed legacy getIdentifier method; Editor now can duplicate Mergers
authorDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 12 Sep 2019 09:12:18 +0000 (11:12 +0200)
committerDaniel Kirschten <daniel.kirschten@gmx.de>
Thu, 12 Sep 2019 09:12:18 +0000 (11:12 +0200)
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java
net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/handles/ComponentHandle.java

index c269719..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;
@@ -24,7 +23,6 @@ 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.IndirectModelComponentCreator;
 import net.mograsim.logic.model.snippets.highlevelstatehandlers.DefaultHighLevelStateHandler;
 import net.mograsim.logic.model.snippets.outlinerenderers.DefaultOutlineRenderer;
@@ -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<ModelComponent, String> identifierPerComponent = new HashMap<>();
        public final EditorGUI gui;
        public final StateManager stateManager;
        private final SaveLoadManager saveManager;
@@ -56,8 +53,6 @@ public final class Editor
                saveManager = new SaveLoadManager(this);
                dialogManager = new DialogManager(gui.shell);
 
-               toBeEdited.submodel.addComponentRemovedListener(c -> identifierPerComponent.remove(c));
-
                gui.open();
        }
 
@@ -173,16 +168,7 @@ public final class Editor
 
        private ModelComponent addComponent(String identifier, JsonElement params)
        {
-               ModelComponent comp = IndirectModelComponentCreator.createComponent(toBeEdited.getSubmodelModifiable(), identifier, params);
-               identifierPerComponent.put(comp, identifier);
-               return comp;
-       }
-
-       public static String getIdentifier(ModelComponent c)
-       {
-               if (identifierPerComponent.containsKey(c))
-                       return identifierPerComponent.get(c);
-               return c.getIDForSerializing(new IdentifyParams());
+               return IndirectModelComponentCreator.createComponent(toBeEdited.getSubmodelModifiable(), identifier, params);
        }
 
        public void duplicate()
index 7764895..14868e9 100644 (file)
@@ -9,7 +9,6 @@ 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.editor.Editor;
 import net.mograsim.logic.model.editor.Editor.ComponentInfo;
 import net.mograsim.logic.model.model.LogicModelModifiable;
 import net.mograsim.logic.model.model.components.ModelComponent;
@@ -95,8 +94,9 @@ public class ComponentHandle extends Handle
        @Override
        public Optional<ComponentInfo> reqCopy(Point refPoint)
        {
-               return Optional.of(new ComponentInfo(parent.getPosX() - refPoint.x, parent.getPosY() - refPoint.y, Editor.getIdentifier(parent),
-                               parent.getParamsForSerializingJSON(new IdentifyParams())));
+               IdentifyParams idParams = new IdentifyParams();
+               return Optional.of(new ComponentInfo(parent.getPosX() - refPoint.x, parent.getPosY() - refPoint.y,
+                               parent.getIDForSerializing(idParams), parent.getParamsForSerializingJSON(idParams)));
        }
 
        @Override