X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.ui%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fui%2Fmodel%2Fcomponents%2FGUIComponent.java;h=89c532e407635b64f7dedb3460228b81ad4cc88f;hb=82cc1d386820c179be331790fa3c1fae22bada76;hp=a4c1031f43959fd145c9ae8732be72efaa05838c;hpb=9c142c9ad59d2af070ebb6495b1ca48242da62d8;p=Mograsim.git diff --git a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUIComponent.java b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUIComponent.java index a4c1031f..89c532e4 100644 --- a/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUIComponent.java +++ b/net.mograsim.logic.ui/src/net/mograsim/logic/ui/model/components/GUIComponent.java @@ -4,10 +4,12 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.function.Consumer; +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.components.params.SubmodelComponentParams; import net.mograsim.logic.ui.model.wires.Pin; public abstract class GUIComponent @@ -23,6 +25,8 @@ public abstract class GUIComponent private final List redrawListeners; private final Runnable redrawListenerForSubcomponents; + // Defines how the GUIComponent is referenced in SubmodelComponentParams + protected Supplier identifierDelegate = () -> "class:".concat(getClass().getCanonicalName()); public GUIComponent(ViewModelModifiable model) { @@ -129,4 +133,12 @@ public abstract class GUIComponent pin.removeRedrawListener(redrawListenerForSubcomponents); callRedrawListeners(); } + + /** + * @return an identifier used to reference this GUIComponent inside of {@link SubmodelComponentParams} + */ + public String getIdentifier() + { + return identifierDelegate.get(); + } } \ No newline at end of file