package net.mograsim.logic.model.editor;
import java.io.IOException;
-import java.util.Map;
-import java.util.Map.Entry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.Shell;
-import net.mograsim.logic.model.model.ViewModelModifiable;
+import net.mograsim.logic.model.model.LogicModelModifiable;
import net.mograsim.logic.model.serializing.DeserializedSubmodelComponent;
-import net.mograsim.logic.model.serializing.IdentifierGetter;
-import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
+import net.mograsim.logic.model.serializing.IndirectModelComponentCreator;
import net.mograsim.logic.model.serializing.SubmodelComponentSerializer;
-import net.mograsim.logic.model.snippets.SubmodelComponentSnippetSuppliers;
-import net.mograsim.logic.model.snippets.highlevelstatehandlers.standard.StandardHighLevelStateHandlerSnippetSuppliers;
public class SaveLoadManager
{
{
try
{
- IdentifierGetter idGetter = new IdentifierGetter();
- idGetter.componentIDs = c ->
- {
- if (Editor.identifierPerComponent.containsKey(c))
- return Editor.identifierPerComponent.get(c);
- return getStandardID(c, IndirectGUIComponentCreator.getStandardComponentIDs(), true);
- };
- idGetter.symbolRendererIDs = h -> getStandardID(h,
- SubmodelComponentSnippetSuppliers.symbolRendererSupplier.getStandardSnippetIDs());
- idGetter.outlineRendererIDs = h -> getStandardID(h,
- SubmodelComponentSnippetSuppliers.outlineRendererSupplier.getStandardSnippetIDs());
- idGetter.highLevelStateHandlerIDs = h -> getStandardID(h,
- SubmodelComponentSnippetSuppliers.highLevelStateHandlerSupplier.getStandardSnippetIDs());
- idGetter.atomicHighLevelStateHandlerIDs = h -> getStandardID(h,
- StandardHighLevelStateHandlerSnippetSuppliers.atomicHandlerSupplier.getStandardSnippetIDs());
- idGetter.subcomponentHighLevelStateHandlerIDs = h -> getStandardID(h,
- StandardHighLevelStateHandlerSnippetSuppliers.subcomponentHandlerSupplier.getStandardSnippetIDs());
- SubmodelComponentSerializer.serialize(editor.toBeEdited, idGetter, savePath);
+ SubmodelComponentSerializer.serialize(editor.toBeEdited, savePath);
}
catch (IOException e)
{
}
}
- private static String getStandardID(Object o, Map<String, String> standardIDs)
- {
- return getStandardID(o, standardIDs, false);
- }
-
- private static String getStandardID(Object o, Map<String, String> standardIDs, boolean standardIDsHaveClassConcatenated)
- {
- String verboseID = (standardIDsHaveClassConcatenated ? "class:" : "") + o.getClass().getCanonicalName();
- return standardIDs.entrySet().stream().filter(e -> e.getValue().equals(verboseID)).map(Entry::getKey).findAny()
- .orElseGet(() -> (standardIDsHaveClassConcatenated ? "" : "class:") + verboseID);
- }
-
public static void openLoadDialog() throws IOException
{
Shell fdShell = new Shell();
fdShell.dispose();
if (result != null)
{
- new Editor((DeserializedSubmodelComponent) SubmodelComponentSerializer.deserialize(new ViewModelModifiable(), result));
+ new Editor((DeserializedSubmodelComponent) IndirectModelComponentCreator.createComponent(new LogicModelModifiable(),
+ "jsonfile:" + result));
}
}
}