X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FComponentParams.java;fp=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FComponentParams.java;h=1a273bd8c9bdaf29bd2aab7e2faff1f02b54673f;hb=ddb921f849b4393fd01e70de4447865d09bb9daa;hp=0000000000000000000000000000000000000000;hpb=35629e23b0cd8a168cb1f34736ac2687de128f44;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/ComponentParams.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/ComponentParams.java new file mode 100644 index 00000000..1a273bd8 --- /dev/null +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/ComponentParams.java @@ -0,0 +1,56 @@ +package net.mograsim.logic.ui.model.components; + +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + +import net.haspamelodica.swt.helper.swtobjectwrappers.Point; + +public class ComponentParams +{ + private static Gson parser = new GsonBuilder().setPrettyPrinting().create(); + String displayName; + int inputCount, outputCount, logicWidth; + double innerScale; + + InnerComponentParams[] subComps; + InnerWireParams[] innerWires; + + public static class InnerComponentParams + { + Point pos; + String type; + int logicWidth; + } + + public static class InnerWireParams + { + InnerPinParams pin1, pin2; + Point[] path; + } + + public static class InnerPinParams + { + int compId, pinIndex; + } + + @SuppressWarnings("resource") + public static ComponentParams readJSON(String path) throws IOException + { + FileReader reader = new FileReader(path); + ComponentParams params = parser.fromJson(new FileReader(path), ComponentParams.class); + reader.close(); + return params; + } + + public void writeJSON(String path) throws IOException + { + @SuppressWarnings("resource") + FileWriter writer = new FileWriter(path); + writer.write(parser.toJson(this)); + writer.close(); + } +}