- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发简单的桌面应用程序。
能够以类似 UML 的形式观察和修改模型结构非常有用,并且 EMF 允许这样做。我想将 EMF 代码生成方法与现有的 GUI 框架(即 Swing)结合起来,但我还没有找到任何现有的示例。
不知道是不是因为这个想法不合理?可能还有其他方法来掌握和编辑应用程序背后的模型结构并为具体的 GUI 框架生成代码?
最佳答案
模型驱动开发背后的主要思想之一是自动生成系统的替代表示。这些通常被称为模型到模型 (m2m) 和模型到代码 (m2t) 转换(尽管在某些情况下代码仅被视为另一个模型)。
EMF 是一个用于定义元模型的框架。元模型定义模型的语义。简而言之,元模型定义了可用于对特定域进行建模的类和属性。例如,UML 元模型允许您创建模型来表示软件系统。模型包括结构(类图),也可以包括行为(序列图、状态机等)。
与 EMF 相关,有许多框架和语言能够读取、修改和创建模型。例如Epsilon Framework提供各种模型管理语言来处理模型。 Epsilon 转换语言 (ETL) 允许您编写程序来执行 m2m 转换,Epsilon 生成语言 (EGL) 允许您编写程序来执行 m2t 转换。
因此,要从 UML 模型生成到具体 GUI 框架的代码,您可以使用 EGL 直接生成使用 GUI 框架的 API 的代码。另一种方法是首先使用 m2m 转换生成 GUI 模型(您将需要框架的元模型),然后执行 m2t。后一种方法可能是首选,因为 m2m 转换可以帮助您更好地突破 UML 和所选框架之间的语义差距。
既然你提到了电动势的产生,这也是一个可行的方法。但请注意,EMF 仅生成 Java 代码来表示元模型。在这种方法中,您必须编写所有 GUI 框架代码,这些代码将使用下面的 EMF 生成的代码作为基本模型。因此,我建议您使用 m2m 和 m2t 方法,您将能够生成大部分(如果不是全部)代码。
Epsilon 框架有一个简单的 tutorial EGL 上展示了如何从模型生成 HTML。它将帮助您了解需要什么。如果您的 GUI 框架是 HTML,那么这将是一个很好的起点。
详细了解 m2m 和 m2t 需要有关您拥有的特定 UML 模型以及您打算使用的目标 GUI 框架的更多详细信息。
关于java - EMF 产生 Swing 应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657292/
我理解 eclipse 验证框架工作原理的方式: 用工厂生成一个对象 为此对象中的属性设置一个值 检查验证 例如: public class ValidateNameTest { public sta
我想做双向 Model2Model 转换。两种模型都基于 EMF/eCore。实际上,我更希望一个模型是另一个模型的可编辑 View 。 我有哪些选择? 哪些工具和转换语言可用,它们有哪些限制? 最佳
将.xsd -files转换为.ecore -files的最佳方法是什么? 是否有一个Eclipse插件? 最佳答案 那对我有用: 新建->项目... Eclipse建模框架-> EMF项目 模型导入
假设我有 Person EMF 模型。我创建了这个模型 bob.person 和 mike.person 的 2 个实例。有没有办法在我的工作区中创建所有模型的集合,这些模型是 Person 并使用
我想在 ecore 模型中使用 derived 属性和引用,但到目前为止,我还没有找到任何关于如何为计算派生属性/引用值的方法设置代码的文档. 据我了解,基本的工作流程是将一个属性/引用标记为deri
我们的程序需要生成矢量图形,为此我们选择了 EMF。然而,其他程序似乎使这些图像呈现非抗锯齿效果。我发现 SVG 格式确实有一个标志来指示某些/所有对象应该抗锯齿。 EMF 格式中是否有任何类型的标志
我现在正在深入研究 EMF,并遇到了以下问题: 我正在尝试使用以下代码从字段集中删除字段: FieldElem ff = ds.getContent().getNestedFieldset().ge
我是 MDSD/EMF 的新手,但由于 Eclipse 的支持,我取得了很大进步。 我昨天按照 awynne 的建议创建了一个玩具模型,我非常接近。我只使用 EMF 及其生成的树编辑器。 这是我的 E
我有一个大型 EMF 模型,更具体地说是来自 MDT 项目的 BPMN2.0 模型。我们的软件有一个要求,就是必须支持 oracle JDeveloper BPMN2 导出格式,该格式几乎对应于 BP
我的模型包含一个名为 Result 的接口(interface)。我有多个实现所述接口(interface)的类。现在我想添加结果列表作为结果。我希望能够创建类似的东西: 列表 ,其中 只能包含所选的
我刚刚开始使用 Eclipse Modeling Framework (EMF),在使用以下教程时遇到了一些问题: http://www.vogella.com/tutorials/EclipseEM
在具有声明为 transient 和 volatile 属性的 Ecore 模型中(它的值是从其他几个字段计算的),是否有一种规范的方法来生成对该字段的更改的通知(即,当其中一个字段被transien
我读过 some tutorials关于EMF我仍然想知道为什么我应该使用它。 直到现在,我都是从 XSD 架构 + JXC 生成我的 POJO ,或手动。 就我对 EMF 的理解而言,定义类之间的一
我遇到了 devEMF 包中的 emf() 函数的问题。 我正在使用的代码 - library(devEMF) emf(file = "trial.emf") plot(1:10, seq(10, 1
我将能够创建背景颜色为 50% 透明而其他元素完全不透明的 EMF 图像(以编程方式或通过软件)。 我已经能够创建一个完全透明的背景,但没有一定的 alpha/opacity。 创建这个半透明背景将允
在我的应用程序中,我应该比较两个源代码文件以查看是否发生了更改,然后突出显示这些更改。为此我想到使用 EMF 比较。我的应用程序是一个独立的应用程序,不用作插件或类似的东西。它应该在没有 Eclips
我正在实现一个商业 RCP 应用程序,用户可以在其中创建以下格式的项目: 项目1 子元素1 子元素2 子子元素1 项目2 ... 等等 我正在使用 EMF 对数据域进行建模,并且我想保存数据。我想要一
我需要通过java编码来创建一个动态EMF对象。是否可以 ?如果是这样,请用代码片段向我解释如何创建 EMF 对象。 最佳答案 要以编程方式创建 eObject,只需使用 EcoreUtil 和 Ec
当我尝试加载 EMF 文件时出现以下错误: Exception thrown: org.eclipse.emf.ecore.resource.Resource$IOWrappedException:
场景是我有一个打印机 EMF 文件。我想在将其发送到打印机之前在其上覆盖一些数据。打印机文件为 300dpi。保持相同的打印质量非常重要。 我正在使用此代码转换 emf 文件... b:=TBit
我是一名优秀的程序员,十分优秀!