Eclipse选项卡式的属性视图(The Eclipse Tabbed Properties View)

Eclipse工作台提供了一个性能视图用于查看(和/或编辑)选定项目的属性。在本文中,您将学习如何使用选项卡式的属性视图创建一个性能增强的用户界面视图。

1.引言

Eclipse工作台提供了一个属性视图,即在文章中详细描述你的性能控制。默认的用户界面是属性和值对表,并且值使用一个标准的对话框单元格编辑器。

工作台使用扩展(extensions)为属性视图定义了一个自定义的用户界面。利用这个扩展,Properties视图已创建。

属性视图允许您创建任何用户界面的属性。此外,您可以为元素创建用户接口而不用实现IPropertySource。事实上,属性视图可以被扩展到查看在工作台中被选择的任何数据。

2.实例解析

依赖 org.eclipse.ui.views.properties.tabbed 插件

需要实现三个扩展点:

org.eclipse.ui.views.properties.tabbed.PropertyContributor

Tabbed View 由一个 PropertyContributor 构成,其中包含多个 PropertyTab。

<extension point="org.eclipse.ui.views.properties.tabbed.propertyContributor">
      <propertyContributor contributorId="mview.views.SampleView">
         <propertyCategory category="sample"/>
      </propertyContributor>
</extension>

org.eclipse.ui.views.properties.tabbed.PropertyTabs

每个 PropertyTab 由多个 PropertySection 构成。

<extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
      <propertyTabs contributorId="mview.views.SampleView">
         <propertyTab
            category="sample"
               id="mview.ButtonTab"
            label="Button"/>
         <propertyTab
            afterTab="mview.ButtonTab"
            category="sample"
               id="mview.AdvancedTab"
            label="Advanced"/>
      </propertyTabs>
</extension>

org.eclipse.ui.views.properties.tabbed.PropertySections

每个 PropertySection 实现为一个或一组 widget,对应着一个 property。

<extension point="org.eclipse.ui.views.properties.tabbed.propertySections">
      <propertySections contributorId="mview.views.SampleView">
         <propertySection
               class="mview.views.LabelSection"
               id="mview.LabelSection"
               tab="mview.ButtonTab">
            <input type="mview.views.ButtonElement"/>
         </propertySection>
         <propertySection
               afterSection="mview.LabelSection"
               class="mview.views.SizeSection"
               id="mview.SizeSection"
               tab="mview.ButtonTab">
            <input type="mview.views.ButtonElement"/>
         </propertySection>
         <propertySection
               afterSection="mview.SizeSection"
               class="mview.views.FontSection"
               id="mview.FontSection"
               tab="mview.ButtonTab">
            <input type="mview.views.ButtonElement"/>
         </propertySection>
         <propertySection
               class="org.eclipse.ui.views.properties.tabbed.AdvancedPropertySection"
               id="mview.AdvancedSection"
               tab="mview.AdvancedTab">
            <input type="mview.views.ButtonElement"/>
         </propertySection>
      </propertySections>
</extension>

Tabbed Property是eclipse3.2中新加入一个view,可以使属性编辑器的功能近乎无限的扩大。这里说明一些Tabbed Property的使用方法。Tabbed Property中分成三个部分,Contributer,Tabs,Sections,一个Contributor包含若干个Tabs,一个Tabs又可以包含若干个sections。下面我们来分别进行描述。

1.Contributor 这需要扩展org.eclipse.ui.views.properties.tabbed.PropertyContributor扩展点,定义时,最重要的是定义contributId,这个id必须是全局唯一的,这样在加载属性页时,才能找到这个我们定义的属性页,一般地,我们都将对应于这个属性页的workbenchpart的id作为本contributor的id,这样我们在代码中可以不硬编码本id字符串,而使用getSite().getId()就可以得到这个id了(当然,这样定义id不是必须的)。一个property
view可以被多个workbench part共享,但 一个workbench part只能有一个property view,这个workbench part需要实现ITabbedPropertySheetPageContributor 接口,这个接口只有一个方法,要求返回本part对应的tabbed property Contributor id,一般只要return getSite().getId();

contributor有如下几个attribute:

1)typeMapper,这个类需要实现org.eclipse.ui.views.properties.tabbed.ITypeMapper,主要是实现类型的映射,因为我们选择的元素并不一定是实现IPropertySource的元素(即能够给property view提供内容的元素),比如在GEF中,我们选择的finger实际上是选择了对应的EditPart,而实际上实现了IPropertySource一般的是model部分的元素,所以这时候我们要将Editpart映射到对应的model元素。

2)labelProvider,需要一个实现org.eclipse.jface.viewers.ILabelProvider的类,主要是在各个tabs的最上面显示文字和图片。

3)propertyCategory,用于聚合多个tabs,注意至少要定义一个category,来聚合tabs,否则,可能会显示property失败。

2.Tabs,这个需要扩展org.eclipse.ui.views.properties.tabbed.propertyTabs扩展点,其中contributorId就是与之相关联的Contributor的id,然后我们可以定义多个tab,这些tab的属性如下:

1)label,用于显示在property view的tab bar上的字

2)category,填入的就是在Contributor扩展点中定义的那些category,用于聚合tabs

3)id,本tab的唯一标识

4)afterTab,用于tab之间的排序,如果这是第一个tab,则没有afterTab,afterTab指的是在本tab之前的那个tab,并且afterTab描述的是在同一个category中的tabs,不同category之间的顺序是按照在contributor中定义category的顺序来定义的。

5)indented,如果为ture,则各个tabs是有缩进的

6)image,本tab的图片

3.section ,需要扩展 org.eclipse.ui.views.properties.tabbed.PropertySections扩展点,它的contributionId就是本section所在的Contribution的id,针对每个tab,我们可以定义多个section,每个section的attribut描述如下:

1)id,本secation的唯一标识

2)tab,本section所属tab的标识

3)class,实现了org.eclipse.ui.views.properties.tabbed.AbstractPropertySection抽象类的类,用于描述这个section的控件和布局。

4)aftersection和上面的aftertab差不多,描述的是同一个tab中的section的顺序,注意afterserction描述的是本section之前的section的id

5)filter:一个实现org.eclipse.jface.viewers.IFilter接口的过滤器,对选中元素进行过滤。

6)enableFor:一个用于只是选择数目的值,必须要符合这个数目才能使能这个section。如果不符合,则这个section就被过滤了,如果省略本值,则section的使能器就不会工作了。这是一个自然数,比如,当enableFor=1时,仅仅只有一个元素被选择的时候,本section才会被使能。

some notes:

上面说过实现ITabbedPropertySheetPageContributor接口的workbench part除了要实现getContributeId方法外,还需要重载getAdapter方法,因为eclipse的默认加载的property veiw时原来的那个view,为了使tabbed property view能够加载,我们就需要重载getAdapter方法,返回一个TabbedPropertySheetPage对象。

在实现section class的时候需要注意,createcontrol时首先应该先创建一个composite,一般是 Composite composite = getWidgetFactory().createFlatFormComposite(parent); 然后各个控件在这个composite上创建。

Eclipse选项卡式的属性视图(The Eclipse Tabbed Properties View),布布扣,bubuko.com

时间: 2024-10-11 14:01:55

Eclipse选项卡式的属性视图(The Eclipse Tabbed Properties View)的相关文章

eclipse自动切换到dubug视图,设置eclipse调试自动跳转

eclipse自动切换到dubug视图,即怎么设置eclipse调试自动跳转: 刚开始使用eclipse进行调试时,会自动跳转到debug视图.后来不小心关闭了,就不会自动切换到debug视图. 现把设置eclipse自动切换到dubug视图的方法告诉亲们: 设置Window->Preferences->Run/Debug->Perspectives将Open the associated when launching选择为Always就可以了.

Eclipse恢复初始界面&amp;打开视图

恢复初始界面: 单击菜单栏的windows主菜单,在子菜单里选择 Reset Perspective 会弹出各对话框 ,点 ok就可以了 打开视图:Windows->Show View 其中Others里边可以直接搜索添加视图 Eclipse恢复初始界面&打开视图

Eclipse更改@Author的属性以及注释模板的一些设置

一.修改Eclipse中@Author注释的值 在Eclipse的目录下,找到eclipse.ini,打开并在最后加上值-Dsuer.name=用户名 二.编辑自己的注释模板 1.编辑类注释的模板 通过菜单 Window->Preference 打开参数设置面板,然后选择:Java -> Code Style -> Code Templates ,在右侧选择Comments,将其中的Types项,然后选右边的"Edit",进入编辑模式,然后输入如下内容 /** * @

eclipse如何修改dynamic web module version;——eclipse操作备忘

1.eclipse如何修改dynamic web module version 一.修改工程属性: 右键eclipse的工程,选择属性,再选择Project Facets里面中选择Dynamic Web Module ,将3.0修改为2.5,可能会提示如下信息:Cannot change version of project facet Dynamic Web Module to 2.5 这样表示修改不了,然后采用第二种方法. 二.修改配置文件:找到工程项目的硬盘目录,打开项目下的 .setti

java eclipse 作业代写、代做eclipse实验

java eclipse 作业代写.代做eclipse实验<java程序设计>课程实验报告 实验四 继承与多态一.实验目的及要求1.了解如何使用类及其成员的修饰符,掌握方法的继承.重载和覆盖.2.掌握类的继承关系和派生方法.3.掌握多态的概念与使用. 4.掌握接口的定义与使用.二.实验内容(一)类的继承性练习1.进一步理解继承的含义 新类可从现有的类中产生,并保留现有类的成员变量和方法并可根据需要对它们加以修改.新类还可添加新的变量和方法.这种现象就称为类的继承. 当建立一个新类时,不必写出全

创建一个Eclipse项目【Create a Project with Eclipse】

最近一个问题很困扰我,今天则得到了答案,也意味着我该选择了. 不知道大家有没有遇到过这样的情况,我是上年刚毕业,大四时进行过java培训,12年9月-13年4月,在这之前已经自学过java.7月份时进入一家公司工作,今年3月份辞职,4月份找到工作,来上班了.一开始就不太喜欢公司氛围,前台,hr,态度什么的都不太好,工作环境也极像客服部,整天电话不断,讨论声不断,第一个星期真是煎熬,去了两三天之后有辞职的想法,但是后面想想还是算了,公司待遇还可以. 但是进入到公司后leader让学PHP,学PHP

Eclipse安装反编译工具JadClipse for Eclipse手把手教程

今天闲来无事准备弄弄eclipse的反编译工具JadClipse for Eclipse,百度经验里也说的比较清楚只是两个文件下载地址没有明确 net.sf.jadclipse_3.3.0.jar   下载地址http://sourceforge.net/projects/jadclipse/files/ jad.exe 下载地址http://varaneckas.com/jad/ 这里需要选择一下系统版本,这里就不赘述了,so easy. 接下来就是eclipse的设置了 废话不多说 好吧,再

解决Eclipse异常关闭后重启报 org.eclipse.swt.SWTException: Invalid thread access 的问题

. . . . . 很久没有写博客了,最近实在是太忙,一直想写点干货,但是一直没静下心来学习. 今天又在加班忙碌之中,结果谁知道越忙碌越出问题.先是 weblogic 没有正常启动,凭经验第一反应就是7001端口被其它程序占用了,然后通过命令查看之后,发现果然是被占用了,占用端口的竟然是Eclipse,查找占用端口的方式请移步至博主的另一篇文章<[windows]查询占用端口的程序——记一次解决webloigc启动失败的过程>. Eclipse之前是不占用7011端口的,这次占用估计可能是启动

[转]迄今为止最优的Eclipse运行性能调优 ,含eclipse.ini

最近,Eclipse(Eclipse-JEE3.5)运行十分缓慢(可能插件安装过多),因此,得到了个机会调优一下,以便提高工作效率 下图是未经任何调整eclipse的gc情况(使用jvisualvm命令,安装visual gc插件) 在终端输入:jvisualvm运行后,工具->插件->visual gc,安装. 启动eclipse后,在终端运行: ps -ef | grep eclipse,然后在jvisualvm的应用程序一栏选择eclipse pid的程序双击,即可到visual gc上