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.SubmodelComponentDeserializer;
-import net.mograsim.logic.model.util.JsonHandler;
+import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
+import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
public class SaveLoadManager
{
public void openSaveAsDialog()
{
- String result[] = DialogManager.openMultiTextDialog("Save as...", "Save", "Cancel", "Path");
- if(result != null)
+ 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();
}
}
{
try
{
- JsonHandler.writeJson(editor.toBeEdited.calculateParams(c ->
- {
- if (Editor.identifierPerComponent.containsKey(c))
- return Editor.identifierPerComponent.get(c);
- return "class:" + c.getClass().getCanonicalName();
- }), savePath);
- } catch (IOException e)
+ SubmodelComponentSerializer.serialize(editor.toBeEdited, savePath);
+ }
+ catch (IOException e)
{
savePath = null;
System.err.println("Failed to save component!");
}
}
- public static void openLoadDialog()
+ public static void openLoadDialog() throws IOException
{
- String[] result = DialogManager.openMultiTextDialog("Load Component...", "Load", "Cancel", "Path");
- if(result != null)
+ 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) SubmodelComponentDeserializer
- .create(new ViewModelModifiable(), result[0]));
+ new Editor((DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(new LogicModelModifiable(),
+ "jsonfile:" + result));
}
}
}