引用:
http://www.blogjava.net/pandawang/archive/2008/05/15/70163.html
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上创建。
分享到:
相关推荐
"Tabbed Property Section-动态组件部分"是一个关于软件开发中用户界面设计的专题,主要涉及如何创建一个具有分页属性的组件区域。在这个系统中,开发者可以动态地添加、删除或修改各个属性页,以适应不同场景的需求...
在MFC中,属性页分为两种主要类型:标签式属性页(Tabbed Property Pages)和向导式属性页(Wizard-style Property Pages)。 标签式属性页是MFC中常见的一种形式,它的外观类似于一个带有多个标签的记事本,每个...
Toolbar.zip An article on extending the tool bar control using the Window Template Library(64KB)<END><br>31,propsheetddx.zip Demonstrates how to use DDX/DDV and tabbed property sheets with WTL...
Creating a tabbed user interface 100 Implementing drag-and-drop 103 Chapter 4: Using Standard Controls 109 Introduction 109 Working with text 110 Using content controls 114 Displaying images 120...
•B255061 - Layout control colors space between tabbed group tabs rather than keeping it transparent •Q581184 - TcxPageControl - Clicking tab buttons on a page created using a drag-and-dock operation...
高级标签包括 datagrid、tree 和 tabbed pane 等。这些标签用来生成复杂的 HTML 元素。 Struts2 的标签库提供了一个强大的工具,用于简化 Web 应用程序的开发过程。这些标签可以分为通用标签和 UI 标签,用于控制...
Provides the raw data for the analysis using a DataSource property as well as a drag-and-drop interface for defining custom views of the data. The panel is visually similar to the Microsoft Excel ...
Provides the raw data for the analysis using a DataSource property as well as a drag-and-drop interface for defining custom views of the data. The panel is visually similar to the Microsoft Excel ...
Provides the raw data for the analysis using a DataSource property as well as a drag-and-drop interface for defining custom views of the data. The panel is visually similar to the Microsoft Excel ...
Provides the raw data for the analysis using a DataSource property as well as a drag-and-drop interface for defining custom views of the data. The panel is visually similar to the Microsoft Excel ...
3. **标签画布(Tabbed):** 将窗口内容分割成多个页面,用户可以通过点击标签页来切换不同的内容。 4. **工具条(Toolbar):** 包含工具图标的小型画布,通常位于窗口的顶部或左侧。 #### 6.1.3 创建与填充画布 ...
(16KB)<END><br>87,undo.zip Easily add Undo/Redo to your CDocument/CView Based Applciation(2KB)<END><br>88,PropertyView.zip A "Property Sheet"-like view class for MFC (108KB)<END><br>89,...
3. `<s:property>`:获取属性值,可以是Action属性或OGNL表达式的结果。 4. `<s:push>`:将值推入值栈,便于其他标签访问。 N. 功能按钮: 1. `<s:radio>`:创建单选按钮,通常与列表配合使用。 2. `<s:reset>`:...
Tabbed Desktop(标签式桌面)** - **特点**:soapUI采用了标签式界面设计,可以方便用户同时打开多个测试项目,并轻松在它们之间切换。 **2. License Management(许可证管理)** - **功能**:该模块用于...
提供的压缩包文件中,`Tabbed-Dialog-without-Property-Sheets.pdf`可能是关于该主题的文档,它可能包含更详细步骤或示例代码。`tabsetdlg_src.zip`和`tabsetdlg_demo.zip`可能是源代码和演示项目的压缩包,可以直接...
in the Quick Launch pane, and a group of tabbed panes show you a wide variety of information. Diskeeper shows you the condition of your disks, and provides suggestions for improving or maintaining ...