问题标签 [gwt-mvp]

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 投票
2 回答
2459 浏览

gwt - GWT、MVP、GIN、代码拆分?

如何最小化 GWT 应用用户浏览器最初下载的代码量?好吧,只需将潜在的大操作包装在 GWT.runAsync() 调用中即可。然而,由于我们的应用程序使用 GWT 最佳实践(依赖注入,MVP 模式),它并不像 GWT 文档描述的那么简单。您能否给我一个关于如何将代码拆分与 GIN 结合使用的想法?

0 投票
2 回答
595 浏览

gwt - GWT MVP 介绍问题

我已经阅读了很多在这里提出的 gwt-mvp 问题,但是由于我对这种设计模式完全陌生,所以我想问一些问题:

[1] Activity-Place 模式与 mvp 模式不同?

[2] 在 MVP 模式中,presenters 包含逻辑。现在小部件/控件的逻辑在活动中定义?

[3] CustomPlace 类是固定的(由 Eclipse 插件构建它们)或者我可以放置数据/方法吗?

[4] CustomView里面的Presenter接口有什么用?添加哪些数据/方法有意义?

[5] 我想构建一个应用程序,该应用程序将使用许多将保存到数据库中的数据结构。我在这里阅读了其他一些帖子,我将使 MVP 的模型部分存在于每个活动中。因此,我认为每次在启动时创建每个活动的数据结构并加载其值(如果需要从 db 加载),并在用户转到另一个视图后更新数据库。您如何看待这种方法?

0 投票
2 回答
755 浏览

gwt - 在我的 GWT MVP 中使用 HasClickHandlers 以外的东西

我面临着与类似 StackOverflow 问题所面临的问题类似的问题Way to specify multiple interfaces in Java但它特别适用于http://code.google.com/webtoolkit/articles/mvp中提供的 GWT MVP 示例框架-architecture.html

在本例中,在 /Contacts/src/com/google/gwt/sample/contacts/client/presenter/ContactsPresenter.java 文件中,界面 Display 包含以下方法:

我想在这里创建一个 getSuggestBox() 方法,而不是这些按钮。在我的 Presenter 文件的 bind() 方法中,我想调用

并为这些创建处理程序。

为此,我的第一个解决方案是创建一个 HasSearchHandlers 接口,如下所示:

然后尝试使用该方法

然而,到目前为止,这一切都失败了。我不能使用多态性说

在我的 ContactsView 文件版本中实现 getSuggestBox(),我也无法将 SuggestBox 转换为 HasSearchHandlers——我得到了 ClassCastException。JRE 知道 HasSearchHandlers 是一个空接口,所以我不明白为什么 SuggestBox 必须显式实现 HasSearchHandlers 才能使这种转换工作。类 SuggestBox 实现了 HasSearchHandlers 接口中的所有内容;这还不够吗?

在这篇文章的第一个链接中作为替代方案提供的通用接口给我带来了类似的困难,因为它做了同样的事情而不称它为“HasSearchHandlers”。鉴于这个问题,最好的设计步骤是什么?我应该如何在 GWT MVP 框架中实现和创建“getSuggestBox()-like”机制?

0 投票
2 回答
84 浏览

gwt - roo 1.1.5 示例 gwtNoEntities 无法加载

我正在构建 roo 示例 gwtNoEntities,我收到以下失败日志。任何人都可以解决这个问题。请告诉我。

[ERROR] ScaffoldMobileApp.java:[3,0] packag e com.springsource.foo.client.managed.activity does not exist [ERROR] ScaffoldMobileApp.java:[5,45] packa ge com.springsource.foo.client.managed.ui does not exist

0 投票
1 回答
120 浏览

java - GWT Place Class 增强可行性

我正在进行思想实验来调查增强 Place 类的可行性。假设 Google 会为我们提供这样的增强功能,那么 Place 类的以下增强功能会有所帮助吗?

让我们说 Place 类被增强为具有方法

然后,我们将能够做到这一点:

这样 ActivityMapper 就会如此简单......

然而,我的思想实验,权衡当前的情况,导致我不得不做这些

或者更糟糕的是,遵循示例/教程......

如果你是 GWT 开发团队,是否有任何技术动机(或消极动机)来做出这种改变?更好的是,如果您是 GWT 开发团队。你为什么不做这个改变?

0 投票
3 回答
1393 浏览

gwt - 在 GWT Activity 的位置令牌的令牌中编码名称/值对的建议方法

在使用 History/Activity/Places api 的 GWT 中,您最终会得到这样的 url

http://192.168.0.104:8888/brokerage.html?gwt.codesvr=192.168.0.104:9997#StartPlace参数

其中 params 一词是可以将参数传递到 StartPlace 对象的“令牌”位置。对于我的大多数应用程序来说,一个字符串就足以重新加载我的数据并按下刷新。但是,在一些活动/地点/页面上,我需要将该地点标记拆分为多个名称/值对。

有人对如何处理这个有建议吗?我目前正在编写一个类,该类通过使用 &name=value 以 url 方式分隔名称/值对来构建字符串。如果有人知道可以处理这个或其他东西的类,那就太好了。

0 投票
2 回答
794 浏览

gwt - GWT 活动 - 使用 SimplePanel 与 DeckPanel(卡片面板)的性能影响

在我见过的大多数活动和地点示例中,人们使用 SimplePanel 作为 ActivityManager 的显示。

我想知道使用 DeckPanel/DeckLayoutPanel 而不是 SimplePanel 是否有好处。围绕实现 AcceptsOnWidget 的 Deck 面板创建包装器相当简单。

我还没有看到任何地方讨论过这个话题。在 GWT 中普遍使用 MVP+Activity 之前,人们通常使用 Tab 面板(内部使用甲板类型面板)和 Deck 面板来控制给定视图内面板之间的切换。

两者之间的区别是 SimplePanel.setWidget(..) 将从 DOM 中删除前一个子元素并附加新的小部件,而甲板类型面板将使用 CSS 来控制当前面板的可见性(即“显示:无”隐藏非活动面板)。

  1. 如果使用甲板面板,通常意味着您将在 DOM 中拥有更多元素。我想这会使用更多的内存并使应用程序“缓慢”,即使这些节点不可见(“显示:无”)。这是真的?

  2. 如果这是真的,为什么 Google 为 TabPanel/TabLayoutPanel 使用甲板面板样式 impl 而不是在内部使用 SimplePanel?

  3. 一种方法比另一种方法更有利吗?

0 投票
1 回答
450 浏览

gwt - GWT sharing services between several modules

I have a project where depending on the user role he's being redirected to completely different UIs right after logging in. I'm planning to separate the project structure into several GWT modules like this:

I will have all the modules except the Login module extend the Base module where I'll store the common UI components I'll need everywhere. (like profile editing and stuff like that). Login module will act like a bootloader and its task will be just to load the correct module right after user aunenticates.

The problem is that all my server-side services which GWT modules invoke are nearly the same for all modules. I have lots of lookup information providing services and in many other cases one user just fills in the information and the other moderates it, so it's also the same service.

As i understand GWT does the calls to the server using urls pattern like this: gwtModuleName/myServiceUrl so in a way the services are gwt module dependent. How can i "share" a single service between several GWT modules?

0 投票
1 回答
2392 浏览

gwt - GWT - 找不到类型“com.myapp.launcher.client.LauncherInitializer”多模块架构

我有一个具有以下结构的项目:

我在 Basic.gwt.xml 中的内容是:

我在 Launcher.gwt.xml 中的内容是:

我在包内的com.myapp.gwt.ui.basic.client所有类都没有引用其他模块包内的任何类。另一方面,其他模块包有很多对基本模块的引用,一些类甚至扩展了基本包内的类。

问题是我在编译到 javascript 启动器模块时遇到了这个错误:

如果您发现我所做的事情有什么值得改变的地方,请告诉我。

0 投票
1 回答
471 浏览

design-patterns - 在 MVP GWT 中创建视图层的最佳实践

我红了关于MVP的 google-gwt 文章 ,想问一下你是如何创建视图层的。假设您在一个视图上有三个不同的“元素”,即树、表格和文本。现在我认为最好的做法是创建这三个元素解耦(我的意思是,如果我不想要 Tree “元素”,在我看来,我会评论该行,例如 setTree(...) in代码,某处)。我也想使用 UIBinder 来创建每个“元素”

所以我的问题是:谁应该负责创建像树或表这样的解耦元素(控制器、演示者或可能视图)

谁负责将这些元素设置到视图中?