CN101645006B - 一种Eclipse的属性页的动态生成方法及装置 - Google Patents
一种Eclipse的属性页的动态生成方法及装置 Download PDFInfo
- Publication number
- CN101645006B CN101645006B CN2009100182032A CN200910018203A CN101645006B CN 101645006 B CN101645006 B CN 101645006B CN 2009100182032 A CN2009100182032 A CN 2009100182032A CN 200910018203 A CN200910018203 A CN 200910018203A CN 101645006 B CN101645006 B CN 101645006B
- Authority
- CN
- China
- Prior art keywords
- information
- model
- control
- eclipse
- control component
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
一种Eclipse的属性页的动态生成方法及装置,涉及一种Visual Integrator中基于Eclipse的动态属性页技术,包括:一XML解析器,实现XML文档与内部信息的相互翻译;一模型解析器,对构建模型进行解析和验证,形成模型层的内部数据结构;一控件映射装置,通过对模型的解析,模型层获得相应的配置信息,从控件库中找到相对应的控件实体,根据配置信息,创建控件实例;一控件组装装置,将实例化的控件根据配置信息,形成对应的布局信息,将布局信息进行组装在Eclipse的属性页面展示;一控件库,定义有固定的长宽高的控件,提供简单控件和复杂控件。
Description
技术领域
本发明涉及一种Visual Integrator中基于Eclipse的动态属性页技术,具体为一种属性页的动态生成方法及装置。
背景技术
开发Eclipse插件时,经常会使用属性页视图来描述选中对象的详细信息,但Eclipse只提供了最简单的表格式输入界面。
Eclipse本身的属性页视图是非常简单的,没有相应的布局,对用户的输入也没有提供提示帮助和校验的功能。在具体插件产品的实际开发中,往往不能满足用户对输入界面的要求。
Eclipse提供了一个插件运行的平台,方便的插件安装和更新机制,使之逐渐成为各大公司融合自身开发工具的一个平台。
属性页视图是Eclipse插件开发中最常使用的扩展之一,为了进行属性的输入,Eclipse提供了两种实现方式:
■简单实现方式
实现简单,但展示效果很难让人满意。
■Tabbed实现方式
展示效果由开发人员决定,但实现的代价十分高昂,要求开发人员不但要为每个具体的tabbed页提供实现类,还要在plugin.xml中提供引用的声明。
虽然在tabbed页实现在理论上可以共享,但tabbed页一般都代表了多个属性控件的集成,粒度过大,在实际使用过程中一般无法共享。
发明内容
本发明的目的就是针对上述的不足,提供了一种将展示效果和实现难度两方面折中的基于Eclipse的属性页动态生成方法。
一种Eclipse的属性页的动态生成方法,包括如下步骤:
1)XML解析器读取XML的模型文件,并对其进行解析,形成系统内部的数据结构即模型信息;
2)模型解析器将上述读取的模型信息填充到模型层,初始化构件信息,形成构件模型列表;
3)利用Eclipse的插件技术,通过实现IPropertySource方法扩展Eclipse的属性页,Eclipse本身就是支持插件开发,提供各式接口,IPropertySource就是其提供的接口;Eclipse本身就是支持插件开发,提供各式接口,IPropertySource就是其提供扩展属性页的接口,通过实现本步骤来扩展Eclipse的属性页;
4)用户拖拽一个构件至编排视图,构件获得焦点,触发显示该构件的属性页;
5)控件映射装置从模型层中获取构件信息,并将构件信息的控件信息与控件库中的控件一一映射,并实例化构件信息对应控件;
6)控件组装装置遍历构件信息,将构件信息分类放到List中;
7)控件组装模块创建一个Group,将实例化后的控件根据模型信息中的布局信息进行组装装载至Group中,最后一个个Group组装成一个Section,一个个的Section组装成一个Tab,一个个Tab填充到属性页中并展示出来,这时显示的是完整的构件属性页面。
实现上述方法的装置包括:
XML解析器,用于读取XML的模型文件并进行解析形成内部的数据结构即模型信息;
模型解析器,用于将上述读取的模型信息填充到其模型层;
用于通过实现IPropertySource方法扩展Eclipse的属性页的装置;
用于用户从构件模型列表中拖拽一个构件至编排视图使构件获得焦点的装置;
用于控件映射装置从模型层中获取构件信息、将信息的控件信息与控件库中的控件一一映射、实例化构件信息对应控件的装置;
用于控件组装装置遍历构件信息并将信息分类放到List中的装置;
用于控件组装装置创建一个Group、将实例化后的控件根据模型信息中的布局信息进行组装装载至Group中、最后一个个Group组装成一个Section、一个个的Section组装成一个Tab、一个个Tab填充到Eclipse的属性页中并展示出来的装置。本发明提供的属性页的生成方法和装置,其优点为提供多样化的属性页展示,为用户提供更友好,更易用的,提高代码重用率,用户只要配置XML文件即可实现复杂布局的属性页,若是不满意当前布局,修改xml配置文件即可改变布局方式,真正的实现零代码编程:
首先本发明实现了UI控件的共享。
与Tabbed的共享粒度相比,本发明不但提供了小粒度的简单属性生成控件,还提供了粒度可控的复杂属性生成控件。加上为此提供的布局参数,以及属性关联的条件参数。一起提供了一个对用户友好的输入界面。
共享的好处一方面是减少了重复UI代码的编写,一方面也为共享UI提供了更多的精华时间,降低了BUG出现的机率,即使出现了Bug,修改起来也会更快更统一。
其次本发明实现了与原有Eclipse实现方式的兼容。
与原Eclipse的Tabbed属性页相兼容,也提供了将为其加入校验框架的接口,实现了与传统方式的融合。
兼容给开发人员提供了选择,他/她可以选择不做修改继续原有方式,也可以选择做少量修改,为原有Eclipse实现方式提供校验功能。
附图说明
图1是本发明实施例的流程图。
图2是本发明实施例的结构原理图。
具体实施方式
下面以非限定性的实施方式对本发明做进一步解释、说明。
本发明的核心是基于Eclipse实现的属性页动态生成方法和装置,Eclipse提供了一个插件运行的平台,方便的插件安装和更新机制,使之逐渐成为各大公司融合自身开发工具的一个平台。
如图1所示,是一种Eclipse的属性页的动态生成方法,该方法首先开始于步骤101,XML解析器读取XML的模型文件,并对其进行解析,形成系统内部的数据结构即模型信息。
然后进入步骤102,模型解析器将上述读取的模型信息填充到模型层。
再进入步骤103,利用Eclipse的插件技术,通过实现IPropertySource的方法扩展Eclipse的属性页。Eclipse本身就是支持插件开发,提供各式接口,IPropertySource就是其提供扩展属性页的接口,通过实现本步骤来扩展Eclipse的属性页。
然后再开始步骤104和105,用户拖拽一个构件至编排视图,构件获得焦点。
再进入步骤106,控件映射模块从模型层中获取构件信息,并将信息的控件信息与控件库中的控件一一映射,并实例化其对应控件。
然后再进入步骤107,控件组装模块遍历构件信息,将信息分类放到List中。控件组装模块创建一个Group,将实例化后的控件根据模型信息中的布局信息进行组装装载至Group中,最后一个个Group组装成一个Section,一个个的Section组装成一个Tab,一个个Tab填充到Eclipse的属性页中并展示出来。
由于整个过程是程序根据XML配置文件自行判断布局并自行对控件进行组装形成完整的Eclipse的属性页面,所以随时可以对XML配置文件进行修改,形成新布局方式的属性页面。
图2是一种属性页的动态生成装置,包括一XML解析器,实现XML文档与内部信息的相互翻译;
一模型解析器,对构件模型进行解析和验证,形成模型层的内部数据结构;
一控件映射装置,通过对模型的解析,模型层获得相应的配置信息,从控件库中找到相对应的控件实体,根据配置信息,创建控件实例;
一控件组装装置,将实例化的控件根据配置信息,形成对应的模型信息中的布局信息,将布局信息进行组装在Eclipse的属性页面展示;
一控件库,定义有固定的长宽高的控件,提供简单控件和复杂控件。
Claims (2)
1.一种Eclipse的属性页的动态生成方法,其特征在于包括如下步骤:
1)XML解析器读取XML的模型文件并进行解析,形成内部的数据结构即模型信息;
2)模型解析器将上述读取的模型信息填充到模型层;
3)通过实现IPropertySource方法扩展Eclipse的属性页;
4)用户从构件模型列表中拖拽一个构件至编排视图,构件获得焦点;
5)控件映射装置从模型层中获取构件信息,并将信息的控件信息与控件库中的控件一一映射,并实例化构件信息对应控件;
6)控件组装装置遍历构件信息,将信息分类放到List中;
7)控件组装装置创建一个Group,将实例化后的控件根据模型信息中的布局信息进行组装装载至Group中,最后一个个Group组装成一个Section,一个个的Section组装成一个Tab,一个个Tab填充到Eclipse的属性页中并展示出来。
2.实现权利要求1所述的方法的装置,其特征在于包括:
XML解析器,用于读取XML的模型文件并进行解析形成内部的数据结构即模型信息;
模型解析器,用于将上述读取的模型信息填充到其模型层;
用于通过实现IPropertySource方法扩展Eclipse的属性页的装置;
用于用户从构件模型列表中拖拽一个构件至编排视图使构件获得焦点的装置;
用于控件映射装置从模型层中获取构件信息、将信息的控件信息与控件库中的控件一一映射、实例化构件信息对应控件的装置;
用于控件组装装置遍历构件信息并将信息分类放到List中的装置;
用于控件组装装置创建一个Group、将实例化后的控件根据模型信息中的布局信息进行组装装载至Group中、最后一个个Group组装成一个Section、一个个的Section组装成一个Tab、一个个Tab填充到Eclipse的属性页中并展示出来的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100182032A CN101645006B (zh) | 2009-08-25 | 2009-08-25 | 一种Eclipse的属性页的动态生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100182032A CN101645006B (zh) | 2009-08-25 | 2009-08-25 | 一种Eclipse的属性页的动态生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101645006A CN101645006A (zh) | 2010-02-10 |
CN101645006B true CN101645006B (zh) | 2012-01-25 |
Family
ID=41656903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100182032A Active CN101645006B (zh) | 2009-08-25 | 2009-08-25 | 一种Eclipse的属性页的动态生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101645006B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136776A (zh) * | 2011-11-28 | 2013-06-05 | 航天信息股份有限公司 | 一种发票票面动态配置方法 |
CN103164197A (zh) * | 2011-12-14 | 2013-06-19 | 中兴通讯股份有限公司 | Ui布局自适应方法、移动设备以及布局生成设备 |
US9524342B2 (en) * | 2011-12-21 | 2016-12-20 | The Boeing Company | Panoptic visualization document navigation |
JP6134514B2 (ja) * | 2012-03-23 | 2017-05-24 | ザ・ボーイング・カンパニーThe Boeing Company | パノラマ的な視覚化ドキュメントデータベース管理 |
CN103176802B (zh) * | 2013-03-29 | 2016-05-11 | 厦门亿联网络技术股份有限公司 | 通过控件池实现系统的用户界面ui与控件库分离的方法 |
CN103593188B (zh) * | 2013-11-14 | 2017-01-18 | 中国电子科技集团公司第四十一研究所 | 一种用于仪器所见即所得菜单的管理系统及管理方法 |
CN107402775A (zh) * | 2016-05-19 | 2017-11-28 | 百度在线网络技术(北京)有限公司 | 网页的生成方法、装置和系统 |
CN106919383A (zh) * | 2017-01-26 | 2017-07-04 | 武汉奇米网络科技有限公司 | 一种Android商品列表的展示方法及系统 |
CN108021367B (zh) * | 2017-12-15 | 2020-11-17 | 广州赛意信息科技股份有限公司 | 一种基于元数据架构的ui开发系统及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783090A (zh) * | 2004-11-30 | 2006-06-07 | 国际商业机器公司 | 用于对象模型与xml间转换的可共享双向方法和系统 |
CN101078987A (zh) * | 2006-05-24 | 2007-11-28 | 国际商业机器公司 | 用于针对万维网应用创建定制的包装的方法和系统 |
US20090113392A1 (en) * | 2007-10-30 | 2009-04-30 | Wijenayake Sudarsha D | Detecting plug-in and fragment issues with software products |
-
2009
- 2009-08-25 CN CN2009100182032A patent/CN101645006B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783090A (zh) * | 2004-11-30 | 2006-06-07 | 国际商业机器公司 | 用于对象模型与xml间转换的可共享双向方法和系统 |
CN101078987A (zh) * | 2006-05-24 | 2007-11-28 | 国际商业机器公司 | 用于针对万维网应用创建定制的包装的方法和系统 |
US20090113392A1 (en) * | 2007-10-30 | 2009-04-30 | Wijenayake Sudarsha D | Detecting plug-in and fragment issues with software products |
Also Published As
Publication number | Publication date |
---|---|
CN101645006A (zh) | 2010-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101645006B (zh) | 一种Eclipse的属性页的动态生成方法及装置 | |
Heitkötter et al. | Cross-platform model-driven development of mobile applications with md2 | |
Gérard et al. | 19 Papyrus: A UML2 tool for domain-specific language modeling | |
Linaje et al. | Engineering rich internet application user interfaces over legacy web models | |
US9021419B2 (en) | System and method for supporting intelligent design pattern automation | |
Nassar et al. | Rule-based repair of EMF models: An automated interactive approach | |
CN104317587A (zh) | 面向安卓移动设备的程序自动生成方法 | |
Heitkötter et al. | Extending a model-driven cross-platform development approach for business apps | |
JP2006510133A (ja) | 関連出願と相互参照するグラフィック利用者インターフェースのためのモデル化システム | |
CN102968306A (zh) | 一种基于数据模型驱动的代码自动生成方法和系统 | |
CN109101304A (zh) | 界面的自动生成方法、装置、电子设备和计算机可读介质 | |
Daniel et al. | Model-driven software development | |
Miñón et al. | A graphical tool to create user interface models for ubiquitous interaction satisfying accessibility requirements | |
de Lange et al. | Collaborative wireframing for model-driven web engineering | |
Nestler et al. | The ServFace builder-A WYSIWYG approach for building service-based applications | |
Sabraoui et al. | A MDA-based model-driven approach to generate GUI for mobile applications | |
Julius et al. | A meta-model based environment for GRAFCET specifications | |
Simonsen | PetriCode: a tool for template-based code generation from CPN models | |
Johannes et al. | Abstracting complex languages through transformation and composition | |
Dinkelbach et al. | Template‐based generation of programming language specific code for smart grid modelling compliant with CIM and CGMES | |
Channonthawat et al. | Model Driven Development of Android Application Prototypes from Windows Navigation Diagrams | |
Agostinho et al. | MDA-based interoperability establishment using language independent information models | |
US9047325B2 (en) | Modularizing complex XML data for generation and extraction | |
Akehurst et al. | Compiling UML State Diagrams into VHDL: An Experiment in Using Model Driven Development. | |
Esbai et al. | Model-driven transformation for gwt with approach by modeling: From uml model to mvp web applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |