RCP中showView方法的说明 .

当我们需要显示一个视图时,一般是通过调用IWorkbenchWindow中的getActivePage().showView方法, 但我们有一个问题,就是一般在透视图中,可能由多个部分构成,那么,这个showView到底是要显示在哪里呢?所以我们需要先解决这个问题.

要解决在哪里进行显示,需要在透视图中进行设置,用到的是IFolderLayout中的addPlaceholder方法,示例代码如下:

IFolderLayout folder =layout.createFolder("messages", IPageLayout.BOTTOM, 0.5f,NavigationView.ID);

folder.addPlaceholder(View.ID+ ":*");

这样,当我们调用showView时,就会按这指定的View.ID,将其显示在folder在整个透视图中所占的位置了.

如果我们想在同一个地方允许多个不同的视图进行停靠的话,则继续通过addPlaceholder方法进行设置就行了,示例代码如下:

IFolderLayout folder =layout.createFolder("messages", IPageLayout.BOTTOM, 0.5f,NavigationView.ID);

folder.addPlaceholder(View.ID+ ":*");

folder.addView(View.ID);

folder.addPlaceholder(ViewPart1.ID+ ":*");

Perspective中addPlaceholder的作用表示预留一个视图空间,该方法添加的视图不会显示在界面上,但是当通过操作打开该设定的

视图时,将会在该设定的位置打开,而不是随意打开该视图。简单的说就是为指定的视图预留

一个空间,一旦视图打开就在该空间显示。

只是占个位,以便于同样的视图ID的查找用。

另外,如果允许多个相同的视图进行停靠的话,则需要将对应的视图中的allowMultiple设置为true即可.

转自:http://blog.csdn.net/qiuhong101/article/details/7427835

时间: 2024-10-17 21:13:32

RCP中showView方法的说明 .的相关文章

Rcp 中添加eclipse中的菜单栏

自己创建的Eclipse rcp 插件中需要添加像Eclipse中的菜单栏和工具栏,实现该功能可以通过两种方式:1种是通过扩展点,2种是通过在ApplicationActionBarAdvisor 类中编写代码实现. 1.通过扩展点实现:org.eclipse.ui.menus 用于扩展菜单栏,该例子实现eclipse中的window菜单栏中的部分Action ViewsShortlistContributionItem 源码: package com.workflow.menu; import

Eclipse RCP 中创建自定义首选项,并能读取首选项中的值

Eclipse RCP的插件中若想自己定义首选项需要扩展扩展点: org.eclipse.core.runtime.preferences //该扩展点用于初始化首选项中的值 org.eclipse.ui.preferencePages//该扩展点用于定义自己的首选项页面 plugin.xml中内容如: Database Preferences挂在WorkFlowBase下,需要在category中填写workFlowBase的ID WorkFlowPreferenceInitializer类,

Eclipse RCP中超长任务单线程,异步线程处理

转自:http://www.blogjava.net/mydearvivian/articles/246028.html在RCP程序中,常碰到某个线程执行时间比较很长的情况,若处理不好,用户体验度是很糟糕的,如用户点了一个功能按钮后,进入功能执行,发现程序长时间没有任何响应,无疑这种情况下,用户是无法忍受的.    在这种情况下我们可以通过提供进度条对话框来改善用户体验度:     1)单步执行            程序执行期间不允许用户终止,贴下程序代码段                 P

SSH配置环境都正常,但是每次执行到Action中的方法时就中断了,而且不报任何错误

SSH配置环境都正常,但是每次执行到Action中的方法时就不执行课,而且不报任何错误.Action中的方法封装的是业务层,业务层封装DAO层,检查了一天才发现错误在哪. 在applicationContext.xml中报了一个异常,如: Multiple annotations found at this line: - Exception 'com/dao/StudentDAO : Unsupported major.minor version 51.0' - Exception 'com/

Java中的方法重写 与 final关键字

Java中的方法重写 与 final关键字 以下程序是否存在错误? class Base { private final void method() { System.out.println("In Base..."); } } class Sub extends Base { public void method() { System.out.println("In Sub..."); } } 答案 正确的. 使用final关键字可以声明类.成员变量和成员方法,一

jsp 中声明方法的使用

1.在"<%!"和"%>"之间声明方法,该方法在整个JSP页面有效,但是该方法内定义的变量只在该方法内有效.这些方法将在Java程序片中被调用,当方法被调用时,方法内定义的变量被分配内存,调用完毕即可释放内存.当多个客户同时请求一个JSP页面时,他们可能使用方法操作成员变量,对这种情况应给予重视. 解决办法:通过synchronized方法操作一个成员变量来实现一个计数器 <%@ page contentType="text/html;c

JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

三个案例带你看懂LayoutInflater中inflate方法两个参数和三个参数的区别

版权声明:本文为sang原创文章,转载请注明出处. 目录(?)[+] 关于inflate参数问题,我想很多人多多少少都了解一点,网上也有很多关于这方面介绍的文章,但是枯燥的理论或者翻译让很多小伙伴看完之后还是一脸懵逼,so,我今天想通过三个案例来让小伙伴彻底的搞清楚这个东东.本篇博客我们不讲源码,只看使用.源码的解读会在下一篇博文中带来. inflate方法从大范围来看,分两种,三个参数的构造方法和两个参数的构造方法.在这两类中又有细分,OK,那我们就把各种情况都来演示一遍. 1.三个参数的in

ThinkPHP中create()方法自动验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有数据即返回值为fals