package org.xmind.ui.internal.handlers;
import java.util.List;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.handlers.HandlerUtil;
import org.xmind.core.IRevision;
import org.xmind.core.IRevisionManager;
import org.xmind.core.ISheet;
import org.xmind.core.IWorkbook;
import org.xmind.ui.internal.dialogs.RevisionPreviewDialog;
@Deprecated
public class PreviewRevisionHandler extends AbstractHandler {
public Object execute(ExecutionEvent event) throws ExecutionException {
previewRevision(HandlerUtil.getCurrentSelection(event),
HandlerUtil.getActiveShell(event));
return null;
}
private static void previewRevision(ISelection selection, Shell shell) {
if (selection == null || selection.isEmpty()
|| !(selection instanceof IStructuredSelection)
|| shell == null)
return;
Object obj = ((IStructuredSelection) selection).getFirstElement();
if (!(obj instanceof IRevision))
return;
IRevision revision = (IRevision) obj;
if (!IRevision.SHEET.equals(revision.getContentType()))
return;
IWorkbook workbook = revision.getOwnedWorkbook();
ISheet sheet = (ISheet) workbook.findElement(revision.getResourceId(),
null);
if (sheet == null)
return;
IRevisionManager revisionManager = sheet.getOwnedWorkbook()
.getRevisionRepository()
.getRevisionManager(sheet.getId(), IRevision.SHEET);
List<IRevision> revisions = revisionManager.getRevisions();
int index = revisions.indexOf(revision);
RevisionPreviewDialog dialog = new RevisionPreviewDialog(shell, sheet,
revisions, index);
dialog.open();
}
}