问题标签 [gwt-gin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1618 浏览

gwt - GWT 小部件/库中的延迟绑定/GIN

我在库/小部件中的延迟绑定和/或依赖注入的概念上有点挣扎。我尝试想出解决以下问题的最佳方法:我想实现一个可视化小部件(复合),它接收一些数据并显示它。

我想将检索数据的方式与实际的可视化部分分开。所以我添加了一个通用接口“DataSource”,如下所示:

我在我的小部件中添加了一个设置器:

为了支持 http 之类的数据源,我还添加了一个抽象类,它实现了 DataSource 接口并在其默认构造函数中采用 URL:

我具体的DataSouce扩展了这个抽象类,实现了接口的fetch方法:

这很好用。我可以创建一个 MyDataSource 类的实例,将它传递给我的小部件的设置器。现在我想让小部件有点可配置。我知道这可以通过依赖注入或延迟绑定来完成。

因此,一种方法是允许小部件的用户在模块 XML 文件中设置 DataSource(类似于它在 gwt-log 库中完成的方式:http ://code.google.com/p/gwt-日志/源/浏览/主干/Log/src/com/allen_sauer/gwt/log/gwt-log-impl.gwt.xml

但是我不知道这是否可能,因为通过将 url 传递给 MyDataSource 的构造函数,我有一个状态,我不确定这如何与延迟绑定一起工作。附带说明:是否可以在模块的 XML 文件中配置 url?

我也担心使用这个小部件/库的人是否可以实现自己的 DataSource 并将其传递给小部件(它不会干扰延迟绑定吗?)

我想另一种解决方案是在使用可视化小部件/库的父应用程序中使用依赖注入(如何传递 url 等?我可能必须注入工厂?)

这两种解决方案中哪一种更好?一般来说,使用延迟绑定或 GIN 来解决这个问题是否有意义?

提前致谢

发射

0 投票
3 回答
1438 浏览

gwt - 依赖注入在 gwt 2.1 中不起作用

我有一个新项目,我在其中使用 GWT 视图,如 Composite 等。

ProductList我已经使用 GinInjector注入了主菜单中的项目(如下所示)。这很好用!

我想在某个地方从一个小组件引用我的主菜单中的一个项目,以便对其进行更新。我尝试以这种方式注入它:

但是当我使用时,list我总是得到null. 其中,ProductList是这样定义的:

知道我做错了什么吗?!

解决方案:我没有提到 ProductForm 是使用 UIBinder 的 @UIField 标记的 ProductList 的一个元素,因此注入它将创建一个新对象,而不是使用 UIBinder 创建的对象。

我不得不重组我的代码以包含演示者和事件总线,这样就不需要视图之间的直接引用(@UIField 属性除外)。

0 投票
1 回答
828 浏览

gwt - 在 GWT 中使用 Gin 的优缺点

与使用 ClientFactory 相比,在 GWT 中使用 Gin 的优缺点是什么?

0 投票
2 回答
531 浏览

gwt - Google Gin 1.5 有哪些新功能?

有没有人尝试过最近发布的Google Gin (1.5)版本?我想知道版本中的新功能以及 GWT 的任何使用经验。

0 投票
1 回答
1285 浏览

gwt - 注入匿名内部类(GIN)

我有这样的事情:

它是抽象类 ExtReceiver 的匿名内部类。ExtReceiver 用于使用我想提供的 errorHandler 处理错误。

我明白为什么这行不通,因为我使用新的操作员。但我怎么能做这样的事情。我想拥有那个匿名类,而不是将它放在自己的文件或其他东西中。我怎么能注入那个errorHandler?考虑过staticInjections,但看起来这也不起作用(可能是因为我创建了一个匿名类的继承)

与普通 Guice 相反,我不知道 injector.getInstance() 调用。

有关信息:这是一个 requestFactory 调用

0 投票
1 回答
822 浏览

gwt - 延迟绑定生成的类内的杜松子酒注入

这是问题所在,我在 GWT 中通过 Deferred Binding 生成了代码,我想在此代码中使用 Gin Injection。

最初,我试图在生成的类中放置一个带有 @Inject 注释的私有构造函数,但 GWT 抱怨它没有公共 noargs 构造函数。无论如何,我在尝试注入没有绑定的抽象内容时也遇到了错误,并且觉得我不可能绑定它,因为我在运行时没有可用的类型文字。

我的下一个尝试是在类本身内部生成一个 Ginjector 和 Gin 模块,但是出现了关于无法找到 Ginjector 注释的 Gin 模块的错误,这让我感到困惑。此外,这会将注入与可能生成的内容隔离开来,而不是外部依赖项。

无论如何,有没有人尝试过这样的事情?有人有什么建议吗?

0 投票
6 回答
2016 浏览

gwt - 消除 GWT ActivityMapper 样板

我正在使用 GWT 活动和地点框架来构建我的应用程序,结果很好。让我烦恼的一件事是,ActivityMapper实现是 (1) 接收应用程序中的所有视图 (2) 包含一个巨大的 if/else 块,用于根据接收到的位置实例化活动。随着观看次数的增加,情况只会变得更糟。

ActivityMapper 截图

我已经在使用Gin,但我不知道如何在这里使用它。

我怎样才能减少或消除我的样板ActivityMapper

0 投票
2 回答
1121 浏览

gwt - 使用 GWT 和 Gin 的跨活动参考

我有一个使用活动和地点的 GWT MVP 应用程序。这是受到 Mauro Bertapelle 的样本(在这个线程中)的启发,显然是基于Thomas Broyer的一些工作。

这就是问题所在:我让 LoginActivity 进行了一个 RPC 调用,如果成功登录,它会返回一个用户。该用户有一个角色(例如,管理员、普通用户、访客)。包括 NavigatorView 在内的多个视图和活动依赖于这个角色来显示或执行。如何将此用户实例获取到其他活动?

我没有 ClientFactory;注入(Gin)用于实例化提供我的活动/演示者的 ActivityProviders 中的视图,并将 ActivityProviders 注入到我的 ActivityMapper 中。所以这可能会简化为一个杜松子酒问题:我如何在需要的地方获得用户参考?这似乎类似于关于 MVP 中全局引用的SO question 。

考虑我是杜松子酒新手,这是我第一次尝试使用它。我猜有一种“杜松子酒方式”可以实现这一点,但我对杜松子酒的了解还不够,无法知道最好的方法(如果应该使用杜松子酒的话)。

非常感谢。

编辑 1:尽管我尽最大努力搜索类似的问题,但我发现这个问题与我的几乎相同(用于查找“相关”链接的 SO 算法是否比搜索更好?)。我认为大卫的杜松子酒回答是正确的。

我认为 EventBus 解决方案是不可能的。我遵循Google 指南,其中涉及在每次 Place 更改时实例化 Activity,因此单个 Event 本身是不够的。

0 投票
1 回答
1900 浏览

gwt - 使用 GWT 和 Guice 的杜松子酒问题。- java.lang.RuntimeException:延迟绑定失败

我在使用 Gin 时遇到问题。这是一个简单的例子。

那么这里是模块

和入口点

和模块xml文件

运行此代码后,出现异常:

错误:无法通过延迟绑定创建“com.mySampleApplication.client.MySampleApplication”的实例。java.lang.RuntimeException:“com.mySampleApplication.client.gin.AppInjector”的延迟绑定失败(您是否忘记继承所需的模块?)。

我尝试使用 gin 1.0 和 guice 2.0。

请指教。

谢谢。

0 投票
2 回答
1790 浏览

java - 使用 GWT 的杜松子酒问题 - GWT.create(someClass.class) 每次调用都返回不同的实例

这是我的问题。我在 gwt 项目中使用 Gin,我使用 GWT.create(SomeClass.class) 来获取实例,但问题是我想要 signleton 实例,为此我将 app 模块中的该类绑定为单例。我执行的每一本书 GWT.create(TemplatePanel.class) 它返回不同的实例..为什么?这是我的代码片段。模块

注射器

模板面板

主面板

和入口点