CN101410798B - 用于生成应用数据编辑器的方法和系统 - Google Patents
用于生成应用数据编辑器的方法和系统 Download PDFInfo
- Publication number
- CN101410798B CN101410798B CN2007800108885A CN200780010888A CN101410798B CN 101410798 B CN101410798 B CN 101410798B CN 2007800108885 A CN2007800108885 A CN 2007800108885A CN 200780010888 A CN200780010888 A CN 200780010888A CN 101410798 B CN101410798 B CN 101410798B
- Authority
- CN
- China
- Prior art keywords
- class
- current
- page
- current type
- attribute
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/4492—Inheritance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
一种用于生成将通过计算机的图形用户界面被执行的编辑器的方法、计算机程序和系统,其中,所述编辑器用于编辑应用的永久数据,所述永久数据使用定义类的层次组织、其属性和类之间的关系的建模语言在数据对象模型中被描述和存储,所述方法包括以下步骤:检索根类,以及从该根类开始,针对每个类创建用于创建该类的实例的页面。当前类的每个页面包括:用于编辑该类的属性的编辑区域;表区域,其用于当该类的所有实例将被创建时列出它们;以及超链接区域,其用于列出指向对应于与所述当前类有关系的目标类的其它页面的指针。通过使用所述超链接区域指针在页面中导航,所述编辑器的用户将能够实例化所述模型的所有类。
Description
技术领域
本发明一般涉及应用的用户界面的开发;更特别地,本发明涉及基于应用数据的对象模型创建的形式编辑器的生成器。
背景技术
业务应用的开发周期的一部分——编辑器的生成将把允许所述应用的数据的收集的用户界面(UI)提供给终端用户。所述UI代码为了该代码的容易演进和维护的目的而使用面向对象技术来开发。
存在对于便利于从所述应用的数据模型开始的这些编辑器的生成的需求。
便利于面向对象软件工程的许多工具存在。例如统一建模语言(UML)的方法学提供了一种用于可视化和管理开发产物的图形化语言。尽管这些方法学提供用于为开发者生成代码的工具,但其一般是不包含所有用户应用和编辑功能的细粒度代码。美国专利USP5987247提供一种用于交互地生成面向对象框架的解决方案,其中,所述框架包括所述框架的树型视图、对象的图形视图、方法的方法视图以及用于修改所述框架、对象和方法的编辑视图。运行时对象可以被自动生成,但开发者不具有这样的可能:经由根据例如所生成代码将被执行于其上的目标操作系统的图形功能而引入编辑属性的特征来定制该代码生成。通过使用该解决方案,一旦所述对象被创建,则每个编辑器代码为了定制化而需要被修改。
Eclipse建模框架(EMF)是一种用于基于结构化数据模型建立工具和其它应用的建模框架和代码生成工具。根据用XMI(XML元数据互换)格式描述的模型规范,EMF提供这样的工具和运行时支持,所述工具和运行时支持产生一组用于模型的Java类、一组使能对模型的查看和基于命令的编辑的适配器类、以及基本编辑器。所述编辑器可以经由引入所述编辑属性的一些特征而被定制,然而,所述编辑器是基本的和一般性的。其表示一种树,并且列出该树的每个节点的属性。使用EMF生成的编辑器由此可以用于开发和测试目的,但不可用于需要覆盖所述数据模型下的更详细数据更新的、在实际业务环境中的执行。
对象、视图和交互设计(OVID)是一种可以被翻译成代码设计的软件设计方法。其开始于用UML编写的应用的永久数据的对象模型,以及导致用于所述编辑器的代码的生成。所述编辑器界面可以在定义阶段期间经由引入编辑属性的一些特征来定制。然而,通过使用OVID,开发者不得不修改模型,以及经由输入目标用户界面的特征来改写该模型。这是侵入性的(intrusive),并且迫使建模者在UML模型中定义UI规范以产生编辑器。建模者不得不产生与将用于编辑器的执行的目标一样多的模型。
由此存在对于这样的解决方案的需求,所述解决方案用于以独立于初始数据模型的方式生成应用数据的编辑器并且具有适于高效数据更新的最终编辑器。
发明内容
因此,本发明的目的是提供一种用于生成开始于数据模型并且适用于执行环境中的数据编辑器的方法。
根据权利要求1到8,通过一种用于生成将通过计算机的图形用户界面被执行的编辑器的方法、计算机程序和系统来达到所述目的,其中,所述编辑器用于编辑应用的永久数据,所述永久数据使用定义类的层次组织、其属性和类之间的关系的建模语言在数据对象模型中被描述和存储,所述方法包括以下步骤:检索根类,以及从该根类开始,针对每个类创建用于创建和更新该类的实例的页面。当前类的每个页面包括:编辑区域,其用于编辑该类的属性;表区域,其当该类的所有实例将被创建时列出它们;以及超链接区域,其用于列出指向对应于与当前类有关系的目标类的其它页面的指针。
通过使用所述超链接区域指针在页面中导航,所述编辑器的用户将能够实例化所述模型的所有类。在所述编辑器的一个实施例中,指向所述模型的其它类的页面的标签被添加到屏幕的较低行中。在其它实施例中,为属于同一抽象页面的所有类创建唯一的页面,所述编辑区域包含按照当前页面的不同祖先分组的属性。在另一实施例中,当前页的祖先在元数据模型中被找到,以及在所述编辑区域中显示了用于编辑按照当前类的祖先分组的属性的字段。
本发明的解决方案的主要优点是在没有对初始数据模型的任何修改的情况下生成编辑器。所述编辑器的用户界面在编辑器生成阶段期间可以在不需要对数据模型的任何改变的情况下被定制。结果是,模型设计者不必要被卷入编辑器生成的阶段,所述阶段是由应用开发组中的不同开发者或测试者负责的。
所述编辑器的用户界面的定制在编辑器代码生成期间经由向开发者提供界面来完成,其中,所述界面在优选实施例中是对应于所述生成器中用于修改页面建立代码的异常分支(hook)的图形用户界面。这避免了像现有技术的解决方案那样直接修改以前生成的代码,其中,所述直接修改以前生成的代码是更麻烦的操作。
由本发明的方法生成的编辑器在一组页面中覆盖了应用的完整数据模型的所有部件。在优选实施例中,所生成的多页面编辑器(每个对象一个页面)开始于显示纵览页面以便向终端用户给予所编辑的根(或主、中心、...)对象的完整景象。在一个页面中,用户可以更新给定类以及类层次中较上的类的、在所述编辑区域中可编辑的类属性。关系实例在所述表区域中列出,以及用户可以使用所述超链接区域指向关系实例的目标类。
通过使用由本发明的方法生成的编辑器,页面的数量可选地经由分组属于同一抽象类的类页面而被减少。
附图说明
图1示出了用于构建和使用由本发明根据优选实施例产生的应用编辑器的环境;
图2示出了所述生成器和所生成的编辑器的高层部件;
图3示出了用优选实施例的方法实现的所生成应用编辑器的页面的布局细节和组成(300);
图4是根据优选实施例的用于生成应用编辑器的页面的方法的一般流程图;
图5是详述用于在本发明的优选实施例的生成过程期间检索数据元模型‘根类’的方法的流程图;
图6是根据本发明的优选实施例的用于创建包括三种类型的区域的页面的方法的一般流程图;
图7示出了由本发明根据优选实施例用作输入的、使用统一建模语言(UML)表示的数据元模型的示例;
图8示出了根据优选实施例生成的应用数据编辑器的屏幕快照的示例。
具体实施方式
图1示出了用于构建和使用由本发明根据优选实施例产生的应用编辑器的环境。用于构成数据元模型的应用的永久数据的编辑器在该环境中被生成。
在优选实施例中,本发明被实现为一种软件程序——在计算机上执行的编辑器生成器(103)。用于创建编辑器源代码的方法的步骤的其它可能实现也是合适的。
编辑器生成器(103)允许应用开发者生成完全可用的富应用编辑器(105)的代码,其中,所述富应用编辑器(105)可以与应用可执行(112)结合以便为用户(111)提供用于创建、读取、更新和删除应用数据及其属性的方法。
编辑器生成器(103)正在‘软件开发环境’(100)中运行,并且创建数据编辑器的代码。所述编辑器然后在‘执行环境’(110)中被执行。所述‘执行环境’可以是其数据模型的永久数据将被编辑的应用的测试环境。在此情况下,所述执行环境是开发环境,以及所述编辑器生成器和编辑器可以由开发者在同一计算机上执行。所述执行环境还可以是目标应用业务环境,在此情况下,所述编辑器生成器仍然由开发者执行,以及所述编辑器由应用终端用户执行。
软件开发环境(100)是如当前存在许多的一种开发框架,其包括例如编辑器、编译器、链接器的工具,所述工具在开发者计算机工作空间中可用于构建整个应用。所述软件环境作为运行在操作系统上的程序被安装,其提供可用作本发明的优选实施例的最喜爱的开发者界面的图形用户界面。
核心单元——生成器(103)需要一组信息作为程序输入。第一个输入是用设计语言描述的、表示将被应用操作的数据的数据元模型(102),其中,所述数据元模型在优选实施例中可以具有例如UML的图形表示。所述编辑器生成器还访问一组与所述开发环境中的UI图形功能相关的图形库(104),其中,所述一组图形库(104)被假设与所述执行环境(110)兼容。所述生成器在生成过程期间依赖于该组图形库。
在其它功能中,并且为了为开发者提供灵活性,所述生成器可以集成由开发者提供的所述编辑器的图形定制(106)。这些定制允许开发者向所生成的应用编辑器强制特定图形外观和感觉需求。这些定制与开发环境的图形库(104)兼容。它们将于在所述执行环境中运行所述编辑器时被应用。
图2示出了本发明的优选实施例中涉及的高层部件的细节。图2示出了在生成过程期间所使用的应用编辑器生成器(200)的逻辑内容以及与用于定义所生成的应用编辑器的所产生的部件(210)的关系。
编辑器生成器(200)包含四个主要部件:模型访问器(201)、包访问器(202)、类访问器(204)和关系访问器(206)。生成器过程基于开发者请求而开始,并使用由应用设计者定义的数据元模型(102)作为主输入而启动编辑器生成器(200)。
所述生成器过程经由检查所选数据元模型而开始,其开始于使用模型访问器(201)对模型定义自身的访问。在优选实施例中,所述模型使用UML来设计,其中,相关单元被分组到‘包’下。在该检查期间,所述生成器检索包含在其中的所有包。通过对于所有所包含的包上进行循环,所述编辑器生成过程然后将使用包访问器(202)在所有所述包上循环,以便寻找包含在每个被检索包中的所有类。所述生成过程继续检查所述数据元模型内容,其现在使用关系访问器(206)寻找针对当前被检查类所定义的所有关系。
在所述数据元模型检查期间,所述编辑器生成过程产生三种主要类型的语言察觉的可执行编辑器部件(210):编辑器(211)、页面(212)和区域(213、214、215)。
所生成的部件关系如下:编辑器(211)包含页面(212),页面(212)包含区域(213、214、215)。每个页面对应于一个对象,页面的区域可以是三种类型的:超链接区域(213)、表区域(214)和编辑区域(215)。表区域(214)提供根据所述元模型的、该对象与其它对象的关系实例的列表。超链接区域(213)提供链接的列表,其中,所述链接用于允许终端用户指向起源对象在所述模型中与之有关系的其它对象实例。在编辑区域(215)中,所述模型中的可编辑字段被显示。
图3示出了如用优选实施例的方法实现的、所生成应用编辑器的页面的布局细节和组成(300)。
在所生成编辑器中,针对每个类存在一个可编辑页面。页面将被所生成编辑器的终端用户用于创建所述类的所有实例。由所生成编辑器显示的标准页面反映用于编辑应用的所有可编辑数据的所有类的所有实例的、在对象模型内部的导航。由优选实施例的所生成编辑器显示的标准页面包括三个可编辑区域,其是:位于所述页面右上方的编辑区域(302)、位于左侧的表区域(304)以及位于右下方的超链接区域(303)。最下面一行标签允许跳到其它页面,即,跳到其它类,以便进行对其对应实例的进一步编辑。
在类的页面中,编辑区域(302)显示该类以及该类的属性。如果该类不是类层次中的第一层,则更上层次的类也在所述编辑区域中列出。表区域(304)将包含终端用户在编辑对应类的页面时将创建的所有实例的列表。超链接区域(303)包含指向目标类的页面的指针,其中,所述目标类与所述页面被创建的所对应的类有关系。
因此,从所述对应一个类的页面,终端用户可以经由点击所述表区域的行跳到该类的所有实例。终端用户还可以跳到与对应于所述页面的类有关系的所有目标类的实例。
所生成编辑器当被执行时显示第一个页面:纵览的页面。该页面的最下面一行包含允许用户选择所述编辑器的其它类页面的标签(301)。从该纵览页面,终端用户具有所述类的完整景象。由所生成编辑器(300)显示的每个单一页面可用于选择,并且对应于当前页面选择而显示其内容。
为适合终端用户可能需要的每个图形外观和感觉,所述区域的所有标准位置可以在编辑器生成过程期间使用定制或者在编辑器生成过程之后直接在所生成代码中被修改。
图4是用于在生成过程(103)期间生成(400)应用编辑器(210)的页面的方法的一般流程图。该流程图在类访问器部件(204)中实现。
所述过程的第一个步骤是检索当前包的数据元模型(102)根类(401)。根类是这样的类,其不被所述元模型中的任何其它类包含或引用;该类被看作是用于由本发明根据优选实施例进行编辑的入口方式。该子过程在图5中示出。
当步骤401被完成时,根类查找过程(500)向当前页构建过程(400)发回类定义。所述类定义然后被用于使用类名称作为页面标识符和标记的基础来生成页面(402)。页面构建的过程随后在本文档中参考图6被描述。当此步骤被完成时,所述过程收集包含在所述包中的所有其它类(403)。
在步骤403之后,所述过程在所有所收集的类上循环(404),然后检查是否正在处理接口(405)。类可以实现接口,其中,所述接口其自身定义方法:接口不能像普通类一样被实例化,因此,所述接口因为不存在被编辑而在所述过程中必须被过滤。当该类是接口时(对测试405回答是),下一个类被读取(411)。当该类不是接口类时(对测试405回答否),系统检查当前类的层次(406)以便查找来自所述包内部(408)的抽象类(407),从而基于该抽象类创建公共页面(409)。抽象类表示抽象概念,并且不应当被实例化。作为父类的抽象类具有在其下进行分组的子类。抽象类可以具有被包括在子属性中的属性。为限制页面的数量,所述编辑器将把同一抽象类之下的所有类的页面分组为一个抽象类页面。所述抽象类页面的编辑区域包含属性组:对于子类的属性通用的所述抽象类的一组属性,以及针对每个子类的一组属性。如果不存在任何抽象类(对407回答否),则所述生成过程使用与步骤402和409中同样的构建和命名方法创建页面(410),其中,所述用于为一个类创建页面的步骤随后在本文档中参考图6被描述。在所有页面创建步骤期间,所使用的类与所创建的页面之间的链接被所述生成过程保存在存储器中。代码在所述生成过程期间在存储器中保存链接的方法在本文档中未被描述,因为其是本领域的技术人员已知的,并且是编程语言相关的。所述生成过程然后检查在步骤403中收集的所述包的下一个类。所述页面创建过程当不再存在要检查的类时结束。
应当指出,开发者可以在所述流程图的任意步骤中修改所述生成器中的页面。更特别地,每当页面在步骤402、409、410中被创建时,在该阶段中,开发者在生成过程期间使用异常分支对新生成的页面代码进行访问,在生成过程中所述页面的代码可以被修改以适合其需要。在优选实施例中,开发者改变所述代码,其它实施例可以被认为具有更复杂的图形用户界面,所述图形用户界面便利于开发者在页面中进行的改变的实现。
还应当指出,在优选实施例中,所述类被认为经由包来分组。例如,如果所述数据元模型使用UML语言来描述,则UML包包含这样的子模型,所述子模型自身可以包含其它包。同样,在该实施例中,将依赖于一个抽象类的所有类分组到该抽象类的同一页面之下(步骤406至409)的功能是所生成编辑器的最优化,因为其限制所生成编辑器中的页面的数量,并且因此使其更简单。针对每个不同类实现一个页面的另一实施例也可以被考虑。
图5是详述在编辑器部件的生成过程期间用于检索在页面构建过程(400)(在步骤401中)中使用的根类的方法(500)的流程图。该流程图在类访问器部件(204)中实现。
该过程的第一个步骤是收集包含在当前UML包中的所有页面(501),并且在所有页面上进行循环(502)。在优选实施例中,所述元模型使用UML语言来描述,以及UML包包含子模型,其中,所述子模型自身可以包含其它包。
通过使用每个类定义,系统基于在所述元模型中定义的关系得到类特征(503),并且在所有特征上循环(504)以寻找引用另一个类的关系(505)。被引用的类(506)然后被检查,以便如果其有子类的话则得到其子类(507),否则得到其自己。
在步骤508期间,系统将当前类(509)保存在列表中。该列表用于在存储器中保存当前包中被另一个类引用的所有类。
该过程继续在所述类上进行循环直到要分析的包中不再存在更多子类(510)、更多关系特征(511)和更多类(512)。
过程的第二个主要部分目的是将包含在所述包中的所有类与之前在步骤(509)中保存的引用的列表比较。
为找到根类,当前过程在所有类上循环(514),并且检查当前读取的类以查看是否出现在所述列表中。如果是这样,则所述过程继续,直到不再存在更多要读取的类。当所述过程找到在所述被引用列表中缺席的类时,该类是根类(步骤515),并且其被发回页面构建过程(400)。如果没有任何根类被所述过程返回(步骤516),则整个生成过程可以停止,或者要求开发者从包含在所述包中的类的列表中选择一个类;该类然后充当根类,并且被发回页面构建过程(400)。
图6是被执行以便为一个类创建页面的一般流程图。该流程图在图4中描述的页面构建过程(402、410)中被执行。在优选实施例中,三种类型的区域在页面中被创建:编辑区域(215)、超链接区域(213)和表区域(214)。该流程图在关系访问器部件(206)中实现。
所述页面创建的第一个步骤(601)使用在所述页面构建过程期间维护的页面与类之间的存储器中链接来检索与所述页面关联的当前类。所述编辑区域在步骤602中被创建并且被添加到当前页面。
编辑区域包含基于当前类属性及其类型的编辑字段。当编辑区域被创建时,子过程检索所有当前类属性及其类型、为其中任一个创建标记并添加到该区域,其中,所述标记随后紧跟基于属性类型的图形部件。
作为将被显示在所述编辑区域中的图形部件与属性类型之间的关联的示例,存在布尔型情况下的复选框、通过用枚举(枚举是已命名常数的集合,其通常用于定义唯一单元的集合,其中,所述唯一单元例如是一周的天或CPU类型)值的列表所填充的组合框、以及针对其它类型的简单文本编辑。这些关联在本文档中作为示例被提供,并且根据实现上下文可以进行扩展或调整。
从当前类开始,所述过程然后在所有已继承的类上循环(如果任何已继承的类被找到的话)(603),过滤被定义为接口的类:如果对测试604的回答为是,则下一个类被读取(615);如果对测试604的回答为否,则所述过程为所有已找到的祖先创建编辑区域并且将其添加到当前页面的编辑区域(605)。这将在当前页面中给出当前类已从所述祖先继承的当前类的属性的视图。这改进了将每个类放置在数据元模型的层次中的编辑器的用户视图。该改进(步骤603、604、605)由此是可选的。
从当前类开始,所述过程读取其所有特征,仅保存那些作为引用的特征(607),并且在所述引用上进行循环(606)以便检索那些被引用的类(608)。所述过程然后过滤所述接口(609),通过指向对应于所述被引用类的所有类页面的指针的列表创建超链接区域(213),并且将该区域添加到当前页面中(610)。
通过使用所述被引用类来检索当前类与所述被引用类之间的关系的目标类,所述过程创建表区域(214),使用存储器中映射从所述目标类获得目标页面,并且将所述新创建的表区域添加到该目标页面(612)。最后,所述过程为所述目标页面创建编辑区域(215),将该区域添加到所述目标页面,以及如果语言允许则将从所述表区域选出的该表中的条目链接(214)到所述编辑区域的当前版本(215)。
当不再存在更多将处理的特征和类时,所述区域构建过程(600)结束。
图7示出了被本发明根据优选实施例用作必要输入的、使用UML语言表示的数据元模型的示例(700)。
图7中表示了如由程序设计者或架构师使用任意高级面向对象建模语言工具建模的数据元模型的实例(102),其中,所述数据元模型未定义任何图形属性,仅有类(701)、类属性及其关联的类型(703)以及类之间的关系(702)。该类图示例已使用称为Rational Rose的建模工具来完成。所述数据元模型的其它表示可以使用其它高级面向对象建模语言工具来完成。
应当指出,构成被从图7的数据元模型读取的导航树的类、类属性和类之间的关系是所述生成器在编辑器程序中建立的编辑流程的基础。
图8示出了根据优选实施例生成的应用编辑器的示例(800),其中,所述生成使用:作为编辑器生成器(103)的输入的数据元模型的图7实例(700);由开发框架(在优选实施例中为Eclipse框架)提供的图形库(104);以及生成器的定制(106),其用于改变布局从而将所包含的超链接区域(802)显示在页面的左边,以及将外部引用显示在右边。
所有所述页面可用于由终端用户使用笔记本类型的呈现(803)来选择。所述编辑器中显示的第一个页面已基于在生成过程期间检索到的根类(500)被创建,显示包含将被编辑的所有项目类属性的编辑区域(801)。
Claims (34)
1.一种用于生成将通过计算机的图形用户界面被执行的编辑器的方法,其中,所述编辑器用于编辑应用的永久数据,所述永久数据是用定义类的层次组织、类的属性和类之间的关系的建模语言在数据对象模型中被描述和存储的,所述方法包括以下步骤:
-读取所述模型并且检索根类,所述根类是所述模型中唯一的不被任何其它类引用的类;
-从所述根类开始,使用所述关系读取每个类;
-对于不是接口的被称为当前类的每个所读取的类,创建用于编辑所述当前类的所有实例的页面;
-存储每个当前类与其被创建页面之间的链接;
-在每个当前页面中,创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域,以及使用所述已存储的链接创建第三区域,该第三区域用于显示指向在所述当前类中被引用的类的类页面实例的指针。
2.根据权利要求1所述的方法,其中,所述为每个类创建页面的步骤进一步包括:
为编辑器用户提供在创建时改变页面的图形视图的可能性。
3.根据权利要求1或2所述的方法,进一步包括:使用所述已存储的用于显示指针的链接访问所述模型的任意类的页面。
4.根据权利要求1或2所述的方法,其中,所述用于显示指针的步骤包括在屏幕上显示其上有类名的标签,每个标签将用户定向到对应类的页面。
5.根据权利要求3所述的方法,其中,所述用于显示指针的步骤包括在屏幕上显示其上有类名的标签,每个标签将用户定向到对应类的页面。
6.根据权利要求1或2所述的方法,其中,创建第一区域包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
7.根据权利要求3所述的方法,其中,创建第一区域包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
8.根据权利要求4所述的方法,其中,创建第一区域包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
9.根据权利要求5所述的方法,其中,创建第一区域包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
10.根据权利要求1或2所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
11.根据权利要求3所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
12.根据权利要求4所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
13.根据权利要求5所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
14.根据权利要求6所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
15.根据权利要求7所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
16.根据权利要求8所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
17.根据权利要求9所述的方法,其中:
-创建页面包括:寻找当前类所附加到的任何抽象类;
-如果抽象类被找到,则该抽象类变成当前类;以及
-在当前类的页面中创建第一区域包括:分组用于编辑所述抽象类的属性和所有子类的属性的字段。
18.一种用于生成将通过计算机的图形用户界面被执行的编辑器系统,其中,所述编辑器用于编辑应用的永久数据,所述永久数据是用定义类的层次组织、类的属性和类之间的关系的建模语言在数据对象模型中被描述和存储的,所述系统包括:
-用于读取所述模型并且检索根类的装置,所述根类是所述模型中唯一的不被任何其它类引用的类;
-用于从所述根类开始,使用所述关系读取每个类的装置;
-用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置;
-用于存储每个当前类与其被创建页面之间的链接的装置;
-用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置,该第三区域用于显示指向在所述当前类中被引用的类的类页面实例的指针。
19.根据权利要求18所述的系统,其中,所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:
用于为编辑器用户提供在创建时改变页面的图形视图的可能性的装置。
20.根据权利要求18或19所述的系统,进一步包括:用于使用所述已存储的用于显示指针的链接访问所述模型的任意类的页面的装置。
21.根据权利要求18或19所述的系统,其中,所述显示指向在所述当前类中被引用的类的类页面实例的指针包括在屏幕上显示其上有类名的标签,每个标签将用户定向到对应类的页面。
22.根据权利要求20所述的系统,其中,所述显示指向在所述当前类中被引用的类的类页面实例的指针包括在屏幕上显示其上有类名的标签,每个标签将用户定向到对应类的页面。
23.根据权利要求18或19所述的系统,其中,所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
24.根据权利要求20所述的系统,其中,所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
25.根据权利要求21所述的系统,其中,所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
26.根据权利要求22所述的系统,其中,所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:按照在所述模型的层次中高于当前类的所有祖先类属性来分组用于编辑当前类的属性的字段。
27.根据权利要求18或19所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
28.根据权利要求20所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
29.根据权利要求21所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
30.根据权利要求22所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
31.根据权利要求23所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
32.根据权利要求24所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
33.根据权利要求25所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
34.根据权利要求26所述的系统,其中:
-所述用于对于不是接口的被称为当前类的每个所读取的类创建用于编辑所述当前类的所有实例的页面的装置包括:用于寻找当前类所附加到的任何抽象类的装置;
-用于如果抽象类被找到、则该抽象类变成当前类的装置;以及
-所述用于在每个当前页面中创建包括用于编辑当前类属性的字段的第一区域、用于在当前类的所有实例将被编辑的时候列出它们的第二区域、以及使用所述已存储的链接创建第三区域的装置包括:用于分组用于编辑所述抽象类的属性和所有子类的属性的字段的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06300414 | 2006-04-27 | ||
EP06300414.7 | 2006-04-27 | ||
PCT/EP2007/052350 WO2007124977A2 (en) | 2006-04-27 | 2007-03-13 | A method and system for generating application data editors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101410798A CN101410798A (zh) | 2009-04-15 |
CN101410798B true CN101410798B (zh) | 2012-11-07 |
Family
ID=38529948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800108885A Expired - Fee Related CN101410798B (zh) | 2006-04-27 | 2007-03-13 | 用于生成应用数据编辑器的方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8566782B2 (zh) |
EP (1) | EP2013713A2 (zh) |
JP (1) | JP5102828B2 (zh) |
CN (1) | CN101410798B (zh) |
CA (1) | CA2648471A1 (zh) |
TW (1) | TW200816047A (zh) |
WO (1) | WO2007124977A2 (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8336025B1 (en) | 2007-02-08 | 2012-12-18 | The Mathworks, Inc. | Pattern modeling methods and systems |
US8776015B1 (en) * | 2007-02-08 | 2014-07-08 | The Mathworks, Inc. | Pattern modeling methods and systems |
US20110022603A1 (en) * | 2009-07-24 | 2011-01-27 | Ensequence, Inc. | Method and system for authoring and distributing multiple application versions based on audience qualifiers |
US8671124B2 (en) * | 2009-07-24 | 2014-03-11 | Ensequence, Inc. | Method for application authoring employing a pre-certified master application template |
US8682945B2 (en) * | 2009-07-24 | 2014-03-25 | Ensequence, Inc. | Method and system for authoring multiple application versions based on audience qualifiers |
US8667460B2 (en) * | 2009-07-24 | 2014-03-04 | Ensequence, Inc. | Method for application authoring employing a child application template derived from a master application template |
US8307020B2 (en) | 2009-07-24 | 2012-11-06 | Ensequence, Inc. | Method for distributing a certified application employing a pre-certified master application template |
US9116708B2 (en) * | 2010-03-05 | 2015-08-25 | Nec Corporation | Program creation support apparatus, program, and information system |
CN101853167A (zh) * | 2010-05-28 | 2010-10-06 | 北京中恒博瑞数字电力科技有限公司 | 基于soa、rcp的动态对象编辑的方法 |
CN102368217A (zh) * | 2011-10-20 | 2012-03-07 | 镇江睿泰信息科技有限公司 | 一种元数据驱动的rest风格应用开发方法与系统 |
CN103207869A (zh) * | 2012-01-16 | 2013-07-17 | 腾讯科技(深圳)有限公司 | 一种网页的维护方法、系统和平台 |
CN103428243A (zh) * | 2012-05-21 | 2013-12-04 | 阿里巴巴集团控股有限公司 | 动态网页静态存储的实现方法、设备和系统 |
US9229693B1 (en) * | 2014-05-28 | 2016-01-05 | Amazon Technologies, Inc. | Build service for software development projects |
CN105278935B (zh) * | 2014-06-25 | 2018-06-22 | 成都普中软件有限公司 | 一种构造界面模型的可视界面建模编辑器 |
US10503482B2 (en) | 2014-09-26 | 2019-12-10 | Oracle International Corporation | Object mapping using intrinsic persistence metadata and pattern-based rules for mapping transformation |
BR112017026293B1 (pt) * | 2015-06-07 | 2023-10-24 | Wix.Com Ltd | Sistema para um sistema de construção de sites implementado em um servidor e método para um sistema de construção de sites implementado em um servidor |
CN105930211B (zh) * | 2016-04-14 | 2020-09-08 | 腾讯科技(深圳)有限公司 | 一种应用数据获取的方法以及服务器 |
US10248385B1 (en) * | 2017-11-30 | 2019-04-02 | International Business Machines Corporation | Extracting mobile application workflow from design files |
CN110874523B (zh) * | 2018-08-30 | 2024-02-13 | 北京国双科技有限公司 | 富文本编辑器的内外交互方法及装置、处理器、存储介质 |
US10754667B1 (en) | 2019-03-20 | 2020-08-25 | Yokogawa Electric Corporation | System and method of module engineering for an industrial process |
CN110764761B (zh) * | 2019-10-30 | 2023-12-29 | 网易(杭州)网络有限公司 | 数组可视化编辑方法与装置、电子设备、存储介质 |
CN111209000B (zh) * | 2020-01-08 | 2024-01-26 | 网易(杭州)网络有限公司 | 自定义控件的处理方法、装置、电子设备及存储介质 |
CN112099792B (zh) * | 2020-09-18 | 2024-02-02 | 上海逸动医学科技有限公司 | 一种可视化ui样式设计方法及系统 |
CN112995191A (zh) * | 2021-03-12 | 2021-06-18 | 上海卫星工程研究所 | 一种基于类派生的通用卫星遥控指令生成方法及系统 |
CN113742018A (zh) * | 2021-08-31 | 2021-12-03 | 远光软件股份有限公司 | 档案模型调整方法、计算机装置及计算机可读存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07110763A (ja) | 1993-10-13 | 1995-04-25 | Hitachi Ltd | ユーザインタフェース画面編集装置 |
US5835910A (en) * | 1994-11-10 | 1998-11-10 | Cadis, Inc. | Method and system for comparing attributes in an object-oriented management system |
JPH10232769A (ja) | 1997-02-19 | 1998-09-02 | Hitachi Ltd | クラス追加支援方法 |
US5987247A (en) * | 1997-05-09 | 1999-11-16 | International Business Machines Corporation | Systems, methods and computer program products for building frameworks in an object oriented environment |
US7363578B2 (en) * | 2004-06-03 | 2008-04-22 | Microsoft Corporation | Method and apparatus for mapping a data model to a user interface model |
-
2007
- 2007-03-13 CN CN2007800108885A patent/CN101410798B/zh not_active Expired - Fee Related
- 2007-03-13 US US12/298,110 patent/US8566782B2/en not_active Expired - Fee Related
- 2007-03-13 WO PCT/EP2007/052350 patent/WO2007124977A2/en active Application Filing
- 2007-03-13 CA CA002648471A patent/CA2648471A1/en not_active Abandoned
- 2007-03-13 JP JP2009507009A patent/JP5102828B2/ja active Active
- 2007-03-13 EP EP07726852A patent/EP2013713A2/en not_active Withdrawn
- 2007-04-23 TW TW096114266A patent/TW200816047A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2007124977A3 (en) | 2007-12-21 |
WO2007124977A2 (en) | 2007-11-08 |
TW200816047A (en) | 2008-04-01 |
JP5102828B2 (ja) | 2012-12-19 |
US20090089746A1 (en) | 2009-04-02 |
CA2648471A1 (en) | 2007-11-08 |
JP2009534766A (ja) | 2009-09-24 |
CN101410798A (zh) | 2009-04-15 |
US8566782B2 (en) | 2013-10-22 |
EP2013713A2 (en) | 2009-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101410798B (zh) | 用于生成应用数据编辑器的方法和系统 | |
CN101617292B (zh) | 面向生成器图的编程和执行 | |
Kersten et al. | Mylar: a degree-of-interest model for IDEs | |
Ohst et al. | Differences between versions of UML diagrams | |
Visser | WebDSL: A case study in domain-specific language engineering | |
CN101601012B (zh) | 具有场景支持的面向生成器图的编程框架 | |
AU733773B2 (en) | Method and system for database application software creation requiring minimal programming | |
US6925598B2 (en) | Customization of object property layout for a user interface | |
US20020029231A1 (en) | Navigation links in generated documentation | |
US20030204481A1 (en) | Method and system for visually constructing XML schemas using an object-oriented model | |
KR20060087995A (ko) | 작업 흐름을 모델링하는 방법 및 시스템 | |
US20090006987A1 (en) | Visual design tools for portal content creation | |
JP2013518321A (ja) | パターンベースのユーザインターフェース | |
Rossi et al. | Model-based web application development | |
Eichberg et al. | Comprehensive software understanding with SEXTANT | |
Thanh-Diane et al. | UIPLML: Pattern-based engineering of user interfaces of multi-platform systems | |
Raum et al. | Design and implementation of an expert user interface for the computer aided prototyping system | |
Bischofberger et al. | Object-Oriented Programming Environments: Requirements and Approaches | |
Nguyen et al. | Flexible fine-grained version control for software documents | |
Anguish et al. | Cocoa programming | |
Trivedi | User interface implementation of environmental data integration system with React | |
Gui et al. | REGoLive: Building a web site comprehension tool by extending GoLive | |
Robecke | Development of an iPhone business application | |
Cole et al. | Navigation spaces for the conceptual analysis of software structure | |
Thomas | Evaluation of UML tools using an end-to-end application |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121107 Termination date: 20210313 |
|
CF01 | Termination of patent right due to non-payment of annual fee |