package org.xmind.ui.internal.actions;
import java.util.ArrayList;
import java.util.List;
import org.xmind.core.Core;
import org.xmind.core.ISheet;
import org.xmind.core.IWorkbook;
public class CopiedSheetStorageSupport {
private static CopiedSheetStorageSupport instance = null;
private ISheet copiedSheet = null;
private CopiedSheetStorageSupport() {
}
public static CopiedSheetStorageSupport getInstance() {
if (instance == null) {
instance = new CopiedSheetStorageSupport();
}
return instance;
}
public void setCopiedSheet(ISheet sheet) {
copiedSheet = cloneSheet(sheet);
}
public ISheet getCopiedSheet(IWorkbook workbook) {
return cloneSheet(workbook, copiedSheet);
}
public boolean isCopiedSheetExist() {
return copiedSheet != null;
}
private ISheet cloneSheet(ISheet sheet) {
IWorkbook workbook = Core.getWorkbookBuilder().createWorkbook();
return cloneSheet(workbook, sheet);
}
public ISheet cloneSheet(IWorkbook workbook, ISheet sheet) {
if (sheet == null) {
return null;
}
List<ISheet> sheetList = new ArrayList<ISheet>();
sheetList.add(sheet);
ISheet clonedSheet = (ISheet) workbook.clone(sheetList).getCloneds()
.iterator().next();
return clonedSheet;
}
}