package oripa.paint.deleteline; import java.awt.Graphics2D; import java.util.Collection; import oripa.ORIPA; import oripa.doc.Doc; import oripa.paint.EditMode; import oripa.paint.core.GraphicMouseAction; import oripa.paint.core.PaintContext; import oripa.paint.core.RectangularSelectableAction; import oripa.paint.creasepattern.Painter; import oripa.value.OriLine; public class DeleteLineAction extends RectangularSelectableAction { public DeleteLineAction(){ setEditMode(EditMode.OTHER); setActionState(new DeletingLine()); } @Override public void onDraw(Graphics2D g2d, PaintContext context) { super.onDraw(g2d, context); drawPickCandidateLine(g2d, context); } /** * Reset selection mark to avoid undesired deletion. * @see GraphicMouseAction#recover(PaintContext) * @param context */ @Override public void recover(PaintContext context) { context.clear(true); } @Override protected void afterRectangularSelection(Collection<OriLine> selectedLines, PaintContext context) { Doc document = ORIPA.doc; Collection<OriLine> creasePattern = document.getCreasePattern(); if(selectedLines.isEmpty() == false){ document.pushUndoInfo(); Painter painter = new Painter(); for (OriLine l : selectedLines) { painter.removeLine(l, creasePattern); } } } }