Author: dazarov
Date: 2011-11-01 20:14:46 -0400 (Tue, 01 Nov 2011)
New Revision: 36121
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/AbstractModifyInjectionPointWizard.java
Log:
Quickfix and Wizard for fixing ambigious injection warning is confusing
https://issues.jboss.org/browse/JBIDE-9940
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF 2011-11-01 23:15:50 UTC
(rev 36120)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.ui/META-INF/MANIFEST.MF 2011-11-02 00:14:46 UTC
(rev 36121)
@@ -34,7 +34,8 @@
org.eclipse.debug.ui;bundle-version="3.7.0",
org.eclipse.ui.navigator;bundle-version="3.5.0",
org.eclipse.ui.navigator.resources;bundle-version="3.4.300",
- org.eclipse.draw2d;bundle-version="3.7.0"
+ org.eclipse.draw2d;bundle-version="3.7.0",
+ org.eclipse.jdt.core.manipulation;bundle-version="1.4.0"
Bundle-ActivationPolicy: lazy
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-Vendor: %Bundle-Vendor.0
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-11-01
23:15:50 UTC (rev 36120)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-11-02
00:14:46 UTC (rev 36121)
@@ -40,9 +40,12 @@
import org.eclipse.jdt.core.ITypeParameter;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.Signature;
+import org.eclipse.jdt.core.refactoring.CompilationUnitChange;
import org.eclipse.jdt.internal.ui.javaeditor.EditorUtility;
import org.eclipse.ltk.core.refactoring.CompositeChange;
import org.eclipse.ltk.core.refactoring.TextFileChange;
+import org.eclipse.text.edits.DeleteEdit;
+import org.eclipse.text.edits.InsertEdit;
import org.eclipse.text.edits.MultiTextEdit;
import org.eclipse.text.edits.ReplaceEdit;
import org.eclipse.text.edits.TextEdit;
@@ -180,7 +183,7 @@
compilationUnit.createImport(qualifiedName, null, new NullProgressMonitor());
}
}else{
- TextEdit edit = new
ReplaceEdit(compilationUnit.getImportContainer().getSourceRange().getOffset()+compilationUnit.getImportContainer().getSourceRange().getLength(),
0, compilationUnit.findRecommendedLineSeparator()+IMPORT+SPACE+qualifiedName+SEMICOLON);
+ TextEdit edit = new
InsertEdit(compilationUnit.getImportContainer().getSourceRange().getOffset()+compilationUnit.getImportContainer().getSourceRange().getLength(),
compilationUnit.findRecommendedLineSeparator()+IMPORT+SPACE+qualifiedName+SEMICOLON);
rootEdit.addChild(edit);
}
}
@@ -267,7 +270,7 @@
}
if(rootEdit != null){
- TextEdit edit = new ReplaceEdit(workingCopyMember.getSourceRange().getOffset(), 0,
str);
+ TextEdit edit = new InsertEdit(workingCopyMember.getSourceRange().getOffset(), str);
rootEdit.addChild(edit);
}else{
buffer.replace(workingCopyMember.getSourceRange().getOffset(), 0, str);
@@ -305,10 +308,10 @@
if(rootEdit != null){
if(annotation != null && annotation.exists()){
- TextEdit edit = new
ReplaceEdit(annotation.getSourceRange().getOffset()+annotation.getSourceRange().getLength(),
0, lineDelim+AT+shortName+value);
+ TextEdit edit = new
InsertEdit(annotation.getSourceRange().getOffset()+annotation.getSourceRange().getLength(),
lineDelim+AT+shortName+value);
rootEdit.addChild(edit);
}else{
- TextEdit edit = new
ReplaceEdit(((ISourceReference)element).getSourceRange().getOffset(), 0,
AT+shortName+value+lineDelim);
+ TextEdit edit = new
InsertEdit(((ISourceReference)element).getSourceRange().getOffset(),
AT+shortName+value+lineDelim);
rootEdit.addChild(edit);
}
}else{
@@ -520,17 +523,19 @@
public static void addQualifiersToInjectionPoint(List<ValuedQualifier> deployed,
IInjectionPoint injectionPoint, CompositeChange change){
IFile file = (IFile)injectionPoint.getClassBean().getResource();
- TextFileChange fileChange = new TextFileChange(file.getName(), file);
-
-// if(isEditorOpened(file))
-// fileChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
-// else
-// fileChange.setSaveMode(TextFileChange.FORCE_SAVE);
-
- MultiTextEdit edit = new MultiTextEdit();
try{
ICompilationUnit original =
injectionPoint.getClassBean().getBeanClass().getCompilationUnit();
ICompilationUnit compilationUnit = original.getWorkingCopy(new
NullProgressMonitor());
+
+ TextFileChange fileChange = new CompilationUnitChange(file.getName(), original);
+
+// if(isEditorOpened(file))
+// fileChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
+// else
+// fileChange.setSaveMode(TextFileChange.FORCE_SAVE);
+
+ MultiTextEdit edit = new MultiTextEdit();
+
if(injectionPoint instanceof IInjectionPointParameter){
addQualifiersToParameter(compilationUnit, injectionPoint, deployed, edit);
}else{
@@ -556,25 +561,26 @@
}
}
compilationUnit.discardWorkingCopy();
- original.discardWorkingCopy();
+
+ fileChange.setEdit(edit);
+ if(edit.getChildrenSize() > 0)
+ change.add(fileChange);
}catch(CoreException ex){
CDIUIPlugin.getDefault().logError(ex);
}
- fileChange.setEdit(edit);
- if(edit.getChildrenSize() > 0)
- change.add(fileChange);
+
}
public static void addQualifiersToBean(List<ValuedQualifier> deployed, IBean bean,
CompositeChange change){
IFile file = (IFile)bean.getBeanClass().getResource();
- TextFileChange fileChange = new TextFileChange(file.getName(), file);
+
// if(isEditorOpened(file))
// fileChange.setSaveMode(TextFileChange.LEAVE_DIRTY);
// else
// fileChange.setSaveMode(TextFileChange.FORCE_SAVE);
- MultiTextEdit edit = new MultiTextEdit();
+
IJavaElement beanElement = null;
if(bean instanceof IBeanField){
beanElement = ((IBeanField) bean).getField();
@@ -588,6 +594,10 @@
ICompilationUnit original = EclipseUtil.getCompilationUnit(file);
ICompilationUnit compilationUnit = original.getWorkingCopy(new
NullProgressMonitor());
+ TextFileChange fileChange = new CompilationUnitChange(file.getName(), original);
+
+ MultiTextEdit edit = new MultiTextEdit();
+
for(IQualifierDeclaration declaration : bean.getQualifierDeclarations()){
IQualifier qualifier = declaration.getQualifier();
String qualifierName = qualifier.getSourceType().getFullyQualifiedName();
@@ -610,13 +620,14 @@
}
compilationUnit.discardWorkingCopy();
- original.discardWorkingCopy();
+
+ fileChange.setEdit(edit);
+ if(edit.getChildrenSize() > 0)
+ change.add(fileChange);
}catch(CoreException ex){
CDIUIPlugin.getDefault().logError(ex);
}
- fileChange.setEdit(edit);
- if(edit.getChildrenSize() > 0)
- change.add(fileChange);
+
}
private static boolean isQualifierNeeded(List<ValuedQualifier> vQualifiers,
IQualifier qualifier){
@@ -744,7 +755,7 @@
// delete annotation
if(rootEdit != null){
- TextEdit edit = new ReplaceEdit(annotation.getSourceRange().getOffset(),
annotation.getSourceRange().getLength()+numberOfSpaces, "");
+ TextEdit edit = new DeleteEdit(annotation.getSourceRange().getOffset(),
annotation.getSourceRange().getLength()+numberOfSpaces);
rootEdit.addChild(edit);
}else{
buffer.replace(annotation.getSourceRange().getOffset(),
annotation.getSourceRange().getLength()+numberOfSpaces, "");
@@ -758,7 +769,7 @@
String text = buffer.getText(importSize, buffer.getLength()-importSize);
if(checkImport(text, qualifiedName)){
if(rootEdit != null){
- TextEdit edit = new ReplaceEdit(importDeclaration.getSourceRange().getOffset(),
importDeclaration.getSourceRange().getLength()+numberOfSpaces, "");
+ TextEdit edit = new DeleteEdit(importDeclaration.getSourceRange().getOffset(),
importDeclaration.getSourceRange().getLength()+numberOfSpaces);
rootEdit.addChild(edit);
}else{
importDeclaration.delete(false, new NullProgressMonitor());
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/AbstractModifyInjectionPointWizard.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/AbstractModifyInjectionPointWizard.java 2011-11-01
23:15:50 UTC (rev 36120)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/AbstractModifyInjectionPointWizard.java 2011-11-02
00:14:46 UTC (rev 36121)
@@ -12,11 +12,9 @@
import java.util.List;
-import org.eclipse.jdt.internal.ui.refactoring.actions.RefactoringStarter;
-import org.eclipse.jdt.ui.refactoring.RefactoringSaveHelper;
import org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring;
import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
-import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.jboss.tools.cdi.core.IBean;
@@ -30,11 +28,13 @@
public boolean showWizard() {
final IWorkbenchWindow win = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
- final Shell shell = win.getShell();
- final RefactoringStarter refactoringStarter = new RefactoringStarter();
- boolean res = refactoringStarter.activate(this, shell, getWindowTitle(),
RefactoringSaveHelper.SAVE_ALL);
- //RefactoringStatus rs = refactoringStarter.getInitialConditionCheckingStatus();
- return res;
+ RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(this);
+ try {
+ op.run(win.getShell(), getWindowTitle());
+ } catch (final InterruptedException irex) {
+ return false;
+ }
+ return true;
}