2017-12-11 3 views
1

Ich benutze cdi-helpers Addon und meine UI erweitert ViewMenuUI. Ich habe CDIViews wieWie CDIView aktualisieren, um Änderungen in einem anderen CDIView widerzuspiegeln?

OGSContractView

@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(){...} 
} 

und

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 
} 

In SchoolView, ich bin einige Daten in der Datenbank ändern und danach möchte ich Rufen Sie OGSContractView.refreshList() zu aktualisieren te einige Felder dort.

Wie kann ich das tun?

Antwort

1

Für aktualisierte Frage. Sie müssen nicht aus der anderen Ansicht aufrufen.

können Sie Methode überschreiben public void enter(ViewChangeEvent event) auf OGSContractView, wie

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

Above Verfahren durch interne Navigator jedes Mal, wenn Sie zu dieser Ansicht eingeben genannt wird.

+0

@RezaPayambari hinzugefügt Update zu beantworten, falls Sie keine direkte Referenz zu sehen (wie es ohne Injektion zu tun). – pirho

+0

Ja! Es war ein blöder Fehler, eine falsche Frage zu stellen. Aber ich brauche trotzdem einen Navigator oder brauche in diesem Fall keinen Navigator, auch nicht in 'ViewMenuUI'? –

+0

@RezaPayambari Keine Notwendigkeit für einen Navigator mehr es wird von ViewMenuUI intern verwendet, wie ich den Code sah. Implementiere diese Methode einfach in meiner aktualisierten Antwort. Ich glaube es ist was du brauchst. BTW: Ich habe meine Kommentare aus dieser Antwort gelöscht, die nicht mehr gültig waren. bitte mach das selbe, um die Seite sauber zu halten :) – pirho

Verwandte Themen