?? myactiongroup2.java
字號:
package cn.com.chengang.jface.treeviewer;
import java.util.Iterator;
import java.util.List;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.ui.actions.ActionGroup;
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
public class MyActionGroup2 extends ActionGroup {
private ContainerCheckedTreeViewer tv;
public MyActionGroup2(ContainerCheckedTreeViewer tv) {
this.tv = tv;
}
public void fillContextMenu(IMenuManager mgr) {
MenuManager menuManager = (MenuManager) mgr;
menuManager.add(new SelectAllAction());
menuManager.add(new RemoveEntryAction());
Tree tree = tv.getTree();
Menu menu = menuManager.createContextMenu(tree);
tree.setMenu(menu);
}
private class SelectAllAction extends Action {
public SelectAllAction() {
setText("勾選當前結點的所有子結點");
}
public void run() {
IStructuredSelection selection = (IStructuredSelection) tv.getSelection();
ITreeEntry entry = (ITreeEntry) (selection.getFirstElement());
tv.setSubtreeChecked(entry, true); // false不勾選
}
}
// 刪除結點的Action類
private class RemoveEntryAction extends Action {
public RemoveEntryAction() {
setText("刪除");
}
public void run() {
Object[] checks = tv.getCheckedElements();// 取得被勾選的結點(包括灰選)
if (checks.length == 0) {
MessageDialog.openInformation(null, "提示", "請先勾選記錄");
return;
}
List<ITreeEntry> inputList = (List<ITreeEntry>) tv.getInput();
for (Object object : checks) {
if (tv.getGrayed(object))
continue;// 灰選結點不刪除
ITreeEntry entry = (ITreeEntry) object;
remove(inputList, entry);
tv.remove(entry);
}
}
private void remove(List<ITreeEntry> list, ITreeEntry entry) {
if (list == null)
return;
for (Iterator it = list.iterator(); it.hasNext();) {
ITreeEntry o = (ITreeEntry) it.next();
if (o.getName().equals(entry.getName())) {
it.remove();
return;
} else {
remove(o.getChildren(), entry);
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -