|
26 | 26 | import io.sloeber.core.tools.Libraries;
|
27 | 27 |
|
28 | 28 | public class IndexerListener implements IIndexChangeListener, IIndexerStateListener {
|
29 |
| - protected Set<IProject> ChangedProjects = new HashSet<>(); |
30 |
| - Job installLibJob = null; |
| 29 | + private static Set<IProject> ChangedProjects = new HashSet<>(); |
| 30 | + private static Job installLibJob = null; |
31 | 31 |
|
32 |
| - @Override |
33 |
| - public void indexChanged(IIndexChangeEvent event) { |
34 |
| - IProject project = event.getAffectedProject().getProject(); |
35 |
| - try { |
36 |
| - if (project.hasNature(Const.ARDUINO_NATURE_ID)) { |
37 |
| - this.ChangedProjects.add(project); |
38 |
| - } |
39 |
| - } catch (CoreException e) { |
40 |
| - // ignore |
41 |
| - e.printStackTrace(); |
42 |
| - } |
| 32 | + @Override |
| 33 | + public void indexChanged(IIndexChangeEvent event) { |
| 34 | + IProject project = event.getAffectedProject().getProject(); |
| 35 | + try { |
| 36 | + if (project.hasNature(Const.ARDUINO_NATURE_ID)) { |
| 37 | + Common.log(new Status(Const.SLOEBER_STATUS_DEBUG, Activator.getId(), |
| 38 | + "Index of project changed :" + project.getName())); //$NON-NLS-1$ |
| 39 | + ChangedProjects.add(project); |
| 40 | + } |
| 41 | + } catch (CoreException e) { |
| 42 | + // ignore |
| 43 | + e.printStackTrace(); |
| 44 | + } |
43 | 45 |
|
44 |
| - } |
| 46 | + } |
45 | 47 |
|
46 |
| - @Override |
47 |
| - public void indexChanged(IIndexerStateEvent event) { |
| 48 | + @Override |
| 49 | + public void indexChanged(IIndexerStateEvent event) { |
48 | 50 |
|
49 |
| - if (event.indexerIsIdle()) { |
50 |
| - if (InstancePreferences.getAutomaticallyImportLibraries()) { |
51 |
| - if ((this.installLibJob == null) || (this.installLibJob.getState() == Job.NONE)) { |
52 |
| - this.installLibJob = new Job("Adding Arduino libs...") { //$NON-NLS-1$ |
| 51 | + if (event.indexerIsIdle()) { |
| 52 | + if (InstancePreferences.getAutomaticallyImportLibraries()) { |
| 53 | + if ((installLibJob == null) || (installLibJob.getState() == Job.NONE)) { |
| 54 | + if (!ChangedProjects.isEmpty()) { |
| 55 | + installLibJob = new Job("Adding Arduino libs...") { //$NON-NLS-1$ |
53 | 56 |
|
54 |
| - @Override |
55 |
| - protected IStatus run(IProgressMonitor monitor) { |
56 |
| - try { |
57 |
| - for (IProject curProject : IndexerListener.this.ChangedProjects) { |
58 |
| - Libraries.checkLibraries(curProject); |
59 |
| - } |
60 |
| - IndexerListener.this.ChangedProjects.clear(); |
61 |
| - } catch (Exception e) { |
62 |
| - Common.log(new Status(IStatus.WARNING, Activator.getId(), |
63 |
| - Messages.Failed_To_Add_Libraries, e)); |
64 |
| - } |
65 |
| - IndexerListener.this.installLibJob = null; |
66 |
| - return Status.OK_STATUS; |
67 |
| - } |
| 57 | + @Override |
| 58 | + protected IStatus run(IProgressMonitor monitor) { |
| 59 | + try { |
| 60 | + for (IProject curProject : ChangedProjects) { |
| 61 | + Common.log(new Status(Const.SLOEBER_STATUS_DEBUG, Activator.getId(), |
| 62 | + "Looking for libraries for project :" + curProject.getName())); //$NON-NLS-1$ |
| 63 | + Libraries.checkLibraries(curProject); |
| 64 | + } |
| 65 | + ChangedProjects.clear(); |
| 66 | + } catch (Exception e) { |
| 67 | + Common.log(new Status(IStatus.WARNING, Activator.getId(), |
| 68 | + Messages.Failed_To_Add_Libraries, e)); |
| 69 | + } |
| 70 | + Common.log(new Status(Const.SLOEBER_STATUS_DEBUG, Activator.getId(), |
| 71 | + "Indexer all projects checked for libraries")); //$NON-NLS-1$ |
| 72 | + installLibJob = null; |
| 73 | + return Status.OK_STATUS; |
| 74 | + } |
68 | 75 |
|
69 |
| - }; |
| 76 | + }; |
70 | 77 |
|
71 |
| - this.installLibJob.setPriority(Job.DECORATE); |
72 |
| - this.installLibJob.schedule(); |
73 |
| - } |
| 78 | + installLibJob.setPriority(Job.DECORATE); |
| 79 | + installLibJob.schedule(); |
| 80 | + } |
| 81 | + } else { |
| 82 | + Common.log(new Status(Const.SLOEBER_STATUS_DEBUG, Activator.getId(), |
| 83 | + "Ignoring indexer idle because install job still running!!!!!")); //$NON-NLS-1$ |
| 84 | + } |
74 | 85 |
|
75 |
| - } |
| 86 | + } |
76 | 87 |
|
77 |
| - } |
78 |
| - } |
| 88 | + } |
| 89 | + } |
79 | 90 |
|
80 | 91 | }
|
0 commit comments