projects
/
Mograsim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Made GUIMerger and GUISplitter symmetrical
[Mograsim.git]
/
net.mograsim.logic.model
/
src
/
net
/
mograsim
/
logic
/
model
/
model
/
wires
/
GUIWire.java
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java
index
f59355c
..
99241a3
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java
@@
-61,7
+61,6
@@
public class GUIWire
*/
private double[] effectivePath;
*/
private double[] effectivePath;
- private final List<Runnable> redrawListeners;
private final List<Consumer<GUIWire>> pathChangedListeners;
/**
private final List<Consumer<GUIWire>> pathChangedListeners;
/**
@@
-244,10
+243,9
@@
public class GUIWire
this.path = path == null ? null : Arrays.copyOf(path, path.length);
this.bounds = new Rectangle(0, 0, -1, -1);
this.path = path == null ? null : Arrays.copyOf(path, path.length);
this.bounds = new Rectangle(0, 0, -1, -1);
- redrawListeners = new ArrayList<>();
pathChangedListeners = new ArrayList<>();
pathChangedListeners = new ArrayList<>();
- logicObs = (i) ->
callRedrawListeners
();
+ logicObs = (i) ->
model.requestRedraw
();
pin1.addPinMovedListener(p -> pinMoved());
pin2.addPinMovedListener(p -> pinMoved());
pin1.addPinMovedListener(p -> pinMoved());
pin2.addPinMovedListener(p -> pinMoved());
@@
-298,7
+296,7
@@
public class GUIWire
private void pinMoved()
{
recalculateEffectivePath();
private void pinMoved()
{
recalculateEffectivePath();
-
callRedrawListeners
();
+
model.requestRedraw
();
}
// "graphical" operations
}
// "graphical" operations
@@
-366,6
+364,7
@@
public class GUIWire
*/
public void render(GeneralGC gc)
{
*/
public void render(GeneralGC gc)
{
+ // TODO maybe make wires with logicWidth!=1 thicker? Maybe make thickness selectable?
ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end);
if (wireColor != null)
gc.setForeground(ColorManager.current().toColor(wireColor));
ColorDefinition wireColor = BitVectorFormatter.formatAsColor(end);
if (wireColor != null)
gc.setForeground(ColorManager.current().toColor(wireColor));
@@
-392,7
+391,7
@@
public class GUIWire
this.path = deepPathCopy(path);
recalculateEffectivePath();
callPathChangedListeners();
this.path = deepPathCopy(path);
recalculateEffectivePath();
callPathChangedListeners();
-
callRedrawListeners
();
+
model.requestRedraw
();
}
public Point getPathPoint(int index)
}
public Point getPathPoint(int index)
@@
-405,7
+404,7
@@
public class GUIWire
path[index] = pointCopy(p);
recalculateEffectivePath();
callPathChangedListeners();
path[index] = pointCopy(p);
recalculateEffectivePath();
callPathChangedListeners();
-
callRedrawListeners
();
+
model.requestRedraw
();
}
public void insertPathPoint(Point p, int index)
}
public void insertPathPoint(Point p, int index)
@@
-421,6
+420,8
@@
public class GUIWire
System.arraycopy(oldPath, index, path, index + 1, oldPath.length - index);
path[index] = pointCopy(p);
}
System.arraycopy(oldPath, index, path, index + 1, oldPath.length - index);
path[index] = pointCopy(p);
}
+ recalculateEffectivePath();
+ callPathChangedListeners();
}
public void removePathPoint(int index)
}
public void removePathPoint(int index)
@@
-435,6
+436,8
@@
public class GUIWire
if (index < oldPath.length - 1)
System.arraycopy(oldPath, index + 1, path, index, oldPath.length - index - 1);
}
if (index < oldPath.length - 1)
System.arraycopy(oldPath, index + 1, path, index, oldPath.length - index - 1);
}
+ recalculateEffectivePath();
+ callPathChangedListeners();
}
public double[] getEffectivePath()
}
public double[] getEffectivePath()
@@
-510,13
+513,10
@@
public class GUIWire
// listeners
// @formatter:off
// listeners
// @formatter:off
- public void addRedrawListener (Runnable listener) {redrawListeners .add (listener);}
public void addPathChangedListener (Consumer<GUIWire> listener) {pathChangedListeners.add (listener);}
public void addPathChangedListener (Consumer<GUIWire> listener) {pathChangedListeners.add (listener);}
- public void removeRedrawListener (Runnable listener) {redrawListeners .remove(listener);}
public void removePathChangedListener(Consumer<GUIWire> listener) {pathChangedListeners.remove(listener);}
public void removePathChangedListener(Consumer<GUIWire> listener) {pathChangedListeners.remove(listener);}
- private void callRedrawListeners () {redrawListeners .forEach(l -> l.run ( ));}
private void callPathChangedListeners() {pathChangedListeners.forEach(l -> l.accept(this));}
// @formatter:on
private void callPathChangedListeners() {pathChangedListeners.forEach(l -> l.accept(this));}
// @formatter:on