2017-12-11 27 views
1

나는 cdi-helpers addon을 사용 중이며 나의 UIViewMenuUI을 확장하고 있습니다. 나는다른 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 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 
} 

, 나는 데이터베이스에 그 후 일부 데이터를 변경하고 내가 원하는 CDIViews OGSContractView

처럼이 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