projects
/
Mograsim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
65bf380
)
Speedup by changing redraw listener system
author
Daniel Kirschten
<daniel.kirschten@gmx.de>
Thu, 18 Jul 2019 13:59:11 +0000
(15:59 +0200)
committer
Daniel Kirschten
<daniel.kirschten@gmx.de>
Thu, 18 Jul 2019 13:59:11 +0000
(15:59 +0200)
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestableAm2901Impl.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/GUIWire.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
patch
|
blob
|
history
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/DeserializedSubmodelComponent.java
patch
|
blob
|
history
diff --git
a/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestableAm2901Impl.java
b/net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestableAm2901Impl.java
index
3d5ce86
..
2b27ae6
100644
(file)
--- a/
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestableAm2901Impl.java
+++ b/
net.mograsim.logic.model.am2900/test/net/mograsim/logic/model/am2900/TestableAm2901Impl.java
@@
-153,7
+153,7
@@
public class TestableAm2901Impl implements TestableAm2901
if (comp instanceof SubmodelComponent)
modelsToIterate.offer(((SubmodelComponent) comp).submodel);
}
if (comp instanceof SubmodelComponent)
modelsToIterate.offer(((SubmodelComponent) comp).submodel);
}
-
wiresIncludingSubmodels.forEach(w -> w.addRedrawListener(()
->
+
viewModel.setRedrawHandler(() -> wiresIncludingSubmodels.forEach(w
->
{
if (debugWires)
{
{
if (debugWires)
{
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java
index
2c82d13
..
11e4634
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/LogicUICanvas.java
@@
-53,7
+53,7
@@
public class LogicUICanvas extends ZoomableCanvas
setBackground(background);// this.setBackground, not gc.setBackground to have the background fill the canvas
renderer.render(gc, new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom));
});
setBackground(background);// this.setBackground, not gc.setBackground to have the background fill the canvas
renderer.render(gc, new Rectangle(-offX / zoom, -offY / zoom, gW / zoom, gH / zoom));
});
- model.
addRedrawListen
er(this::redrawThreadsafe);
+ model.
setRedrawHandl
er(this::redrawThreadsafe);
addListener(SWT.MouseDown, this::mouseDown);
addListener(SWT.MouseDown, this::mouseDown);
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java
index
68cc489
..
c60de3e
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/ViewModel.java
@@
-21,9
+21,8
@@
public class ViewModel
private final List<Consumer<? super GUIComponent>> componentRemovedListeners;
private final List<Consumer<? super GUIWire>> wireAddedListeners;
private final List<Consumer<? super GUIWire>> wireRemovedListeners;
private final List<Consumer<? super GUIComponent>> componentRemovedListeners;
private final List<Consumer<? super GUIWire>> wireAddedListeners;
private final List<Consumer<? super GUIWire>> wireRemovedListeners;
- private final List<Runnable> redrawListeners;
- private
final Runnable redrawListenerForSubcomponents
;
+ private
Runnable redrawHandler
;
protected ViewModel()
{
protected ViewModel()
{
@@
-36,9
+35,6
@@
public class ViewModel
componentRemovedListeners = new ArrayList<>();
wireAddedListeners = new ArrayList<>();
wireRemovedListeners = new ArrayList<>();
componentRemovedListeners = new ArrayList<>();
wireAddedListeners = new ArrayList<>();
wireRemovedListeners = new ArrayList<>();
- redrawListeners = new ArrayList<>();
-
- redrawListenerForSubcomponents = this::callRedrawListeners;
}
/**
}
/**
@@
-51,8
+47,7
@@
public class ViewModel
throw new IllegalStateException("Don't add the same component twice!");
components.put(component.name, component);
callComponentAddedListeners(component);
throw new IllegalStateException("Don't add the same component twice!");
components.put(component.name, component);
callComponentAddedListeners(component);
- component.addRedrawListener(redrawListenerForSubcomponents);
- callRedrawListeners();
+ requestRedraw();
}
/**
}
/**
@@
-65,8
+60,7
@@
public class ViewModel
throw new IllegalStateException("Don't remove the same component twice!");
components.remove(component.name);
callComponentRemovedListeners(component);
throw new IllegalStateException("Don't remove the same component twice!");
components.remove(component.name);
callComponentRemovedListeners(component);
- component.removeRedrawListener(redrawListenerForSubcomponents);
- callRedrawListeners();
+ requestRedraw();
}
/**
}
/**
@@
-79,8
+73,7
@@
public class ViewModel
throw new IllegalStateException("Don't add the same wire twice!");
wires.put(wire.name, wire);
callWireAddedListeners(wire);
throw new IllegalStateException("Don't add the same wire twice!");
wires.put(wire.name, wire);
callWireAddedListeners(wire);
- wire.addRedrawListener(redrawListenerForSubcomponents);
- callRedrawListeners();
+ requestRedraw();
}
/**
}
/**
@@
-93,8
+86,7
@@
public class ViewModel
throw new IllegalStateException("Don't remove the same wire twice!");
wires.remove(wire.name);
callWireRemovedListeners(wire);
throw new IllegalStateException("Don't remove the same wire twice!");
wires.remove(wire.name);
callWireRemovedListeners(wire);
- wire.removeRedrawListener(redrawListenerForSubcomponents);
- callRedrawListeners();
+ requestRedraw();
}
public Map<String, GUIComponent> getComponentsByName()
}
public Map<String, GUIComponent> getComponentsByName()
@@
-112,18
+104,31
@@
public class ViewModel
public void addComponentRemovedListener (Consumer<? super GUIComponent> listener) {componentRemovedListeners.add (listener);}
public void addWireAddedListener (Consumer<? super GUIWire > listener) {wireAddedListeners .add (listener);}
public void addWireRemovedListener (Consumer<? super GUIWire > listener) {wireRemovedListeners .add (listener);}
public void addComponentRemovedListener (Consumer<? super GUIComponent> listener) {componentRemovedListeners.add (listener);}
public void addWireAddedListener (Consumer<? super GUIWire > listener) {wireAddedListeners .add (listener);}
public void addWireRemovedListener (Consumer<? super GUIWire > listener) {wireRemovedListeners .add (listener);}
- public void addRedrawListener (Runnable listener) {redrawListeners .add (listener);}
public void removeComponentAddedListener (Consumer<? super GUIComponent> listener) {componentAddedListeners .remove(listener);}
public void removeComponentRemovedListener(Consumer<? super GUIComponent> listener) {componentRemovedListeners.remove(listener);}
public void removeWireAddedListener (Consumer<? super GUIWire > listener) {wireAddedListeners .remove(listener);}
public void removeWireRemovedListener (Consumer<? super GUIWire > listener) {wireRemovedListeners .remove(listener);}
public void removeComponentAddedListener (Consumer<? super GUIComponent> listener) {componentAddedListeners .remove(listener);}
public void removeComponentRemovedListener(Consumer<? super GUIComponent> listener) {componentRemovedListeners.remove(listener);}
public void removeWireAddedListener (Consumer<? super GUIWire > listener) {wireAddedListeners .remove(listener);}
public void removeWireRemovedListener (Consumer<? super GUIWire > listener) {wireRemovedListeners .remove(listener);}
- public void removeRedrawListener (Runnable listener) {redrawListeners .remove(listener);}
private void callComponentAddedListeners (GUIComponent c) {componentAddedListeners .forEach(l -> l.accept(c));}
private void callComponentRemovedListeners(GUIComponent c) {componentRemovedListeners.forEach(l -> l.accept(c));}
private void callWireAddedListeners (GUIWire w ) {wireAddedListeners .forEach(l -> l.accept(w));}
private void callWireRemovedListeners (GUIWire w ) {wireRemovedListeners .forEach(l -> l.accept(w));}
private void callComponentAddedListeners (GUIComponent c) {componentAddedListeners .forEach(l -> l.accept(c));}
private void callComponentRemovedListeners(GUIComponent c) {componentRemovedListeners.forEach(l -> l.accept(c));}
private void callWireAddedListeners (GUIWire w ) {wireAddedListeners .forEach(l -> l.accept(w));}
private void callWireRemovedListeners (GUIWire w ) {wireRemovedListeners .forEach(l -> l.accept(w));}
- private void callRedrawListeners ( ) {redrawListeners .forEach(l -> l.run( ));}
// @formatter:on
// @formatter:on
+
+ public void setRedrawHandler(Runnable handler)
+ {
+ this.redrawHandler = handler;
+ }
+
+ public Runnable getRedrawHandler()
+ {
+ return redrawHandler;
+ }
+
+ public void requestRedraw()
+ {
+ if (redrawHandler != null)
+ redrawHandler.run();
+ }
}
\ No newline at end of file
}
\ No newline at end of file
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java
index
2ffe890
..
60e8fb2
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/GUIComponent.java
@@
-50,9
+50,6
@@
public abstract class GUIComponent implements JSONSerializable
private final List<Consumer<? super GUIComponent>> componentResizedListeners;
private final List<Consumer<? super Pin>> pinAddedListeners;
private final List<Consumer<? super Pin>> pinRemovedListeners;
private final List<Consumer<? super GUIComponent>> componentResizedListeners;
private final List<Consumer<? super Pin>> pinAddedListeners;
private final List<Consumer<? super Pin>> pinRemovedListeners;
- private final List<Runnable> redrawListeners;
-
- private final Runnable redrawListenerForSubcomponents;
private HighLevelStateHandler highLevelStateHandler;
private HighLevelStateHandler highLevelStateHandler;
@@
-70,9
+67,6
@@
public abstract class GUIComponent implements JSONSerializable
this.componentResizedListeners = new ArrayList<>();
this.pinAddedListeners = new ArrayList<>();
this.pinRemovedListeners = new ArrayList<>();
this.componentResizedListeners = new ArrayList<>();
this.pinAddedListeners = new ArrayList<>();
this.pinRemovedListeners = new ArrayList<>();
- this.redrawListeners = new ArrayList<>();
-
- redrawListenerForSubcomponents = this::requestRedraw;
// TODO this will crash the high level state debug shell because submodel is not yet set.
// The same problem exists in ViewModelModifiable.getDefaultComponentName; see there
// TODO this will crash the high level state debug shell because submodel is not yet set.
// The same problem exists in ViewModelModifiable.getDefaultComponentName; see there
@@
-109,8
+103,7
@@
public abstract class GUIComponent implements JSONSerializable
throw new IllegalArgumentException("Duplicate pin name: " + pin.name);
pinsByName.put(pin.name, pin);
callPinAddedListeners(pin);
throw new IllegalArgumentException("Duplicate pin name: " + pin.name);
pinsByName.put(pin.name, pin);
callPinAddedListeners(pin);
- pin.addRedrawListener(redrawListenerForSubcomponents);
- requestRedraw();
+ model.requestRedraw();
}
/**
}
/**
@@
-124,8
+117,7
@@
public abstract class GUIComponent implements JSONSerializable
{
Pin pin = pinsByName.remove(name);
callPinRemovedListeners(pin);
{
Pin pin = pinsByName.remove(name);
callPinRemovedListeners(pin);
- pin.removeRedrawListener(redrawListenerForSubcomponents);
- requestRedraw();
+ model.requestRedraw();
}
/**
}
/**
@@
-208,7
+200,7
@@
public abstract class GUIComponent implements JSONSerializable
bounds.x = x;
bounds.y = y;
callComponentMovedListeners();
bounds.x = x;
bounds.y = y;
callComponentMovedListeners();
- requestRedraw();
+
model.
requestRedraw();
}
/**
}
/**
@@
-221,7
+213,7
@@
public abstract class GUIComponent implements JSONSerializable
bounds.width = width;
bounds.height = height;
callComponentResizedListener();
bounds.width = width;
bounds.height = height;
callComponentResizedListener();
- requestRedraw();
+
model.
requestRedraw();
}
/**
}
/**
@@
-304,33
+296,20
@@
public abstract class GUIComponent implements JSONSerializable
// listeners
// listeners
- /**
- * Calls redraw listeners.
- *
- * @author Daniel Kirschten
- */
- protected void requestRedraw()
- {
- callRedrawListeners();
- }
-
// @formatter:off
public void addComponentMovedListener (Consumer<? super GUIComponent> listener) {componentMovedListeners .add (listener);}
public void addComponentResizedListener (Consumer<? super GUIComponent> listener) {componentResizedListeners.add (listener);}
public void addPinAddedListener (Consumer<? super Pin > listener) {pinAddedListeners .add (listener);}
public void addPinRemovedListener (Consumer<? super Pin > listener) {pinRemovedListeners .add (listener);}
// @formatter:off
public void addComponentMovedListener (Consumer<? super GUIComponent> listener) {componentMovedListeners .add (listener);}
public void addComponentResizedListener (Consumer<? super GUIComponent> listener) {componentResizedListeners.add (listener);}
public void addPinAddedListener (Consumer<? super Pin > listener) {pinAddedListeners .add (listener);}
public void addPinRemovedListener (Consumer<? super Pin > listener) {pinRemovedListeners .add (listener);}
- public void addRedrawListener (Runnable listener) {redrawListeners .add (listener);}
public void removeComponentMovedListener (Consumer<? super GUIComponent> listener) {componentMovedListeners .remove(listener);}
public void removeComponentResizedListener (Consumer<? super GUIComponent> listener) {componentResizedListeners.remove(listener);}
public void removePinAddedListener (Consumer<? super Pin > listener) {pinAddedListeners .remove(listener);}
public void removePinRemovedListener (Consumer<? super Pin > listener) {pinRemovedListeners .remove(listener);}
public void removeComponentMovedListener (Consumer<? super GUIComponent> listener) {componentMovedListeners .remove(listener);}
public void removeComponentResizedListener (Consumer<? super GUIComponent> listener) {componentResizedListeners.remove(listener);}
public void removePinAddedListener (Consumer<? super Pin > listener) {pinAddedListeners .remove(listener);}
public void removePinRemovedListener (Consumer<? super Pin > listener) {pinRemovedListeners .remove(listener);}
- public void removeRedrawListener (Runnable listener) {redrawListeners .remove(listener);}
private void callComponentMovedListeners ( ) {componentMovedListeners .forEach(l -> l.accept(this));}
private void callComponentResizedListener( ) {componentResizedListeners.forEach(l -> l.accept(this));}
private void callPinAddedListeners (Pin p) {pinAddedListeners .forEach(l -> l.accept(p ));}
private void callPinRemovedListeners (Pin p) {pinRemovedListeners .forEach(l -> l.accept(p ));}
private void callComponentMovedListeners ( ) {componentMovedListeners .forEach(l -> l.accept(this));}
private void callComponentResizedListener( ) {componentResizedListeners.forEach(l -> l.accept(this));}
private void callPinAddedListeners (Pin p) {pinAddedListeners .forEach(l -> l.accept(p ));}
private void callPinRemovedListeners (Pin p) {pinRemovedListeners .forEach(l -> l.accept(p ));}
- private void callRedrawListeners ( ) {redrawListeners .forEach(l -> l.run( ));}
// @formatter:on
}
\ No newline at end of file
// @formatter:on
}
\ No newline at end of file
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java
index
2c541f8
..
c837fd4
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIBitDisplay.java
@@
-36,7
+36,7
@@
public class GUIBitDisplay extends GUIComponent
public GUIBitDisplay(ViewModelModifiable model, String name)
{
super(model, name);
public GUIBitDisplay(ViewModelModifiable model, String name)
{
super(model, name);
- logicObs = (i) -> requestRedraw();
+ logicObs = (i) ->
model.
requestRedraw();
setSize(width, height);
addPin(this.inputPin = new Pin(this, "", 1, 0, height / 2));
setSize(width, height);
addPin(this.inputPin = new Pin(this, "", 1, 0, height / 2));
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java
index
e4c1833
..
611d341
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/atomic/GUIManualSwitch.java
@@
-40,7
+40,7
@@
public class GUIManualSwitch extends GUIComponent
public GUIManualSwitch(ViewModelModifiable model, String name)
{
super(model, name);
public GUIManualSwitch(ViewModelModifiable model, String name)
{
super(model, name);
- logicObs = (i) -> requestRedraw();
+ logicObs = (i) ->
model.
requestRedraw();
setSize(width, height);
addPin(this.outputPin = new Pin(this, "", 1, width, height / 2));
setSize(width, height);
addPin(this.outputPin = new Pin(this, "", 1, width, height / 2));
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
index
45c36bf
..
51e74dd
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/components/submodels/SubmodelComponent.java
@@
-110,7
+110,7
@@
public abstract class SubmodelComponent extends GUIComponent
this.minVisibleRegionFillRatioForAlpha1 = 0.8;
this.renderer = new LogicUIRenderer(submodelModifiable);
this.minVisibleRegionFillRatioForAlpha1 = 0.8;
this.renderer = new LogicUIRenderer(submodelModifiable);
- submodelModifiable.
addRedrawListener(this::requestRedraw
);
+ submodelModifiable.
setRedrawHandler(model.getRedrawHandler()
);
}
// pins
}
// pins
@@
-266,7
+266,7
@@
public abstract class SubmodelComponent extends GUIComponent
for (Entry<String, MovablePin> e : supermodelPins.entrySet())
getSubmodelMovablePin(e.getKey()).setRelPos(e.getValue().getRelX() * submodelScale, e.getValue().getRelY() * submodelScale);
for (Entry<String, MovablePin> e : supermodelPins.entrySet())
getSubmodelMovablePin(e.getKey()).setRelPos(e.getValue().getRelX() * submodelScale, e.getValue().getRelY() * submodelScale);
- requestRedraw();// needed if there is no submodel interface pin
+
model.
requestRedraw();// needed if there is no submodel interface pin
}
/**
}
/**
@@
-287,7
+287,7
@@
public abstract class SubmodelComponent extends GUIComponent
protected void setSymbolRenderer(Renderer symbolRenderer)
{
this.symbolRenderer = symbolRenderer;
protected void setSymbolRenderer(Renderer symbolRenderer)
{
this.symbolRenderer = symbolRenderer;
- requestRedraw();
+
model.
requestRedraw();
}
/**
}
/**
@@
-308,7
+308,7
@@
public abstract class SubmodelComponent extends GUIComponent
protected void setOutlineRenderer(Renderer outlineRenderer)
{
this.outlineRenderer = outlineRenderer;
protected void setOutlineRenderer(Renderer outlineRenderer)
{
this.outlineRenderer = outlineRenderer;
- requestRedraw();
+
model.
requestRedraw();
}
/**
}
/**
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
144a1a3
..
c8f6217
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
@@
-392,7
+390,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
+403,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)
@@
-514,13
+512,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
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
index
49faee9
..
ddd3493
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/model/wires/WireCrossPoint.java
@@
-53,7
+53,7
@@
public class WireCrossPoint extends GUIComponent
public WireCrossPoint(ViewModelModifiable model, int logicWidth, String name)
{
super(model, name);
public WireCrossPoint(ViewModelModifiable model, int logicWidth, String name)
{
super(model, name);
- logicObs = (i) -> requestRedraw();
+ logicObs = (i) ->
model.
requestRedraw();
setSize(CIRCLE_DIAM, CIRCLE_DIAM);
addPin(this.pin = new Pin(this, "", logicWidth, CIRCLE_RADIUS, CIRCLE_RADIUS));
setSize(CIRCLE_DIAM, CIRCLE_DIAM);
addPin(this.pin = new Pin(this, "", logicWidth, CIRCLE_RADIUS, CIRCLE_RADIUS));
diff --git
a/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/DeserializedSubmodelComponent.java
b/net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/DeserializedSubmodelComponent.java
index
f765afb
..
b23ab48
100644
(file)
--- a/
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/DeserializedSubmodelComponent.java
+++ b/
net.mograsim.logic.model/src/net/mograsim/logic/model/serializing/DeserializedSubmodelComponent.java
@@
-43,7
+43,6
@@
public class DeserializedSubmodelComponent extends SubmodelComponent
public void setOutlineRenderer(Renderer outlineRenderer)
{
super.setOutlineRenderer(outlineRenderer);
public void setOutlineRenderer(Renderer outlineRenderer)
{
super.setOutlineRenderer(outlineRenderer);
- requestRedraw();
}
@Override
}
@Override