2017-12-11 14 views
1

私はcdi-helpersアドオンを使用しており、私のUIViewMenuUIを拡張しています。私はCDIViews OGSContractView SchoolView別のCDIViewの変更を反映するためにCDIViewを更新するには?

@UIScoped 
@CDIView("Contract") 
@ViewMenuItem(order = ViewMenuItem.DEFAULT, icon = FontAwesome.BANK) 
public class OGSContractView extends CssLayout implements View{ 
    // There's some UI Fields and some Functions to refresh the UI Fields 
    public void RefreshList(){...} 
} 

SchoolView

@UIScoped 
@CDIView("School") 
@ViewMenuItem(order = ViewMenuItem.DEFAULT, icon = FontAwesome.BANK) 
public class SchoolView extends CssLayout implements View{ 
    //Some UI and functions inside 
    //here, after some changes, I want to call a Refresh_Function 
    //from my OGSContractView class 
    someData.saveInDatabase(); 
    ogsContractView.refreshList(); // here is my problem 
} 

のように、私は、データベース内のいくつかのデータを変更していていると、その後私がしたいですupdaにOGSContractView.refreshList()と電話してくださいそこにいくつかのフィールドがあります。

どうすればいいですか?

答えて

1

更新された質問です。別のビューからrefresh()に電話する必要はありません。

あなたは上記方法

@Override 
public void enter(ViewChangeEvent event) { 
    refresh(): 
} 

は、あなたがそのビューに入るたびに内部ナビゲーターによって呼び出されるように、OGSContractView上の方法public void enter(ViewChangeEvent event)をオーバーライドすることができます。

+0

@RezaPayambariは、あなたがビューを直接参照していない場合(インジェクションなしでそれを行う方法)に備えて、回答を更新しました。 – pirho

+0

はい!偽の質問をするのは愚かな間違いでした。しかし、私はナビゲータを使う必要がありますか、この場合はNavMiterは必要なく、ViewMenuUIでも使えますか? –

+0

@RezaPayambariナビゲータの必要はもうありません。ViewMenuUIはコードを見て内部的に使用されます。私の更新された答えでそのメソッドを実装するだけです。私はそれがあなたが必要とするものだと信じています。 BTW:私はこの答えからもう有効ではなかった私のコメントを削除しました。サイトをきれいに保つために同じことをしてください:) – pirho

関連する問題