package testrcp.actions;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
import org.eclipse.ui.views.IViewDescriptor;
public class ShowViewAction extends Action implements IWorkbenchAction {
private IWorkbenchWindow workbenchWindow;
private IViewDescriptor desc;
public ShowViewAction(IWorkbenchWindow window, IViewDescriptor desc) {
super("");
/** 獲得視圖的名稱 */
String label = desc.getLabel();
/** 設置操作的名稱 */
setText(label);
/** 設置操作的圖標為視圖的圖標 */
setImageDescriptor(desc.getImageDescriptor());
/** 設置操作的提示文本 */
setToolTipText(label);
setId("ShowView" + desc.getId());
this.workbenchWindow = window;
this.desc = desc;
}
@Override
public void run() {
/** 獲得當前工作區及獲得工作頁面 */
IWorkbenchPage page = workbenchWindow.getActivePage();
/** 如果頁面不為null */
if (page != null) {
try {
/** 顯示視圖 */
page.showView(desc.getId());
} catch (PartInitException e) {
ErrorDialog.openError(workbenchWindow.getShell(), "打開視圖錯誤
!", e.getMessage(), e.getStatus());
}
}
}
@Override
public void dispose() {
workbenchWindow = null;
}
}
posted on 2008-12-05 23:46
Ke 閱讀(372)
評論(0) 編輯 收藏 所屬分類:
eclipse RCP