1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package pl.edu.agh.cast.data.persistence;
19
20 import java.beans.PropertyChangeListener;
21 import java.util.Collection;
22 import java.util.Map;
23 import java.util.UUID;
24
25 import org.eclipse.core.runtime.IProgressMonitor;
26
27 import pl.edu.agh.cast.data.model.IDataSet;
28 import pl.edu.agh.cast.data.model.IElement;
29 import pl.edu.agh.cast.data.model.presentation.IPresentationDataSet;
30 import pl.edu.agh.cast.data.model.presentation.IPresentationElement;
31 import pl.edu.agh.cast.data.model.property.PropertyChangeProviderHelper;
32
33
34
35
36
37
38 public class ObservablePersistenceProvider extends AbstractPersistenceProviderDecorator implements
39 IObservablePersistenceProvider {
40
41 private PropertyChangeProviderHelper pcpHelper = new PropertyChangeProviderHelper(this);
42
43
44
45
46
47
48
49 public ObservablePersistenceProvider(IPersistenceProvider provider) {
50 super(provider);
51 }
52
53
54
55
56
57
58
59
60
61 @Override
62 public final void addPropertyChangeListener(PropertyChangeListener listener) {
63 pcpHelper.addPropertyChangeListener(listener);
64 }
65
66
67
68
69
70
71
72 @Override
73 public final void removePropertyChangeListener(PropertyChangeListener listener) {
74 pcpHelper.removePropertyChangeListener(listener);
75 }
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90 protected final void firePropertyChange(String property, Object oldValue, Object newValue) {
91 pcpHelper.firePropertyChange(property, oldValue, newValue);
92 }
93
94
95
96
97
98
99
100
101
102
103 @Override
104 public void destroy() {
105 super.destroy();
106 firePropertyChange(Events.DESTORYED_EVENT, null, this);
107 }
108
109
110
111
112
113
114 @Override
115 public void initialize() {
116 super.initialize();
117 firePropertyChange(Events.INITIALIZED_EVENT, this, null);
118 }
119
120
121
122
123
124
125 @Override
126 public UUID saveDataSet(IDataSet<? extends IElement> dataSet) {
127 UUID id = super.saveDataSet(dataSet);
128 firePropertyChange(Events.NEW_DATA_SET_EVENT, null, id);
129 return id;
130 }
131
132
133
134
135
136
137
138 @Override
139 public UUID saveDataSet(IDataSet<? extends IElement> dataSet, IProgressMonitor monitor) {
140 UUID id = super.saveDataSet(dataSet, monitor);
141 firePropertyChange(Events.NEW_DATA_SET_EVENT, null, id);
142 return id;
143 }
144
145
146
147
148
149
150 @Override
151 public Map<UUID, UUID> saveDataSets(Collection<IDataSet<? extends IElement>> dataSets) {
152 Map<UUID, UUID> dsIdMap = super.saveDataSets(dataSets);
153 firePropertyChange(Events.NEW_DATA_SETS_EVENT, null, dsIdMap);
154 return dsIdMap;
155 }
156
157
158
159
160
161
162
163 @Override
164 public Map<UUID, UUID> saveDataSets(Collection<IDataSet<? extends IElement>> dataSets, IProgressMonitor monitor) {
165 Map<UUID, UUID> dsIdMap = super.saveDataSets(dataSets, monitor);
166 firePropertyChange(Events.NEW_DATA_SETS_EVENT, null, dsIdMap);
167 return dsIdMap;
168 }
169
170
171
172
173
174
175
176 @Override
177 public <T extends IPresentationDataSet<? extends IPresentationElement<? extends IElement>>> T saveDiagram(
178 T presentationDataSet) {
179 T savedDataSet = super.saveDiagram(presentationDataSet);
180 firePropertyChange(Events.DIAGRAM_SAVED_EVENT, null, savedDataSet);
181 return savedDataSet;
182 }
183
184
185
186
187
188
189
190
191 @Override
192 public <T extends IPresentationDataSet<? extends IPresentationElement<? extends IElement>>> T saveDiagram(
193 T presentationDataSet, IProgressMonitor monitor) {
194 T savedDataSet = super.saveDiagram(presentationDataSet, monitor);
195 firePropertyChange(Events.DIAGRAM_SAVED_EVENT, null, savedDataSet);
196 return savedDataSet;
197 }
198
199
200
201
202
203
204 @Override
205 public UUID renameDataSet(UUID id, String newName) {
206 UUID newId = super.renameDataSet(id, newName);
207 firePropertyChange(Events.NEW_DATA_SET_EVENT, null, id);
208 return newId;
209 }
210
211
212
213 }