X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Fserializing%2FIndirectGUIComponentCreator.java;h=6ff8adb1468cd2eb3d8c063ad75dc490f6359bc2;hb=4c02fe978b3ef5dfe795a8e5c3a8977abd17e9cf;hp=2b747b2aba5b0557a96889299470f42665ae2d79;hpb=4c9a2240352c246c76a056687a2d68208137b667;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java index 2b747b2a..6ff8adb1 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/IndirectGUIComponentCreator.java @@ -9,6 +9,7 @@ import java.util.Map; import com.google.gson.JsonElement; import com.google.gson.JsonNull; +import com.google.gson.JsonObject; import net.mograsim.logic.model.model.ViewModelModifiable; import net.mograsim.logic.model.model.components.GUIComponent; @@ -102,7 +103,14 @@ public class IndirectGUIComponentCreator throw new IllegalArgumentException("Can't give params to a component deserialized from a JSON file"); try { - return SubmodelComponentSerializer.deserialize(model, resolvedID.substring(5), name, id, null); + String filename = resolvedID.substring(5); + JsonObject jsonContents = JsonHandler.readJson(filename, JsonObject.class); + SerializablePojo jsonContentsAsSerializablePojo = JsonHandler.parser.fromJson(jsonContents, SerializablePojo.class); + if (jsonContentsAsSerializablePojo.version == null) + return LegacySubmodelComponentSerializer.deserialize(model, + JsonHandler.parser.fromJson(jsonContents, LegacySubmodelComponentParams.class), name, id, null); + return SubmodelComponentSerializer.deserialize(model, + JsonHandler.parser.fromJson(jsonContents, SubmodelComponentParams.class), name, id, null); } catch (IOException e) {