@Override protected void removePoint(PipeCADToolContext context, InputEvent event, int numPoints) { PipeCADTool ctxt = context.getOwner(); if (numPoints > 1) { PipeCADToolState endState = context.getState(); context.clearState(); try { ctxt.removePoint(event); } finally { context.setState(endState); (context.getState()).Entry(context); } } else if (numPoints == 1) { (context.getState()).Exit(context); context.clearState(); try { ctxt.removePoint(event); } finally { context.setState(Polyline.FirstPoint); (context.getState()).Entry(context); } } else { super.removePoint(context, event, numPoints); } return; }