4

SuggestBoxする方法はありますCellTableか?多分別の解決策がありSuggestBoxますか?

提案機能を備えた編集可能なセルを取得する必要がありますか?

GWT 2.4 を使用しています。

4

4 に答える 4

2

直接追加することはできないと思います。その列のセルとして ClickableTextCell を使用してみてください。次に、ValueUpdater (セルがクリックされたときに呼び出される) をコーディングして、DialogBox を開きます。その DialogBox 内に、SuggestBox とその他のウィジェット ([OK] ボタン、[キャンセル] ボタンなど) を配置します。セルの現在の内容で SelectionBox を初期化します。DialogBox は、その CellTable 行のオブジェクトとその列のフィールドで初期化する追加の状態データを持つ DialogBox サブクラスになる可能性が高いため、OK アクションは、SuggestBox の新しいコンテンツで更新するオブジェクトのフィールドを認識します。 . 本質的には、ポップアップ エディターです。ユーザーはエディターが CellTable に埋め込まれていることを期待するため、理想的ではありませんが、使用できるセル エディターはわずかしかありません (EditTextCell、DatePickerCell、

于 2011-10-01T18:11:34.917 に答える
1

私もこれが必要で、解決策を見つけました(テスト中ですが、それが機能している限り):

TextInputCellから新しいクラスSuggestBoxTextInputCellにコードをコピーしました

public class SuggestBoxTextInputCell extends AbstractInputCell<String, SuggestBoxTextInputCell.ViewData> {

    MySuggestBox suggestBox;

onBrowserEventメソッドにいくつかの行を追加しました。

    // Ignore events that don't target the input.
    InputElement input = getInputElement(parent);
    String eventType = event.getType();
    if (BrowserEvents.FOCUS.equals(eventType)) {
        TextBox textBox = new MyTextBox(input);
        suggestBox = new MySuggestBox(getSuggestOracle(), textBox);
        suggestBox.onAttach();
    } 

    Element target = event.getEventTarget().cast();

MySuggestBoxクラスとMyTextboxクラスは、必要なコンストラクターとメソッドを公開するためにのみ存在します。

private class MyTextBox extends TextBox {
    public MyTextBox(Element element) {
        super(element);
    }
}

private class MySuggestBox extends SuggestBox {

    public MySuggestBox(SuggestOracle suggestOracle, TextBox textBox) {
        super(suggestOracle, textBox);
    }

    @Override
    public void onAttach() {
        super.onAttach();
    }

}

getSuggestOracle()は、必要なSuggestOracleのみを提供します。誰かがこのソリューションを使用できることを願っています。

于 2012-12-13T19:24:54.347 に答える
1

FlexTableの代わりに使用することになりCellTableました。FlexTableテーブルセル内に任意のウィジェットを配置できます。

于 2011-11-03T09:52:21.637 に答える