Author: dazarov
Date: 2010-07-23 10:11:14 -0400 (Fri, 23 Jul 2010)
New Revision: 23703
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventListHyperlink.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/EventHyperlink.java
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlinkDetector.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-3124
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-07-23
13:41:13 UTC (rev 23702)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/CDIExtensionsMessages.java 2010-07-23
14:11:14 UTC (rev 23703)
@@ -26,5 +26,6 @@
public static String CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECTED_BEAN;
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;
public static String CDI_EVENT_HYPERLINK_OPEN_OBSERVER_METHOD;
}
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlink.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlink.java 2010-07-23
13:41:13 UTC (rev 23702)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlink.java 2010-07-23
14:11:14 UTC (rev 23703)
@@ -17,12 +17,7 @@
import org.eclipse.jface.text.IRegion;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.PartInitException;
-import org.jboss.tools.cdi.core.IBean;
-import org.jboss.tools.cdi.core.IDecorator;
-import org.jboss.tools.cdi.core.IInterceptor;
import org.jboss.tools.cdi.core.IObserverMethod;
-import org.jboss.tools.cdi.core.IProducerField;
-import org.jboss.tools.cdi.core.IProducerMethod;
import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
import org.jboss.tools.cdi.text.ext.CDIExtensionsPlugin;
import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlinkDetector.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlinkDetector.java 2010-07-23
13:41:13 UTC (rev 23702)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventHyperlinkDetector.java 2010-07-23
14:11:14 UTC (rev 23703)
@@ -33,7 +33,6 @@
import org.eclipse.jface.text.hyperlink.IHyperlink;
import org.eclipse.ui.texteditor.ITextEditor;
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.ICDIProject;
@@ -101,9 +100,7 @@
}
}
Set<IObserverMethod> observerMethods = findEvents(cdiNature, element, position,
file);
- for(IObserverMethod observerMethod : observerMethods){
- hyperlinks.add(new EventHyperlink(region, observerMethod, document));
- }
+ hyperlinks.add(new EventListHyperlink(textViewer, region, observerMethods,
document));
}
if (hyperlinks != null && !hyperlinks.isEmpty()) {
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventListHyperlink.java
===================================================================
---
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventListHyperlink.java
(rev 0)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventListHyperlink.java 2010-07-23
14:11:14 UTC (rev 23703)
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * 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.Set;
+
+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.eclipse.jface.text.hyperlink.MultipleHyperlinkPresenter;
+import org.eclipse.swt.graphics.RGB;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.PlatformUI;
+import org.jboss.tools.cdi.core.IObserverMethod;
+import org.jboss.tools.cdi.text.ext.CDIExtensionsMessages;
+import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
+
+public class EventListHyperlink extends AbstractHyperlink{
+ private ITextViewer viewer;
+ private Set<IObserverMethod> observerMethods;
+ private IRegion region;
+
+ private static MultipleHyperlinkPresenter mhp = new MultipleHyperlinkPresenter(new
RGB(0, 0, 255));
+ private static boolean installed = false;
+
+ public EventListHyperlink(ITextViewer viewer, IRegion region, Set<IObserverMethod>
observerMethods, IDocument document){
+ this.viewer = viewer;
+ this.observerMethods = observerMethods;
+ this.region = region;
+ setDocument(document);
+ }
+
+
+ @Override
+ protected IRegion doGetHyperlinkRegion(int offset) {
+ return region;
+ }
+
+ protected void doHyperlink(IRegion region) {
+ IHyperlink[] hyperlinks = new IHyperlink[observerMethods.size()];
+
+ int index=0;
+ for(IObserverMethod observerMethod : observerMethods){
+ hyperlinks[index++] = new EventHyperlink(region, observerMethod, getDocument());
+ }
+
+ if(hyperlinks.length == 0){
+ openFileFailed();
+ return;
+ }
+
+ if(installed){
+ installed = false;
+ mhp.uninstall();
+ }
+
+ if(hyperlinks.length == 1){
+ ((EventHyperlink)hyperlinks[0]).doHyperlink(region);
+ }else{
+ installed = true;
+
+ mhp.install(viewer);
+ mhp.showHyperlinks(hyperlinks);
+ PlatformUI.getWorkbench().getActiveWorkbenchWindow().getPartService().addPartListener(new
IPartListener(){
+ public void partActivated(IWorkbenchPart arg0) {
+ }
+
+ public void partBroughtToTop(IWorkbenchPart arg0) {
+ }
+
+ public void partClosed(IWorkbenchPart arg0) {
+ if(installed){
+ installed = false;
+ mhp.uninstall();
+ }
+ }
+
+ public void partDeactivated(IWorkbenchPart arg0) {
+
+ }
+
+ public void partOpened(IWorkbenchPart arg0) {
+ }
+ });
+ }
+ }
+
+ @Override
+ public String getHyperlinkText() {
+ return CDIExtensionsMessages.CDI_EVENT_LIST_HYPERLINK_OPEN_OBSERVER_METHODS;
+ }
+
+}
Property changes on:
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/hyperlink/EventListHyperlink.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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-07-23
13:41:13 UTC (rev 23702)
+++
trunk/cdi/plugins/org.jboss.tools.cdi.text.ext/src/org/jboss/tools/cdi/text/ext/messages.properties 2010-07-23
14:11:14 UTC (rev 23703)
@@ -5,4 +5,5 @@
CDI_INJECTED_POINT_HYPERLINK_OPEN_INJECTED_BEAN=Open Injected Bean
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
CDI_EVENT_HYPERLINK_OPEN_OBSERVER_METHOD=Open CDI Observer Method