package com.indyforge.twod.engine.graphics.rendering.scenegraph.gui; import com.indyforge.twod.engine.graphics.rendering.scenegraph.Entity; import com.indyforge.twod.engine.graphics.rendering.scenegraph.GraphicsEntity; /** * * @author Christopher Probst * */ public abstract class GuiListener extends GraphicsEntity { /** * */ private static final long serialVersionUID = 1L; public enum GuiEvent { Selected, Deselected } /* * (non-Javadoc) * * @see * com.indyforge.twod.engine.graphics.rendering.scenegraph.Entity#onEvent * (com.indyforge.twod.engine.graphics.rendering.scenegraph.Entity, * java.lang.Object, java.lang.Object[]) */ @Override protected void onEvent(Entity source, Object event, Object... params) { super.onEvent(source, event, params); if (event == GuiEvent.Selected) { onSelected((GuiEntity) source); } else if (event == GuiEvent.Deselected) { onDeselected((GuiEntity) source); } } /** * Called when this entity is selected. * * @param guiEntity * The gui entity. */ protected void onSelected(GuiEntity guiEntity) { } /** * Called when this entity is deselected. * * @param guiEntity * The gui entity. */ protected void onDeselected(GuiEntity guiEntity) { } /** * Creates a new gui entity. */ public GuiListener() { events().put(GuiEvent.Selected, iterableChildren(true, true)); events().put(GuiEvent.Deselected, iterableChildren(true, true)); } }