001.
package
co.uk.hivedevelopment.greet.client.mvp;
002.
import
net.customware.gwt.dispatch.client.DispatchAsync;
003.
import
net.customware.gwt.presenter.client.DisplayCallback;
004.
import
net.customware.gwt.presenter.client.EventBus;
005.
import
net.customware.gwt.presenter.client.place.Place;
006.
import
net.customware.gwt.presenter.client.place.PlaceRequest;
007.
import
net.customware.gwt.presenter.client.widget.WidgetDisplay;
008.
import
net.customware.gwt.presenter.client.widget.WidgetPresenter;
009.
import
co.uk.hivedevelopment.greet.shared.event.GreetingSentEvent;
010.
import
co.uk.hivedevelopment.greet.shared.rpc.SendGreeting;
011.
import
co.uk.hivedevelopment.greet.shared.rpc.SendGreetingResult;
012.
import
com.allen_sauer.gwt.log.client.Log;
013.
import
com.google.gwt.event.dom.client.ClickEvent;
014.
import
com.google.gwt.event.dom.client.ClickHandler;
015.
import
com.google.gwt.event.dom.client.HasClickHandlers;
016.
import
com.google.gwt.user.client.Window;
017.
import
com.google.gwt.user.client.ui.HasValue;
018.
import
com.google.inject.Inject;
019.
public
class
GreetingPresenter
extends
WidgetPresenter {
020.
021.
022.
023.
024.
private
static
final
String SERVER_ERROR =
"An error occurred while "
025.
+
"attempting to contact the server. Please check your network "
026.
+
"connection and try again."
;
027.
028.
public
interface
Display
extends
WidgetDisplay {
029.
public
HasValue getName();
030.
public
HasClickHandlers getSend();
031.
}
032.
public
static
final
Place PLACE =
new
Place(
"Greeting"
);
033.
034.
private
final
DispatchAsync dispatcher;
035.
036.
037.
038.
039.
private
final
GreetingResponsePresenter greetingResponsePresenter;
040.
@Inject
041.
public
GreetingPresenter(
final
Display display,
042.
final
EventBus eventBus,
043.
final
DispatchAsync dispatcher,
044.
final
GreetingResponsePresenter greetingResponsePresenter) {
045.
super
(display, eventBus);
046.
047.
this
.dispatcher = dispatcher;
048.
049.
this
.greetingResponsePresenter = greetingResponsePresenter;
050.
051.
bind();
052.
}
053.
054.
055.
056.
057.
private
void
doSend() {
058.
Log.info(
"Calling doSend"
);
059.
060.
dispatcher.execute(
new
SendGreeting(display.getName().getValue()),
new
DisplayCallback(display) {
061.
@Override
062.
protected
void
handleFailure(
final
Throwable cause) {
063.
Log.error(
"Handle Failure:"
, cause);
064.
065.
Window.alert(SERVER_ERROR);
066.
}
067.
@Override
068.
protected
void
handleSuccess(
final
SendGreetingResult result) {
069.
070.
eventBus.fireEvent(
new
GreetingSentEvent(result.getName(), result.getMessage()));
071.
}
072.
073.
});
074.
}
075.
@Override
076.
protected
void
onBind() {
077.
078.
display.getSend().addClickHandler(
new
ClickHandler() {
079.
public
void
onClick(
final
ClickEvent event) {
080.
doSend();
081.
}
082.
});
083.
}
084.
@Override
085.
protected
void
onUnbind() {
086.
087.
}
088.
public
void
refreshDisplay() {
089.
090.
091.
}
092.
public
void
revealDisplay() {
093.
094.
095.
}
096.
097.
098.
099.
100.
@Override
101.
public
Place getPlace() {
102.
return
PLACE;
103.
}
104.
@Override
105.
protected
void
onPlaceRequest(
final
PlaceRequest request) {
106.
107.
108.
109.
final
String name = request.getParameter(
"name"
,
null
);
110.
111.
if
(name !=
null
) {
112.
display.getName().setValue(name);
113.
}
114.
}
115.
}
相关推荐
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 GWT特性简介 1.动态,可重用的UI组件 GWT提供的...
通过这本精巧的食谱,深入了解GWT编程世界,其中介绍了GWT Toolkit的常用配方! 它涵盖了广泛的主题,从示例应用程序和面试问题到回调功能和各种小部件。
一组Web开发工具集,包含在客户端将Java代码转为JavaScript的编译器、XML解析器、RCP 官网API、JUnit集成、国际化支持和GUI控件。
ajax例子,Google Web Toolkit 1.0.21-ajax example, Google Web Toolkit 1.0.21
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 Ajax技术是当前开发web应用的非常热门的技术,也是...
Google Web Toolkit Applications(GWT)入门参考资料,具有一定参考价值
google web toolkit (GWT)1.5.3,最新版本!
Google Web Toolkit参考书籍
Google Web toolkit (gwt)的介绍,可以快速进入
Using Google Web Toolkit (GWT) for Developing AJAX-Based Web Applications for the SAP NetWeaver J2EE Framework.pdf
Google Web Toolkit (GWT),可以使用 Java 编程语言编写 AJAX 前端,然后 GWT 会交叉编译到优化的 JavaScript 中,而 JavaScript 可以自动在所有主要浏览器上运行。在开发过程中,您可以用 JavaScript 按照您习惯的...
Google Web Toolkit(GWT)
面向 Java 开发人员的 Ajax 探索 Google Web Toolkit
使用 Google Web Toolkit、Apache Derby 和 Eclipse 构建 Ajax 应用程序 图文教程
Accelerated GWT: Building Enterprise Google Web Toolkit Applications
面向 Java 开发人员的 Ajax: Google Web Toolkit 入门 图文教程
Google Web Toolkit Applications(GWT)中级参考资料,具有一定参考价值
官网gwt SDK ,通过java 开发前端页面,并且自动解决页面兼容及国际化问题,以MVP为主开发模式
GWT学习资料