在gmf中如何刷新当前界面中的元素呢,看部主要分代码:
IEditorReference[] editorReferences = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow().getActivePage()
.getEditorReferences();
IEditorPart editorPart = null;
IEditorInput editorInput = null;
for (IEditorReference editorReference : editorReferences)
{
if (editorReference.getId().equals(
"Jonas.diagram.part.JonasDiagramEditorID"))
{
editorPart = editorReference.getEditor(false);
editorInput = editorPart.getEditorInput();
String projectPath = EditorUtils
.getProjectPathFromURIEditorInput((URIEditorInput) editorInput);
if (!projectPath.equals(project.getLocation().toString()))
{
continue;
}
JonasDiagramEditor editor = (JonasDiagramEditor) editorPart;
ViewEditPart view = (ViewEditPart) editor.getDiagramEditPart();
for (Object childEditPart : view.getChildren())
{
refreshControl((BaseEditPart) childEditPart);
}
}
}
private void refreshControl(BaseEditPart editPart)
{
EObject obj = editPart.resolveSemanticElement();
if (obj instanceof Widgetcommon)
{
Widgetcommon control = (Widgetcommon) obj;
//重新为控件设置,刷新界面对象
BaseFigure figure = (BaseFigure) editPart.getPrimaryFigure();
if (control.getNormalskin() != null)
{
Image image = EditorUtils.getSKinGrighce(control.getWidth(),
control.getHeight(),
((Widgetcommon) obj).getNormalskin(),true);
if (image != null)
{
figure.setBackImg(image);
}
}
if (control instanceof Text && ((Text) control).getText() != null)
{
Font font = EditorUtils.getFontStyle(editPart);
if (font != null)
{
figure.setFont(font);
}
String text = EditorUtils.getTextValue(editPart,
((Text) obj).getText());
figure.setText(text);
editPart.setFgColor();
}
figure.repaint();
}
if (obj instanceof Container || obj instanceof ItemContainer)
{
//刷新子控件
for (Object childEditPart : editPart.getChildren())
{
refreshControl((BaseEditPart) childEditPart);
}
}
}
分享到:
相关推荐
3. **图元工厂**:GMF提供图元工厂,用于创建和管理图形元素,包括形状、连接线等,这些元素在编辑器中显示。 4. **编辑操作**:GMF能够自动处理常见的编辑操作,如拖放、剪切、复制、粘贴、撤销和重做等。 5. **...
GMF区分了"toolsmith"(使用GMF构建插件的开发者)和"user"(使用这些插件的开发者),并强调在透视图中,GMF应尽可能隐藏内部模型的复杂性。 教程还涉及了GMF的核心组成部分——概念模型和工具定义模型。概念模型...
本文将深入探讨GMF中的RAR(Runtime Architecture Resource)组件,以及其在模型驱动开发中的关键作用。 首先,我们需要理解RAR的含义。"org.eclipse.gmf.rar"是Eclipse GMF运行时架构资源的标识符,它是GMF的核心...
GMF旨在简化图形用户界面(GUI)的开发,特别是那些涉及图表编辑和可视化任务的界面。在这个“GMF学习资料”中,我们可以通过Mindmap和其他教程来深入理解GMF的关键概念和技术。 1. **GMF概述**: - GMF是EMF的...
Eclipse GMF是一个强大的框架,它允许开发者创建具有用户友好的图形界面的模型编辑器。GMF通过自动生成代码和图形组件,简化了开发过程,使得开发人员可以专注于业务逻辑,而非底层图形渲染和事件处理。 二、GMF的...
5. **图形化界面**:GMF允许创建直观的图形用户界面,用户可以通过拖拽和调整图形元素来创建和修改数据模型。这比传统的文本方式更易于理解和操作,尤其适合初学者和非专业程序员。 6. **文件结构**:提供的压缩包...
- 在Eclipse中,通过`File` > `New` > `Project`,选择`New GMF Project`,创建名为`org.eclipse.gmf.examples.mindmap`的项目。 - 在创建项目时,可以选择显示Dashboard视图,便于后续操作。 2. **导入模型文件*...
- **元素展示:** 图形定义模型决定了图中的元素如何展示。 - **配置细节:** 用户需要指定哪些元素作为节点,哪些作为链接,以及它们的属性。 ##### 3.4 工具定义与配置 - **工具配置:** 工具定义模型定义了图...
开发者可以定义模型中的元素类型、关系以及其他特性,然后基于这个模型自动生产出相应的代码。这种方式极大地减少了手动编码的工作量,同时也提高了开发效率和代码质量。 - **丰富的扩展性**:除了基本的建模功能...
通过重构Taipan应用程序或插件,开发者不仅可以掌握GMF的基本操作,还能探索其高级特性,如动态模型更新、定制编辑行为和扩展图形元素。 #### 结论:GMF——图形化编辑器的未来 GMF的出现极大地推动了图形化编辑器...
在Eclipse插件GMF中,你还可以利用EMF(Eclipse Modeling Framework)的强大功能,如数据持久化、版本控制和互操作性,进一步提升模型的灵活性和可扩展性。 总结来说,Eclipse插件GMF是一个强大的建模框架,它允许...
GMF,全称是Graphical Modeling Framework,是Eclipse建模项目中的一个重要组成部分,它建立在GEF(Graphical Editor Framework)和EMF(Eclipse Modeling Framework)之上,为开发基于图形界面的编辑器提供了一种更...
- **GMF**作为一个强大的框架,提供了创建高度定制化的图形化用户界面的能力,特别适用于开发复杂的数据可视化应用或建模工具。 - **EMF**是一个用于构建模型驱动的应用程序的基础框架,支持模型的定义、实例化以及...
在GMF中,图表元素定义了模型在屏幕上的显示方式。 在这个教程的第三部分,我们可以期待以下内容: - 如何定义和实现工作流模型的元数据,这通常涉及EMF(Eclipse Modeling Framework)的使用,用于创建和管理数据...
在Eclipse中,GEF(Graphical Editing Framework)、VE(Visual Editor)和GMF(Graphical Modeling Framework)是三个重要的插件或框架,主要用于图形化界面设计和建模。 1. GEF(Graphical Editing Framework) ...
- `com.lgylym.reservation.diagram`:这部分可能是关于图形图表的定义,具体到GMF中,这可能涉及到元模型的图形表示,以及如何在屏幕上绘制这些图形。 - `com.lgylym.reservation`:这个顶级包可能包含了整个 ...
在学习GMF的过程中,首先要掌握的是基本操作,如安装和配置环境。这通常涉及到下载源代码、编译、设置环境变量等步骤。初学者需要了解如何在不同的操作系统(如Windows、Linux或Mac OS)上完成这些操作。 接着,...