RCP项目_动态打开View
2013-03-07 14:29
127 查看
public class ActionManager {
/** 打开视图操作 */
public static IWorkbenchAction createShowViewAction(
IWorkbenchWindow window, String viewId) {
if (window == null) {
throw new IllegalArgumentException();
}
/** 获得plugin.xml文件中配置的视图信息 */
IViewDescriptor desc = window.getWorkbench().getViewRegistry()
.find(viewId);
IWorkbenchAction action = new ShowViewAction(window, desc);
return action;
}
}
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;
}
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());
}
}
}
public void dispose() {
workbenchWindow = null;
}
}
/** 打开视图操作 */
public static IWorkbenchAction createShowViewAction(
IWorkbenchWindow window, String viewId) {
if (window == null) {
throw new IllegalArgumentException();
}
/** 获得plugin.xml文件中配置的视图信息 */
IViewDescriptor desc = window.getWorkbench().getViewRegistry()
.find(viewId);
IWorkbenchAction action = new ShowViewAction(window, desc);
return action;
}
}
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;
}
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());
}
}
}
public void dispose() {
workbenchWindow = null;
}
}
相关文章推荐
- iOS项目开发实战——实现UICollectionView的动态增加Cell与Section
- Android部分开源项目源码分析之---ViewBadge(View 上面动态的自定义的添加view)
- RossWeatherMap天气地图项目中踩的雷(一):Viewpager动态删除Fragment
- rcp(插件开发)如何打开help信息、动态帮助信息
- 关于在宿主activity中设置按钮,动态控制viewPager中的字体的大小的设置,在答题项目中遇到,在此做记录,方便日后学习,改进。
- 【Android---项目中】TextView动态设置颜色
- 【项目中---WebView】Webview打开本地图片文件选择解决方案
- 【问】插件项目中同时含有多个RCP插件时导致搜索视图无法打开问题
- 【Andorid X 项目笔记】动态设置ViewPager的Adapter问题(2)
- 打开eclipse 新建工程然后却没有动态web项目的选项
- 项目运行时判断是否第一次打开而进行的跳转以及引导页ViewPager的实现
- 打开VS2003项目时,出现服务器返回信息无效或无法识别!!
- android开发中 如何动态更新TextView的内容?
- 动态计算label和view宽度
- RCP 打开视图的不同实例,并设置不同的值
- android 打开Eclipse之后android项目都报错怎么解决
- Android动态布局,并动态为TextView控件设置drawableLeft、drawableRight等属性添加图标
- 获取屏幕的宽度以及动态设置ImageView的宽度、高度
- ViewPager无限循环+底部小圆点动态滑动
- ios开发日记11 对tableView三种计算动态行高方法的分析