/* ******************************************************************************
* Copyright (c) 2006-2012 XMind Ltd. and others.
*
* This file is a part of XMind 3. XMind releases 3 and
* above are dual-licensed under the Eclipse Public License (EPL),
* which is available at http://www.eclipse.org/legal/epl-v10.html
* and the GNU Lesser General Public License (LGPL),
* which is available at http://www.gnu.org/licenses/lgpl.html
* See http://www.xmind.net/license.html for details.
*
* Contributors:
* XMind Ltd. - initial API and implementation
*******************************************************************************/
package org.xmind.ui.internal.views;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.IToolBarManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.actions.RetargetAction;
import org.eclipse.ui.part.IContributedContentsView;
import org.eclipse.ui.part.IPage;
import org.eclipse.ui.part.IPageBookViewPage;
import org.eclipse.ui.part.Page;
import org.eclipse.ui.part.PageBook;
import org.eclipse.ui.part.PageBookView;
import org.xmind.gef.ui.actions.ActionRegistry;
import org.xmind.gef.ui.actions.IActionRegistry;
import org.xmind.gef.ui.editor.IGraphicalEditor;
import org.xmind.ui.internal.MindMapMessages;
import org.xmind.ui.internal.actions.ActionConstants;
import org.xmind.ui.mindmap.IMindMapImages;
import org.xmind.ui.mindmap.MindMapUI;
/**
* @author Frank Shaka
* @deprecated Replaced by {@link org.xmind.ui.views.ContributedContentsView}
*/
@Deprecated
public class RevisionsView extends PageBookView
implements IContributedContentsView {
private static class DefaultRevisionsPage extends Page {
private Control control;
@Override
public void createControl(Composite parent) {
Composite composite = new Composite(parent, SWT.NONE);
composite.setLayout(new GridLayout());
Label label = new Label(composite, SWT.WRAP);
label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
label.setText(MindMapMessages.DefaultRevisionsPage_message);
control = composite;
}
@Override
public Control getControl() {
return control;
}
@Override
public void setFocus() {
control.setFocus();
}
}
private IActionRegistry actions = new ActionRegistry();
@Override
public void createPartControl(Composite parent) {
super.createPartControl(parent);
RetargetAction removeAction = new RetargetAction(
ActionConstants.REMOVE_REVISION_ID,
MindMapMessages.RevisionsView_DeleteRevisionsAction_text);
removeAction.setToolTipText(
MindMapMessages.RevisionsView_DeleteRevisionsAction_toolTip);
removeAction.setImageDescriptor(
MindMapUI.getImages().get(IMindMapImages.DELETE, true));
removeAction.setDisabledImageDescriptor(
MindMapUI.getImages().get(IMindMapImages.DELETE, false));
registerAction(removeAction);
RetargetAction revertAction = new RetargetAction(
ActionConstants.REVERT_TO_REVISION_ID,
MindMapMessages.RevisionsView_RevertToRevisionAction_text);
revertAction.setToolTipText(
MindMapMessages.RevisionsView_RevertToRevisionAction_toolTip);
revertAction.setImageDescriptor(
MindMapUI.getImages().get("revisions_revert.gif", true)); //$NON-NLS-1$
registerAction(revertAction);
RetargetAction previewAction = new RetargetAction(
ActionConstants.PREVIEW_REVISIONS,
MindMapMessages.RevisionsView_PreviewAction_text);
previewAction.setToolTipText(
MindMapMessages.RevisionsView_PreviewAction_toolTip);
previewAction.setImageDescriptor(
MindMapUI.getImages().get(IMindMapImages.ZOOMIN, true));
previewAction.setDisabledImageDescriptor(
MindMapUI.getImages().get(IMindMapImages.ZOOMIN, false));
registerAction(previewAction);
IToolBarManager toolbar = getViewSite().getActionBars()
.getToolBarManager();
toolbar.add(previewAction);
toolbar.add(revertAction);
toolbar.add(removeAction);
toolbar.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
IMenuManager menu = getViewSite().getActionBars().getMenuManager();
menu.add(previewAction);
menu.add(revertAction);
menu.add(removeAction);
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
getViewSite().getActionBars().updateActionBars();
}
private void registerAction(final RetargetAction action) {
action.partActivated(this);
// getSite().getPage().addPartListener(action);
actions.addAction(action);
}
@Override
public void dispose() {
actions.dispose();
super.dispose();
}
/*
* (non-Javadoc)
*
* @see
* org.eclipse.ui.part.PageBookView#createDefaultPage(org.eclipse.ui.part
* .PageBook)
*/
@Override
protected IPage createDefaultPage(PageBook book) {
IPageBookViewPage page = new DefaultRevisionsPage();
initPage(page);
page.createControl(book);
return page;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.part.PageBookView#doCreatePage(org.eclipse.ui.
* IWorkbenchPart )
*/
@Override
protected PageRec doCreatePage(IWorkbenchPart part) {
IPageBookViewPage page = new WorkbookRevisionsPage(
(IGraphicalEditor) part);
initPage(page);
page.createControl(getPageBook());
return new PageRec(part, page);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.part.PageBookView#doDestroyPage(org.eclipse.ui.
* IWorkbenchPart , org.eclipse.ui.part.PageBookView.PageRec)
*/
@Override
protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) {
IPage page = pageRecord.page;
page.dispose();
pageRecord.dispose();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.part.PageBookView#getBootstrapPart()
*/
@Override
protected IWorkbenchPart getBootstrapPart() {
return getSite().getPage().getActiveEditor();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ui.part.PageBookView#isImportant(org.eclipse.ui.
* IWorkbenchPart )
*/
@Override
protected boolean isImportant(IWorkbenchPart part) {
return part instanceof IGraphicalEditor;
}
public IWorkbenchPart getContributingPart() {
return getSite().getPage().getActiveEditor();
}
@SuppressWarnings("unchecked")
public Object getAdapter(Class adapter) {
if (adapter == IContributedContentsView.class) {
return this;
}
return super.getAdapter(adapter);
}
}