blob: b167eb8f404fed6a36eb1d30af13ee2792291664 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 Chase Technology Ltd - http://www.chasetechnology.co.uk
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Doug Satchwell (Chase Technology Ltd) - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.xml.xpath.internal.ui.views;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImageHelper;
import org.eclipse.wst.sse.ui.internal.editor.EditorPluginImages;
class XPathViewActions
{
private ImageDescriptor COLLAPSE_D = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_DLCL_COLLAPSEALL);
private ImageDescriptor COLLAPSE_E = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_ELCL_COLLAPSEALL);
private ImageDescriptor SYNCED_D = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_DLCL_SYNCED);
private ImageDescriptor SYNCED_E = EditorPluginImageHelper.getInstance().getImageDescriptor(EditorPluginImages.IMG_ELCL_SYNCED);
boolean linkWithEditor = false;
private CollapseTreeAction collapseAction;
private ToggleLinkAction toggleAction;
protected IAction[] createMenuContributions(TreeViewer viewer)
{
return new IAction[]{ };
}
protected IAction[] createToolbarContributions(TreeViewer viewer)
{
this.collapseAction = new CollapseTreeAction(viewer);
this.toggleAction = new ToggleLinkAction();
toggleAction.setChecked(linkWithEditor);
return new IAction[]{ collapseAction,toggleAction };
}
public ISelection getSelection(TreeViewer viewer, ISelection selection)
{
return selection;
}
public boolean isLinkedWithEditor(TreeViewer treeViewer)
{
return linkWithEditor;
}
void setLinkWithEditor(boolean isLinkWithEditor)
{
linkWithEditor = isLinkWithEditor;
}
void fillContextMenu(IMenuManager manager)
{
manager.add(collapseAction);
manager.add(toggleAction);
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
// private static ImageDescriptor getImageDescriptor(String relativePath)
// {
// String iconPath = "icons/";
// return XMLUIPlugin.imageDescriptorFromPlugin(XMLUIPlugin.PLUGIN_ID, iconPath);
// }
private class CollapseTreeAction extends Action
{
private TreeViewer fTreeViewer = null;
public CollapseTreeAction(TreeViewer viewer)
{
super(Messages.XPathViewActions_0, AS_PUSH_BUTTON);
setImageDescriptor(COLLAPSE_E);
setDisabledImageDescriptor(COLLAPSE_D);
setToolTipText(getText());
fTreeViewer = viewer;
}
public void run()
{
fTreeViewer.collapseAll();
}
}
private class ToggleLinkAction extends Action
{
public ToggleLinkAction()
{
super(Messages.XPathViewActions_1, AS_CHECK_BOX);
setToolTipText(getText());
setDisabledImageDescriptor(SYNCED_D);
setImageDescriptor(SYNCED_E);
}
public void run()
{
setLinkWithEditor(isChecked());
}
}
}