SuggestBox
する方法はありますCellTable
か?多分別の解決策がありSuggestBox
ますか?
提案機能を備えた編集可能なセルを取得する必要がありますか?
GWT 2.4 を使用しています。
SuggestBox
する方法はありますCellTable
か?多分別の解決策がありSuggestBox
ますか?
提案機能を備えた編集可能なセルを取得する必要がありますか?
GWT 2.4 を使用しています。
直接追加することはできないと思います。その列のセルとして ClickableTextCell を使用してみてください。次に、ValueUpdater (セルがクリックされたときに呼び出される) をコーディングして、DialogBox を開きます。その DialogBox 内に、SuggestBox とその他のウィジェット ([OK] ボタン、[キャンセル] ボタンなど) を配置します。セルの現在の内容で SelectionBox を初期化します。DialogBox は、その CellTable 行のオブジェクトとその列のフィールドで初期化する追加の状態データを持つ DialogBox サブクラスになる可能性が高いため、OK アクションは、SuggestBox の新しいコンテンツで更新するオブジェクトのフィールドを認識します。 . 本質的には、ポップアップ エディターです。ユーザーはエディターが CellTable に埋め込まれていることを期待するため、理想的ではありませんが、使用できるセル エディターはわずかしかありません (EditTextCell、DatePickerCell、
私もこれが必要で、解決策を見つけました(テスト中ですが、それが機能している限り):
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のみを提供します。誰かがこのソリューションを使用できることを願っています。