自分のSuggestionOracle( "AuSuggestOracle")と自分のSuggestions( "AuMultiWordSuggestion")を実装する方法を学びました。私の場合、提案オブジェクトはDTOで構成されています。選択イベントでは、適切に反応するためにこのdto(またはその一部のフィールド)が必要です。この特別なオラクルとそれらの間のいくつかのロジックを使用して、3つの提案ボックスを含むウィジェットを実装しました。今、私はMVPパターンを適用したいと思います-このウィジェットをプレゼンターとビューで分割します。現時点では、プレゼンターの表示インターフェイスは次のようになっています。
public interface Display {
HasSelectionHandlers<Suggestion> getFedLand();
HasSelectionHandlers<Suggestion> getCounty();
HasSelectionHandlers<Suggestion> getCommunity();
AuSuggestOracle getFedLandOracle();
AuSuggestOracle getCountyOracle();
AuSuggestOracle getCommunityOracle();
void clearCounty();
void clearCommunity();
void activateForm();
Widget asWidget();
}
問題は、「AuSuggestOracle」を返すメソッドのモデルに関する暗黙知です。だから私の質問は、ビュー/インターフェイスを「謙虚」にする方法です。私の場合、表示される提案文字列はあいまいであり、どのDTObjectが選択されているかを知るには、少なくとも選択されたアイテムの「id」が必要です。