/*******************************************************************************
* Copyright 2005-2006, CHISEL Group, University of Victoria, Victoria, BC, Canada
* and IBM Corporation. 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:
* The Chisel Group, University of Victoria
*******************************************************************************/
package net.sourceforge.tagsea.core.ui.internal.tags;
import net.sourceforge.tagsea.TagSEAPlugin;
import net.sourceforge.tagsea.core.ui.ITagSEAImageConstants;
import net.sourceforge.tagsea.core.ui.tags.TagsView;
import org.eclipse.jface.action.IContributionManager;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Event;
import org.eclipse.ui.IActionBars;
import org.eclipse.ui.actions.ActionContext;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ActionGroup;
/**
* Action Group for the tags viewer.
* @author Del Myers
*/
@Deprecated
public class TagActionGroup extends ActionGroup implements IPropertyChangeListener {
private TagRenameAction renameAction;
private ContextAction generalizeAction;
private TagDeleteAction deleteAction;
private TagToggleTreeNamingAction toggleTreeNamingAction;
//private OpenWaypointViewAction openWaypointViewAction;
public TagActionGroup(TagsView view) {
renameAction = new TagRenameAction(view.getTreeViewer(), new TagRenamer(), (String[])view.getTreeViewer().getColumnProperties());
renameAction.setImageDescriptor(TagSEAPlugin.getImageDescriptor("/icons/rename.gif"));
renameAction.setText("Rename");
renameAction.setToolTipText("Rename");
generalizeAction = new GeneralizeAction();
generalizeAction.setImageDescriptor(TagSEAPlugin.getImageDescriptor("/icons/taggeneralize.gif"));
generalizeAction.setText("Push Up Tags/Waypoints");
generalizeAction.setToolTipText("Moves tags and waypoints into the parent");
deleteAction = new TagDeleteAction();
deleteAction.setText("Delete");
deleteAction.setToolTipText("Removes references to this tag and its children from all waypoints");
deleteAction.setImageDescriptor(TagSEAPlugin.getDefault().getImageRegistry().getDescriptor(ITagSEAImageConstants.IMG_DELETE));
deleteAction.setDisabledImageDescriptor(TagSEAPlugin.getDefault().getImageRegistry().getDescriptor(ITagSEAImageConstants.IMG_DELETE_DISABLED));
view.getViewSite().getActionBars().setGlobalActionHandler(ActionFactory.DELETE.getId(), deleteAction);
toggleTreeNamingAction = new TagToggleTreeNamingAction();
toggleTreeNamingAction.setText("Keep Hierarchical Names");
toggleTreeNamingAction.setDescription("Toggles whether renaming will keep the tree hierarchy.");
// openWaypointViewAction = new OpenWaypointViewAction();
// openWaypointViewAction.setText("Open Waypoint View");
// openWaypointViewAction.setToolTipText("Opens the waypoint view");
// openWaypointViewAction.setImageDescriptor(TagSEAPlugin.getDefault().getImageRegistry().getDescriptor(ITagSEAImageConstants.IMG_WAYPOINT));
refreshActions();
IPreferenceStore store = TagSEAPlugin.getDefault().getPreferenceStore();
store.addPropertyChangeListener(this);
}
public void runDefaultAction(ISelection selection) {
// openWaypointViewAction.run();
}
public void runDefaultAction(Event event) {
// openWaypointViewAction.run();
}
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionGroup#setContext(org.eclipse.ui.actions.ActionContext)
*/
@Override
public void setContext(ActionContext context) {
renameAction.setContext(context);
generalizeAction.setContext(context);
deleteAction.setContext(context);
super.setContext(context);
}
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
*/
@Override
public void fillContextMenu(IMenuManager menu) {
menu.add(renameAction);
menu.add(generalizeAction);
menu.add(new Separator());
menu.add(deleteAction);
super.fillContextMenu(menu);
}
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
*/
@Override
public void fillActionBars(IActionBars actionBars) {
super.fillActionBars(actionBars);
fillContributionManager(actionBars.getToolBarManager());
fillContributionManager(actionBars.getMenuManager());
}
private void fillContributionManager(IContributionManager manager) {
manager.add(renameAction);
manager.add(generalizeAction);
manager.add(new Separator());
manager.add(deleteAction);
manager.add(new Separator());
// manager.add(openWaypointViewAction);
//MenuManager viewMenu = new MenuManager("View", "view");
//viewMenu.add(toggleTreeNamingAction);
//manager.add(viewMenu);
}
private void refreshActions() {
//reset the context to update other actions.
setContext(getContext());
}
/* (non-Javadoc)
* @see org.eclipse.ui.actions.ActionGroup#dispose()
*/
@Override
public void dispose() {
super.dispose();
IPreferenceStore store = TagSEAPlugin.getDefault().getPreferenceStore();
store.removePropertyChangeListener(this);
}
/* (non-Javadoc)
* @see org.eclipse.jface.util.IPropertyChangeListener#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
public void propertyChange(PropertyChangeEvent event) {
refreshActions();
}
/**
* Runs the action used to edit tag names.
*/
public void runEditAction() {
renameAction.run();
}
}