1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 /***
19 * <p>Title: WSMO Studio</p>
20 * <p>Description: Semantic Web Service Editor</p>
21 * <p>Copyright: Copyright (c) 2004-2006</p>
22 * <p>Company: OntoText Lab. / SIRMA </p>
23 */
24
25 package org.semanticgov.ui.wsdl;
26
27 import org.eclipse.core.resources.IResourceChangeEvent;
28 import org.eclipse.core.resources.IResourceChangeListener;
29 import org.eclipse.core.resources.IResourceDelta;
30
31 public class WSDLResourceListener implements IResourceChangeListener {
32
33 public void resourceChanged(IResourceChangeEvent event) {
34 if (isResourceMarkerChange(event.getDelta())) {
35 return;
36 }
37 switch (event.getType()) {
38 case IResourceChangeEvent.PRE_CLOSE:
39 WSDLCache.getCache().reinit();
40 break;
41 case IResourceChangeEvent.PRE_DELETE:
42 WSDLCache.getCache().reinit();
43 break;
44 case IResourceChangeEvent.POST_CHANGE:
45 WSDLCache.getCache().reinit();
46 break;
47 }
48 }
49
50 private boolean isResourceMarkerChange(IResourceDelta delta) {
51 if (delta == null) {
52 return false;
53 }
54 if ((delta.getFlags() & IResourceDelta.MARKERS) == IResourceDelta.MARKERS) {
55 return true;
56 }
57 IResourceDelta[] deltas = delta.getAffectedChildren();
58 if (deltas != null) {
59 for (int i = 0; i < deltas.length; i++) {
60 if (isResourceMarkerChange(deltas[i])) {
61 return true;
62 }
63 }
64 }
65 return false;
66 }
67 }