Completely changed the structure and switched to Eclipse Plugin.
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / wires / Pin.java
index 8c0333a..aec2df0 100644 (file)
@@ -4,14 +4,13 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.function.Consumer;
 
-import net.mograsim.logic.ui.model.components.GUIComponent;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Point;
-import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
+import net.mograsim.logic.ui.model.components.GUIComponent;
 
-//TODO add an ID and/or a name
 public class Pin
 {
        public final GUIComponent component;
+       public final String name;
        public final int logicWidth;
 
        protected double relX;
@@ -20,9 +19,10 @@ public class Pin
        private final List<Consumer<? super Pin>> pinMovedListeners;
        private final List<Runnable> redrawListeners;
 
-       public Pin(GUIComponent component, int logicWidth, double relX, double relY)
+       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;
@@ -50,8 +50,7 @@ public class Pin
 
        public Point getPos()
        {
-               Rectangle componentBounds = component.getBounds();
-               return new Point(relX + componentBounds.x, relY + componentBounds.y);
+               return new Point(relX + component.getPosX(), relY + component.getPosY());
        }
 
        protected void setRelPos(double relX, double relY)
@@ -73,4 +72,9 @@ public class Pin
        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