Author: akazakov
Date: 2010-09-09 12:13:45 -0400 (Thu, 09 Sep 2010)
New Revision: 24845
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java
Log:
https://jira.jboss.org/browse/JBIDE-2704
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2010-09-09
15:41:24 UTC (rev 24844)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/core/CDIUtil.java 2010-09-09
16:13:45 UTC (rev 24845)
@@ -755,11 +755,14 @@
return false;
}
- private static CDICoreNature cdiNature;
-
+ /**
+ * Build a CDI model for the project if it hasn't built yet and show a Progress
dialog.
+ *
+ * @param project
+ * @return the CDI nature for the project
+ */
public static CDICoreNature getCDINatureWithProgress(final IProject project){
- cdiNature = null;
- cdiNature = CDICorePlugin.getCDI(project, false);
+ final CDICoreNature cdiNature = CDICorePlugin.getCDI(project, false);
if(cdiNature != null && !cdiNature.isStorageResolved()){
try{
PlatformUI.getWorkbench().getProgressService().busyCursorWhile(new
IRunnableWithProgress(){
@@ -770,7 +773,6 @@
cdiNature.resolve();
monitor.worked(7);
}
-
});
}catch(InterruptedException ie){
CDICorePlugin.getDefault().logError(ie);
@@ -778,7 +780,7 @@
CDICorePlugin.getDefault().logError(ite);
}
}
-
+
return cdiNature;
}
@@ -792,7 +794,6 @@
return result;
}
-
/**
* Collect all the interceptor binding declarations from the bean class or method
including all the inherited bindings.
* @param binded bean class or method
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java 2010-09-09
15:41:24 UTC (rev 24844)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/el/CdiElResolver.java 2010-09-09
16:13:45 UTC (rev 24845)
@@ -18,7 +18,9 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IMember;
import org.eclipse.swt.graphics.Image;
+import org.jboss.tools.cdi.core.CDICoreNature;
import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.CDIUtil;
import org.jboss.tools.cdi.core.IBean;
import org.jboss.tools.cdi.core.IBeanManager;
import org.jboss.tools.cdi.core.IBeanMember;
@@ -90,20 +92,29 @@
Set<IBean> resolvedBeans = null;
if (varName != null) {
- IBeanManager manager = CDICorePlugin.getCDI(project, false).getDelegate();
- if (manager != null) {
- if(onlyEqualNames) {
- resolvedBeans = manager.getBeans(varName, true);
- beans.addAll(resolvedBeans);
- } else {
- resolvedBeans = manager.getNamedBeans(true);
- for (IBean bean : resolvedBeans) {
- if(bean.getName().startsWith(varName)) {
- beans.add(bean);
+ CDICoreNature nature = CDIUtil.getCDINatureWithProgress(project);
+ if(nature!=null) {
+ IBeanManager manager = nature.getDelegate();
+ if (manager != null) {
+ if(onlyEqualNames) {
+ resolvedBeans = manager.getBeans(varName, true);
+ if(resolvedBeans.isEmpty()) {
+ resolvedBeans = manager.getBeans(varName, false);
}
+ beans.addAll(resolvedBeans);
+ } else {
+ resolvedBeans = manager.getNamedBeans(true);
+ if(resolvedBeans.isEmpty()) {
+ resolvedBeans = manager.getBeans(varName, false);
+ }
+ for (IBean bean : resolvedBeans) {
+ if(bean.getName().startsWith(varName)) {
+ beans.add(bean);
+ }
+ }
+ resolvedBeans.clear();
+ resolvedBeans.addAll(beans);
}
- resolvedBeans.clear();
- resolvedBeans.addAll(beans);
}
}
}