将对象传递给 uibinder 中定义的小部件的构造函数

2024-05-26

我试图将我的应用程序的 EventBus 通过其构造函数传递给 UiBinder 中声明的小部件。我使用 @UiConstructor 注释来标记接受 EventBus 的构造函数,但我不知道如何从 ui.xml 代码中实际引用该对象。

也就是说,我需要类似的东西

WidgetThatNeedsAnEventBus.java

public class WidgetThatNeedsAnEventBus extends Composite
{
    private EventBus eventBus;

    @UiConstructor
    public WidgetThatNeedsAnEventBus(EventBus eventBus)
    {
        this.eventBus = eventBus;
    }
}

TheUiBinderThatWillDeclareAWTNAEB.ui.xml

<g:HTMLPanel>
    <c:WidgetThatNeedsAnEventBus eventBus=_I_need_some_way_to_specify_my_apps_event_bus_ />
</g:HTMLPanel>

我可以毫无问题地将静态值传递给 WidgetThatNeedsAnEventBus,并且可以使用工厂方法来创建新的 EventBus 对象。但我需要的是传递我的应用程序已经存在的 EventBus。

有没有办法引用 UiBinder 中已经存在的对象?


我最终的解决方案是使用@UiField(provided=true)在小部件上我需要用变量初始化。

然后,我自己用 Java 构建了这个小部件,然后再调用initWidget在父母身上。

例如:

public class ParentWidget extends Composite
{
    @UiField(provided=true)
    protected ChildWidget child;

    public ParentWidget(Object theObjectIWantToPass)
    {
        child = new ChildWidget(theObjectIWantToPass);  //_before_ initWidget
        initWidget(uiBinder.create(this));

        //proceed with normal initialization!
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将对象传递给 uibinder 中定义的小部件的构造函数 的相关文章

  • TextField“更改”事件仅在模糊时触发

    通常 Change 事件将在 TextField 失去焦点 模糊 后触发 但我需要它在字段值发生变化时立即触发 而不需要失去对该字段的关注 KeyListener 不会删除它 因为该值可能来自条形码扫描仪等 有什么办法可以做到这一点吗 提前
  • gwt 谷歌应用引擎 HTTP 错误 404

    我在 Eclipse 中使用 google 应用程序引擎创建了一个新的 gwt 项目 但是当我运行该项目时 在浏览器中我收到以下消息 HTTP 错误 404 访问 Test html 时出现问题 原因 NOT FOUND 由码头提供动力 现
  • GWT SafeHTML、XSS 和最佳实践

    OWASP 的优秀人员强调 您必须对 HTML 文档中要放入不受信任数据的部分 正文 属性 JavaScript CSS 或 URL 使用转义语法 看OWASP XSS https www owasp org index php XSS 2
  • GWT 身份验证和用户信息访问

    只是想知道我的以下身份验证方法是否正确 有没有什么陷阱或者遗漏的地方 非常欢迎建议和讨论 1 gt 用户提供用户名和密码 并通过RPC发送到服务器 与数据库中存储的哈希值进行比较 2 gt 假设用户名和密码准确 会话中会保存一个Auth T
  • 阻止 GWT 中的事件冒泡

    我有以下代码片段 changeTextArea 是一个 TextArea 对象 changeTextArea addKeyboardListener new KeyboardListenerAdapter public void onKey
  • 在 GWT 中使用 SVG

    我想知道是否可以在面板中包含 SVG 内容 或者在 GWT 中工作的任何内容 能够以编程方式向 SVG 添加更多内容 例如添加圆或曲线 并处理鼠标事件 这会是在 SVG 或 GWT 中 我尝试创建一个 HTML 对象 添加以下内容
  • GWT GIN 现场级注入

    我们正在评估 GWT 项目中使用 GIN 的情况 并通过构造函数参数进行典型注入 取得了良好的结果 我们遇到的困难是现场级注入 这些字段最终总是为空 有没有人有一个很好的例子来说明如何使用 GIN 正确实现字段级注入 Update 这是一些
  • GWT - css 中常量的问题

    我是 GWT 新手 我正在构建一个小型示例应用程序 我有几个 CSS 文件 我能够成功使用 ClientBundle 和 CssResource 将样式分配给 UiBinder 脚本中定义的元素 现在我想更进一步 使用 def css ru
  • 禁用任何类型的浏览器窗口滚动?

    有没有办法禁用滚动 不仅仅是滚动条 还有浏览器窗口的全部功能 根据您对 Keit 的回答 您不想在打开灯箱时滚动处于活动状态 如果是这种情况 您可以使用以下 css 在打开灯箱的同时向正文添加一个类 这个解决方案的好处是它保留了滚动 空间
  • 从 JSNI 调用 Java 方法

    我想调用Java方法test 来自 JSNI 变量successHandler 但是 我收到错误 ERROR Line 110 Missing qualifier on instance method com gw myProject cl
  • UiBinder 中的 gwt 按钮

    我需要创建一个按钮 所以它是一个带有图像的按钮 gwt with UiBinder 但我不确定如何进行 这是我的ui xml code
  • GWT CellTable getRowElement 抛出 IndexOutOfBoundsException

    我在 GWT 中使用 CellTable 并尝试在发生某些事件时向行添加样式 添加样式的代码如下 Range range playlistTable getVisibleRange int start range getStart for
  • 无法取消 GWT 中的重复计时器

    我正在尝试在 GWT 中安排一个重复计时器 它将每一毫秒运行一次 轮询某个事件 如果发现满意 则执行某些操作并取消计时器 我尝试这样做 final Timer t new Timer public void run if condition
  • 如何自动将 gwt.codesvr 附加到页面 URL

    在托管模式下运行 GWT 应用程序时 通常需要在查询字符串参数中添加代码服务器的位置 例如 而不是index html可能需要打开index html gwt codesvr 127 0 0 1 9997 问题是gwt codesvr通常不
  • GWT 有自己的类路径概念吗?

    GWT 编译器是否有自己的 类路径 概念 与正常的编译时类路径分开 GWT 应用程序 及其内部工作方式 是否具有与普通 JRE 运行时类路径分开的自己的类路径的概念 GWT 有模块的概念 每个模块都会声明其源路径中有哪些包 模块可以扩展其他
  • GWT 多个 html 页面和导航

    您好 首先我想提一下 我知道基于 ajax 的应用程序和同一页面的重用 这里的要求是 我想要两个单独的页面 一个用于登录 另一个用于主应用程序 现在 这并不是因为我只是想要它 而是因为我在两个页面中有非常不同的布局 我很乐意将其与 html
  • JsInterop“com 未定义”

    尝试使用 JsInterop 与每个 Javascript 的 LibGDX 项目进行通信 我正在关注 将 Java 类型导出到 JavaScript 示例here http www gwtproject org doc latest De
  • 如何在 GWT 中实现登录屏幕?

    我正在为后端应用程序编写一个小型 GWT 前端 我想知道 GWT 应用程序的最佳安全模型是什么 我正在考虑实现一种 RPC 方法 该方法从客户端网页接收用户密码的 MD5 然后将会话 ID 传回客户端页面 或失败代码 所有后续调用都将简单地
  • gwt 文本框添加更改处理程序

    我有一个从设计师那里收到的文本框 但是我在 GWT 中编写了操作 问题是文本框为空 但是当通过按下按钮用值填充文本框时 将显示警报框 通知值已更改 但没有成功 帮助我 TextBox zip1 null function onModuleL
  • 为什么使用 GWT.create() 而不是 new?

    有什么区别GWT create SomeClass class and new SomeClass 为什么你会使用其中一种而不是另一种 GWT createGWT 编译器使用延迟绑定 延迟绑定是 GWT 编译器的一项功能 它的工作原理是在编

随机推荐