【问题标题】:Java: Creating a GUI-Builder for Web app with custom tagsJava:使用自定义标签为 Web 应用程序创建 GUI-Builder
【发布时间】:2012-12-29 05:38:15
【问题描述】:

在我们的项目中,我们开发了一个框架,旨在封装 Java Web 开发的大部分方面。我的客户是使用这个框架的其他程序员。

我们封装的东西之一是 JSP 标签。我们为所有内容创建了自定义标签,因此用户根本不需要使用常规的 HTML 和 JavaScript。

现在我正在寻找为这些自定义标签创建 GUI-Builder 的方法。意思是某种 GUI 应用程序,它允许用户将图形控件拖放到画布上,然后基于此应用程序将生成页面的 JSP 代码。 请注意,我们的自定义标签不仅仅用于抽象。其中许多是可见控件,由 HTML 结构和用于控制它们的 JavaScript 逻辑组成。并且自定义标签的属性(用户在 JSP 中定义)有时会影响它的外观和行为。

如果该工具可以成为 Eclipse 的插件,那将是一个巨大的好处。

是否有任何现有的工具可以做到这一点?

是否有用于创建此类工具的设计模式或最佳实践教程?

谢谢!

【问题讨论】:

  • 嗨@Malki,我正在寻找类似的东西,我还需要用它构建一个webapp?你有没有找到一种方法来构建一个嵌入 GEF 的 webapp 项目或类似的方法?

标签: java jsp custom-controls gui-builder custom-tags


【解决方案1】:

我曾致力于开发一种类似于您所描述的工具。在我们的例子中,我们需要一个拖放式 GUI 工具,它可以为我们的服务器创建类似于模型的 RDBMS(表、列、关系)。我们为此使用了 eclipse GEF 插件。

GEF(Graphical Editing Framework) 是一个非常成熟的框架,可以让你构建一个拖放式的图形编辑器。您可以创建一个调色板,定义不同的形状,将不同的形状与不同的内部“模型”相关联,定义不同类型的连接器,定义将形状拖放到编辑器等时需要完成的操作。当我处理它时,我们将我们的工具构建为普通的 eclipse 插件(在 GEF 插件之上)并将其部署在 eclipse 上。那时 Eclipse RCP 框架才刚刚起步。

http://www.eclipse.org/gef/

我的经验是 GEF 的,我很确定 GEF 会完成您的工作。下载演示并浏览代码后,您将了解开发自己的图形编辑器需要做什么。

还有另一个名为 GMF(图形建模框架)的 Eclipse 项目。 GMF 建立在 GEF 和 EMF 之上,并提供更高级别的工具来构建图形编辑器,将其与源代码编辑器相关联(您在一个选项卡上有“图形视图”,在另一个选项卡上有“源视图”选项卡)等。GMF 是一种“高级”框架,可为您管理 GEF 管道代码。

http://www.eclipse.org/modeling/gmp/?project=gmf-tooling#gmf-tooling

请注意,上述两个框架都需要一些时间和精力来理解。 GEF 有据可查。如果你之前有过 eclipse 插件开发经验,那就加分了。

【讨论】:

    【解决方案2】:

    如果您正在创建一个 Eclipse 插件,那么您就是在创建一个多页面编辑器。一页(或多页)用于 GUI,一页用于生成的代码。

    当您第一次构建 Eclipse 插件时,您遇到的多页面编辑器之一是 MANIFEST.MF 文件和 plugin.xml 文件的编辑器。这是一个多页编辑器,可以生成两个代码文件,而不是一个。

    面向 RCP 和 RAP 开发人员的 Eclipse 将帮助您启动 Eclipse 插件。

    • 打开 Eclipse,然后切换到要用于开发插件的工作区。
    • 在 Eclipse 菜单栏中,左键单击 File -> New -> Project...
    • 在 New Project 对话框中,打开 Plug-in Development 文件夹,然后左键单击 Plug-in Project。
    • 左键单击“下一步”按钮。
    • 在插件项目对话框中,为项目命名。您可以接受对话框其余部分的默认设置。
    • 左键单击“下一步”按钮。
    • 接受“内容”对话框中的默认设置,然后左键单击“下一步”按钮。
    • 在“模板”对话框中,左键单击“带有多页编辑器的插件”。
    • 左键单击“完成”按钮。

    Eclipse javadoc 位于 Platform Plug-in Developer Guide -> Reference -> API Reference 的 Eclipse 帮助中。

    为了帮助理解 Eclipse javadoc,您需要一个很好的教程。 Vogella的教程很不错。

    如果您对 Eclipse 插件有具体问题,可以在 Stack Overflow 上提问。

    【讨论】:

    • 我意识到赏金的全部目的是引起人们对这个问题的关注,但你没有回答我的任何问题。正如我所说,“eclipse 插件”部分只是一个奖励。我面临的主要问题是如何编写一个执行我所描述的工具。我的主要关注点是要么找到一个我可以构建的现有框架,要么找到一个设计模式或最佳实践教程来自己编写这种工具。
    • 我的回答描述了你是如何开始的。你首先必须决定一个平台,然后你可以谈论一个框架。既然您提到了一个 Eclipse 插件,那我就是从那里开始的。如果您得到更好的答案,您可以奖励该答案奖励积分。
    猜你喜欢
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多