059b3eae1f60699df61ce1df878eef62bf490c3d
[Mograsim.git] / plugins / net.mograsim.plugin.core / src / net / mograsim / plugin / nature / ProjectContextEvent.java
1 package net.mograsim.plugin.nature;
2
3 import org.eclipse.core.resources.IProject;
4 import org.eclipse.core.resources.IResourceChangeEvent;
5
6 public class ProjectContextEvent
7 {
8         private final MachineContext machineContext;
9         private final ProjectContextEventType eventType;
10
11         public ProjectContextEvent(MachineContext machineContext, ProjectContextEventType eventType)
12         {
13                 this.machineContext = machineContext;
14                 this.eventType = eventType;
15         }
16
17         public final MachineContext getMachineContext()
18         {
19                 return machineContext;
20         }
21
22         public final ProjectContextEventType getEventType()
23         {
24                 return eventType;
25         }
26
27         public final IProject getProject()
28         {
29                 return machineContext.getProject();
30         }
31
32         public enum ProjectContextEventType
33         {
34                 NEW, MACHINE_DEFINITION_CHANGE, OTHER_CHANGE, REFRESH, CLOSE, DELETE;
35
36                 static ProjectContextEventType ofResourceChangeEvent(int id)
37                 {
38                         switch (id)
39                         {
40                         case IResourceChangeEvent.POST_CHANGE:
41                                 return OTHER_CHANGE;
42                         case IResourceChangeEvent.PRE_CLOSE:
43                                 return CLOSE;
44                         case IResourceChangeEvent.PRE_DELETE:
45                                 return DELETE;
46                         case IResourceChangeEvent.PRE_REFRESH:
47                                 return REFRESH;
48                         default:
49                                 return null;
50                         }
51                 }
52         }
53 }