2016-09-22 44 views
0

私はgwtで作業を始めました。次のタスクを解決しようとしています。 エクストラとコンポジットの2つのクラスMonth and Yearがあります。そして、私の実装クラスで私はそれが更新のコンソールに表示()メソッドupdateCompositeを呼び出し、それが画面上に再描画いないとき私の問題があるウィジェットを強制的に再描画する方法

UiField(provided = true) 
Composite composite; 

Month month; 

Year year; 
... 
//Constructor 
@Inject 
MyClassImpl(){ 
    month = new Month(); 
    year = new Year(); 
    composite = month; 
} 

updateComposite(){ 
    composite = year; 
    logger.fine("composite = " + composite); 
} 

持っています。私の質問に対する答えはとてもシンプルですが、私はそれを見つけることができませんでした。私はここでHow can I force GWT widget to update?と他の場所を見た。

答えて

2

クラス内のフィールド(JSオブジェクトの場合はプロパティに変換されます)の場合、コンポーネントをDOMにスワップしない場合は値を変更します。

DOMの古い値の代わりに新しい値を入れる必要があります。あなたのやり方はあなたのui.xmlに大きく依存します。 1つの可能性は、ui.xmlの代わりにSimplePanelを使用し、適切なウィジェットを表示するようにsetWidgetを使用することです。

+0

ありがとうございました。私はsetWidgetのソースコードを見て、ウィジェットをDOMツリーにアタッチしているのを忘れてしまいました。 – Evgen

関連する問題