projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
GUIMerger/Splitter don't crash without logic bindings; made them thinner
[Mograsim.git]
/
net.mograsim.logic.model
/
src
/
net
/
mograsim
/
logic
/
model
/
model
/
components
/
atomic
/
GUISplitter.java
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java
index
1dc11d1
..
ca3c9e4
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUISplitter.java
@@
-1,5
+1,8
@@
package net.mograsim.logic.model.model.components.atomic;
package net.mograsim.logic.model.model.components.atomic;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonPrimitive;
+
import net.haspamelodica.swt.helper.gcs.GeneralGC;
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.core.types.BitVectorFormatter;
import net.haspamelodica.swt.helper.gcs.GeneralGC;
import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
import net.mograsim.logic.core.types.BitVectorFormatter;
@@
-9,19
+12,21
@@
import net.mograsim.logic.model.model.components.GUIComponent;
import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter;
import net.mograsim.logic.model.model.wires.Pin;
import net.mograsim.logic.model.modeladapter.ViewLogicModelAdapter;
import net.mograsim.logic.model.modeladapter.componentadapters.SplitterAdapter;
+import net.mograsim.logic.model.serializing.IdentifierGetter;
+import net.mograsim.logic.model.serializing.IndirectGUIComponentCreator;
import net.mograsim.preferences.ColorDefinition;
import net.mograsim.preferences.ColorManager;
import net.mograsim.preferences.Preferences;
public class GUISplitter extends GUIComponent
{
import net.mograsim.preferences.ColorDefinition;
import net.mograsim.preferences.ColorManager;
import net.mograsim.preferences.Preferences;
public class GUISplitter extends GUIComponent
{
- private static final double width =
2
0;
+ private static final double width =
1
0;
private static final double heightPerPin = 10;
public final int logicWidth;
private ReadEnd inputEnd;
private static final double heightPerPin = 10;
public final int logicWidth;
private ReadEnd inputEnd;
- private ReadEnd[] outputEnds;
+ private
final
ReadEnd[] outputEnds;
public GUISplitter(ViewModelModifiable model, int logicWidth, String name)
{
public GUISplitter(ViewModelModifiable model, int logicWidth, String name)
{
@@
-32,6
+37,7
@@
public class GUISplitter extends GUIComponent
double outputHeight = 0;
for (int i = 0; i < logicWidth; i++, outputHeight += 10)
addPin(new Pin(this, "O" + i, 1, width, outputHeight));
double outputHeight = 0;
for (int i = 0; i < logicWidth; i++, outputHeight += 10)
addPin(new Pin(this, "O" + i, 1, width, outputHeight));
+ outputEnds = new ReadEnd[logicWidth];
}
@Override
}
@Override
@@
-56,14
+62,22
@@
public class GUISplitter extends GUIComponent
}
}
}
}
+ @Override
+ public JsonElement getParamsForSerializing(IdentifierGetter idGetter)
+ {
+ return new JsonPrimitive(logicWidth);
+ }
+
public void setLogicModelBinding(ReadEnd inputEnd, ReadEnd[] outputEnds)
{
this.inputEnd = inputEnd;
public void setLogicModelBinding(ReadEnd inputEnd, ReadEnd[] outputEnds)
{
this.inputEnd = inputEnd;
-
this.outputEnds = outputEnds
;
+
System.arraycopy(outputEnds, 0, this.outputEnds, 0, logicWidth)
;
}
static
{
ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter());
}
static
{
ViewLogicModelAdapter.addComponentAdapter(new SplitterAdapter());
+ IndirectGUIComponentCreator.setComponentSupplier(GUISplitter.class.getCanonicalName(),
+ (m, p, n) -> new GUISplitter(m, p.getAsInt(), n));
}
}
\ No newline at end of file
}
}
\ No newline at end of file