问题标签 [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.
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 来解决这个问题是否有意义?
提前致谢
发射
gwt - 依赖注入在 gwt 2.1 中不起作用
我有一个新项目,我在其中使用 GWT 视图,如 Composite 等。
ProductList
我已经使用 GinInjector注入了主菜单中的项目(如下所示)。这很好用!
我想在某个地方从一个小组件引用我的主菜单中的一个项目,以便对其进行更新。我尝试以这种方式注入它:
但是当我使用时,list
我总是得到null
. 其中,ProductList
是这样定义的:
知道我做错了什么吗?!
解决方案:我没有提到 ProductForm 是使用 UIBinder 的 @UIField 标记的 ProductList 的一个元素,因此注入它将创建一个新对象,而不是使用 UIBinder 创建的对象。
我不得不重组我的代码以包含演示者和事件总线,这样就不需要视图之间的直接引用(@UIField 属性除外)。
gwt - 在 GWT 中使用 Gin 的优缺点
与使用 ClientFactory 相比,在 GWT 中使用 Gin 的优缺点是什么?
gwt - Google Gin 1.5 有哪些新功能?
有没有人尝试过最近发布的Google Gin (1.5)版本?我想知道版本中的新功能以及 GWT 的任何使用经验。
gwt - 注入匿名内部类(GIN)
我有这样的事情:
它是抽象类 ExtReceiver 的匿名内部类。ExtReceiver 用于使用我想提供的 errorHandler 处理错误。
我明白为什么这行不通,因为我使用新的操作员。但我怎么能做这样的事情。我想拥有那个匿名类,而不是将它放在自己的文件或其他东西中。我怎么能注入那个errorHandler?考虑过staticInjections,但看起来这也不起作用(可能是因为我创建了一个匿名类的继承)
与普通 Guice 相反,我不知道 injector.getInstance() 调用。
有关信息:这是一个 requestFactory 调用
gwt - 延迟绑定生成的类内的杜松子酒注入
这是问题所在,我在 GWT 中通过 Deferred Binding 生成了代码,我想在此代码中使用 Gin Injection。
最初,我试图在生成的类中放置一个带有 @Inject 注释的私有构造函数,但 GWT 抱怨它没有公共 noargs 构造函数。无论如何,我在尝试注入没有绑定的抽象内容时也遇到了错误,并且觉得我不可能绑定它,因为我在运行时没有可用的类型文字。
我的下一个尝试是在类本身内部生成一个 Ginjector 和 Gin 模块,但是出现了关于无法找到 Ginjector 注释的 Gin 模块的错误,这让我感到困惑。此外,这会将注入与可能生成的内容隔离开来,而不是外部依赖项。
无论如何,有没有人尝试过这样的事情?有人有什么建议吗?
gwt - 消除 GWT ActivityMapper 样板
我正在使用 GWT 活动和地点框架来构建我的应用程序,结果很好。让我烦恼的一件事是,ActivityMapper
实现是 (1) 接收应用程序中的所有视图 (2) 包含一个巨大的 if/else 块,用于根据接收到的位置实例化活动。随着观看次数的增加,情况只会变得更糟。
我已经在使用Gin,但我不知道如何在这里使用它。
我怎样才能减少或消除我的样板ActivityMapper
?
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 本身是不够的。
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。
请指教。
谢谢。
java - 使用 GWT 的杜松子酒问题 - GWT.create(someClass.class) 每次调用都返回不同的实例
这是我的问题。我在 gwt 项目中使用 Gin,我使用 GWT.create(SomeClass.class) 来获取实例,但问题是我想要 signleton 实例,为此我将 app 模块中的该类绑定为单例。我执行的每一本书 GWT.create(TemplatePanel.class) 它返回不同的实例..为什么?这是我的代码片段。模块
注射器
模板面板
主面板
和入口点