Author: dazarov
Date: 2011-08-22 18:54:56 -0400 (Mon, 22 Aug 2011)
New Revision: 34152
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties
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/xpl/AddQualifiersToBeanComposite.java
Log:
https://issues.jboss.org/browse/JBIDE-9476
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2011-08-22
22:37:34 UTC (rev 34151)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.java 2011-08-22
22:54:56 UTC (rev 34152)
@@ -125,6 +125,7 @@
public static String ADD_QUALIFIERS_TO_BEAN_WIZARD_REMOVE;
public static String ADD_QUALIFIERS_TO_BEAN_WIZARD_REMOVE_ALL;
public static String ADD_QUALIFIERS_TO_BEAN_WIZARD_CREATE_NEW_QUALIFIER;
+ public static String ADD_QUALIFIERS_TO_BEAN_WIZARD_EDIT_QUALIFIER_VALUE;
public static String ADD_QUALIFIERS_TO_BEAN_WIZARD_SET_IS_NOT_UNIQUE;
public static String ADD_QUALIFIERS_TO_BEAN_WIZARD_ENTER_QUALIFIER_NAME;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2011-08-22
22:37:34 UTC (rev 34151)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/CDIUIMessages.properties 2011-08-22
22:54:56 UTC (rev 34152)
@@ -96,12 +96,11 @@
QUESTION=Question
DECREASING_FIELD_VISIBILITY_MAY_CAUSE_COMPILATION_PROBLEMS=Decreasing field visibility
may cause compilation problems. Do you want to continue?
-
SELECT_BEAN_WIZARD_TITLE=Specify CDI Bean for the Injection Point
SELECT_BEAN_WIZARD_ENTER_BEAN_NAME=Enter CDI Bean name prefix or pattern (? = any
character, * = any string):
SELECT_BEAN_WIZARD_SELECT_BEAN=Select CDI Bean:
-ADD_QUALIFIERS_TO_BEAN_WIZARD_TITLE=Add Qualifiers to the Bean
+ADD_QUALIFIERS_TO_BEAN_WIZARD_TITLE=Add/Remove Qualifiers to/from the Bean
ADD_QUALIFIERS_TO_BEAN_WIZARD_AVAILABLE=Available:
ADD_QUALIFIERS_TO_BEAN_WIZARD_IN_BEAN=In the Bean:
ADD_QUALIFIERS_TO_BEAN_WIZARD_MESSAGE=Move qualifiers to the right to add them to the
''{0}'' bean
@@ -110,6 +109,7 @@
ADD_QUALIFIERS_TO_BEAN_WIZARD_REMOVE=< Remove
ADD_QUALIFIERS_TO_BEAN_WIZARD_REMOVE_ALL=<< Remove All
ADD_QUALIFIERS_TO_BEAN_WIZARD_CREATE_NEW_QUALIFIER=Create New Qualifier...
+ADD_QUALIFIERS_TO_BEAN_WIZARD_EDIT_QUALIFIER_VALUE=Edit Value...
ADD_QUALIFIERS_TO_BEAN_WIZARD_SET_IS_NOT_UNIQUE=This set of qualifiers is not unique
ADD_QUALIFIERS_TO_BEAN_WIZARD_ENTER_QUALIFIER_NAME=Enter CDI Qualifier name prefix or
pattern (? = any character, * = any string):
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-08-22
22:37:34 UTC (rev 34151)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/marker/MarkerResolutionUtils.java 2011-08-22
22:54:56 UTC (rev 34152)
@@ -324,26 +324,6 @@
return false;
}
- public static void deleteQualifierAnnotation(ICompilationUnit compilationUnit,
IJavaElement element, IQualifier qualifier) throws JavaModelException{
- if(element instanceof IAnnotatable){
- String fullName = qualifier.getSourceType().getFullyQualifiedName();
- String shortName = getShortName(fullName);
- IAnnotation annotation = ((IAnnotatable)element).getAnnotation(fullName);
- if(!annotation.exists()){
- annotation = ((IAnnotatable)element).getAnnotation(shortName);
- }
- if(annotation.exists()){
- IBuffer buffer = compilationUnit.getBuffer();
-
- buffer.replace(annotation.getSourceRange().getOffset(),
annotation.getSourceRange().getLength(), "");
-
- synchronized(compilationUnit) {
- compilationUnit.reconcile(ICompilationUnit.NO_AST, true, null, null);
- }
- }
- }
- }
-
private static List<IQualifier> findQualifiersToDelete(IInjectionPoint
injectionPoint, Set<IQualifierDeclaration> qualifiers){
ArrayList<IQualifier> list = new ArrayList<IQualifier>();
Set<IQualifierDeclaration> declarations =
injectionPoint.getQualifierDeclarations();
@@ -445,7 +425,7 @@
List<IQualifier> toDelete = findQualifiersToDelete(injectionPoint,
declarations);
for(IQualifier qualifier : toDelete){
- deleteQualifierAnnotation(compilationUnit, element, qualifier);
+ deleteAnnotation(qualifier.getSourceType().getFullyQualifiedName(),
compilationUnit, element);
}
for(IQualifierDeclaration declaration : declarations){
@@ -479,10 +459,19 @@
ICompilationUnit original = EclipseUtil.getCompilationUnit(file);
ICompilationUnit compilationUnit = original.getWorkingCopy(new
NullProgressMonitor());
+
+ for(IQualifierDeclaration declaration : bean.getQualifierDeclarations()){
+ IQualifier qualifier = declaration.getQualifier();
+ String qualifierName = qualifier.getSourceType().getFullyQualifiedName();
+ if(!deployed.contains(qualifier)){
+ deleteAnnotation(qualifierName, compilationUnit, beanElement);
+ }
+ }
+
for(IQualifier qualifier : deployed){
String qualifierName = qualifier.getSourceType().getFullyQualifiedName();
if(!qualifierName.equals(CDIConstants.ANY_QUALIFIER_TYPE_NAME) &&
!qualifierName.equals(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME)){
- MarkerResolutionUtils.addAnnotation(qualifier.getSourceType().getFullyQualifiedName(),
compilationUnit, beanElement);
+ MarkerResolutionUtils.addAnnotation(qualifierName, compilationUnit, beanElement);
}
}
@@ -616,6 +605,10 @@
if(checkImport(text, qualifiedName))
importDeclaration.delete(false, new NullProgressMonitor());
}
+
+ synchronized(compilationUnit) {
+ compilationUnit.reconcile(ICompilationUnit.NO_AST, true, null, null);
+ }
}
}
@@ -675,13 +668,13 @@
return findQualifierValue(declaration);
}
- private static String findQualifierValue(IQualifierDeclaration declaration){
+ public static String findQualifierValue(IQualifierDeclaration declaration){
Object value = declaration.getMemberValue(null);
return value == null ? "" : value.toString();
}
- private static IQualifierDeclaration findQualifierDeclaration(IBean bean, IQualifier
qualifier){
+ public static IQualifierDeclaration findQualifierDeclaration(IBean bean, IQualifier
qualifier){
Set<IQualifierDeclaration> declarations = bean.getQualifierDeclarations();
if(declarations == null)
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java 2011-08-22
22:37:34 UTC (rev 34151)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.ui/src/org/jboss/tools/cdi/ui/wizard/xpl/AddQualifiersToBeanComposite.java 2011-08-22
22:54:56 UTC (rev 34152)
@@ -17,7 +17,6 @@
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
-import java.util.Set;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -88,13 +87,13 @@
private WizardPage wizard;
private Text pattern;
- // original qualifiers on the bean
+ // original qualifiers on the bean without declarations it means they can not be deleted
from bean
private ArrayList<ValuedQualifier> originalQualifiers = new
ArrayList<ValuedQualifier>();
// qualifiers available to be added to the bean
private ArrayList<ValuedQualifier> qualifiers = new
ArrayList<ValuedQualifier>();
- // current qualifiers on the bean
+ // original qualifiers on the bean with declaration + currently added qualifiers on the
bean
private ArrayList<ValuedQualifier> deployed = new
ArrayList<ValuedQualifier>();
// original + deployed
@@ -104,7 +103,7 @@
private TableViewer deployedTableViewer;
private Button add, addAll;
- private Button remove, removeAll;
+ private Button remove, editQualifierValue, removeAll;
private Label nLabel;
@@ -130,10 +129,19 @@
public void init(IBean bean){
this.bean = bean;
- originalQualifiers = new ArrayList<ValuedQualifier>();
+ originalQualifiers.clear();
+ deployed.clear();
for(IQualifier q : bean.getQualifiers()){
- String value = MarkerResolutionUtils.findQualifierValue(bean, q);
- originalQualifiers.add(new ValuedQualifier(q, value));
+ IQualifierDeclaration declaration =
MarkerResolutionUtils.findQualifierDeclaration(bean, q);
+ if(declaration != null){
+ String value = MarkerResolutionUtils.findQualifierValue(declaration);
+ ValuedQualifier vq = new ValuedQualifier(q, value);
+ //originalQualifiers.add(vq);
+ //deployedTableViewer.add(vq);
+ deployed.add(vq);
+ }else{
+ originalQualifiers.add(new ValuedQualifier(q, ""));
+ }
}
defaultQualifier = new
ValuedQualifier(bean.getCDIProject().getQualifier(CDIConstants.DEFAULT_QUALIFIER_TYPE_NAME));
@@ -146,8 +154,12 @@
}
}
- deployedTableViewer.setInput(originalQualifiers);
+ total.clear();
+ total.addAll(originalQualifiers);
+ total.addAll(deployed);
+ deployedTableViewer.setInput(total);
+
qualifiers.clear();
loadAvailableQualifiers();
@@ -465,6 +477,18 @@
}
});
+ label = new Label(this, SWT.NONE);
+ label.setText("");
+
+ label = new Label(this, SWT.NONE);
+ label.setText("");
+
+ editQualifierValue = new Button(this, SWT.PUSH);
+ editQualifierValue.setText(CDIUIMessages.ADD_QUALIFIERS_TO_BEAN_WIZARD_EDIT_QUALIFIER_VALUE);
+
+ editQualifierValue.addSelectionListener(new SelectionAdapter() {
+ });
+
setEnablement();
Dialog.applyDialogFont(this);
@@ -516,6 +540,7 @@
ms = getDeployedSelection();
if (ms == null || ms.length == 0) {
remove.setEnabled(false);
+ editQualifierValue.setEnabled(false);
} else {
boolean enabled = false;
for (int i = 0; i < ms.length; i++) {
@@ -529,8 +554,13 @@
}
}
remove.setEnabled(enabled);
+
+ if(enabled && ms.length == 1){
+ editQualifierValue.setEnabled(true);
+ }else{
+ editQualifierValue.setEnabled(false);
+ }
}
-
removeAll.setEnabled(deployed.size() > 0);
// check uniqueness of qualifiers
@@ -542,7 +572,7 @@
wizard.setPageComplete(isComplete);
}
-
+
protected void add(boolean all) {
if (all) {
ValuedQualifier[] qualifiers2 = new ValuedQualifier[qualifiers.size()];