@@ -18,46 +18,64 @@ public class ConfigurationChangeListener implements ICProjectDescriptionListener
18
18
19
19
@ Override
20
20
public void handleEvent (CProjectDescriptionEvent event ) {
21
- if (event .getEventType () != CProjectDescriptionEvent .ABOUT_TO_APPLY ) {
22
- return ;
23
- }
24
21
25
22
IProject activeProject = event .getProject ();
26
- // only handle arduino nature projects
27
- try {
28
- if (!activeProject .hasNature (Const .ARDUINO_NATURE_ID )) {
29
- return ;
30
- }
31
- } catch (Exception e ) {
32
- // don't care don't update
23
+ SloeberProject sloebberProject = SloeberProject .getSloeberProject (activeProject , true );
24
+ if (sloebberProject == null ) {
25
+ // this is not a sloeber project so ignore
33
26
return ;
34
27
}
28
+ // don't do stuff during project creation
35
29
if (IndexerController .isPosponed (activeProject )) {
36
30
Common .log (new Status (Const .SLOEBER_STATUS_DEBUG , Activator .getId (),
37
31
"Ignoring configuration change during project creation " + activeProject .getName ())); //$NON-NLS-1$
38
32
return ;
39
33
}
40
- ICDescriptionDelta projectDelta = event .getProjectDelta ();
41
- if (projectDelta != null ) {
42
- int projectChangeFlags = projectDelta .getChangeFlags ();
43
- int projectDeltaKind = projectDelta .getDeltaKind ();
34
+
35
+ switch (event .getEventType ()) {
36
+ case CProjectDescriptionEvent .ABOUT_TO_APPLY : {
37
+ ICProjectDescription newProjDesc = event .getNewCProjectDescription ();
38
+ ICConfigurationDescription newConf = newProjDesc .getActiveConfiguration ();
39
+ BoardDescription newBoardDescriptor = sloebberProject .getBoardDescription (newConf );
40
+ sloebberProject .setBoardDescription (newConf , newBoardDescriptor );
41
+ break ;
42
+ }
43
+ case CProjectDescriptionEvent .COPY_CREATED : {
44
+ ICDescriptionDelta projectDelta = event .getProjectDelta ();
45
+ if (projectDelta != null ) {
46
+ int projectChangeFlags = projectDelta .getChangeFlags ();
47
+ int projectDeltaKind = projectDelta .getDeltaKind ();
48
+ }
49
+ ICDescriptionDelta cfgDelta = event .getActiveCfgDelta ();
50
+ if (cfgDelta != null ) {
51
+ int cfgChangeFlags = cfgDelta .getChangeFlags ();
52
+ int cfgDeltaKind = cfgDelta .getDeltaKind ();
53
+ }
54
+ ICDescriptionDelta defaultDelta = event .getDefaultSettingCfgDelta ();
55
+ if (defaultDelta != null ) {
56
+ int changeFlags = defaultDelta .getChangeFlags ();
57
+ int deltaKind = defaultDelta .getDeltaKind ();
58
+ }
59
+ break ;
44
60
}
45
- ICDescriptionDelta cfgDelta = event .getActiveCfgDelta ();
46
- if (cfgDelta != null ) {
47
- int cfgChangeFlags = cfgDelta .getChangeFlags ();
48
- int cfgDeltaKind = cfgDelta .getDeltaKind ();
61
+ default : {
62
+ ICDescriptionDelta projectDelta = event .getProjectDelta ();
63
+ if (projectDelta != null ) {
64
+ int projectChangeFlags = projectDelta .getChangeFlags ();
65
+ int projectDeltaKind = projectDelta .getDeltaKind ();
66
+ }
67
+ ICDescriptionDelta cfgDelta = event .getActiveCfgDelta ();
68
+ if (cfgDelta != null ) {
69
+ int cfgChangeFlags = cfgDelta .getChangeFlags ();
70
+ int cfgDeltaKind = cfgDelta .getDeltaKind ();
71
+ }
72
+ ICDescriptionDelta defaultDelta = event .getDefaultSettingCfgDelta ();
73
+ if (defaultDelta != null ) {
74
+ int changeFlags = defaultDelta .getChangeFlags ();
75
+ int deltaKind = defaultDelta .getDeltaKind ();
76
+ }
49
77
}
50
- ICDescriptionDelta defaultDelta = event .getDefaultSettingCfgDelta ();
51
- if (defaultDelta != null ) {
52
- int changeFlags = defaultDelta .getChangeFlags ();
53
- int deltaKind = defaultDelta .getDeltaKind ();
54
78
}
55
- SloeberProject sloebberProject = SloeberProject .getSloeberProject (activeProject );
56
-
57
- ICProjectDescription newProjDesc = event .getNewCProjectDescription ();
58
- ICConfigurationDescription newConf = newProjDesc .getActiveConfiguration ();
59
- BoardDescription newBoardDescriptor = sloebberProject .getBoardDescription (newConf );
60
- sloebberProject .setBoardDescription (newConf , newBoardDescriptor );
61
79
}
62
80
63
81
}
0 commit comments