私はGWT CellListを持っています。各セルには、1 つの画像、2 つのラベル、および 1 つのボタンがあります。
ユーザーがセルをクリックするたびに、onSelected イベントが発生します。
ユーザーがボタンをクリックすると onClick イベントを発生させ、他の領域 (ボタン内ではない) をクリックすると onSelected を発生させます。
それは可能ですか?
私はGWT CellListを持っています。各セルには、1 つの画像、2 つのラベル、および 1 つのボタンがあります。
ユーザーがセルをクリックするたびに、onSelected イベントが発生します。
ユーザーがボタンをクリックすると onClick イベントを発生させ、他の領域 (ボタン内ではない) をクリックすると onSelected を発生させます。
それは可能ですか?
onBrowserEvent(...)
最も簡単な方法は、のメソッドをオーバーライドすることですAbstractCell<C>
。<a/>
要素のクリックイベントを処理するために実装した方法は次のとおりです。
@Override
public void onBrowserEvent(Context context, Element parent, BIBonusDto value, NativeEvent event,
ValueUpdater<BIBonusDto> valueUpdater) {
super.onBrowserEvent(context, parent, value, event, valueUpdater);
if ("click".equals(event.getType())) {
EventTarget eventTarget = event.getEventTarget();
if (!Element.is(eventTarget)) {
return;
}
if (parent.getElementsByTagName("a").getItem(0).isOrHasChild(Element.as(eventTarget))) {
if (valueUpdater != null)
valueUpdater.update(value);
}
}
}
セル テンプレートは次のようになります。
<div id='info' class='campaign' style='cursor:default;'>
<div id='claim-inner2'>
<a id='claim-inner1' style='cursor:pointer;'>
<div id='claim-inner' title='Claim Points Now'></div>
</a>
</div>
</div>
イベントが正しいタイプであるかどうかを確認する必要があり、それが要素である場合は、正しいタイプであるかどうかを確認し、アクションを値アップデータ コールバックにデリゲートできます。
このようなものが欲しいと思います http://gwt.google.com/samples/Showcase/Showcase.html#!CwCellSampler
ActionCell または ButtonCell のいずれかを使用できます。
これがあなたの目的に役立つかどうか教えてください。