X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fwires%2FPin.java;fp=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fwires%2FPin.java;h=0000000000000000000000000000000000000000;hb=b5d8c2d71e27350ea7c9314e40df5bb0584271cd;hp=287a6237da3e6aa842e9da8e6171a7ed6c15eca4;hpb=69cb6725ef670328959d55649257ded6ac924b33;p=Mograsim.git
diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
deleted file mode 100644
index 287a6237..00000000
--- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/wires/Pin.java
+++ /dev/null
@@ -1,139 +0,0 @@
-package net.mograsim.logic.ui.model.wires;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.function.Consumer;
-
-import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.mograsim.logic.ui.model.components.GUIComponent;
-
-/**
- * A connection interface between a GUIComponent and the rest of a ViewModel. Pins usually are created by {@link GUIComponent}s themselves.
- *
- * A pin has a name identifying it. Pin names are unique for a {@link GUIComponent}: Every pin of a {@link GUIComponent} has a different
- * name, but different {@link GUIComponent}s can have pins with the same name.
- *
- * @author Daniel Kirschten
- */
-public class Pin
-{
- /**
- * The {@link GUIComponent} this pin belongs to
- */
- public final GUIComponent component;
- /**
- * The name identifying this pin. Is unique for a {@link GUIComponent}.
- */
- public final String name;
- /**
- * The logical width of this pin. Denotes how many bits this pin consists of.
- */
- public final int logicWidth;
-
- /**
- * The X position of this pin, relative to its component's location.
- */
- protected double relX;
- /**
- * The Y position of this pin, relative to its component's location.
- */
- protected double relY;
-
- private final List> pinMovedListeners;
- private final List redrawListeners;
-
- // creation and destruction
-
- /**
- * Creates a new pin. Usually it is not needed to call this constructor manually, as {@link GUIComponent}s create their pins themselves.
- *
- * @author Daniel Kirschten
- */
- public Pin(GUIComponent component, String name, int logicWidth, double relX, double relY)
- {
- this.component = component;
- this.name = name;
- this.logicWidth = logicWidth;
- this.relX = relX;
- this.relY = relY;
-
- this.pinMovedListeners = new ArrayList<>();
- this.redrawListeners = new ArrayList<>();
-
- component.addComponentMovedListener(c -> callPinMovedListeners());
- }
-
- // "graphical" operations
-
- /**
- * Returns the X position of this pin relative to the position of its component.
- *
- * @author Daniel Kirschten
- */
- public double getRelX()
- {
- return relX;
- }
-
- /**
- * Returns the Y position of this pin relative to the position of its component.
- *
- * @author Daniel Kirschten
- */
- public double getRelY()
- {
- return relY;
- }
-
- /**
- * Returns the position of this pin relative to the position of its component.
- *
- * @author Daniel Kirschten
- */
- public Point getRelPos()
- {
- return new Point(relX, relY);
- }
-
- /**
- * Returns the absolute position of this pin.
- *
- * @author Daniel Kirschten
- */
- public Point getPos()
- {
- return new Point(relX + component.getPosX(), relY + component.getPosY());
- }
-
- /**
- * Sets the position of this pin relative to the position of its component.
- *
- * @author Daniel Kirschten
- */
- protected void setRelPos(double relX, double relY)
- {
- this.relX = relX;
- this.relY = relY;
- callPinMovedListeners();
- callRedrawListeners();
- }
-
- // listeners
-
- // @formatter:off
- public void addPinMovedListener (Consumer super Pin> listener){pinMovedListeners.add (listener);}
- public void addRedrawListener (Runnable listener){redrawListeners .add (listener);}
-
- public void removePinMovedListener(Consumer super Pin> listener){pinMovedListeners.remove(listener);}
- public void removeRedrawListener (Runnable listener){redrawListeners .remove(listener);}
-
- private void callPinMovedListeners() {pinMovedListeners.forEach(l -> l.accept(this));}
- private void callRedrawListeners () {redrawListeners .forEach(l -> l.run ( ));}
- // @formatter:on
-
- @Override
- public String toString()
- {
- return "Pin [" + name + ", point=" + getPos() + "]";
- }
-}
\ No newline at end of file