X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=LogicUI%2Fsrc%2Fera%2Fmi%2Fgui%2FLogicUICanvas.java;h=6610e2e3d30cccde648ee22be5ef5111a15ecddd;hb=d27165bc7b5dcff6c1e3d7f88f7195c5418ab9df;hp=55d7d215ace82aa12cf432f2897d0e22c2e5d8e5;hpb=53db506919cb378f8f3e2584491ddbc5357ccd8c;p=Mograsim.git diff --git a/LogicUI/src/era/mi/gui/LogicUICanvas.java b/LogicUI/src/era/mi/gui/LogicUICanvas.java index 55d7d215..6610e2e3 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; @@ -21,6 +22,8 @@ import net.haspamelodica.swt.helper.zoomablecanvas.ZoomableCanvas; */ public class LogicUICanvas extends ZoomableCanvas { + private static final boolean DRAW_PINS = false; + private final ViewModel model; public LogicUICanvas(Composite parent, int style, ViewModel model) @@ -40,14 +43,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,11 +61,13 @@ 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); @@ -79,11 +86,14 @@ public class LogicUICanvas extends ZoomableCanvas private void drawComponent(GeneralGC gc, GUIComponent component, Rectangle visibleRegion) { component.render(gc, visibleRegion); - gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_CYAN)); - for (Pin p : component.getPins()) + if (DRAW_PINS) { - Point pos = p.getPos(); - gc.fillOval(pos.x - 1, pos.y - 1, 2, 2); + gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_DARK_CYAN)); + for (Pin p : component.getPins()) + { + Point pos = p.getPos(); + gc.fillOval(pos.x - 1, pos.y - 1, 2, 2); + } } }