X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model.editor%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Feditor%2FSaveLoadManager.java;h=bbe202b110848d15a4929ea112858bf8de3b5e33;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=fa2c8a1d4bd7510fcc157550d73a6b9fc1e289d6;hpb=878d036669f4aa9d0c332ced43da3a08b94655e9;p=Mograsim.git diff --git a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java index fa2c8a1d..bbe202b1 100644 --- a/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java +++ b/net.mograsim.logic.model.editor/src/net/mograsim/logic/model/editor/SaveLoadManager.java @@ -2,9 +2,13 @@ package net.mograsim.logic.model.editor; import java.io.IOException; -import net.mograsim.logic.model.editor.ui.DialogManager; -import net.mograsim.logic.model.model.ViewModelModifiable; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.FileDialog; +import org.eclipse.swt.widgets.Shell; + +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; public class SaveLoadManager @@ -27,10 +31,15 @@ public class SaveLoadManager public void openSaveAsDialog() { - String result[] = DialogManager.openMultiTextDialog("Save as...", "Save", "Cancel", "Path"); + Shell fdShell = new Shell(); + FileDialog fd = new FileDialog(fdShell, SWT.SAVE); + fd.setText("Save as..."); + fd.setFilterExtensions(new String[] { "*.json" }); + String result = fd.open(); + fdShell.dispose(); if (result != null) { - savePath = result[0]; + savePath = result; innerSave(); } } @@ -39,12 +48,7 @@ public class SaveLoadManager { try { - SubmodelComponentSerializer.serialize(editor.toBeEdited, c -> - { - if (Editor.identifierPerComponent.containsKey(c)) - return Editor.identifierPerComponent.get(c); - return "class:" + c.getClass().getCanonicalName(); - }, savePath); + SubmodelComponentSerializer.serialize(editor.toBeEdited, savePath); } catch (IOException e) { @@ -56,10 +60,16 @@ public class SaveLoadManager public static void openLoadDialog() throws IOException { - String[] result = DialogManager.openMultiTextDialog("Load Component...", "Load", "Cancel", "Path"); + Shell fdShell = new Shell(); + FileDialog fd = new FileDialog(fdShell, SWT.OPEN); + fd.setText("Load component..."); + fd.setFilterExtensions(new String[] { "*.json" }); + String result = fd.open(); + fdShell.dispose(); if (result != null) { - new Editor((DeserializedSubmodelComponent) SubmodelComponentSerializer.deserialize(new ViewModelModifiable(), result[0])); + new Editor((DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(new LogicModelModifiable(), + "jsonfile:" + result)); } } }