1

CellTable を使用する GWT 2.4 プロジェクトがあります。次のような列があります (実際にはもっとあります)。

LastName --- FirstName --- Departments
Smith        Tom           Research, Management

データベースからサーバー上に作成された「ユーザー」オブジェクトから取得した名前。

DB は次のようになります。

users:
  userID
  firstName
  lastName

departments:
  departmentID
  departmentName

user_in_department:
  userID
  departmentID

では、自分の部門をテーブルに表示させる最善の方法は何ですか?

現時点では、RPC を使用してサーバーからユーザー リストと部門リストを取得しています。

ユーザーと部門の関係を取得し、名前をクライアントのユーザーと照合する 3 番目の RPC について考えました。ところで、それを一致させる良い方法は何でしょうか?

しかし、部署をユーザーに一致させたとしても、その情報をテーブルに追加するにはどうすればよいでしょうか?

名前については、私はそれを行うことができます:

    TextColumn<User> firstNameColumn = new TextColumn<User>() {

        @Override
        public String getValue(User object) {
            return object.getFirstName();
        }
    };

しかし、部門は「ユーザー」オブジェクトに保存されていないため、正しい列と行に部門を取得する方法がわかりません。

私はあなたが理解できるように私の問題を十分に説明したことを願っています:)

4

2 に答える 2

0

Userオブジェクトに次のような部門のリストがあると仮定します。

public ArrayList<Department> getDepartments() {
  // ...
}

次のように、部門を一覧表示する列を作成できます。

TextColumn<User> departmentsColumn = new TextColumn<User>() {

    @Override
    public String getValue(User object) {
        StringBuilder departments = new StringBuilder();
        for(int i=0; i < object.getDepartments().size(); i++) {
            if (i>0) {
              departments.append(",");
            }
            departments.append(object.getDepartments().get(i).getDepartmentName());
        }
        return departments.toString();
    }
};
于 2012-03-14T02:56:04.143 に答える
0

最初の答えに加えて、CellTable は、行に特定のタイプのオブジェクトのリストを表示するようにパラメーター化されているため、そのオブジェクトには部門のリストだけでなくユーザー名も含める必要があります。User オブジェクトを介してそのデータを利用できるようにするか、基礎となるモデルの要素として新しいデータ (UserDepartmentDTO など) を作成する必要があります。

于 2012-03-14T06:48:00.477 に答える