您最喜欢的GWT MVP框架是什么,以及您选择的原因?
谢谢.
更新:在列表中添加了建议3,4,5.
更新2:在列表中添加了guit.
我正在迈出第一步GWT
.我看完之后有一个问题:
在第一个示例中,Presenter
定义了接口View
.
public class ContactsPresenter implements Presenter {
...
public interface Display extends HasValue<List<String>> {
HasClickHandlers getAddButton();
HasClickHandlers getDeleteButton();
HasClickHandlers getList();
void setData(List<String> data);
int getClickedRow(ClickEvent event);
List<Integer> getSelectedRows();
Widget asWidget();
}
}
Run Code Online (Sandbox Code Playgroud)
在第二个中,View
定义了接口Presenter
.
public interface ContactsView<T> {
public interface Presenter<T> {
void onAddButtonClicked();
void onDeleteButtonClicked();
void onItemClicked(T clickedItem);
void onItemSelected(T selectedItem);
}
void setPresenter(Presenter<T> presenter);
void setColumnDefinitions(List<ColumnDefinition<T>> columnDefinitions);
void setRowData(List<T> rowData);
Widget asWidget();
}
Run Code Online (Sandbox Code Playgroud)
这种差异的想法是什么? …
对于所有GWT大师的问题.
我是GWT的新手,我正在努力了解编写GWT应用程序的最佳实践.我已经完成了基于Ray Ryan在Google I/O 2009上的演讲的"大规模应用程序开发和MVP",它给了我一个很好的起点.我根据列出的最佳实践下载了联系人应用程序的示例源代码.
与示例"Contacts"应用程序相比,我正在尝试使用GWT开发的应用程序有点大(就所涉及的模块而言),因此我想将其拆分为多个函数.
我一直在阅读在GWT应用程序中有一个入口点是个好主意,我不想将所有代码转储到一个AppController类和一个RpcService中,在这种情况下最好的方法是什么?
我如何将控件分派给多个控制器?有没有办法使用GWT框架中的某些类来实现这一目的?
我正在使用GWT Activities and Places框架来构建我的应用程序,结果很好.但令我恼火的一件事是,ActivityMapper
实现是(1)接收应用程序中的所有视图(2)包含一个巨大的if/else块,用于根据接收的位置实例化活动.随着观看次数的增加,它只会变得更糟.
我已经在使用Gin,但我不知道如何在这里使用它.
如何减少或消除我的样板ActivityMapper
?
我只是在学习GWT,所以我还在努力解决它的所有怪癖和特征.我正在阅读他们给出的描述MVP模式的例子,我几乎得到它,除了我想知道一件事.
他们使用的AppController实现了ValueChangeHandler接口,并且在历史记录更改时触发onValueChange方法.
我的问题在于AppController中的onValueChange(我已将它包含在下面,供没有看过示例项目的人使用).它正在对发送的历史记录进行字符串比较,并实例化相应的演示者以处理该操作.对于具有3个动作的示例应用程序来说,这一切都很好,但是如何将其扩展为具有更多操作的真实应用程序?
坚持这种模式会导致相当大/丑else if
,但我仍然太新GWT(和java)推断更大的应用程序更好的模式.
任何帮助是极大的赞赏!
public class AppController implements Presenter, ValueChangeHandler<String> {
...
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if (token != null) {
Presenter presenter = null;
if (token.equals("list")) {
presenter = new ContactsPresenter(rpcService, eventBus, new ContactsView());
}
else if (token.equals("add")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
else if (token.equals("edit")) {
presenter = new EditContactPresenter(rpcService, eventBus, new EditContactView());
}
if (presenter != null) {
presenter.go(container);
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 它是如何工作的?
我看到没有定义标签,例如在UiBinder.ui.xml文件中添加CellTable,比如
文档很少见.
因此,如果它不起作用,我应该在uiBinder类或演示者中放置单元格小部件?
我开始开发一个大型GWT应用程序,在阅读了大量文章和博客文章之后,我试图了解2.2 Model-View-Presenter和2.1 Activities-Places设计模式之间的区别是什么?你推荐哪种模式?为什么?我应该仅仅因为它是"更新"而使用MVP吗?另一方面,地方活动似乎更"直观"......或者我完全忽略了这一点,而MVP只是活动场所的改进版本?
感谢所有GWT大师们:-)
我开始在谷歌上通过示例学习GWT ,我的第一个结论是:代码太多了
像这样:
stocks.add(symbol);
stocksFlexTable.setText(row, 0, symbol);
stocksFlexTable.setWidget(row, 2, new Label());
stocksFlexTable.getCellFormatter().addStyleName(row, 1,
"watchListNumericColumn");
stocksFlexTable.getCellFormatter().addStyleName(row, 2,
"watchListNumericColumn");
stocksFlexTable.getCellFormatter().addStyleName(row, 3,
"watchListRemoveColumn");
Run Code Online (Sandbox Code Playgroud)
GWT是否有任何扩展来减少代码大小和简化创建GWT表单?
我正在使用GWT MVP和UiBinder来创建一个带有DockLayoutPanel的应用程序.我希望南北码头是静态的,包含按钮和链接.我希望在中心和东部码头的两个不同区域拥有动态视图.由于这些动态区域应该彼此独立,我为每个动态显示区域设置不同的ActivityMapper和ActivityManager; 中心,东顶和东底.
如何在加载应用程序时独立初始化这3个不同的显示区域?如何在一个显示区域中从一个Activity切换到另一个Activity而不影响其他区域?
当我使用PlaceController的goTo在一个区域中从一个地方切换到另一个地方时,另一个区域的活动停止.
五月天,请帮忙,五月天!
以下是我的一些代码:
AppViewImpl.ui.xml
<g:DockLayoutPanel styleName="{style.dockPanel}" unit="PX" width="975px" height="100%">
<!-- DOCK PANEL EAST -->
<g:east size="220">
<g:LayoutPanel styleName="{style.eastPanel}">
<g:layer left="0px" width="220px" top="0px" height="105px">
<g:SimpleLayoutPanel ui:field="topRightPanel"/>
</g:layer>
<g:layer left="0px" width="220px" top="110px" height="340px">
<g:InlineLabel styleName="{style.label}" text="ANOTHER DISPLAY AREA"/>
</g:layer>
</g:LayoutPanel>
</g:east>
<!-- DOCK PANEL NORTH -->
<g:north size="110">
<g:LayoutPanel styleName="{style.northPanel}">
<g:layer left="0px" width="755px" top="0px" height="105px">
<g:InlineLabel styleName="{style.label}" text="NORTH PANEL"/>
</g:layer>
</g:LayoutPanel>
</g:north>
<!-- DOCK PANEL SOUTH -->
<g:south size="20">
<g:LayoutPanel styleName="{style.southPanel}">
<g:layer left="0px" width="755px" top="0px" height="20px">
<g:InlineLabel styleName="{style.label}" …
Run Code Online (Sandbox Code Playgroud) 我正在搜索GWT Design来设置项目.我可以使用MVP(GWTP)或JBoss Errai.我还没有决定.是否有人在其中一个经历过?
您可以给出这些框架的优缺点.