package oripa.paint.linetype; import java.awt.Graphics2D; import java.util.Collection; import oripa.ORIPA; import oripa.doc.Doc; import oripa.paint.EditMode; import oripa.paint.core.PaintContext; import oripa.paint.core.RectangularSelectableAction; import oripa.paint.creasepattern.Painter; import oripa.value.OriLine; import oripa.viewsetting.main.uipanel.UIPanelSettingDB; public class ChangeLineTypeAction extends RectangularSelectableAction { public ChangeLineTypeAction(){ setEditMode(EditMode.CHANGE_TYPE); setActionState(new SelectingLineForLineType()); } @Override protected void afterRectangularSelection(Collection<OriLine> selectedLines, PaintContext context) { if(selectedLines.isEmpty() == false){ Doc document = ORIPA.doc; Collection<OriLine> creasePattern = document.getCreasePattern(); document.pushUndoInfo(); UIPanelSettingDB setting = UIPanelSettingDB.getInstance(); for (OriLine l : selectedLines) { Painter painter = new Painter(); // Change line type painter.alterLineType( l, setting.getTypeFrom(), setting.getTypeTo(), creasePattern); //ORIPA.doc.alterLineType(l, setting.getLineTypeFromIndex(), setting.getLineTypeToIndex()); } } } @Override public void onDraw(Graphics2D g2d, PaintContext context) { super.onDraw(g2d, context); drawPickCandidateLine(g2d, context); } }