Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 117295
Collapse All | Expand All

(-)ui/org/eclipse/jdt/internal/ui/fix/CleanUpRefactoringWizard.java (-29 / +93 lines)
Lines 10-15 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jdt.internal.ui.fix;
11
package org.eclipse.jdt.internal.ui.fix;
12
12
13
import java.util.ArrayList;
14
import java.util.List;
15
13
import org.eclipse.core.resources.ResourcesPlugin;
16
import org.eclipse.core.resources.ResourcesPlugin;
14
17
15
import org.eclipse.swt.SWT;
18
import org.eclipse.swt.SWT;
Lines 30-41 Link Here
30
33
31
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
34
import org.eclipse.ui.dialogs.ContainerCheckedTreeViewer;
32
35
36
import org.eclipse.ltk.internal.ui.refactoring.RefactoringUIPlugin;
33
import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
37
import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
34
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
38
import org.eclipse.ltk.ui.refactoring.UserInputWizardPage;
35
39
36
import org.eclipse.jdt.core.ICompilationUnit;
40
import org.eclipse.jdt.core.ICompilationUnit;
37
import org.eclipse.jdt.core.IJavaElement;
41
import org.eclipse.jdt.core.IJavaElement;
38
import org.eclipse.jdt.core.IJavaModel;
42
import org.eclipse.jdt.core.IJavaModel;
43
import org.eclipse.jdt.core.IPackageFragment;
39
import org.eclipse.jdt.core.JavaCore;
44
import org.eclipse.jdt.core.JavaCore;
40
45
41
import org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring;
46
import org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring;
Lines 124-130 Link Here
124
				treeViewer.expandToLevel(compilationUnit, 0);
129
				treeViewer.expandToLevel(compilationUnit, 0);
125
				treeViewer.setChecked(compilationUnit, true);
130
				treeViewer.setChecked(compilationUnit, true);
126
			}
131
			}
127
			treeViewer.setSelection(new StructuredSelection(compilationUnits), true);
132
			treeViewer.setSelection(new StructuredSelection(smallestCommonParents(compilationUnits)), true);
133
		}
134
		
135
		private IJavaElement[] smallestCommonParents(IJavaElement[] elements) {
136
			if (elements.length == 1) {
137
				return elements;
138
			} else {
139
				List parents= new ArrayList();
140
				boolean hasParents= false;
141
				
142
				IJavaElement parent= getParent(elements[0]);
143
				if (parent == null) {
144
					parent= elements[0];
145
				} else {
146
					hasParents= true;
147
				}
148
				parents.add(parent);
149
				
150
				for (int i= 1; i < elements.length; i++) {
151
					parent= getParent(elements[i]);
152
					if (getParent(elements[i - 1]) != parent) {
153
						if (parent == null) {
154
							parent= elements[i];
155
						} else {
156
							hasParents= true;
157
						}
158
						if (!parents.contains(parent)) {
159
							parents.add(parent);
160
						}
161
					}
162
				}
163
				
164
				IJavaElement[] parentsArray= (IJavaElement[])parents.toArray(new IJavaElement[parents.size()]);
165
				if (hasParents) {
166
					return smallestCommonParents(parentsArray);
167
				}
168
				return parentsArray;
169
			}
170
		}
171
		
172
		private IJavaElement getParent(IJavaElement element) {
173
			if (element instanceof ICompilationUnit) {
174
				return element.getParent();
175
			} else if (element instanceof IPackageFragment){
176
				return element.getParent().getParent();
177
			} else {
178
				return element.getParent();
179
			}
128
		}
180
		}
129
181
130
		protected boolean performFinish() {
182
		protected boolean performFinish() {
Lines 146-154 Link Here
146
					refactoring.addCompilationUnit((ICompilationUnit)checkedElements[i]);
198
					refactoring.addCompilationUnit((ICompilationUnit)checkedElements[i]);
147
			}
199
			}
148
			if (!refactoring.hasMultiFix()) {
200
			if (!refactoring.hasMultiFix()) {
149
				NameFixTuple[] multiFixes= getMultiFixes();
201
				IMultiFix[] multiFixes= createAllMultiFixes();
150
				for (int i= 0; i < multiFixes.length; i++) {
202
				for (int i= 0; i < multiFixes.length; i++) {
151
					refactoring.addMultiFix(multiFixes[i].getFix());
203
					refactoring.addMultiFix(multiFixes[i]);
152
				}
204
				}
153
			}
205
			}
154
		}
206
		}
Lines 156-161 Link Here
156
	
208
	
157
	private class SelectFixesPage extends UserInputWizardPage {
209
	private class SelectFixesPage extends UserInputWizardPage {
158
		
210
		
211
		private NameFixTuple[] fMultiFixes;
212
		
159
		public SelectFixesPage(String name) {
213
		public SelectFixesPage(String name) {
160
			super(name);
214
			super(name);
161
		}
215
		}
Lines 207-212 Link Here
207
			storeSettings();
261
			storeSettings();
208
			return super.getNextPage();
262
			return super.getNextPage();
209
		}
263
		}
264
		
265
		private void storeSettings() {
266
			IDialogSettings settings= getCleanUpWizardSettings();
267
			NameFixTuple[] fixes= getMultiFixes();
268
			for (int i= 0; i < fixes.length; i++) {
269
				fixes[i].getFix().saveSettings(settings);
270
			}
271
		}
210
272
211
		private void initializeRefactoring() {
273
		private void initializeRefactoring() {
212
			CleanUpRefactoring refactoring= (CleanUpRefactoring)getRefactoring();
274
			CleanUpRefactoring refactoring= (CleanUpRefactoring)getRefactoring();
Lines 216-226 Link Here
216
				refactoring.addMultiFix(multiFixes[i].getFix());
278
				refactoring.addMultiFix(multiFixes[i].getFix());
217
			}
279
			}
218
		}	
280
		}	
281
		
282
		private NameFixTuple[] getMultiFixes() {
283
			if (fMultiFixes == null) {
284
				IMultiFix[] fixes= createAllMultiFixes();
285
				fMultiFixes= new NameFixTuple[4];
286
				fMultiFixes[0]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_CodeStyleSection_description, fixes[0]);
287
				fMultiFixes[1]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_UnusedCodeSection_description, fixes[1]);
288
				fMultiFixes[2]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_J2SE50Section_description, fixes[2]);
289
				fMultiFixes[3]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_StringExternalization_description, fixes[3]);
290
			}
291
			return fMultiFixes;
292
		}
219
	}
293
	}
220
	
294
	
221
	private final boolean fShowCUPage;
295
	private final boolean fShowCUPage;
222
	private final boolean fShowCleanUpPage;
296
	private final boolean fShowCleanUpPage;
223
	private NameFixTuple[] fMultiFixes;
224
	
297
	
225
	public CleanUpRefactoringWizard(CleanUpRefactoring refactoring, int flags, boolean showCUPage, boolean showCleanUpPage) {
298
	public CleanUpRefactoringWizard(CleanUpRefactoring refactoring, int flags, boolean showCUPage, boolean showCleanUpPage) {
226
		super(refactoring, flags);
299
		super(refactoring, flags);
Lines 247-281 Link Here
247
			addPage(selectSolverPage);
320
			addPage(selectSolverPage);
248
		}
321
		}
249
	}
322
	}
323
	
324
	public static IMultiFix[] createAllMultiFixes() {
325
		IDialogSettings section= getCleanUpWizardSettings();
250
		
326
		
251
	private NameFixTuple[] getMultiFixes() {
327
		IMultiFix[] result= new IMultiFix[4];
252
		if (fMultiFixes == null) {
328
		result[0]= new CodeStyleMultiFix(section);
253
			IDialogSettings settings= CleanUpRefactoringWizard.this.getDialogSettings();
329
		result[1]= new UnusedCodeMultiFix(section);
254
			IDialogSettings section= settings.getSection(CLEAN_UP_WIZARD_SETTINGS_SECTION_ID);
330
		result[2]= new Java50MultiFix(section);
255
			fMultiFixes= new NameFixTuple[4];
331
		result[3]= new StringMultiFix(section);
256
			if (section == null) {
332
		
257
				section= settings.addNewSection(CLEAN_UP_WIZARD_SETTINGS_SECTION_ID);
333
		return result;
258
				fMultiFixes[0]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_CodeStyleSection_description, new CodeStyleMultiFix(false, true, false, false));
259
				fMultiFixes[1]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_UnusedCodeSection_description, new UnusedCodeMultiFix(true, true, true, false, true, false));	
260
				fMultiFixes[2]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_J2SE50Section_description, new Java50MultiFix(true, true));
261
				fMultiFixes[3]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_StringExternalization_description, new StringMultiFix(false, true));
262
				storeSettings();
263
			} else {
264
				fMultiFixes[0]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_CodeStyleSection_description, new CodeStyleMultiFix(section));
265
				fMultiFixes[1]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_UnusedCodeSection_description, new UnusedCodeMultiFix(section));
266
				fMultiFixes[2]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_J2SE50Section_description, new Java50MultiFix(section));
267
				fMultiFixes[3]= new NameFixTuple(MultiFixMessages.CleanUpRefactoringWizard_StringExternalization_description, new StringMultiFix(section));
268
			}
269
		}
270
		return fMultiFixes;
271
	}
334
	}
272
	
335
	
273
	private void storeSettings() {
336
	private static IDialogSettings getCleanUpWizardSettings() {
274
		IDialogSettings settings= CleanUpRefactoringWizard.this.getDialogSettings().getSection(CLEAN_UP_WIZARD_SETTINGS_SECTION_ID);
337
		IDialogSettings settings= RefactoringUIPlugin.getDefault().getDialogSettings();
275
		NameFixTuple[] fixes= getMultiFixes();
338
		IDialogSettings section= settings.getSection(CLEAN_UP_WIZARD_SETTINGS_SECTION_ID);
276
		for (int i= 0; i < fixes.length; i++) {
339
		if (section == null) {
277
			fixes[i].getFix().saveSettings(settings);
340
			section= settings.addNewSection(CLEAN_UP_WIZARD_SETTINGS_SECTION_ID);
278
		}
341
		}
342
		return section;
279
	}
343
	}
280
344
281
}
345
}
(-)ui/org/eclipse/jdt/internal/ui/fix/Java50MultiFix.java (-3 / +15 lines)
Lines 56-67 Link Here
56
	private boolean fAddDepricatedAnnotation;
56
	private boolean fAddDepricatedAnnotation;
57
57
58
	public Java50MultiFix(boolean addOverrideAnnotation, boolean addDepricatedAnnotation) {
58
	public Java50MultiFix(boolean addOverrideAnnotation, boolean addDepricatedAnnotation) {
59
		fAddOverrideAnnotation= addOverrideAnnotation;
59
		init(	addOverrideAnnotation,
60
		fAddDepricatedAnnotation= addDepricatedAnnotation;
60
				addDepricatedAnnotation);
61
	}
61
	}
62
62
63
	public Java50MultiFix(IDialogSettings settings) {
63
	public Java50MultiFix(IDialogSettings settings) {
64
		this(settings.getBoolean(ADD_OVERRIDE_ANNOTATION_SETTINGS_ID), settings.getBoolean(ADD_DEPRICATED_ANNOTATION_SETTINGS_ID));
64
		if (settings.get(ADD_OVERRIDE_ANNOTATION_SETTINGS_ID) == null) {
65
			settings.put(ADD_OVERRIDE_ANNOTATION_SETTINGS_ID, true);
66
		}
67
		if (settings.get(ADD_DEPRICATED_ANNOTATION_SETTINGS_ID) == null) {
68
			settings.put(ADD_DEPRICATED_ANNOTATION_SETTINGS_ID, true);
69
		}
70
		init(	settings.getBoolean(ADD_OVERRIDE_ANNOTATION_SETTINGS_ID), 
71
				settings.getBoolean(ADD_DEPRICATED_ANNOTATION_SETTINGS_ID));
72
	}
73
74
	private void init(boolean addOverrideAnnotation, boolean addDepricatedAnnotation) {
75
		fAddOverrideAnnotation= addOverrideAnnotation;
76
		fAddDepricatedAnnotation= addDepricatedAnnotation;
65
	}
77
	}
66
78
67
	public IFix createFix(CompilationUnit compilationUnit) throws CoreException {
79
	public IFix createFix(CompilationUnit compilationUnit) throws CoreException {
(-)ui/org/eclipse/jdt/internal/ui/fix/StringMultiFix.java (-3 / +14 lines)
Lines 55-66 Link Here
55
	private boolean fRemoveNlsTag;
55
	private boolean fRemoveNlsTag;
56
56
57
	public StringMultiFix(boolean addNLSTag, boolean removeNLSTag) {
57
	public StringMultiFix(boolean addNLSTag, boolean removeNLSTag) {
58
		fAddNlsTag= addNLSTag;
58
		init(addNLSTag, removeNLSTag);
59
		fRemoveNlsTag= removeNLSTag;
60
	}
59
	}
61
60
62
	public StringMultiFix(IDialogSettings settings) {
61
	public StringMultiFix(IDialogSettings settings) {
63
		this(settings.getBoolean(ADD_NLS_TAG_SETTINGS_ID), settings.getBoolean(REMOVE_NLS_TAG_SETTINGS_ID));
62
		if (settings.get(ADD_NLS_TAG_SETTINGS_ID) == null) {
63
			settings.put(ADD_NLS_TAG_SETTINGS_ID, false);
64
		}
65
		if (settings.get(REMOVE_NLS_TAG_SETTINGS_ID) == null) {
66
			settings.put(REMOVE_NLS_TAG_SETTINGS_ID, true);
67
		}
68
		init(	settings.getBoolean(ADD_NLS_TAG_SETTINGS_ID), 
69
				settings.getBoolean(REMOVE_NLS_TAG_SETTINGS_ID));
70
	}
71
72
	private void init(boolean addNLSTag, boolean removeNLSTag) {
73
		fAddNlsTag= addNLSTag;
74
		fRemoveNlsTag= removeNLSTag;
64
	}
75
	}
65
76
66
	public IFix createFix(CompilationUnit compilationUnit) throws CoreException {
77
	public IFix createFix(CompilationUnit compilationUnit) throws CoreException {
(-)ui/org/eclipse/jdt/internal/ui/fix/UnusedCodeMultiFix.java (-11 / +39 lines)
Lines 67-92 Link Here
67
			boolean removeUnusedPrivateConstructors, boolean removeUnusedPrivateFields,
67
			boolean removeUnusedPrivateConstructors, boolean removeUnusedPrivateFields,
68
			boolean removeUnusedPrivateTypes, boolean removeUnusedLocalVariables) {
68
			boolean removeUnusedPrivateTypes, boolean removeUnusedLocalVariables) {
69
		
69
		
70
		fRemoveUnusedImports= removeUnusedImports;
70
		init(	removeUnusedImports, 
71
		fRemoveUnusedPrivateMethods= removeUnusedPrivateMethods;
71
				removeUnusedPrivateMethods,
72
		fRemoveUnusedPrivateConstructors= removeUnusedPrivateConstructors;
72
				removeUnusedPrivateConstructors,
73
		fRemoveUnusedPrivateFields= removeUnusedPrivateFields;
73
				removeUnusedPrivateFields,
74
		fRemoveUnusedPrivateTypes= removeUnusedPrivateTypes;
74
				removeUnusedPrivateTypes,
75
		fRemoveUnusedLocalVariables= removeUnusedLocalVariables;
75
				removeUnusedLocalVariables);
76
	}
76
	}
77
77
78
	public UnusedCodeMultiFix(IDialogSettings settings) {
78
	public UnusedCodeMultiFix(IDialogSettings settings) {
79
		this(	settings.getBoolean(REMOVE_UNUSED_IMPORTS_SETTINGS_ID), 
79
		if (settings.get(REMOVE_UNUSED_IMPORTS_SETTINGS_ID) == null) {
80
			settings.put(REMOVE_UNUSED_IMPORTS_SETTINGS_ID, true);
81
		}
82
		if (settings.get(REMOVE_UNUSED_PRIVATE_METHODES_SETTINGS_ID) == null) {
83
			settings.put(REMOVE_UNUSED_PRIVATE_METHODES_SETTINGS_ID, false);
84
		}
85
		if (settings.get(REMOVE_UNUSED_PRIVATE_CONSTRUCTORS_SETTINGS_ID) == null) {
86
			settings.put(REMOVE_UNUSED_PRIVATE_CONSTRUCTORS_SETTINGS_ID, false);
87
		}
88
//		if (settings.get(REMOVE_UNUSED_PRIVATE_FIELDS_SETTINGS_ID) == null) {
89
			settings.put(REMOVE_UNUSED_PRIVATE_FIELDS_SETTINGS_ID, false);
90
//		}
91
		if (settings.get(REMOVE_UNUSED_PRIVATE_TYPE_SETTINGS_ID) == null) {
92
			settings.put(REMOVE_UNUSED_PRIVATE_TYPE_SETTINGS_ID, false);
93
		}
94
//		if (settings.get(REMOVE_UNUSED_LOCAL_VARIABLES_SETTINGS_ID) == null) {
95
			settings.put(REMOVE_UNUSED_LOCAL_VARIABLES_SETTINGS_ID, false);
96
//		}
97
		init(	settings.getBoolean(REMOVE_UNUSED_IMPORTS_SETTINGS_ID), 
80
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_METHODES_SETTINGS_ID),
98
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_METHODES_SETTINGS_ID),
81
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_CONSTRUCTORS_SETTINGS_ID),
99
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_CONSTRUCTORS_SETTINGS_ID),
82
//				settings.getBoolean(REMOVE_UNUSED_PRIVATE_FIELDS_SETTINGS_ID),
100
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_FIELDS_SETTINGS_ID),
83
				false,
84
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_TYPE_SETTINGS_ID),
101
				settings.getBoolean(REMOVE_UNUSED_PRIVATE_TYPE_SETTINGS_ID),
85
//				settings.getBoolean(REMOVE_UNUSED_LOCAL_VARIABLES_SETTINGS_ID)
102
				settings.getBoolean(REMOVE_UNUSED_LOCAL_VARIABLES_SETTINGS_ID)
86
				false	
87
				);
103
				);
88
	}
104
	}
89
105
106
	private void init(boolean removeUnusedImports, boolean removeUnusedPrivateMethods, 
107
			boolean removeUnusedPrivateConstructors, boolean removeUnusedPrivateFields,
108
			boolean removeUnusedPrivateTypes, boolean removeUnusedLocalVariables) {
109
		
110
		fRemoveUnusedImports= removeUnusedImports;
111
		fRemoveUnusedPrivateMethods= removeUnusedPrivateMethods;
112
		fRemoveUnusedPrivateConstructors= removeUnusedPrivateConstructors;
113
		fRemoveUnusedPrivateFields= removeUnusedPrivateFields;
114
		fRemoveUnusedPrivateTypes= removeUnusedPrivateTypes;
115
		fRemoveUnusedLocalVariables= removeUnusedLocalVariables;
116
	}
117
90
	public IFix createFix(CompilationUnit compilationUnit) throws CoreException {
118
	public IFix createFix(CompilationUnit compilationUnit) throws CoreException {
91
		
119
		
92
		List/*<ImportDeclaration>*/ removeImports= new ArrayList();
120
		List/*<ImportDeclaration>*/ removeImports= new ArrayList();
(-)ui/org/eclipse/jdt/internal/ui/actions/CleanUpAction.java (-11 / +29 lines)
Lines 10-25 Link Here
10
 *******************************************************************************/
10
 *******************************************************************************/
11
package org.eclipse.jdt.internal.ui.actions;
11
package org.eclipse.jdt.internal.ui.actions;
12
12
13
import java.lang.reflect.InvocationTargetException;
13
import java.util.Arrays;
14
import java.util.Arrays;
14
import java.util.Collection;
15
import java.util.Collection;
15
import java.util.HashSet;
16
import java.util.HashSet;
16
17
18
import org.eclipse.swt.widgets.Shell;
19
17
import org.eclipse.jface.viewers.IStructuredSelection;
20
import org.eclipse.jface.viewers.IStructuredSelection;
18
21
19
import org.eclipse.jface.text.ITextSelection;
22
import org.eclipse.jface.text.ITextSelection;
20
23
21
import org.eclipse.ui.IWorkbenchSite;
24
import org.eclipse.ui.IWorkbenchSite;
22
25
26
import org.eclipse.ltk.core.refactoring.RefactoringCore;
27
23
import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
28
import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
24
29
25
import org.eclipse.jdt.core.ICompilationUnit;
30
import org.eclipse.jdt.core.ICompilationUnit;
Lines 38-45 Link Here
38
import org.eclipse.jdt.internal.ui.JavaPlugin;
43
import org.eclipse.jdt.internal.ui.JavaPlugin;
39
import org.eclipse.jdt.internal.ui.browsing.LogicalPackage;
44
import org.eclipse.jdt.internal.ui.browsing.LogicalPackage;
40
import org.eclipse.jdt.internal.ui.fix.CleanUpRefactoringWizard;
45
import org.eclipse.jdt.internal.ui.fix.CleanUpRefactoringWizard;
46
import org.eclipse.jdt.internal.ui.fix.IMultiFix;
41
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
47
import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor;
48
import org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper;
42
import org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter;
49
import org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter;
50
import org.eclipse.jdt.internal.ui.util.BusyIndicatorRunnableContext;
43
import org.eclipse.jdt.internal.ui.util.ElementValidator;
51
import org.eclipse.jdt.internal.ui.util.ElementValidator;
44
52
45
public class CleanUpAction extends SelectionDispatchAction {
53
public class CleanUpAction extends SelectionDispatchAction {
Lines 71-77 Link Here
71
	public void run(ITextSelection selection) {
79
	public void run(ITextSelection selection) {
72
		ICompilationUnit cu= getCompilationUnit(fEditor);
80
		ICompilationUnit cu= getCompilationUnit(fEditor);
73
		if (cu != null) {
81
		if (cu != null) {
74
			run(cu, true);
82
			runLight(cu);
75
		}
83
		}
76
	}
84
	}
77
	
85
	
Lines 83-89 Link Here
83
		if (cus.length == 0)
91
		if (cus.length == 0)
84
			return;
92
			return;
85
		if (cus.length == 1) {
93
		if (cus.length == 1) {
86
			run(cus[0], false);
94
			run(cus[0]);
87
		} else {
95
		} else {
88
			runOnMultiple(cus);
96
			runOnMultiple(cus);
89
		}
97
		}
Lines 142-169 Link Here
142
	 * Note: This method is for internal use only. Clients should not call this method.
150
	 * Note: This method is for internal use only. Clients should not call this method.
143
	 * @param cu The compilation unit to process
151
	 * @param cu The compilation unit to process
144
	 */
152
	 */
145
	public void run(ICompilationUnit cu, boolean selectUnits) {
153
	public void run(ICompilationUnit cu) {
146
		if (!ElementValidator.check(cu, getShell(), ActionMessages.OrganizeImportsAction_error_title, fEditor != null)) 
154
		if (!ElementValidator.check(cu, getShell(), ActionMessages.OrganizeImportsAction_error_title, fEditor != null)) 
147
			return;
155
			return;
148
		if (!ActionUtil.isProcessable(getShell(), cu))
156
		if (!ActionUtil.isProcessable(getShell(), cu))
149
			return;
157
			return;
150
		
158
		
159
		runOnMultiple(new ICompilationUnit[] {cu});
160
	}
161
162
	private void runLight(ICompilationUnit cu) {
151
		CleanUpRefactoring refactoring= new CleanUpRefactoring();
163
		CleanUpRefactoring refactoring= new CleanUpRefactoring();
152
		refactoring.addCompilationUnit(cu);
164
		refactoring.addCompilationUnit(cu);
153
		
165
		
154
		CleanUpRefactoringWizard refactoringWizard= new CleanUpRefactoringWizard(refactoring, RefactoringWizard.WIZARD_BASED_USER_INTERFACE, selectUnits, true);
166
		IMultiFix[] fixes= CleanUpRefactoringWizard.createAllMultiFixes();
167
		for (int i= 0; i < fixes.length; i++) {
168
			refactoring.addMultiFix(fixes[i]);
169
		}
155
		
170
		
156
		RefactoringStarter starter= new RefactoringStarter();
171
		int stopSeverity= RefactoringCore.getConditionCheckingFailedSeverity();
172
		Shell shell= JavaPlugin.getActiveWorkbenchShell();
173
		BusyIndicatorRunnableContext context= new BusyIndicatorRunnableContext();
174
		RefactoringExecutionHelper executer= new RefactoringExecutionHelper(refactoring, stopSeverity, true, shell, context);
157
		try {
175
		try {
158
			starter.activate(refactoring, refactoringWizard, JavaPlugin.getActiveWorkbenchShell(), "Clean ups", true); //$NON-NLS-1$
176
			executer.perform();
159
		} catch (JavaModelException e) {
177
		} catch (InterruptedException e) {
178
		} catch (InvocationTargetException e) {
160
			JavaPlugin.log(e);
179
			JavaPlugin.log(e);
161
		}
180
		}
162
		return;
163
	}
181
	}
164
	
182
165
	/**
183
	/**
166
	 * Perform organize import on multiple compilation units. No editors are opened.
184
	 * Perform on multiple compilation units. No editors are opened.
167
	 * @param cus The compilation units to run on
185
	 * @param cus The compilation units to run on
168
	 */
186
	 */
169
	public void runOnMultiple(final ICompilationUnit[] cus) {
187
	public void runOnMultiple(final ICompilationUnit[] cus) {
Lines 172-178 Link Here
172
			refactoring.addCompilationUnit(cus[i]);
190
			refactoring.addCompilationUnit(cus[i]);
173
		}
191
		}
174
		
192
		
175
		CleanUpRefactoringWizard refactoringWizard= new CleanUpRefactoringWizard(refactoring, RefactoringWizard.WIZARD_BASED_USER_INTERFACE, false, true);
193
		CleanUpRefactoringWizard refactoringWizard= new CleanUpRefactoringWizard(refactoring, RefactoringWizard.WIZARD_BASED_USER_INTERFACE, true, true);
176
		
194
		
177
		RefactoringStarter starter= new RefactoringStarter();
195
		RefactoringStarter starter= new RefactoringStarter();
178
		try {
196
		try {

Return to bug 117295