1 package net.mograsim.logic.model.editor;
3 import java.io.IOException;
5 import org.eclipse.swt.SWT;
6 import org.eclipse.swt.widgets.FileDialog;
7 import org.eclipse.swt.widgets.Shell;
9 import net.mograsim.logic.model.model.ViewModelModifiable;
10 import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
11 import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
13 public class SaveLoadManager
15 private String savePath = null;
16 private Editor editor;
18 public SaveLoadManager(Editor editor)
31 public void openSaveAsDialog()
33 Shell fdShell = new Shell();
34 FileDialog fd = new FileDialog(fdShell, SWT.SAVE);
35 fd.setText("Save as...");
36 fd.setFilterExtensions(new String[] { "*.json" });
37 String result = fd.open();
46 private void innerSave()
50 SubmodelComponentSerializer.serialize(editor.toBeEdited, c ->
52 if (Editor.identifierPerComponent.containsKey(c))
53 return Editor.identifierPerComponent.get(c);
54 return "class:" + c.getClass().getCanonicalName();
60 System.err.println("Failed to save component!");
65 public static void openLoadDialog() throws IOException
67 Shell fdShell = new Shell();
68 FileDialog fd = new FileDialog(fdShell, SWT.OPEN);
69 fd.setText("Load component...");
70 fd.setFilterExtensions(new String[] { "*.json" });
71 String result = fd.open();
75 new Editor((DeserializedSubmodelComponent) SubmodelComponentSerializer.deserialize(new ViewModelModifiable(), result));