问题标签 [gwt-places]
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.
java - GWT - 将演示者的角色与活动分开
从活动中剥离演示者的角色可以获得哪些优势?
为了剖析活动与演示者的关系,可以分离哪些角色/关注点?
为什么要将它们分成两个不同的关注点?
在什么情况下不统一它们才有意义?
举个例子,优点或缺点。
java - 如何摆脱 PlaceHistoryMapper
有没有办法不定义所有Places
的PlaceHistoryMapper
?目前我正在使用Generator
以自动生成所有地点的列表,但我不确定这是正确的方法。
发电机:
mvp - GXT + GWT MVP 在单个应用程序中?
我正在开发这个使用 100% gxt 代码的项目。现在我们有另一个使用 GWT MVP 模式编写的小项目,我们的任务是将这两个项目集成到一个项目中。因此,我们几乎将在 gxt 和 mvp 代码(包括活动和地点)之间进行来回的方法调用。我是使用 mvp 模式的新手,如果将两者结合起来真的是个好主意,我会有点困惑。另一个(小)项目曾经也是 gxt,直到它被使用 mvp 模式重写。所以我可以选择返回旧的 gxt 代码或将新的 mvp 模式集成到主 gxt 应用程序中。但是由于 gxt 不支持活动/位置概念,因此不能直接从 gxt 调用 mvp 代码。你需要调用 mvp 代码时传入虚假数据以模拟地点等。
因此,我非常感谢 MVP 领域专家对如何解决这种情况的任何意见......
java - GWT Places/Activity & MVP 的解释?
我了解地点和活动与 MVP 是分开的。P&A 用于管理浏览器历史,MVP 是一种架构模式。但是,很明显,它们在区域上交错和重叠,这个问题是关于它们如何能够团结一致地一起工作。
我刚刚阅读了 GWT Places & Activites,并推荐了 MVP 结构,我头晕目眩。我需要有人来确认我有基本的想法。
APlaceHistoryHandler
同时具有 aPlaceController
和PlaceHistoryMapper
。当您在浏览器地址栏中输入特定 URL 时,它会PlaceHistoryHandler
使用它PlaceHistoryMapper
来确定Place
应该将哪个 URL 传递给它的PlaceController
. 反过来PlaceController
,将适当的发射PlaceChangeEvent
到EventBus
.
一个或多个ActivityManager
s 在总线上侦听此类PlaceChangeEvent
s,并将这些 s 映射Place
到一个Activity
,这应该是 MVP 架构中的Presenter组件。
返回的具体Activity
(演示者)应该有一个模型注入视图(通常是 UiBinder),它实现了AcceptsOneWidget
. AcceptsOneWidget
然后(通过)启动该组件Activity#start(...)
,GWT 自动将其内容呈现给浏览器。
我所说的是否不正确、误导或误解?如果是这样,请纠正我。很多代码都是基于这个理解写的……
java - 为什么 GWT 应用程序不显示?
更新:我即将为这个问题添加一个赏金。我在这里将整个项目的源代码添加到 GitHub:
https://github.com/doctrang/gwt-activities-places-mvp-example
我决定将我的重命名SimpleModule
为WebModule
;因此,尽管在我下面的所有代码片段中,GWT 模块都被命名为SimpleModule
or simplemodule
,但在我的最新代码中,您将看到模块分别命名为WebModule
和webmodule
- 但它们是相同的 1!
注意:我知道我在这里可能没有完美地设置东西,并且可能有一些SimpleModule.css
根本没有使用的死代码(等),但这是我的第一个 GWT 应用程序,我只想得到这个东西启动并运行!
我正在尝试我的第一个 GWT 应用程序(2.5.1),并尝试使用推荐的 Places & Activities 框架(用于历史管理)以及基本的 MVP 架构来显示一个非常简单的 UI。
为简单起见,我已将所有 Java 代码放在我的SimpleModule.java
(入口点)中。一旦我得到这个概念验证工作,我将分解SimpleModule.java
成更多的类。
我的目标是在用户访问我的主页 (me.example.com) 时加载 GWT 应用程序。正因为如此,我创建了一个SimpleModule implements EntryPoint
,然后将主机页面从SimpleModule.html
to重命名index.html
(这样当用户访问 me.example.com 或 me.example.com/index.html 时,他们会拉下SimpleModule
)。
我的WAR目录结构:
并且index.html
:
并且web.xml
:
并且SimpleModule.java
:
并且LoginDisplay.ui.xml
:
更新:和SimpleModule.gwt.xml
:
服务器启动后的网页源:
当我在 Dev 模式下运行它时(在 上调用 Java 的 Ant 目标com.google.gwt.dev.DevMode
),我得到 DevMode 工具启动而没有错误。当我选择“启动应用程序”时,我得到一个空白网页。当我打开 Firebug 并四处寻找错误时,我看不到任何.
我的设置有什么问题???为什么我看不到一个带有登录字段的简单图像徽标?提前致谢!
编辑:我的最新更新。我遵循@Raphael 的建议(继承 Place 和 Activity 模块,并将@UITemplate
注释添加到LoginDisplayUiBinder
),我得到标签“Hello,GWT!” 打印到我的浏览器!!!然后我修改了我的onModuleLoader()
方法,如下所示:
现在我得到以下异常:
gwt - GWT Places/Activity 与 GWTP PlaceManager
我是 GWT 的新手,如果我应该使用 GWTP PlaceManager 或 GWT Places/Activity,我有点困惑。我阅读了 GWTP 和 PlaceManager ,它看起来很简单,并且使用的代码比看起来非常复杂的活动、地点和映射器更少(我现在不太了解它..)但我认为最好采用推荐的方式谷歌?!使用 GWTP 方式有主要缺点吗?当我决定稍后使用历史记录时,两者都使用是否有意义?我可以用 GWTP 做主播吗?
我的应用程序由一个带有主菜单和内容区域的标题组成。内容区由左区和右区组成。左侧区域是应该链接到右侧区域中的“地点”的 achnor。GWTP nestedPresenters 似乎是最好和最简单的方法。但是我可以用 GWTP 做到这一点吗?你会推荐使用谷歌的方式吗?
我希望你能帮我弄清楚一些事情。:) 谢谢!
java - 摆脱 GWT MVP 样板
按照关于场所和活动 + MVP 的文档,对于我必须创建的每个页面:
- 一个地方
- 一个活动
- 一个分词器(我必须实现分词逻辑)
- 演示者的接口(活动实现此接口)
- 视图的接口
- 视图实现
- 用于视图实现的 ui binder xml
- 应用活动映射器中的一个节点
- gin 模块中的一个节点,用于将视图接口绑定到视图实现
我创建了一个具有基本功能(5 个页面和一个导航栏)的应用程序,我已经拥有超过 1500 行代码和约 40 个文件。我认为这是完全无法维护的,但是我没有找到任何解决这个问题的方法。有几个框架(例如 GWTP)实现了 MVP,但它们也需要相同数量的样板。
我可以使用 spring mvc 或 play 在大约 200 行中实现相同的功能。
我做错了什么,您将如何解决?
gwt - GWT:一种取消 PlaceChangeEvent 的方法?
我Activity/Place
在我的 GWT 项目中使用,如果当前用户未登录,当他导航到 somePlace
时,用户将被重定向到登录页面,如果用户已登录,那么他将被带到那个Place
. 如何有效地实现这个逻辑?
我试图挂钩 PlaceChangeRequestEvent:
不幸的是,它不起作用,因为正在进行的请求MyProtectedPlace
没有被取消。是的,当用户即将离开当前位置时,我可以检查这一点,但这不会有效,因为检查逻辑将分散在整个程序中。
谢谢。
java - 如何为特定的位置生成可导航的 URL?
如何生成 URL 以导航到slotted中的特定位置?我知道要将当前用户导航到特定位置,它只是(假设定义了 slottedController 并指向一个有效的SlottedController实例):
但是,我的用例是生成一个要插入到电子邮件中的 URL,当收件人收到电子邮件时,他们会单击该 URL 并导航到指定的位置。我将如何在开槽中生成这样的 URL?
java - 理解 GWT AbstractActivity 的启动方法
我正在尝试学习 GWT 推荐的 MVP 和他们的活动和地点 API(是的,我知道它们是两个不同的东西,但它们似乎很好地相互配合)。
在很多活动/地点的代码示例中,我一直在AbstractActivity
impls 中看到以下类似代码:
我相信第一行 ( view.setPresenter(this);
) 是在 View 和 Presenter 之间创建双向性。但我不确定第二行 ( containerWidget.setWidget(view.asWidget());
) 完成了什么。所以,2个问题:
- 是什么
containerWidget
?它从何而来?它是附加到的RootPanel
吗?换句话说,将我们的 View 设置为它的价值是什么? - 为什么该
AbstractActivity#start(...)
方法接受EventBus
arg?从该方法内部向/从总线发送/接收事件是否需要和/或典型?