WEB开发网
开发学院软件开发Java Google App Engine for Java: 第 2 部分:构建杀手... 阅读

Google App Engine for Java: 第 2 部分:构建杀手级应用程序

 2009-09-17 00:00:00 来源:WEB开发网   
核心提示: 注意,ContactListEntryPoint 为 addButton、updateButton、contactGrid 和 addNewButton 连接事件,Google App Engine for Java: 第 2 部分:构建杀手级应用程序(8),具体做法是注册为小部件事件实现侦听器

注意,ContactListEntryPoint 为 addButton、updateButton、contactGrid 和 addNewButton 连接事件。具体做法是注册为小部件事件实现侦听器接口的匿名内部类。这与 Swing 中的事件处理非常相似。这些小部件事件来自由 GUI 创建的小部件(ContactListGUI),我将稍后进行讨论。注意,GUI 类包含 gui_eventXXX 方法来响应 GUI 事件。

ContactListGUI 创建了 GUI 小部件并响应来自它们的事件。ContactListGUI 将 GUI 事件转换为用户希望对 ContactsService 执行的操作。ContactListGUI 使用 ContactServiceDelegate 对 ContactService 调用方法。ContactServiceDelegate 对 ContactService 创建一个异步接口并使用它发出异步 Ajax 调用。ContactServiceDelegate 向 ContactListGUI 通知来自服务的事件(成功或失败)。ContactServiceDelegate 如清单 10 所示:

清单 10. ContactServiceDelegatepackage gaej.example.contact.client;

   
import java.util.List; 
 
import com.google.gwt.core.client.GWT; 
import com.google.gwt.user.client.rpc.AsyncCallback; 
 
public class ContactServiceDelegate { 
  private ContactServiceAsync contactService = GWT.create(ContactService.class); 
  ContactListGUI gui; 
   
  void listContacts() { 
    contactService.listContacts(new AsyncCallback<List<Contact>> () { 
          public void onFailure(Throwable caught) { 
            gui.service_eventListContactsFailed(caught); 
          } 
     
          public void onSuccess(List<Contact> result) { 
            gui.service_eventListRetrievedFromService(result); 
             
          } 
    }//end of inner class 
    );//end of listContacts method call. 
  } 
   
  void addContact(final Contact contact) { 
    contactService.addContact(contact, new AsyncCallback<Void> () { 
      public void onFailure(Throwable caught) { 
        gui.service_eventAddContactFailed(caught); 
      } 
 
      public void onSuccess(Void result) { 
        gui.service_eventAddContactSuccessful(); 
      } 
    }//end of inner class 
    );//end of addContact method call.     
  } 
 
  void updateContact(final Contact contact) { 
    contactService.updateContact(contact, new AsyncCallback<Void> () { 
      public void onFailure(Throwable caught) { 
        gui.service_eventUpdateContactFailed(caught); 
      } 
 
      public void onSuccess(Void result) { 
        gui.service_eventUpdateSuccessful(); 
      } 
    }//end of inner class 
    );//end of updateContact method call.     
  } 
 
  void removeContact(final Contact contact) { 
    contactService.removeContact(contact, new AsyncCallback<Void> () { 
      public void onFailure(Throwable caught) { 
        gui.service_eventRemoveContactFailed(caught); 
      } 
 
      public void onSuccess(Void result) { 
        gui.service_eventRemoveContactSuccessful(); 
      } 
    }//end of inner class 
    );//end of updateContact method call.     
  } 
   
} 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Google App Engine

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接