/** * <p>Copyright: Copyright (c) 2009</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.ui.control.deprecated; import org.eclipse.jface.action.Action; import org.eclipse.jface.action.IMenuManager; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.swt.widgets.Tree; import org.eclipse.ui.actions.ActionGroup; public class TreeViewerActionGroup extends ActionGroup implements ISelectionChangedListener { private TreeViewerExComponent<?> component; private Action insert = new InsertAction(); private Action copy = new CopyAction(); private Action paste = new PasteAction(); private Action cut = new CutAction(); private Action delete = new DeleteAction(); public TreeViewerActionGroup(TreeViewerExComponent<?> component) { super(); this.component = component; } /* (non-Javadoc) * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager) */ @Override public void fillContextMenu(IMenuManager menu) { menu.add(insert); menu.add(copy); menu.add(cut); menu.add(paste); menu.add(delete); updateAction(); final Tree tree = component.getTreeViewer().getTree(); component.getTreeViewer().addSelectionChangedListener(this); tree.setMenu(((MenuManager)menu).createContextMenu(tree)); } private void updateAction() { insert.setEnabled(component.canInsert()); copy.setEnabled(component.canCopy()); paste.setEnabled(component.canPaste()); cut.setEnabled(component.canCut()); delete.setEnabled(component.canDelete()); } public void selectionChanged(SelectionChangedEvent event) { updateAction(); } private class CopyAction extends Action { public CopyAction() { super("����\tCtrl+C"); } /* (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { component.copy(); } } private class CutAction extends Action { public CutAction() { super("����\tCtrl+X"); } /* (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { component.cut(); } } private class PasteAction extends Action { public PasteAction() { super("ճ��\tCtrl+V"); } /* (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { component.paste(); } } private class DeleteAction extends Action{ public DeleteAction() { super("ɾ��\tDel"); } /* (non-Javadoc) * @see org.eclipse.jface.action.Action#run() */ @Override public void run() { component.delete(); } } private class InsertAction extends Action{ public InsertAction() { super("����\tInsert"); } @Override public void run() { component.insert(); } } }