/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package automenta.spacenet.space.widget.panel; import automenta.spacenet.space.control.Touchable; import automenta.spacenet.space.control.Zoomable; import automenta.spacenet.space.geom.Rect; import automenta.spacenet.space.geom.Rect.RectShape; import com.ardor3d.intersection.PickData; import com.ardor3d.renderer.state.BlendState; public class Panel extends Rect implements Touchable, Zoomable { private PanelModel model; private boolean touched; public Panel() { this(new DefaultPanelModel()); } public Panel(PanelModel m) { super(RectShape.Empty); setModel(m); BlendState bState = new BlendState(); bState.setBlendEnabled(true); bState.setSourceFunction(BlendState.SourceFunction.SourceAlpha); bState.setDestinationFunction(BlendState.DestinationFunction.OneMinusSourceAlpha); bState.setTestEnabled(true); bState.setTestFunction(BlendState.TestFunction.Always); bState.setEnabled(true); setRenderState(bState); } public void setModel(PanelModel m) { removeAll(); this.model = m; getModel().initPanel(this); } public PanelModel getModel() { return model; } @Override public void onTouchStart(PickData pick) { this.touched = true; getModel().onTouchStart(); } @Override public void onTouching(PickData pick) { } @Override public void onTouchStop() { this.touched = false; getModel().onNormal(); } @Override public boolean isTangible() { return true; } @Override public void onZoomStart() { } @Override public void onZoomStop() { } @Override public boolean isZoomable() { return true; } public boolean isTouched() { return touched; } }