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.
}
相关推荐
Google Web Toolkit(GWT)是一个用于开发和优化复杂浏览器端应用的开源工具集,它允许开发者使用Java语言编写前端代码,然后通过编译器将Java代码转换成兼容各主流浏览器的JavaScript、HTML和CSS。《Google Web工具...
Google Web Toolkit(GWT)是Google推出的一款强大的Web开发框架,专注于帮助开发者使用Java语言创建高性能、跨浏览器的Web应用程序。GWT g-2.10.0是该框架的一个重要版本更新,提供了许多增强的功能和优化,以提升...
GWT(Google Web Toolkit) 是 Google 最近推出的一个开发 Ajax 应用的框架,它支持用 Java 开发和调试 Ajax 应用,本文主要介绍如何利用 GWT 进行 Ajax 的开发。 GWT特性简介 1.动态,可重用的UI组件 GWT提供的...
Google Web Toolkit(GWT)是Google推出的一款开源的、基于Java的Web开发框架,它允许开发者使用Java语言来编写前端应用程序。GWT-2.8.2是该SDK的一个版本,提供了最新的特性和改进,旨在简化Web应用的开发流程,...
### Google Web Toolkit (GWT) 入门指南 #### 一、引言 随着网络技术的发展,用户对Web应用的期望越来越高,不仅要求其功能强大,还希望具有良好的交互性和用户体验。为此,一种名为Ajax(Asynchronous JavaScript...
《Google Web Toolkit Applications》这本书是针对Google Web Toolkit(GWT)这一强大开发工具的深入指南。GWT是一款由Google开发的开源JavaScript框架,它允许开发者使用Java语言来编写Web应用程序,然后自动编译成...
### Google Web Toolkit (GWT) 开发 Ajax 技术详解 #### 一、GWT特性简介 **GWT**(Google Web Toolkit)是Google推出的一款用于构建和优化复杂Web前端应用的开发工具包。它通过提供一系列强大的特性,极大地简化...
在"ajax例子,Google Web Toolkit 1.0.21-ajax example"中,我们可以预期找到的是一个使用GWT 1.0.21构建的Ajax示例应用。这个示例可能展示了如何使用GWT库创建异步通信,以及如何处理服务器返回的数据。通过学习这个...
### 使用Google Web Toolkit (GWT) 开发基于AJAX的SAP NetWeaver J2EE框架Web应用 #### 概述 本文档旨在提供一种利用Google Web Toolkit (GWT) 在SAP NetWeaver J2EE框架下开发AJAX基础Web应用的方法。SAP ...
谷歌Web工具包(Google Web Toolkit,简称GWT)是一种开源的Java框架,它允许开发者使用Java语言编写客户端的Web应用程序,然后自动编译为优化过的JavaScript代码。GWT的核心理念是利用Java的强类型、面向对象的特性...
Google Web Toolkit(GWT)是主要工具,它允许开发者使用 Java 语言来编写前端的 AJAX 应用程序。Ajax,即异步 JavaScript 和 XML,是一种用于创建快速互动网页的技术。通过 GWT,Java 开发者无需深入学习 ...
### Google Web Toolkit (GWT):工作原理与应用实例 #### 一、GWT简介 Google Web Toolkit(GWT)是一种强大的开发框架,用于构建基于AJAX的Web应用程序。GWT的主要特点在于它允许开发者完全使用Java语言进行前端...
Google Web Toolkit(GWT)是Google推出的一款开源的JavaScript开发框架,它允许开发者使用Java语言来编写前端Web应用。GWT API文档是开发者理解和使用GWT进行开发的重要参考资料,提供了全面的技术指南和API参考。 ...
Google Web Toolkit(GWT)1.5.3是一款由Google开发的开源JavaScript开发框架,它允许Java开发者使用Java语言来构建高性能、跨浏览器的Web应用程序。这个版本是GWT的一个重要里程碑,带来了许多改进和新特性,使得...
Google Web Toolkit(GWT)是一款由Google推出的开源框架,专为Java开发者设计,旨在简化和加速Web应用程序的开发过程。它允许开发者使用Java语言编写前端代码,并将其编译成高性能的JavaScript,从而在浏览器上运行...
《加速GWT:构建企业级Google Web Toolkit应用》是一本深度探讨如何利用Google Web Toolkit(GWT)构建高性能Ajax应用程序的专业书籍。本书作者Vipul Gupta深入解析了GWT的核心功能,以及如何通过GWT生成优化的...
**Java开发人员的Ajax:Google Web Toolkit (GWT) 入门** Google Web Toolkit (GWT) 是一个强大的工具,它允许Java开发人员使用熟悉的Java语言来构建高性能、跨浏览器的Ajax应用程序。GWT通过将Java代码编译为优化...
**GWT (Google Web Toolkit)** 是一款由Google开发的开源工具包,专为Java开发者设计,使得他们能够使用Java语言创建高效、动态且交互性强的Ajax应用。GWT通过将Java代码编译成浏览器可执行的JavaScript和HTML,解决...