私はvaadinフレームワークが初めてです。vaadin コンポーネントのボタンをクリックすると、埋め込まれたページを更新しようとしています。
Refresher アドオンを使用できることがわかりましたが、その使用方法に戸惑っています。
助言がありますか ?
私はvaadinフレームワークが初めてです。vaadin コンポーネントのボタンをクリックすると、埋め込まれたページを更新しようとしています。
Refresher アドオンを使用できることがわかりましたが、その使用方法に戸惑っています。
助言がありますか ?
また、更新アドオンを使用することをお勧めします。アプリケーションにも使用していますが、完璧に機能しています。
ちょっとした例として:
//Create the Refresher
final Refresher refresher = new Refresher();
//time period in ms when the Refresher shell call the attached listener
refresher.setRefreshInterval(5000);
//listener that gets called every 5000ms in this example
refresher.addListener(new MyRefresherListener());
//add the Refresher component to your layout
myLayout.addComponent(refresher);
リスナーの実装は次のようになります。
import com.github.wolfie.refresher.Refresher;
import com.github.wolfie.refresher.Refresher.RefreshListener;
public class MyRefreshListener implements RefreshListener {
private static final long serialVersionUID = 1L;
@Override
public void refresh(final Refresher source) {
System.out.println("I am getting refreshed");
// add the refresh page of your application logic here
// e.g. the same code you use for changing views when a button click is happening
}
}
レイアウトにリフレッシャーを追加する際に問題が発生しました
タイプ AbstractOrderedLayout のメソッド addComponent(Component) は、引数に適用できません (リフレッシャー)
これが私が使用したコードの例です:
public class RefresherDemo extends UI {
Refresher refresher;
Label timeLabel;
protected void init(VaadinRequest request) {
final VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
setContent(layout);
timeLabel = new Label(getTime());
refresher = new Refresher();
refresher.setRefreshInterval(500);
refresher.addListener(new RefreshListener(){
@Override
public void refresh(Refresher source) {
timeLabel.setValue(getTime());
}
});
addExtension(refresher);
layout.addComponent(timeLabel);
}
public String getTime(){
DateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
String d = dateFormat.format(date);
return d;
}
}