package oripa.bind; import java.awt.geom.AffineTransform; import oripa.appstate.ApplicationState; import oripa.appstate.StateManager; import oripa.paint.EditMode; import oripa.paint.GraphicMouseActionInterface; import oripa.paint.core.PaintConfig; import oripa.paint.core.PaintContext; import oripa.paint.outline.EditOutlineAction; public class EditOutlineActionWrapper extends EditOutlineAction { @Override public GraphicMouseActionInterface onLeftClick(PaintContext context, AffineTransform affine, boolean differentAction) { GraphicMouseActionInterface next = super.onLeftClick(context, affine, differentAction); if(context.isMissionCompleted()){ popPreviousState(); next = PaintConfig.getMouseAction(); } return next; } @Override public void onRightClick(PaintContext context, AffineTransform affine, boolean differentAction) { popPreviousState(); } private void popPreviousState(){ StateManager stateManager = StateManager.getInstance(); ApplicationState<EditMode> prev = stateManager.pop(); prev.performActions(null); } }