J'essaie de suivre le modèle MVP (en particulier Passive-View) dans une application java swing ui.Présentation du modèle Présentateur et vues composites
La conception de base de l'application rappelle un contrôle de l'assistant. L'écran est divisé en deux parties principales:
- une vue active.
- une barre de navigation statique, avec des boutons de navigation.
L'utilisateur peut utiliser les boutons pour changer la vue active, mais la barre est toujours affichée.
En modélisant ce scénario, j'ai un tas de graveurs diffirent, chacun avec son propre présentateur, l'interface d'affichage et l'implémentation de la vue (en utilisant JPanel). Ensuite, j'ai un présentateur Shell, voir intefrace et voir l'implémentation, en utilisant un JFrame. L'idée est que le shell va charger en premier et toujours en affichant, en affichant la barre de navigation du bas et en laissant un espace pour la vue active. Le présentateur de la coque permettra la mise à l'écran actif actuel, un peu comme ceci:
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) {
???
}
}
Le problème est dans la méthode SetActiveView: Je ne sais pas comment régler le ActiveView au activePanel, lorsque l'interface de visualisation est générale et en tant que tel, ils ne savent rien sur JPanels. Évidemment, je ne voudrais pas que mes présentateurs connaissent aussi JPanels.
Avez-vous déjà trouvé comment faire? Aucune de ces réponses n'est particulièrement bonne. Je viens de poster ce fil: http://stackoverflow.com/questions/17836421/how-dumb-can-mvp-views-really-be – durron597