X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2FEditor.java;h=e4c92928d012eb785e4bdf1c4312acbd0042beb8;hb=b94e3e190f44595019e31094b02ccedceba0ea97;hp=e285574e26339d26591b9707e456a290ae97db73;hpb=13e72d4157b071cbb58942d964f3c0bb00c26029;p=Mograsim.git diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java index e285574e..e4c92928 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/Editor.java @@ -1,5 +1,6 @@ package net.mograsim.logic.model.editor; +import java.io.IOException; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -7,7 +8,9 @@ import java.util.Optional; import java.util.Set; import com.google.gson.JsonElement; -import com.google.gson.JsonObject; +import com.google.gson.JsonNull; +import com.google.gson.JsonParser; +import com.google.gson.JsonSyntaxException; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; import net.mograsim.logic.model.editor.handles.ComponentHandle; @@ -135,10 +138,28 @@ public final class Editor public void addComponent(double x, double y) { - GUIComponent c = addComponent(gui.getAddListSelected(), new JsonObject()); - selection.clear(); - selection.add(handleManager.getHandle(c)); - moveSelection(x, y); + boolean successful = false; + JsonElement params = JsonNull.INSTANCE; + outer: + while(!successful) + { + String selected = gui.getAddListSelected(); + try + { + GUIComponent c = addComponent(selected, params); + selection.clear(); + selection.add(handleManager.getHandle(c)); + moveSelection(x, y); + successful = true; + } + catch(UnsupportedOperationException | JsonSyntaxException | NumberFormatException e) + { + String result = DialogManager.openMultiLineTextDialog("Add component", "Create", "Cancel", "Parameters:"); + if(result == null) + break outer; + params = new JsonParser().parse(result); + } + } } private GUIComponent addComponent(String identifier, JsonElement params) @@ -205,7 +226,7 @@ public final class Editor } } - public static void main(String[] args) + public static void main(String[] args) throws IOException { SaveLoadManager.openLoadDialog(); }