`
redheart_2006
  • 浏览: 22413 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类

Tabbed Property

阅读更多

引用:

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-动态组件部分

    "Tabbed Property Section-动态组件部分"是一个关于软件开发中用户界面设计的专题,主要涉及如何创建一个具有分页属性的组件区域。在这个系统中,开发者可以动态地添加、删除或修改各个属性页,以适应不同场景的需求...

    MFC属性页 标签式属性页 向导式属性页

    在MFC中,属性页分为两种主要类型:标签式属性页(Tabbed Property Pages)和向导式属性页(Wizard-style Property Pages)。 标签式属性页是MFC中常见的一种形式,它的外观类似于一个带有多个标签的记事本,每个...

    Visual C++ 编程资源大全(英文源码 ATL)

    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...

    Windows Presentation Foundation 4.5 Cookbook的源码

    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...

    DevExpress VCL 13.2.5 D7-DXE6 FullSource

    •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...

    struts2标签库例子

    高级标签包括 datagrid、tree 和 tabbed pane 等。这些标签用来生成复杂的 HTML 元素。 Struts2 的标签库提供了一个强大的工具,用于简化 Web 应用程序的开发过程。这些标签可以分为通用标签和 UI 标签,用于控制...

    ComponentOne OLAP for Silverlight2012 v3 1/3

    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 ...

    ComponentOne OLAP for Silverlight2012 v3 2/3

    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 ...

    ComponentOne OLAP for Silverlight2012 v3 3/3

    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 ...

    ComponentOne OLAP for WinForms 2012 v3

    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 ...

    oracle developer指南

    3. **标签画布(Tabbed):** 将窗口内容分割成多个页面,用户可以通过点击标签页来切换不同的内容。 4. **工具条(Toolbar):** 包含工具图标的小型画布,通常位于窗口的顶部或左侧。 #### 6.1.3 创建与填充画布 ...

    Visual C++ 编程资源大全(英文源码 表单)

    (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,...

    struts2标签详细讲解

    3. `<s:property>`:获取属性值,可以是Action属性或OGNL表达式的结果。 4. `<s:push>`:将值推入值栈,便于其他标签访问。 N. 功能按钮: 1. `<s:radio>`:创建单选按钮,通常与列表配合使用。 2. `<s:reset>`:...

    soapui的文档非常适用于程序的后台调试

    Tabbed Desktop(标签式桌面)** - **特点**:soapUI采用了标签式界面设计,可以方便用户同时打开多个测试项目,并轻松在它们之间切换。 **2. License Management(许可证管理)** - **功能**:该模块用于...

    不带属性表的选项卡式对话框

    提供的压缩包文件中,`Tabbed-Dialog-without-Property-Sheets.pdf`可能是关于该主题的文档,它可能包含更详细步骤或示例代码。`tabsetdlg_src.zip`和`tabsetdlg_demo.zip`可能是源代码和演示项目的压缩包,可以直接...

    Diskeeper 2008 v12.0.759.0

    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 ...

Global site tag (gtag.js) - Google Analytics