Commented GUIWire
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / GUIComponent.java
index 13ec4a6..a586616 100644 (file)
@@ -1,7 +1,6 @@
 package net.mograsim.logic.ui.model.components;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -33,9 +32,9 @@ public abstract class GUIComponent
         */
        private final Map<String, Pin> pinsByName;
        /**
-        * An unmodifiable view of {@link #pinsByName}<code>.</code>{@link Map#values() values()}.
+        * An unmodifiable view of {@link #pinsByName}.
         */
-       protected final Collection<Pin> pinsUnmodifiable;
+       protected final Map<String, Pin> pinsUnmodifiable;
 
        private final List<Consumer<? super GUIComponent>> componentMovedListeners;
        private final List<Consumer<? super Pin>> pinAddedListeners;
@@ -53,7 +52,7 @@ public abstract class GUIComponent
                this.model = model;
                this.bounds = new Rectangle(0, 0, 0, 0);
                this.pinsByName = new HashMap<>();
-               this.pinsUnmodifiable = Collections.unmodifiableCollection(pinsByName.values());
+               this.pinsUnmodifiable = Collections.unmodifiableMap(pinsByName);
 
                this.componentMovedListeners = new ArrayList<>();
                this.pinAddedListeners = new ArrayList<>();
@@ -81,6 +80,11 @@ public abstract class GUIComponent
 
        /**
         * Adds the given pin to this component and calls pinAddedListeners and redrawListeners.
+        * 
+        * @throws IllegalArgumentException if the pin doesn't belong to this component
+        * @throws IllegalArgumentException if there already is a pin with the given name
+        * 
+        * @author Daniel Kirschten
         */
        protected void addPin(Pin pin)
        {
@@ -97,7 +101,9 @@ public abstract class GUIComponent
        /**
         * Removes the given pin from this component and calls pinAddedListeners and redrawListeners.
         * 
-        * @throws NullPointerException if there was no pin with this name.
+        * @throws NullPointerException if there was no pin with this name
+        * 
+        * @author Daniel Kirschten
         */
        protected void removePin(String name)
        {
@@ -112,7 +118,7 @@ public abstract class GUIComponent
         * 
         * @author Daniel Kirschten
         */
-       public Collection<Pin> getPins()
+       public Map<String, Pin> getPins()
        {
                return pinsUnmodifiable;
        }
@@ -213,6 +219,8 @@ public abstract class GUIComponent
        /**
         * Called when this component is clicked. Absolute coordinates of the click are given. Returns true if this component consumed this
         * click.
+        * 
+        * @author Daniel Kirschten
         */
        @SuppressWarnings({ "static-method", "unused" }) // this method is inteded to be overridden
        public boolean clicked(double x, double y)