author | timkelly |
Wed, 05 Aug 2009 17:35:39 -0500 | |
changeset 51 | 49c226a8748e |
parent 45 | 70f756c14af3 |
child 52 | 42077b7eab6e |
permissions | -rw-r--r-- |
37 | 1 |
/******************************************************************************* |
2 |
* Copyright (c) 2008 Nokia and others. |
|
3 |
* All rights reserved. This program and the accompanying materials |
|
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
|
5 |
* which accompanies this distribution, and is available at |
|
6 |
* http://www.eclipse.org/legal/epl-v10.html |
|
7 |
* |
|
8 |
* Contributors: |
|
9 |
* Nokia - Initial API and implementation |
|
10 |
*******************************************************************************/ |
|
11 |
||
12 |
package org.eclipse.cdt.debug.core.executables; |
|
13 |
||
14 |
import java.util.ArrayList; |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
15 |
import java.util.Arrays; |
37 | 16 |
import java.util.Collection; |
17 |
import java.util.Collections; |
|
18 |
import java.util.Comparator; |
|
19 |
import java.util.HashMap; |
|
20 |
import java.util.List; |
|
21 |
||
22 |
import org.eclipse.cdt.debug.core.CDebugCorePlugin; |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
23 |
import org.eclipse.cdt.debug.internal.core.executables.ExecutablesChangeEvent; |
37 | 24 |
import org.eclipse.cdt.debug.internal.core.executables.StandardExecutableImporter; |
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
25 |
import org.eclipse.cdt.debug.internal.core.executables.StandardExecutableProvider; |
37 | 26 |
import org.eclipse.cdt.debug.internal.core.executables.StandardSourceFileRemapping; |
27 |
import org.eclipse.cdt.debug.internal.core.executables.StandardSourceFilesProvider; |
|
28 |
import org.eclipse.core.runtime.IPath; |
|
29 |
import org.eclipse.core.runtime.IProgressMonitor; |
|
30 |
import org.eclipse.core.runtime.IStatus; |
|
31 |
import org.eclipse.core.runtime.MultiStatus; |
|
32 |
import org.eclipse.core.runtime.PlatformObject; |
|
33 |
import org.eclipse.core.runtime.Status; |
|
34 |
import org.eclipse.core.runtime.SubProgressMonitor; |
|
35 |
import org.eclipse.core.runtime.jobs.Job; |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
36 |
import org.eclipse.debug.core.DebugPlugin; |
37 | 37 |
|
38 |
/** |
|
39 |
* The Executables Manager maintains a collection of executables built by all of |
|
40 |
* the projects in the workspace. Executables are contributed by instances of |
|
41 |
* IExecutablesProvider. |
|
42 |
* |
|
43 |
* @author Ken Ryall |
|
44 |
* |
|
45 |
*/ |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
46 |
public class ExecutablesManager extends PlatformObject { |
37 | 47 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
48 |
private final HashMap<String, Executable> executables = new HashMap<String, Executable>(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
49 |
private final List<IExecutablesChangeListener> changeListeners = Collections.synchronizedList(new ArrayList<IExecutablesChangeListener>()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
50 |
private final List<ISourceFileRemapping> sourceFileRemappings = Collections.synchronizedList(new ArrayList<ISourceFileRemapping>()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
51 |
private final List<IExecutableProvider> executableProviders = Collections.synchronizedList(new ArrayList<IExecutableProvider>()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
52 |
private final List<ISourceFilesProvider> sourceFileProviders = Collections.synchronizedList(new ArrayList<ISourceFilesProvider>()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
53 |
private final List<IExecutableImporter> executableImporters = Collections.synchronizedList(new ArrayList<IExecutableImporter>()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
54 |
private boolean refreshNeeded = true; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
55 |
private boolean tempDisableRefresh = false; |
37 | 56 |
|
57 |
private final Job refreshJob = new Job("Get Executables") { |
|
58 |
||
59 |
@Override |
|
60 |
public IStatus run(IProgressMonitor monitor) { |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
61 |
refreshExecutables(monitor); |
37 | 62 |
return Status.OK_STATUS; |
63 |
} |
|
64 |
}; |
|
65 |
||
66 |
private static ExecutablesManager executablesManager = null; |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
67 |
|
37 | 68 |
public static ExecutablesManager getExecutablesManager() { |
69 |
if (executablesManager == null) |
|
70 |
executablesManager = new ExecutablesManager(); |
|
71 |
return executablesManager; |
|
72 |
} |
|
73 |
||
74 |
public ExecutablesManager() { |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
75 |
addSourceFileRemapping(new StandardSourceFileRemapping()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
76 |
addExecutableImporter(new StandardExecutableImporter()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
77 |
addExecutablesProvider(new StandardExecutableProvider()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
78 |
addSourceFilesProvider(new StandardSourceFilesProvider()); |
37 | 79 |
} |
80 |
||
81 |
public void addExecutablesChangeListener(IExecutablesChangeListener listener) { |
|
82 |
changeListeners.add(listener); |
|
83 |
} |
|
84 |
||
85 |
public void removeExecutablesChangeListener(IExecutablesChangeListener listener) { |
|
86 |
changeListeners.remove(listener); |
|
87 |
} |
|
88 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
89 |
public void addSourceFileRemapping(ISourceFileRemapping remapping) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
90 |
sourceFileRemappings.add(remapping); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
91 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
92 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
93 |
public void removeSourceFileRemapping(ISourceFileRemapping remapping) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
94 |
sourceFileRemappings.remove(remapping); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
95 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
96 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
97 |
public void addExecutableImporter(IExecutableImporter importer) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
98 |
executableImporters.add(importer); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
99 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
100 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
101 |
public void removeExecutableImporter(IExecutableImporter importer) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
102 |
executableImporters.remove(importer); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
103 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
104 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
105 |
public void addExecutablesProvider(IExecutableProvider provider) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
106 |
executableProviders.add(provider); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
107 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
108 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
109 |
/** |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
110 |
* @since 6.0 |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
111 |
*/ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
112 |
public void addSourceFilesProvider(ISourceFilesProvider provider) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
113 |
sourceFileProviders.add(provider); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
114 |
} |
37 | 115 |
|
116 |
/** |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
117 |
* @since 6.0 |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
118 |
*/ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
119 |
public void removeSourceFilesProvider(ISourceFilesProvider provider) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
120 |
sourceFileProviders.remove(provider); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
121 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
122 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
123 |
public void removeExecutablesProvider(IExecutableProvider provider) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
124 |
executableProviders.remove(provider); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
125 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
126 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
127 |
public IStatus refreshExecutables(IProgressMonitor monitor) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
128 |
if (tempDisableRefresh) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
129 |
return Status.OK_STATUS; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
130 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
131 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
132 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
133 |
synchronized (executables) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
134 |
HashMap<String, Executable> oldList = new HashMap<String, Executable>(executables); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
135 |
executables.clear(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
136 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
137 |
IExecutableProvider[] exeProviders = getExecutableProviders(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
138 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
139 |
Arrays.sort(exeProviders, new Comparator<IExecutableProvider>() { |
37 | 140 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
141 |
public int compare(IExecutableProvider arg0, IExecutableProvider arg1) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
142 |
int p0 = arg0.getPriority(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
143 |
int p1 = arg1.getPriority(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
144 |
if (p0 > p1) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
145 |
return 1; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
146 |
if (p0 < p1) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
147 |
return -1; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
148 |
return 0; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
149 |
}}); |
37 | 150 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
151 |
refreshNeeded = false; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
152 |
monitor.beginTask("Refresh Executables", exeProviders.length); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
153 |
for (IExecutableProvider provider : exeProviders) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
154 |
Executable[] exes = provider.getExecutables(new SubProgressMonitor(monitor, 1)); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
155 |
for (Executable executable : exes) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
156 |
executables.put(executable.getPath().toOSString(), executable); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
157 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
158 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
159 |
monitor.done(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
160 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
161 |
synchronized (changeListeners) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
162 |
Collection<Executable> newExes = executables.values(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
163 |
Executable[] exeArray = newExes.toArray(new Executable[newExes.size()]); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
164 |
Collection<Executable> oldExes = oldList.values(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
165 |
Executable[] oldArray = oldExes.toArray(new Executable[oldExes.size()]); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
166 |
for (IExecutablesChangeListener listener : changeListeners) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
167 |
listener.executablesChanged(new ExecutablesChangeEvent(oldArray, exeArray)); |
37 | 168 |
} |
169 |
} |
|
170 |
} |
|
171 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
172 |
return monitor.isCanceled() ? Status.CANCEL_STATUS : Status.OK_STATUS; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
173 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
174 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
175 |
public Executable[] getExecutables() { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
176 |
if (refreshNeeded) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
177 |
try { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
178 |
refreshJob.schedule(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
179 |
refreshJob.join(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
180 |
} catch (InterruptedException e) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
181 |
DebugPlugin.log( e ); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
182 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
183 |
} |
45
70f756c14af3
merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
37
diff
changeset
|
184 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
185 |
synchronized (executables) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
186 |
{ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
187 |
Collection<Executable> exes = executables.values(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
188 |
return exes.toArray(new Executable[exes.size()]); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
189 |
} |
37 | 190 |
} |
191 |
||
192 |
/** |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
193 |
* @since 6.0 |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
194 |
*/ |
37 | 195 |
public String remapSourceFile(Executable executable, String filePath) { |
196 |
synchronized (sourceFileRemappings) { |
|
197 |
for (ISourceFileRemapping remapping : sourceFileRemappings) { |
|
198 |
String remappedPath = remapping.remapSourceFile(executable, filePath); |
|
199 |
if (!remappedPath.equals(filePath)) |
|
200 |
return remappedPath; |
|
201 |
} |
|
202 |
} |
|
203 |
return filePath; |
|
204 |
} |
|
205 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
206 |
public void importExecutables(final String[] fileNames, IProgressMonitor monitor) { |
37 | 207 |
boolean handled = false; |
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
208 |
try { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
209 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
210 |
tempDisableRefresh = true; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
211 |
monitor.beginTask("Import Executables", executableImporters.size()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
212 |
synchronized (executableImporters) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
213 |
Collections.sort(executableImporters, new Comparator<IExecutableImporter>() { |
37 | 214 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
215 |
public int compare(IExecutableImporter arg0, IExecutableImporter arg1) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
216 |
int p0 = arg0.getPriority(fileNames); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
217 |
int p1 = arg1.getPriority(fileNames); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
218 |
if (p0 < p1) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
219 |
return 1; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
220 |
if (p0 > p1) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
221 |
return -1; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
222 |
return 0; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
223 |
}}); |
37 | 224 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
225 |
for (IExecutableImporter importer : executableImporters) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
226 |
handled = importer.importExecutables(fileNames, new SubProgressMonitor(monitor, 1)); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
227 |
if (handled || monitor.isCanceled()) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
228 |
break; |
37 | 229 |
} |
230 |
} |
|
231 |
} |
|
232 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
233 |
} finally { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
234 |
tempDisableRefresh = false; |
37 | 235 |
} |
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
236 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
237 |
if (handled) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
238 |
refreshExecutables(monitor); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
239 |
monitor.done(); |
37 | 240 |
} |
241 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
242 |
public ISourceFileRemapping[] getSourceFileRemappings() { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
243 |
return sourceFileRemappings.toArray(new ISourceFileRemapping[sourceFileRemappings.size()]); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
244 |
} |
37 | 245 |
|
246 |
public IExecutableProvider[] getExecutableProviders() { |
|
247 |
return executableProviders.toArray(new IExecutableProvider[executableProviders.size()]); |
|
248 |
} |
|
249 |
||
250 |
/** |
|
251 |
* @since 6.0 |
|
252 |
*/ |
|
253 |
public ISourceFilesProvider[] getSourceFileProviders() { |
|
254 |
return sourceFileProviders.toArray(new ISourceFilesProvider[sourceFileProviders.size()]); |
|
255 |
} |
|
256 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
257 |
public IExecutableImporter[] getExecutableImporters() { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
258 |
return executableImporters.toArray(new IExecutableImporter[executableImporters.size()]); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
259 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
260 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
261 |
public void scheduleRefresh(IExecutableProvider provider, long delay) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
262 |
refreshNeeded = true; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
263 |
refreshJob.schedule(delay); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
264 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
265 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
266 |
public boolean refreshNeeded() { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
267 |
return refreshNeeded; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
268 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
269 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
270 |
public boolean executableExists(IPath exePath) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
271 |
synchronized (executables) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
272 |
return executables.containsKey(exePath.toOSString()); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
273 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
274 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
275 |
|
45
70f756c14af3
merge carbide bug 6152 from CDT 5.0 (inernal) for executables performance improvements.
timkelly
parents:
37
diff
changeset
|
276 |
/** |
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
277 |
* @since 6.0 |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
278 |
*/ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
279 |
public String[] getSourceFiles(final Executable executable, |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
280 |
IProgressMonitor monitor) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
281 |
String[] result = new String[0]; |
37 | 282 |
synchronized (sourceFileProviders) { |
283 |
Collections.sort(sourceFileProviders, new Comparator<ISourceFilesProvider>() { |
|
284 |
||
285 |
public int compare(ISourceFilesProvider arg0, ISourceFilesProvider arg1) { |
|
286 |
int p0 = arg0.getPriority(executable); |
|
287 |
int p1 = arg1.getPriority(executable); |
|
288 |
if (p0 < p1) |
|
289 |
return 1; |
|
290 |
if (p0 > p1) |
|
291 |
return -1; |
|
292 |
return 0; |
|
293 |
}}); |
|
294 |
||
295 |
monitor.beginTask("Finding source files in " + executable.getName(), sourceFileProviders.size()); |
|
296 |
for (ISourceFilesProvider provider : sourceFileProviders) { |
|
297 |
String[] sourceFiles = provider.getSourceFiles(executable, new SubProgressMonitor(monitor, 1)); |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
298 |
if (sourceFiles.length > 0) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
299 |
{ |
37 | 300 |
result = sourceFiles; |
301 |
break; |
|
302 |
} |
|
303 |
} |
|
304 |
monitor.done(); |
|
305 |
} |
|
306 |
return result; |
|
307 |
} |
|
308 |
||
309 |
/** |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
310 |
* @since 6.0 |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
311 |
*/ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
312 |
public IStatus removeExecutables(Executable[] executables, IProgressMonitor monitor) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
313 |
IExecutableProvider[] exeProviders = getExecutableProviders(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
314 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
315 |
IStatus result = Status.OK_STATUS; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
316 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
317 |
Arrays.sort(exeProviders, new Comparator<IExecutableProvider>() { |
37 | 318 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
319 |
public int compare(IExecutableProvider arg0, IExecutableProvider arg1) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
320 |
int p0 = arg0.getPriority(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
321 |
int p1 = arg1.getPriority(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
322 |
if (p0 > p1) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
323 |
return 1; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
324 |
if (p0 < p1) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
325 |
return -1; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
326 |
return 0; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
327 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
328 |
}); |
37 | 329 |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
330 |
MultiStatus combinedStatus = new MultiStatus(CDebugCorePlugin.PLUGIN_ID, IStatus.WARNING, "Couldn't remove all of the selected executables", null); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
331 |
refreshNeeded = false; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
332 |
monitor.beginTask("Remove Executables", exeProviders.length); |
37 | 333 |
for (Executable executable : executables) { |
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
334 |
boolean handled = false; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
335 |
IStatus rmvStatus = Status.OK_STATUS;; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
336 |
for (IExecutableProvider provider : exeProviders) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
337 |
if (!handled) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
338 |
{ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
339 |
rmvStatus = provider.removeExecutable(executable, new SubProgressMonitor(monitor, 1)); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
340 |
handled = rmvStatus.getSeverity() == IStatus.OK; |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
341 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
342 |
} |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
343 |
if (!handled) |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
344 |
{ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
345 |
combinedStatus.add(rmvStatus); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
346 |
result = combinedStatus; |
37 | 347 |
} |
348 |
} |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
349 |
monitor.done(); |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
350 |
|
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
351 |
return result; |
37 | 352 |
} |
353 |
||
354 |
/** |
|
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
355 |
* @since 6.0 |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
356 |
*/ |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
357 |
public void setRefreshNeeded(boolean refresh) { |
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
358 |
refreshNeeded = true; |
37 | 359 |
} |
360 |
||
51
49c226a8748e
CDT 6.0 from cdt_6_0 branch (eclipse.org cvs repository). This overwrites previous CDT 6.0 merges.
timkelly
parents:
45
diff
changeset
|
361 |
} |