Author: dazarov
Date: 2010-09-13 13:21:51 -0400 (Mon, 13 Sep 2010)
New Revision: 24901
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/AlternativeInjectedPointListHyperlink.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/CDIExtensionsMessages.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointListHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/messages.properties
Log:
https://jira.jboss.org/browse/JBIDE-6640
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/CDIExtensionsMessages.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/CDIExtensionsMessages.java 2010-09-13
15:45:17 UTC (rev 24900)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/CDIExtensionsMessages.java 2010-09-13
17:21:51 UTC (rev 24901)
@@ -24,6 +24,11 @@
public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_DECORATOR;
public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_INTERCEPTOR;
public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECTED_BEAN;
+ public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN;
+ public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_SELECTED_ALTERNATIVE;
+ public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_ALTERNATIVE;
+ public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_PRODUCER;
+ public static String CDI_INJECTED_POINT_HYPERLINK_SHOW_ALTERNATIVES;
public static String CDI_PRODUCER_DISPOSER_HYPERLINK_OPEN_BOUND_DISPOSER;
public static String CDI_PRODUCER_DISPOSER_HYPERLINK_OPEN_BOUND_PRODUCER;
public static String CDI_EVENT_LIST_HYPERLINK_OPEN_OBSERVER_METHODS;
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/AlternativeInjectedPointListHyperlink.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/AlternativeInjectedPointListHyperlink.java
(rev 0)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/AlternativeInjectedPointListHyperlink.java 2010-09-13
17:21:51 UTC (rev 24901)
@@ -0,0 +1,65 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.cdi.text.ext.hyperlink;
+
+import java.util.List;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.jface.text.IRegion;
+import org.eclipse.jface.text.ITextViewer;
+import org.eclipse.jface.text.hyperlink.IHyperlink;
+import org.jboss.tools.cdi.core.IBean;
+import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
+import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
+
+public class AlternativeInjectedPointListHyperlink extends AbstractHyperlink{
+ private IRegion region;
+ private List<IBean> beans;
+ private ITextViewer viewer;
+
+ public AlternativeInjectedPointListHyperlink(IRegion region, List<IBean> beans,
ITextViewer viewer, IDocument document){
+ this.beans = beans;
+ this.region = region;
+ this.viewer = viewer;
+ setDocument(document);
+ }
+
+
+ @Override
+ protected IRegion doGetHyperlinkRegion(int offset) {
+ return region;
+ }
+
+ protected void doHyperlink(IRegion region) {
+ IHyperlink[] hyperlinks = new IHyperlink[beans.size()];
+
+ int index=0;
+ for(IBean bean : beans){
+ hyperlinks[index++] = new InjectedPointHyperlink(region, bean, getDocument());
+ }
+
+ if(hyperlinks.length == 0){
+ openFileFailed();
+ return;
+ }
+
+ if(hyperlinks.length == 1){
+ ((InjectedPointHyperlink)hyperlinks[0]).doHyperlink(region);
+ }else{
+ MultipleHyperlinkPresenterManager.installAndShow(viewer, hyperlinks);
+ }
+ }
+
+ @Override
+ public String getHyperlinkText() {
+ return CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_SHOW_ALTERNATIVES;
+ }
+
+}
Property changes on:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/AlternativeInjectedPointListHyperlink.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlink.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlink.java 2010-09-13
15:45:17 UTC (rev 24900)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointHyperlink.java 2010-09-13
17:21:51 UTC (rev 24901)
@@ -29,12 +29,18 @@
public class InjectedPointHyperlink extends AbstractHyperlink{
IBean bean;
IRegion region;
+ boolean first = false;
public InjectedPointHyperlink(IRegion region, IBean bean, IDocument document){
this.bean = bean;
this.region = region;
setDocument(document);
}
+
+ public InjectedPointHyperlink(IRegion region, IBean bean, IDocument document, boolean
first){
+ this(region, bean, document);
+ this.first = first;
+ }
@Override
@@ -67,20 +73,34 @@
public String getHyperlinkText() {
String text="";
if(bean != null){
- if(bean instanceof IDecorator)
- text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_DECORATOR+"
";
- else if(bean instanceof IInterceptor)
- text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INTERCEPTOR+"
";
- else
- text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_BEAN+" ";
+ if(first){
+ text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN+"
";
+ }else{
+ if(bean.isSelectedAlternative())
+ text =
CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_SELECTED_ALTERNATIVE+"
";
+ else if(bean.isAlternative())
+ text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_ALTERNATIVE+"
";
+ else if(bean instanceof IProducerField || bean instanceof IProducerMethod)
+ text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_PRODUCER+"
";
+ else if(bean instanceof IDecorator)
+ text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_DECORATOR+"
";
+ else if(bean instanceof IInterceptor)
+ text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_INTERCEPTOR+"
";
+ else
+ text = CDIExtensionsMessages.CDI_INJECTED_POINT_HYPERLINK_OPEN_BEAN+" ";
+
+ }
+
text += bean.getBeanClass().getElementName();
if(bean instanceof IProducerField){
text += "."+((IProducerField)bean).getField().getElementName();
}else if(bean instanceof IProducerMethod){
- text += "."+((IProducerMethod)bean).getMethod().getElementName();
+ text +=
"."+((IProducerMethod)bean).getMethod().getElementName()+"()";
}
+
+
}
return text;
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointListHyperlink.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointListHyperlink.java 2010-09-13
15:45:17 UTC (rev 24900)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/InjectedPointListHyperlink.java 2010-09-13
17:21:51 UTC (rev 24901)
@@ -10,6 +10,7 @@
******************************************************************************/
package org.jboss.tools.cdi.text.ext.hyperlink;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -73,25 +74,37 @@
return;
}
- Set<IBean> resultBeanSet = cdiProject.getBeans(false, injectionPoint);
+ Set<IBean> resultBeanSet = cdiProject.getBeans(true, injectionPoint);
List<IBean> resultBeanList = CDIUtil.sortBeans(resultBeanSet);
+
+ Set<IBean> alternativeBeanSet = cdiProject.getBeans(false, injectionPoint);
+ List<IBean> alternativeBeanList = CDIUtil.sortBeans(alternativeBeanSet);
- IHyperlink[] hyperlinks = new IHyperlink[resultBeanList.size()];
+ ArrayList<IHyperlink> hyperlinks = new ArrayList<IHyperlink>();
- int index=0;
- for(IBean bean : resultBeanList){
- hyperlinks[index++] = new InjectedPointHyperlink(region, bean, getDocument());
+ if(resultBeanList.size() > 0){
+ hyperlinks.add(new InjectedPointHyperlink(region, resultBeanList.get(0),
getDocument(), true));
+ //alternativeBeanList.remove(resultBeanList.get(0));
+ if(alternativeBeanList.size() > 0)
+ hyperlinks.add(new AlternativeInjectedPointListHyperlink(region, alternativeBeanList,
viewer, getDocument()));
+ }else if(alternativeBeanList.size() > 0){
+ hyperlinks.add(new InjectedPointHyperlink(region, alternativeBeanList.get(0),
getDocument(), true));
+ //alternativeBeanList.remove(0);
+ if(alternativeBeanList.size() > 0)
+ hyperlinks.add(new AlternativeInjectedPointListHyperlink(region, alternativeBeanList,
viewer, getDocument()));
}
- if(hyperlinks.length == 0){
+ IHyperlink[] result = hyperlinks.toArray(new IHyperlink[hyperlinks.size()]);
+
+ if(result.length == 0){
openFileFailed();
return;
}
- if(hyperlinks.length == 1){
- ((InjectedPointHyperlink)hyperlinks[0]).doHyperlink(region);
+ if(result.length == 1){
+ ((InjectedPointHyperlink)result[0]).doHyperlink(region);
}else{
- MultipleHyperlinkPresenterManager.installAndShow(viewer, hyperlinks);
+ MultipleHyperlinkPresenterManager.installAndShow(viewer, result);
}
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/messages.properties
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/messages.properties 2010-09-13
15:45:17 UTC (rev 24900)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/messages.properties 2010-09-13
17:21:51 UTC (rev 24901)
@@ -1,8 +1,13 @@
CDI_EXT_PLUGIN_NO_MESSAGE=No message
-CDI_INJECTED_POINT_HYPERLINK_OPEN_BEAN=Open CDI Bean
-CDI_INJECTED_POINT_HYPERLINK_OPEN_DECORATOR=Open CDI Decorator
-CDI_INJECTED_POINT_HYPERLINK_OPEN_INTERCEPTOR=Open CDI Interceptor
+CDI_INJECTED_POINT_HYPERLINK_OPEN_BEAN=Open
+CDI_INJECTED_POINT_HYPERLINK_OPEN_DECORATOR=Open @Decorator
+CDI_INJECTED_POINT_HYPERLINK_OPEN_INTERCEPTOR=Open @Interceptor
CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECTED_BEAN=Open Injected Bean
+CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECT_BEAN=Open @Inject Bean
+CDI_INJECTED_POINT_HYPERLINK_OPEN_SELECTED_ALTERNATIVE=Open *@Alternative
+CDI_INJECTED_POINT_HYPERLINK_OPEN_ALTERNATIVE=Open @Alternative
+CDI_INJECTED_POINT_HYPERLINK_OPEN_PRODUCER=Open @Produces
+CDI_INJECTED_POINT_HYPERLINK_SHOW_ALTERNATIVES=Show All...
CDI_PRODUCER_DISPOSER_HYPERLINK_OPEN_BOUND_DISPOSER=Open Bound Disposer Method
CDI_PRODUCER_DISPOSER_HYPERLINK_OPEN_BOUND_PRODUCER=Open Bound Producer Method
CDI_EVENT_LIST_HYPERLINK_OPEN_OBSERVER_METHODS=Open CDI Observer Methods