Implemented set/getHighLevelState for most components
[Mograsim.git] / net.mograsim.logic.ui / src / net / mograsim / logic / ui / model / components / GUIComponent.java
index 4c86ae1..fd48e62 100644 (file)
@@ -12,7 +12,6 @@ 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 +20,7 @@ import net.mograsim.logic.ui.model.wires.Pin;
  * 
  * @author Daniel Kirschten
  */
-public abstract class GUIComponent implements Visitable
+public abstract class GUIComponent
 {
        /**
         * The model this component is a part of.
@@ -44,7 +43,7 @@ public abstract class GUIComponent implements Visitable
 
        private final Runnable redrawListenerForSubcomponents;
        // Defines how the GUIComponent is referenced in SubmodelComponentParams
-       protected Supplier<String> identifierDelegate = () -> "class:".concat(getClass().getCanonicalName());
+       protected Supplier<String> identifierDelegate = () -> getClass().getSimpleName();
 
        // creation and destruction
 
@@ -139,6 +138,20 @@ public abstract class GUIComponent implements Visitable
                return pin;
        }
 
+       // high-level access
+
+       @SuppressWarnings({ "static-method", "unused" }) // this method is intended to be overridden
+       public void setHighLevelState(String stateID, Object newState)
+       {
+               throw new IllegalArgumentException("No high level state with ID " + stateID);
+       }
+
+       @SuppressWarnings("static-method") // this method is intended to be overridden
+       public Object getHighLevelState(String stateID)
+       {
+               throw new IllegalArgumentException("No high level state with ID " + stateID);
+       }
+
        // "graphical" operations
 
        /**