以下是CollapseAllHandler類的一個使用實例:
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jdt.ui.actions.CollapseAllAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.ui.handlers.HandlerUtil;
public class CollapseAllHandler extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
// 獲取當前的選擇
ISelection selection = HandlerUtil.getCurrentSelection(event);
// 判斷選擇是否為樹狀視圖
if (selection instanceof IStructuredSelection) {
// 獲取樹狀視圖
TreeViewer treeViewer = (TreeViewer) HandlerUtil.getActivePart(event).getSite().getSelectionProvider();
// 創建CollapseAllAction實例
CollapseAllAction collapseAllAction = new CollapseAllAction(treeViewer);
// 執行折疊所有操作
collapseAllAction.run();
}
return null;
}
}
這個示例中,我們創建了一個名為CollapseAllHandler的類,該類繼承自AbstractHandler類。在execute方法中,我們首先獲取當前的選擇,然后判斷選擇是否為樹狀視圖。如果是,我們獲取樹狀視圖的TreeViewer對象,并創建一個CollapseAllAction實例。最后,我們調用CollapseAllAction的run方法來執行折疊所有操作。