Restructured JSON (de)serializing: ViewModels can be (de)serialized too
[Mograsim.git] / net.mograsim.logic.model / src / net / mograsim / logic / model / serializing / SubmodelComponentParams.java
1 package net.mograsim.logic.model.serializing;
2
3 import com.google.gson.JsonElement;
4
5 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
6 import net.mograsim.logic.model.model.components.submodels.SubmodelComponent;
7 import net.mograsim.logic.model.util.Version;
8
9 /**
10  * This class contains all the information necessary to create a new {@link SubmodelComponent}
11  */
12 public class SubmodelComponentParams extends SerializablePojo
13 {
14         // basic stuff
15         public double width, height;
16         public InterfacePinParams[] interfacePins;
17         public double innerScale;
18         public ViewModelParams submodel;
19
20         // functionality that needs to be expressed in Java code
21         public String symbolRendererSnippetID;
22         public JsonElement symbolRendererParams;
23
24         public String outlineRendererSnippetID;
25         public JsonElement outlineRendererParams;
26
27         public String highLevelStateHandlerSnippetID;
28         public JsonElement highLevelStateHandlerParams;
29
30         public SubmodelComponentParams(Version version)
31         {
32                 super(version);
33         }
34
35         public static class InterfacePinParams
36         {
37                 public Point location;
38                 public String name;
39                 public int logicWidth;
40         }
41 }