使用元数据动态创建 GWT 屏幕?

发布于 2024-08-27 14:59:02 字数 378 浏览 13 评论 0原文

我有一个 AWT 小程序应用程序需要移植到 GWT。小程序屏幕在元数据中描述,小程序使用反射动态呈现每个屏幕。

我们希望在 GWT/ExtGWT 中实现同样的功能。

我构建了这个 ExtJS 的工作版本,其中元数据被转换为 JSON 形式的 ExtJS 屏幕配置。这种方法的缺点是控件与数据的“连接”需要用 JavaScript 编写。

GWT 是首选,因为它全部是 Java 代码,没有 JS。深入研究后,可以使用 GWT.create() 从元数据中使用 GWT 渲染屏幕。

我遇到的问题是连接动态创建的按钮(例如事件处理程序)需要反射,而 GWT 不支持反射。

这个结论正确吗?如果是这样,是否有其他方法可以使用 ExtGWT 实现这种类型的动态 UI?

I have an AWT applet application that needs to be ported over to GWT. The applet screens are described in meta data and the applet renders each screen dynamically using reflection.

We'd like the same thing in GWT/ExtGWT.

I've built a working version of this ExtJS whereby the metadata is turned into ExtJS Screen configs in the form of JSON. The drawback with this approach is the "wiring" of controls to data needs to be written in Javascript.

GWT is preferred since it'd be all Java code, no JS. Upon digging in it's possible to render the screens using GWT off the metadata using GWT.create().

The problem I'm having is the wiring to hook a dynamically created button for example to an event handler requires reflection which is not supported in GWT.

Is this conclusion correct? and if so, are there any other ways to achieve this type of dynamic UI using ExtGWT?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

短叹 2024-09-03 14:59:02

对于没有声明式 UI 的 extGWT,最简单的解决方案可能是在 java 中添加引用实例化类的处理程序的映射/配置。处理程序,即:

Map<String, ActionListener> mapping = new HashMap<String, ActionListener>();
mapping.put("HandleClicked", new HandleClickedActionListener());

然后您可以尝试为您的元数据找到一个实现类。

对于纯 GWT 2,您可以查看 http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideUiBinder.html#Simple_binding 了解其操作方式。或许可以创建一个类似的解决方案,为您自己的 extgwt 解决方案(如 gwt 中的解决方案)注释方法。

For extGWT where we don't have declarative UI's the easiest solution might be to just add a mapping/config your handlers in java which refer to instantiated classes. of the handlers, i.e.:

Map<String, ActionListener> mapping = new HashMap<String, ActionListener>();
mapping.put("HandleClicked", new HandleClickedActionListener());

then you can try to find an implementing class for your meta data.

For pure GWT 2 you can take a look at http://code.google.com/intl/de-DE/webtoolkit/doc/latest/DevGuideUiBinder.html#Simple_binding on how it's done there. it might be possible to create a similiar solution which annotated methods for you own extgwt solution like the one in gwt.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文