/** * <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.jface.viewers.TableViewer; import org.eclipse.swt.widgets.Table; import org.eclipse.ui.actions.ActionGroup; public class TableViewerActionGroup extends ActionGroup implements ISelectionChangedListener { 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 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(); } } 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 TableViewerExComponent<?> component; private InsertAction insert = new InsertAction(); private CopyAction copy = new CopyAction(); private PasteAction paste = new PasteAction(); private CutAction cut = new CutAction(); private DeleteAction delete = new DeleteAction(); public TableViewerActionGroup(TableViewerExComponent<?> 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 TableViewer viewer = component.getTableViewer(); final Table table = viewer.getTable(); component.getTableViewer().addSelectionChangedListener(this); table.setMenu(((MenuManager) menu).createContextMenu(table)); } public void selectionChanged(SelectionChangedEvent event) { updateAction(); } private void updateAction() { insert.setEnabled(component.canInsert()); copy.setEnabled(component.canCopy()); paste.setEnabled(component.canPaste()); cut.setEnabled(component.canCut()); delete.setEnabled(component.canDelete()); } }