package org.xmind.ui.commands;
import java.util.ArrayList;
import java.util.List;
import org.xmind.core.ISheet;
import org.xmind.gef.command.Command;
public class DuplicateSheetCommand extends Command {
private ISheet sheet;
private ISheet clonedSheet;
public DuplicateSheetCommand(ISheet sheet) {
this.sheet = sheet;
}
@Override
public void redo() {
if (clonedSheet == null) {
cloneSheet();
}
sheet.getOwnedWorkbook().addSheet(clonedSheet, sheet.getIndex() + 1);
super.redo();
}
@Override
public void undo() {
clonedSheet.getOwnedWorkbook().removeSheet(clonedSheet);
super.undo();
}
private void cloneSheet() {
List<ISheet> sheetList = new ArrayList<ISheet>();
sheetList.add(sheet);
clonedSheet = (ISheet) sheet.getOwnedWorkbook().clone(sheetList)
.getCloneds().iterator().next();
clonedSheet.setTitleText(clonedSheet.getTitleText() + " copy"); //$NON-NLS-1$
}
}