3

GWT を使用して GUI フレームワークを構築しようとしています。フレームワークにキャンセル機能を実装するのは難しいと感じています。

必要な機能は次のとおりです。

ポップアップ、グリッドなどを備えた CRUD 画面があります。ユーザーが GUI で何かを変更してから cancel() をクリックすると、何かが変更されたことを示す通知メッセージが表示されます。

私たちが試したアプローチ:

現在、pojo オブジェクト全体のキーと値のハッシュマップを保持し、ユーザーが何かを変更したときに更新されるモデルと比較しようとしています。しかし、これはすべての pojo に多くの不要なコードを追加しており、ユーザーがバックエンドから直接データを追加すると、期待どおりに機能しません。

この機能を実現するエレガントな方法はありますか? * アプリケーションでは* GWT のエディター フレームワーク(https://developers.google.com/web-toolkit/doc/latest/DevGuideUiEditors)を使用していないことに注意してください。

例: 次のような pojo があるとします。

public class Person {

    List<Address> address;
    PhoneNumber phoneData;


    // and so on along with getters and setters

}

このための一般的な clone メソッドをどのように記述すればよいでしょうか? そして、どうにかしてそれを行うことができたとしても、すべての pojo (アプリケーションには何百ものコードがあります) で多くのコードが発生し、正しくないようです。

ライブ バインディングを実現するために GUI で何かが変更されるとすぐに、pojo が更新されることに注意してください。

4

1 に答える 1

0

フォームに「保存」ボタンと「キャンセル」ボタンがありますか?

コンセプトを変えることをお勧めします。OnChange イベント ハンドラーで (GMail、JIRA、その他の多くの最新のアプリケーションのように) ユーザーがオブジェクト プロパティを編集したら、すぐにオブジェクト プロパティを更新します。

セッション スタックへのすべての更新を UpdateAction オブジェクトとして保存し、ユーザーが UpdateAction.undo() メソッドを呼び出してすべてのプロパティ変更を元に戻せるようにします。

利点は次のとおりです。

  1. この設計は、「[編集] をクリックして更新し、[保存] をクリックする」というシナリオよりもはるかにユーザー フレンドリーです。

  2. 個別の表示/編集フォーム/ポップアップ ダイアログは必要ありません。表示と編集の両方を 1 つのフォームで行うだけです。

于 2013-01-09T15:03:24.890 に答える