1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package net.sf.jdiskcatalog.view;
24
25 import java.util.HashMap;
26 import java.util.Map;
27
28 import net.sf.jdiskcatalog.api.Document;
29 import net.sf.jdiskcatalog.api.Node;
30 import net.sf.jdiskcatalog.api.NodeSelectionListener;
31 import net.sf.jdiskcatalog.api.View;
32
33
34 public class ViewManager implements NodeSelectionListener
35 {
36 private Document document = null;
37 private Node node = null;
38
39 private Map<Class<? extends View>, View> views = new HashMap<Class<? extends View>, View>();
40
41 public void add(View view)
42 {
43 views.put(view.getClass(), view);
44 view.setNodeSelectionListener(this);
45 view.setDocument(document);
46 view.nodeSelected(node);
47 }
48
49 public View getView(Class<? extends View> clazz)
50 {
51 return views.get(clazz);
52 }
53
54 public void setDocument(Document document)
55 {
56 this.document = document;
57 for (View view: views.values())
58 view.setDocument(document);
59 }
60
61 public void nodeSelected(Node node)
62 {
63 this.node = node;
64 for (View view: views.values())
65 view.nodeSelected(node);
66 }
67
68 public void refresh()
69 {
70 for (View view: views.values())
71 view.refresh();
72 }
73 }