Completely changed the structure and switched to Eclipse Plugin.
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / GUIComponent.java
index 472798f..4c86ae1 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;
@@ -13,6 +12,7 @@ import java.util.function.Supplier;
 import net.haspamelodica.swt.helper.gcs.GeneralGC;
 import net.haspamelodica.swt.helper.swtobjectwrappers.Rectangle;
 import net.mograsim.logic.ui.model.ViewModelModifiable;
+import net.mograsim.logic.ui.model.Visitable;
 import net.mograsim.logic.ui.model.wires.Pin;
 
 /**
@@ -21,7 +21,7 @@ import net.mograsim.logic.ui.model.wires.Pin;
  * 
  * @author Daniel Kirschten
  */
-public abstract class GUIComponent
+public abstract class GUIComponent implements Visitable
 {
        /**
         * The model this component is a part of.
@@ -33,9 +33,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 +53,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<>();
@@ -119,7 +119,7 @@ public abstract class GUIComponent
         * 
         * @author Daniel Kirschten
         */
-       public Collection<Pin> getPins()
+       public Map<String, Pin> getPins()
        {
                return pinsUnmodifiable;
        }