Controller.java
1 |
|
2 |
import java.util.Observer; |
3 |
|
4 |
/** |
5 |
* Controller - An abstract controller for an MVC-architecture. |
6 |
* @author Maarten Vangeneugden - 1438256 |
7 |
*/ |
8 |
class Controller { |
9 |
|
10 |
// Members |
11 |
private Observable model; |
12 |
private Observer view; |
13 |
|
14 |
// Constructor |
15 |
public Controller(Observable model, Observer view) { |
16 |
setModel(model); |
17 |
setView(view); |
18 |
} |
19 |
|
20 |
/** |
21 |
* Sets the model for this controller. |
22 |
* @param model The model that is to be controlled. |
23 |
*/ |
24 |
public void setModel(Observable model) { |
25 |
this.model.deleteObserver(this.view); |
26 |
this.model = model; |
27 |
this.model.addObserver(this.view); |
28 |
} |
29 |
|
30 |
/** |
31 |
* Returns the model that is being observed. |
32 |
* @return The model being observed. |
33 |
*/ |
34 |
public Observable getModel() { |
35 |
return model; |
36 |
} |
37 |
|
38 |
/** |
39 |
* Sets the view for this controller. |
40 |
* @param view The view for this controller. |
41 |
*/ |
42 |
public void setView(Observer view) { |
43 |
getModel().deleteObserver(this.view); |
44 |
this.view = view; |
45 |
getModel().addObserver(this.view); |
46 |
} |
47 |
|
48 |
/** |
49 |
* Returns the view for this controller. |
50 |
* @return The view for this controller. |
51 |
*/ |
52 |
public Observer getView() { |
53 |
return view; |
54 |
} |
55 |
|
56 |
} |
57 |