Board logo

标题: 使用 GWT 和 RESTful Web 服务构建动态的组织树(3)实现应用程序数据 bean [打印本页]

作者: look_w    时间: 2018-9-3 12:35     标题: 使用 GWT 和 RESTful Web 服务构建动态的组织树(3)实现应用程序数据 bean

实现应用程序数据 bean在本文中,我使用 Tree 部件显示组织结构。在 GWT 中,Tree 部件包含通常用作树节点的 TreeItem 部件。这里使用 TreeItem 部件作为树节点或树叶,分别代表组织单元和职员。我实现了一个抽象基类 ItemData(清单 4),它有三个属性:id、displayName 和 dataReady。id 是数据条目的 ID,用于构建 RESTful Web 服务请求。它标识 RESTful Web 服务服务器中的资源。displayName 属性是要显示的名称。dataReady 属性是一个标志,表示是否已经从 RESTful Web 服务服务器获得了详细数据,它用于帮助实现惰性装载。在创建 TreeItem 部件时,把一个 ItemData bean 与这个部件关联起来。它只有资源 ID 和显示名。在子类中声明的详细数据只在用户选择这个树叶或打开树节点时才会装载。使用抽象方法  buildURI 构建 RESTful Web 服务请求的 URI,这个方法由子类 EmployeeItemData(清单 5)和 OrganizationItemData(清单 6)实现。EmployeeItemData 包含职员的详细信息,OrganizationItemData 包含组织单元的详细信息。
清单 4. edu.ucar.cisl.gwtRESTTutorialView.client.bean.ItemData
1
2
3
4
5
6
7
8
9
10
11
1.  package edu.ucar.cisl.gwtRESTTutorialView.client.bean;
   
2.  public abstract class ItemData {
3.      protected int id = -1;     
4.      protected String displayName;
5.      protected boolean dataReady = false;
   
6.        ...//setters and getters
  
7.      abstract public String buildUri();
8.  }




清单 5. edu.ucar.cisl.gwtRESTTutorialView.client.bean.EmployeeItemData
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1.  package edu.ucar.cisl.gwtRESTTutorialView.client.bean;
   
2.  public class EmployeeItemData extends ItemData {
3.      protected String firstName;
4.      protected String lastName;
5.      protected String nickName;
6.      protected String phone;
7.      protected String email;
8.      protected String title;
   
9.       ...//setters and getters
  
10.     public String buildUri(){
11.         return "http://localhost:8080/gwtRESTTutorial/rrh/employees/" + id;
12.     }
13. }




清单 6. edu.ucar.cisl.gwtRESTTutorialView.client.bean.OrganizationItemData
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.  package edu.ucar.cisl.gwtRESTTutorialView.client.bean;

2.  public class OrganizationItemData extends ItemData {
3.      protected String name;
4.      protected String leadName;
5.      protected String leadTitle;
6.      protected int totalEmployees;
   
7.      ...//getters and setters
   
8.     public String buildUri() {
9.         return "http://localhost:8080/gwtRESTTutorial/rrh/organizations/" + id;
10.    }
11. }






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0