Ik zit met een probleempje wat betreft het Observer pattern. Ik heb verscheidene methoden in een Observable die notifyObservers() aanroepen. Nu is mijn probleem het volgende: ik zou moeten kunnen achterhalen van uit welke methode die notify kwam, om zo in m'n update van m'n Observer navenant te kunnen reageren. Want niet alle updates zijn hetzelfde. Een situatieschets:
Het AbstractTableModel moet anders reageren bij een insert als bij een remove, dat lijkt me logisch.
Is er misschien een ander manier om zo'n probleem op te lossen? Het is eigenlijk meer een designprobleem bij het mvc pattern in Swing, ik weet nooit goed hoe ik dat moet oplossen.
Alvast bedankt.
// edit: fuck, titel verklooid, kan een moderator die ajb aanpassen naar "[Java] Observer: meerdere notify's, bron achterhalen"
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| public class ProjectObservable extends Observable { // snippet public void insertProject(Project project) { this.projecten.add(project); projectMapper.addProject(project); setChanged(); notifyObservers(project); } public void removeProject(Object project) { int index = this.projecten.indexOf(project); if (index >= 0) { projecten.remove(index); projectMapper.removeProject(((Project) project).getProjectId()); setChanged(); notifyObservers(project); } } } |
Het AbstractTableModel moet anders reageren bij een insert als bij een remove, dat lijkt me logisch.
Is er misschien een ander manier om zo'n probleem op te lossen? Het is eigenlijk meer een designprobleem bij het mvc pattern in Swing, ik weet nooit goed hoe ik dat moet oplossen.
Alvast bedankt.
// edit: fuck, titel verklooid, kan een moderator die ajb aanpassen naar "[Java] Observer: meerdere notify's, bron achterhalen"
[ Voor 4% gewijzigd door Verwijderd op 27-03-2008 11:28 ]