package oripa.bind.copypaste;
import java.awt.geom.AffineTransform;
import java.util.Collection;
import oripa.ORIPA;
import oripa.appstate.ApplicationState;
import oripa.appstate.StateManager;
import oripa.doc.Doc;
import oripa.paint.EditMode;
import oripa.paint.copypaste.CopyAndPasteAction;
import oripa.paint.core.PaintContext;
import oripa.paint.creasepattern.Painter;
import oripa.value.OriLine;
public class CopyAndPasteActionWrapper extends CopyAndPasteAction {
private boolean isCut;
public CopyAndPasteActionWrapper(boolean isCut) {
super();
this.isCut = isCut;
if(isCut){
super.setEditMode(EditMode.CUT);
}
}
@Override
public void recover(PaintContext context) {
super.recover(context);
Doc document = ORIPA.doc;
Collection<OriLine> creasePattern = document.getCreasePattern();
if(isCut){
Painter painter = new Painter();
painter.removeSelectedLines(creasePattern);
}
}
@Override
public void onRightClick(PaintContext context, AffineTransform affine,
boolean differentAction) {
StateManager stateManager = StateManager.getInstance();
ApplicationState<EditMode> prev = stateManager.pop();
if(prev == null){
return;
}
// a case having switched copy to cut.
prev.performActions(null);
}
}