com.google.gwt.user.client.ui.HTML
ウィジェットを有効または無効にする方法はありますか? 試してみましたが、setEnabled(boolean) メソッドがないようです:S あなたの経験を共有してください
ありがとう
com.google.gwt.user.client.ui.HTML
ウィジェットを有効または無効にする方法はありますか? 試してみましたが、setEnabled(boolean) メソッドがないようです:S あなたの経験を共有してください
ありがとう
残念ながら、Widgetにはそのようなメソッドはありません。
しかし、達成する余地は少しあります。私はグーグルグループの助けを借りてそれを機能させました
public void setEnabled (boolean e)
{
Iterator<Widget> itr = grd.iterator (); // grd is a FlexTable which
contains my form controls
while (itr.hasNext ())
{
Widget w = itr.next ();
if (w instanceof TextBox)
{
TextBox t = (TextBox) w;
t.setEnabled (e);
}
if (w instanceof PasswordTextBox)
{
PasswordTextBox t = (PasswordTextBox) w;
t.setEnabled (e);
}
...
}
入力など、有効または無効にできる HTML 要素はごくわずかです。GWT には、フォーカスを取得できる要素用の setEnabled() があります。
一部のフォーム要素 (入力、オプション) のみを無効にできます。
無効にするには:
widget.getElement().setAttribute("disabled","disabled");
再度有効にするには:
widget.getElement().removeAttribute("disabled");
他のウィジェットについては、「無効化」を模倣するようにスタイルを設定する必要があります。(例: 色をグレーに設定)
有効とはどういう意味かわかりませんが、試してみます。
見えるか見えないかを意味していると思います。
HTMLPanel panel = new HTMLPanel();
panel.setVisible(false); // Disabled
panel.setVisible(true); // Enabled
うまくいけば、それはあなたが探していたものです。
スタイルとイベント処理の実装の両方をオーバーライドする必要があります。に a を保持enableFl
しますMyHTMLPanel extends HTMLPanel
。
ステップ 1 - 有効化および無効化スタイルを指定します。opacity css を使用して、色付けの灰色化のオン/オフを切り替えます。enableFl の状態に基づいて、有効化/無効化機能をオン/オフします。
ステップ 2onBrowserEvent
-独自の enableFl 状態をオーバーライドして実行条件を設定することにより、ウィジェットのイベント処理を無効/有効にします。
ステップ 3 - HTMLPanel 内部のすべてのウィジェットを再帰的に無効にします。
ユース ケースが単純な場合は、 com.google.gwt.user.client.ui.HTMLPanel の代わりに com.google.gwt.user.client.ui.HTML を使用することを選択できます。