package org.andengine.entity.scene.menu.item.decorator;
import java.util.ArrayList;
import java.util.List;
import org.andengine.engine.camera.Camera;
import org.andengine.engine.handler.IUpdateHandler;
import org.andengine.entity.IEntity;
import org.andengine.entity.IEntityComparator;
import org.andengine.entity.IEntityMatcher;
import org.andengine.entity.IEntityParameterCallable;
import org.andengine.entity.modifier.IEntityModifier;
import org.andengine.entity.modifier.IEntityModifier.IEntityModifierMatcher;
import org.andengine.entity.scene.menu.item.IMenuItem;
import org.andengine.entity.shape.IShape;
import org.andengine.input.touch.TouchEvent;
import org.andengine.opengl.shader.ShaderProgram;
import org.andengine.opengl.util.GLState;
import org.andengine.opengl.vbo.IVertexBufferObject;
import org.andengine.opengl.vbo.VertexBufferObjectManager;
import org.andengine.util.adt.transformation.Transformation;
import org.andengine.util.color.Color;
/**
* I HATE THIS CLASS!
*
* (c) 2010 Nicolas Gramlich
* (c) 2011 Zynga Inc.
*
* @author Nicolas Gramlich
* @since 15:05:44 - 18.11.2010
*/
public abstract class BaseMenuItemDecorator implements IMenuItem {
// ===========================================================
// Constants
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
protected final IMenuItem mMenuItem;
// ===========================================================
// Constructors
// ===========================================================
public BaseMenuItemDecorator(final IMenuItem pMenuItem) {
this.mMenuItem = pMenuItem;
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
protected abstract void onMenuItemSelected(final IMenuItem pMenuItem);
protected abstract void onMenuItemUnselected(final IMenuItem pMenuItem);
protected abstract void onMenuItemReset(final IMenuItem pMenuItem);
@Override
public int getID() {
return this.mMenuItem.getID();
}
@Override
public VertexBufferObjectManager getVertexBufferObjectManager() {
return this.mMenuItem.getVertexBufferObjectManager();
}
@Override
public IVertexBufferObject getVertexBufferObject() {
return this.mMenuItem.getVertexBufferObject();
}
@Override
public final void onSelected() {
this.mMenuItem.onSelected();
this.onMenuItemSelected(this.mMenuItem);
}
@Override
public final void onUnselected() {
this.mMenuItem.onUnselected();
this.onMenuItemUnselected(this.mMenuItem);
}
@Override
public float getX() {
return this.mMenuItem.getX();
}
@Override
public float getY() {
return this.mMenuItem.getY();
}
@Override
public void setX(final float pX) {
this.mMenuItem.setX(pX);
}
@Override
public void setY(final float pY) {
this.mMenuItem.setY(pY);
}
@Override
public void setPosition(final IEntity pOtherEntity) {
this.mMenuItem.setPosition(pOtherEntity);
}
@Override
public void setPosition(final float pX, final float pY) {
this.mMenuItem.setPosition(pX, pY);
}
@Override
public float getWidth() {
return this.mMenuItem.getWidth();
}
@Override
public float getWidthScaled() {
return this.mMenuItem.getWidthScaled();
}
@Override
public float getHeight() {
return this.mMenuItem.getHeight();
}
@Override
public float getHeightScaled() {
return this.mMenuItem.getHeightScaled();
}
@Override
public void setWidth(final float pWidth) {
this.mMenuItem.setWidth(pWidth);
}
@Override
public void setHeight(final float pHeight) {
this.mMenuItem.setHeight(pHeight);
}
@Override
public void setSize(final float pWidth, final float pHeight) {
this.mMenuItem.setSize(pWidth, pHeight);
}
@Override
public float getRed() {
return this.mMenuItem.getRed();
}
@Override
public float getGreen() {
return this.mMenuItem.getGreen();
}
@Override
public float getBlue() {
return this.mMenuItem.getBlue();
}
@Override
public float getAlpha() {
return this.mMenuItem.getAlpha();
}
@Override
public void setRed(final float pRed) {
this.mMenuItem.setRed(pRed);
}
@Override
public void setGreen(final float pGreen) {
this.mMenuItem.setGreen(pGreen);
}
@Override
public void setBlue(final float pBlue) {
this.mMenuItem.setBlue(pBlue);
}
@Override
public void setAlpha(final float pAlpha) {
this.mMenuItem.setAlpha(pAlpha);
}
@Override
public Color getColor() {
return this.mMenuItem.getColor();
}
@Override
public void setColor(final Color pColor) {
this.mMenuItem.setColor(pColor);
}
@Override
public void setColor(final float pRed, final float pGreen, final float pBlue) {
this.mMenuItem.setColor(pRed, pGreen, pBlue);
}
@Override
public void setColor(final float pRed, final float pGreen, final float pBlue, final float pAlpha) {
this.mMenuItem.setColor(pRed, pGreen, pBlue, pAlpha);
}
@Override
public boolean isRotated() {
return this.mMenuItem.isRotated();
}
@Override
public float getRotation() {
return this.mMenuItem.getRotation();
}
@Override
public void setRotation(final float pRotation) {
this.mMenuItem.setRotation(pRotation);
}
@Override
public float getRotationCenterX() {
return this.mMenuItem.getRotationCenterX();
}
@Override
public float getRotationCenterY() {
return this.mMenuItem.getRotationCenterY();
}
@Override
public void setRotationCenterX(final float pRotationCenterX) {
this.mMenuItem.setRotationCenterX(pRotationCenterX);
}
@Override
public void setRotationCenterY(final float pRotationCenterY) {
this.mMenuItem.setRotationCenterY(pRotationCenterY);
}
@Override
public void setRotationCenter(final float pRotationCenterX, final float pRotationCenterY) {
this.mMenuItem.setRotationCenter(pRotationCenterX, pRotationCenterY);
}
@Override
public boolean isScaled() {
return this.mMenuItem.isScaled();
}
@Override
public float getScaleX() {
return this.mMenuItem.getScaleX();
}
@Override
public float getScaleY() {
return this.mMenuItem.getScaleY();
}
@Override
public void setScale(final float pScale) {
this.mMenuItem.setScale(pScale);
}
@Override
public void setScale(final float pScaleX, final float pScaleY) {
this.mMenuItem.setScale(pScaleX, pScaleY);
}
@Override
public void setScaleX(final float pScaleX) {
this.mMenuItem.setScaleX(pScaleX);
}
@Override
public void setScaleY(final float pScaleY) {
this.mMenuItem.setScaleY(pScaleY);
}
@Override
public float getScaleCenterX() {
return this.mMenuItem.getScaleCenterX();
}
@Override
public float getScaleCenterY() {
return this.mMenuItem.getScaleCenterY();
}
@Override
public void setScaleCenterX(final float pScaleCenterX) {
this.mMenuItem.setScaleCenterX(pScaleCenterX);
}
@Override
public void setScaleCenterY(final float pScaleCenterY) {
this.mMenuItem.setScaleCenterY(pScaleCenterY);
}
@Override
public void setScaleCenter(final float pScaleCenterX, final float pScaleCenterY) {
this.mMenuItem.setScaleCenter(pScaleCenterX, pScaleCenterY);
}
@Override
public boolean isSkewed() {
return this.mMenuItem.isSkewed();
}
@Override
public float getSkewX() {
return this.mMenuItem.getSkewX();
}
@Override
public float getSkewY() {
return this.mMenuItem.getSkewY();
}
@Override
public void setSkew(final float pSkew) {
this.mMenuItem.setSkew(pSkew);
}
@Override
public void setSkew(final float pSkewX, final float pSkewY) {
this.mMenuItem.setSkew(pSkewX, pSkewY);
}
@Override
public void setSkewX(final float pSkewX) {
this.mMenuItem.setSkewX(pSkewX);
}
@Override
public void setSkewY(final float pSkewY) {
this.mMenuItem.setSkewY(pSkewY);
}
@Override
public float getSkewCenterX() {
return this.mMenuItem.getSkewCenterX();
}
@Override
public float getSkewCenterY() {
return this.mMenuItem.getSkewCenterY();
}
@Override
public void setSkewCenterX(final float pSkewCenterX) {
this.mMenuItem.setSkewCenterX(pSkewCenterX);
}
@Override
public void setSkewCenterY(final float pSkewCenterY) {
this.mMenuItem.setSkewCenterY(pSkewCenterY);
}
@Override
public void setSkewCenter(final float pSkewCenterX, final float pSkewCenterY) {
this.mMenuItem.setSkewCenter(pSkewCenterX, pSkewCenterY);
}
@Override
public boolean isRotatedOrScaledOrSkewed() {
return this.mMenuItem.isRotatedOrScaledOrSkewed();
}
@Override
public boolean collidesWith(final IShape pOtherShape) {
return this.mMenuItem.collidesWith(pOtherShape);
}
@Override
public float[] getSceneCenterCoordinates() {
return this.mMenuItem.getSceneCenterCoordinates();
}
@Override
public float[] getSceneCenterCoordinates(final float[] pReuse) {
return this.mMenuItem.getSceneCenterCoordinates(pReuse);
}
@Override
public boolean isCullingEnabled() {
return this.mMenuItem.isCullingEnabled();
}
@Override
public void registerEntityModifier(final IEntityModifier pEntityModifier) {
this.mMenuItem.registerEntityModifier(pEntityModifier);
}
@Override
public boolean unregisterEntityModifier(final IEntityModifier pEntityModifier) {
return this.mMenuItem.unregisterEntityModifier(pEntityModifier);
}
@Override
public boolean unregisterEntityModifiers(final IEntityModifierMatcher pEntityModifierMatcher) {
return this.mMenuItem.unregisterEntityModifiers(pEntityModifierMatcher);
}
@Override
public int getEntityModifierCount() {
return this.mMenuItem.getEntityModifierCount();
}
@Override
public void clearEntityModifiers() {
this.mMenuItem.clearEntityModifiers();
}
@Override
public boolean isBlendingEnabled() {
return this.mMenuItem.isBlendingEnabled();
}
@Override
public void setBlendingEnabled(final boolean pBlendingEnabled) {
this.mMenuItem.setBlendingEnabled(pBlendingEnabled);
}
@Override
public int getBlendFunctionSource() {
return this.mMenuItem.getBlendFunctionSource();
}
@Override
public void setBlendFunctionSource(final int pBlendFunctionSource) {
this.mMenuItem.setBlendFunctionSource(pBlendFunctionSource);
}
@Override
public int getBlendFunctionDestination() {
return this.mMenuItem.getBlendFunctionDestination();
}
@Override
public void setBlendFunctionDestination(final int pBlendFunctionDestination) {
this.mMenuItem.setBlendFunctionDestination(pBlendFunctionDestination);
}
@Override
public void setBlendFunction(final int pBlendFunctionSource, final int pBlendFunctionDestination) {
this.mMenuItem.setBlendFunction(pBlendFunctionSource, pBlendFunctionDestination);
}
@Override
public void setCullingEnabled(final boolean pCullingEnabled) {
this.mMenuItem.setCullingEnabled(pCullingEnabled);
}
@Override
public int getTag() {
return this.mMenuItem.getTag();
}
@Override
public void setTag(final int pTag) {
this.mMenuItem.setTag(pTag);
}
@Override
public int getZIndex() {
return this.mMenuItem.getZIndex();
}
@Override
public void setZIndex(final int pZIndex) {
this.mMenuItem.setZIndex(pZIndex);
}
@Override
public ShaderProgram getShaderProgram() {
return this.mMenuItem.getShaderProgram();
}
@Override
public void setShaderProgram(final ShaderProgram pShaderProgram) {
this.mMenuItem.setShaderProgram(pShaderProgram);
}
@Override
public void onDraw(final GLState pGLState, final Camera pCamera) {
this.mMenuItem.onDraw(pGLState, pCamera);
}
@Override
public void onUpdate(final float pSecondsElapsed) {
this.mMenuItem.onUpdate(pSecondsElapsed);
}
@Override
public void reset() {
this.mMenuItem.reset();
this.onMenuItemReset(this.mMenuItem);
}
@Override
public boolean isDisposed() {
return this.mMenuItem.isDisposed();
}
@Override
public void dispose() {
this.mMenuItem.dispose();
}
@Override
public boolean contains(final float pX, final float pY) {
return this.mMenuItem.contains(pX, pY);
}
@Override
public float[] convertLocalToSceneCoordinates(final float pX, final float pY) {
return this.mMenuItem.convertLocalToSceneCoordinates(pX, pY);
}
@Override
public float[] convertLocalToSceneCoordinates(final float pX, final float pY, final float[] pReuse) {
return this.mMenuItem.convertLocalToSceneCoordinates(pX, pY, pReuse);
}
@Override
public float[] convertLocalToSceneCoordinates(final float[] pCoordinates) {
return this.mMenuItem.convertLocalToSceneCoordinates(pCoordinates);
}
@Override
public float[] convertLocalToSceneCoordinates(final float[] pCoordinates, final float[] pReuse) {
return this.mMenuItem.convertLocalToSceneCoordinates(pCoordinates, pReuse);
}
@Override
public float[] convertSceneToLocalCoordinates(final float pX, final float pY) {
return this.mMenuItem.convertSceneToLocalCoordinates(pX, pY);
}
@Override
public float[] convertSceneToLocalCoordinates(final float pX, final float pY, final float[] pReuse) {
return this.mMenuItem.convertSceneToLocalCoordinates(pX, pY, pReuse);
}
@Override
public float[] convertSceneToLocalCoordinates(final float[] pCoordinates) {
return this.mMenuItem.convertSceneToLocalCoordinates(pCoordinates);
}
@Override
public float[] convertSceneToLocalCoordinates(final float[] pCoordinates, final float[] pReuse) {
return this.mMenuItem.convertSceneToLocalCoordinates(pCoordinates, pReuse);
}
@Override
public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
return this.mMenuItem.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
}
@Override
public int getChildCount() {
return this.mMenuItem.getChildCount();
}
@Override
public void attachChild(final IEntity pEntity) {
this.mMenuItem.attachChild(pEntity);
}
@Override
public IEntity getFirstChild() {
return this.mMenuItem.getFirstChild();
}
@Override
public IEntity getLastChild() {
return this.mMenuItem.getLastChild();
}
@Override
public IEntity getChildByTag(final int pTag) {
return this.mMenuItem.getChildByTag(pTag);
}
@Override
public IEntity getChildByIndex(final int pIndex) {
return this.mMenuItem.getChildByIndex(pIndex);
}
@Override
public IEntity getChildByMatcher(IEntityMatcher pEntityMatcher) {
return this.mMenuItem.getChildByMatcher(pEntityMatcher);
}
@Override
public ArrayList<IEntity> query(final IEntityMatcher pEntityMatcher) {
return this.mMenuItem.query(pEntityMatcher);
}
@Override
public IEntity queryFirst(final IEntityMatcher pEntityMatcher) {
return this.mMenuItem.queryFirst(pEntityMatcher);
}
@Override
public <L extends List<IEntity>> L query(final IEntityMatcher pEntityMatcher, final L pResult) {
return this.mMenuItem.query(pEntityMatcher, pResult);
}
@Override
public <S extends IEntity> S queryFirstForSubclass(final IEntityMatcher pEntityMatcher) {
return this.mMenuItem.queryFirstForSubclass(pEntityMatcher);
}
@Override
public <S extends IEntity> ArrayList<S> queryForSubclass(final IEntityMatcher pEntityMatcher) throws ClassCastException {
return this.mMenuItem.queryForSubclass(pEntityMatcher);
}
@Override
public <L extends List<S>, S extends IEntity> L queryForSubclass(final IEntityMatcher pEntityMatcher, final L pResult) throws ClassCastException {
return this.mMenuItem.queryForSubclass(pEntityMatcher, pResult);
}
@Override
public void sortChildren() {
this.mMenuItem.sortChildren();
}
@Override
public void sortChildren(final boolean pImmediate) {
this.mMenuItem.sortChildren(pImmediate);
}
@Override
public void sortChildren(final IEntityComparator pEntityComparator) {
this.mMenuItem.sortChildren(pEntityComparator);
}
@Override
public boolean detachSelf() {
return this.mMenuItem.detachSelf();
}
@Override
public boolean detachChild(final IEntity pEntity) {
return this.mMenuItem.detachChild(pEntity);
}
@Override
public IEntity detachChild(final int pTag) {
return this.mMenuItem.detachChild(pTag);
}
@Override
public IEntity detachChild(final IEntityMatcher pEntityMatcher) {
return this.mMenuItem.detachChild(pEntityMatcher);
}
@Override
public boolean detachChildren(final IEntityMatcher pEntityMatcher) {
return this.mMenuItem.detachChildren(pEntityMatcher);
}
@Override
public void detachChildren() {
this.mMenuItem.detachChildren();
}
@Override
public void callOnChildren(final IEntityParameterCallable pEntityParameterCallable) {
this.mMenuItem.callOnChildren(pEntityParameterCallable);
}
@Override
public void callOnChildren(final IEntityParameterCallable pEntityParameterCallable, final IEntityMatcher pEntityMatcher) {
this.mMenuItem.callOnChildren(pEntityParameterCallable, pEntityMatcher);
}
@Override
public Transformation getLocalToSceneTransformation() {
return this.mMenuItem.getLocalToSceneTransformation();
}
@Override
public Transformation getSceneToLocalTransformation() {
return this.mMenuItem.getSceneToLocalTransformation();
}
@Override
public Transformation getLocalToParentTransformation() {
return this.mMenuItem.getLocalToParentTransformation();
}
@Override
public Transformation getParentToLocalTransformation() {
return this.mMenuItem.getParentToLocalTransformation();
}
@Override
public boolean hasParent() {
return this.mMenuItem.hasParent();
}
@Override
public IEntity getParent() {
return this.mMenuItem.getParent();
}
@Override
public void setParent(final IEntity pEntity) {
this.mMenuItem.setParent(pEntity);
}
@Override
public boolean isVisible() {
return this.mMenuItem.isVisible();
}
@Override
public void setVisible(final boolean pVisible) {
this.mMenuItem.setVisible(pVisible);
}
@Override
public boolean isCulled(final Camera pCamera) {
return this.mMenuItem.isCulled(pCamera);
}
@Override
public boolean isChildrenVisible() {
return this.mMenuItem.isChildrenVisible();
}
@Override
public void setChildrenVisible(final boolean pChildrenVisible) {
this.mMenuItem.setChildrenVisible(pChildrenVisible);
}
@Override
public boolean isIgnoreUpdate() {
return this.mMenuItem.isIgnoreUpdate();
}
@Override
public void setIgnoreUpdate(final boolean pIgnoreUpdate) {
this.mMenuItem.setIgnoreUpdate(pIgnoreUpdate);
}
@Override
public boolean isChildrenIgnoreUpdate() {
return this.mMenuItem.isChildrenIgnoreUpdate();
}
@Override
public void setChildrenIgnoreUpdate(final boolean pChildrenIgnoreUpdate) {
this.mMenuItem.setChildrenIgnoreUpdate(pChildrenIgnoreUpdate);
}
@Override
public void setUserData(final Object pUserData) {
this.mMenuItem.setUserData(pUserData);
}
@Override
public Object getUserData() {
return this.mMenuItem.getUserData();
}
@Override
public void onAttached() {
this.mMenuItem.onAttached();
}
@Override
public void onDetached() {
this.mMenuItem.onDetached();
}
@Override
public void registerUpdateHandler(final IUpdateHandler pUpdateHandler) {
this.mMenuItem.registerUpdateHandler(pUpdateHandler);
}
@Override
public boolean unregisterUpdateHandler(final IUpdateHandler pUpdateHandler) {
return this.mMenuItem.unregisterUpdateHandler(pUpdateHandler);
}
@Override
public int getUpdateHandlerCount() {
return this.mMenuItem.getUpdateHandlerCount();
}
@Override
public void clearUpdateHandlers() {
this.mMenuItem.clearUpdateHandlers();
}
@Override
public boolean unregisterUpdateHandlers(final IUpdateHandlerMatcher pUpdateHandlerMatcher) {
return this.mMenuItem.unregisterUpdateHandlers(pUpdateHandlerMatcher);
}
@Override
public void toString(final StringBuilder pStringBuilder) {
this.mMenuItem.toString(pStringBuilder);
}
// ===========================================================
// Methods
// ===========================================================
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}