Sto provando a seguire il pattern MVP (specificamente Passive-View) in un'applicazione java swing ui.Modello View Presenter e Composite Views
Il design di base dell'applicazione ricorda un controllo della procedura guidata. Lo schermo è diviso in due parti principali:
- una vista attiva.
- una barra di navigazione statica, con pulsanti di navigazione.
L'utente può utilizzare i pulsanti per modificare la vista attiva, ma la barra viene sempre visualizzata.
Modellando questo scenario, ho una serie di diffrent screers, ognuno con il proprio presenter, l'interfaccia di visualizzazione e l'implementazione di visualizzazione (usando JPanel). Poi ho un relatore Shell, vista intefrace e vista implementazione, usando un JFrame. L'idea è che la shell verrà caricata prima e sempre visualizzata, mostrando la barra di navigazione in basso e lasciando uno spazio per la vista attiva. Il presentatore Shell consentiranno l'impostazione della schermata attiva corrente, un po 'come questo:
interface View {
}
class Presenter {
View view;
public Presenter(View view) {
this.view = view;
}
public View getView() {
return view;
}
}
interface ShellView extends View {
void setActiveView(View activeView);
}
class ShellPresenter extends Presenter {
private ShellView shellView;
public void setActivePresenter(Presenter activePresenter) {
shellView.setActiveView(activePresenter.getView());
}
}
class ShellFrame implements ShellView {
private JFrame frame;
private JPanel activePanel;
private JPanel navigationBar;
public ShellFrame() {
Container c = frame.getContentPane();
c.add(activePanel);
c.add(navigationBar);
}
public setActiveView(View activeView) {
???
}
}
Il problema è nel metodo SetActiveView: Non sono sicuro di come impostare l'ActiveView alla activePanel, quando l'interfaccia View è generale e come tale non sa nulla di JPanels. Ovviamente non vorrei che anche i miei relatori fossero a conoscenza di JPanels.
Hai mai capito come fare? Nessuna di queste risposte è particolarmente buona. Ho appena postato questa discussione: http://stackoverflow.com/questions/17836421/how-dumb-can-mvp-views-really-be – durron597