X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2FLogicUICanvas.java;h=7faefe392f1a3d2b572a6203292ef07b56617a33;hb=86f2e11d28a4100a7fe142e103b7b5eeb9de4214;hp=6241f44b1945d77d0181e99c988dcbf428ccafdb;hpb=6fd6d5ffd78dbd3d876d3392da9becbe22f0e8be;p=Mograsim.git diff --git a/LogicUI/src/era/mi/gui/LogicUICanvas.java b/LogicUI/src/era/mi/gui/LogicUICanvas.java index 6241f44b..7faefe39 100644 --- a/LogicUI/src/era/mi/gui/LogicUICanvas.java +++ b/LogicUI/src/era/mi/gui/LogicUICanvas.java @@ -8,6 +8,7 @@ import org.eclipse.swt.widgets.Event; import era.mi.gui.model.ViewModel; import era.mi.gui.model.components.GUIComponent; +import era.mi.gui.model.wires.GUIWire; import era.mi.gui.model.wires.Pin; import net.haspamelodica.swt.helper.gcs.GeneralGC; import net.haspamelodica.swt.helper.swtobjectwrappers.Point; @@ -40,14 +41,16 @@ public class LogicUICanvas extends ZoomableCanvas p.removePinMovedListener(redrawConsumer); redrawThreadsafe(); }; - model.addComponentAddedListener(c -> + Consumer componentAddedListener = c -> { c.addComponentLookChangedListener(redrawConsumer); c.addComponentMovedListener(redrawConsumer); c.addPinAddedListener(pinAddedListener); c.addPinRemovedListener(pinRemovedListener); redrawThreadsafe(); - }); + }; + model.addComponentAddedListener(componentAddedListener); + model.getComponents().forEach(componentAddedListener); model.addComponentRemovedListener(c -> { c.removeComponentLookChangedListener(redrawConsumer); @@ -56,17 +59,18 @@ public class LogicUICanvas extends ZoomableCanvas c.removePinRemovedListener(pinRemovedListener); redrawThreadsafe(); }); - model.addWireAddedListener(w -> + Consumer wireAddedListener = w -> { w.addWireLookChangedListener(redrawConsumer); redrawThreadsafe(); - }); + }; + model.addWireAddedListener(wireAddedListener); + model.getWires().forEach(wireAddedListener); model.addWireRemovedListener(w -> { w.removeWireLookChangedListener(redrawConsumer); redrawThreadsafe(); }); - // TODO add listeners for existing components & wires addZoomedRenderer(gc -> {