|
From: <caw...@us...> - 2007-02-19 21:47:56
|
Revision: 1984
http://svn.sourceforge.net/rubyeclipse/?rev=1984&view=rev
Author: cawilliams
Date: 2007-02-19 13:47:49 -0800 (Mon, 19 Feb 2007)
Log Message:
-----------
pare down the code some...
Modified Paths:
--------------
trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/hover/RubyCodeTextHover.java
Modified: trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/hover/RubyCodeTextHover.java
===================================================================
--- trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/hover/RubyCodeTextHover.java 2007-02-19 21:47:30 UTC (rev 1983)
+++ trunk/org.rubypeople.rdt.ui/src/org/rubypeople/rdt/internal/ui/text/ruby/hover/RubyCodeTextHover.java 2007-02-19 21:47:49 UTC (rev 1984)
@@ -8,98 +8,75 @@
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IRegion;
import org.eclipse.jface.text.ITextViewer;
import org.rubypeople.rdt.internal.ui.RubyPlugin;
import org.rubypeople.rdt.ui.extensions.ITextHoverProvider;
-
/**
- * Generic TextHover that uses installed extensions for getting information; when the TextHover is requested
- * then all installed TextHoverProvider extensions will be asked to provide a String to show for the location.
+ * Generic TextHover that uses installed extensions for getting information;
+ * when the TextHover is requested then all installed TextHoverProvider
+ * extensions will be asked to provide a String to show for the location.
*
* @author murphee
- *
+ *
*/
public class RubyCodeTextHover extends AbstractRubyEditorTextHover {
-
public static final String RDT_UI_NAMESPACE = "org.rubypeople.rdt.ui";
public static final String RDT_UI_TEXTHOVERPROVIDER = "textHoverProvider";
-
+
private List fExtensions;
public String getHoverInfo(ITextViewer textViewer, IRegion hoverRegion) {
List extensions = initExtensions();
- try {
- final String symbol = textViewer.getDocument().get(hoverRegion.getOffset(), hoverRegion.getLength());
- // first ask the extensions
- if(extensions.size() > 0){
- for(int i=0; i< extensions.size(); i++){
- ITextHoverProvider currentProvider = (ITextHoverProvider) extensions.get(i);
- String hoverText = currentProvider.getHoverInfo(getEditor().getEditorInput(), textViewer, hoverRegion);
- if(hoverText != null){
- return hoverText;
- }
- }
-
- }
-
- } catch (BadLocationException e1) {
- RubyPlugin.log(e1);
+ if (extensions.isEmpty())
+ return null;
+ for (int i = 0; i < extensions.size(); i++) {
+ ITextHoverProvider currentProvider = (ITextHoverProvider) extensions.get(i);
+ String hoverText = currentProvider.getHoverInfo(getEditor().getEditorInput(), textViewer, hoverRegion);
+ if (hoverText != null) {
+ return hoverText;
+ }
}
return null;
}
private List initExtensions() {
- if(fExtensions == null){
+ if (fExtensions == null) {
fExtensions = new ArrayList();
- IExtensionRegistry reg = Platform.getExtensionRegistry();
-
- IExtensionPoint[] points = reg.getExtensionPoints(RDT_UI_NAMESPACE);
- // TODO: Look for textProvider!
- IExtensionPoint point = null;
-
- if(points != null){
- for (int i = 0; i < points.length; i++) {
- IExtensionPoint currentPoint = points[i];
- if(currentPoint.getUniqueIdentifier().endsWith(RDT_UI_TEXTHOVERPROVIDER)){
- point = currentPoint;
- break;
- }
- }
-
- if(point != null){
- IExtension[] exts = points[0].getExtensions();
-
- ITextHoverProvider prov = null;
-
- for (int i = 0; i < exts.length; i++) {
- IConfigurationElement[] elem = exts[i].getConfigurationElements();
- String attrs[] = elem[0].getAttributeNames();
- try {
- Object tempProv = elem[0].createExecutableExtension("class");
- if (tempProv instanceof ITextHoverProvider) {
- prov = (ITextHoverProvider) tempProv;
- fExtensions.add(prov);
- }
-// Object tempExtension = elem[0].getAttribute("fileExtension");
-// if (tempExtension instanceof String) {
-// String extension = (String) tempExtension;
-// fileExtensionToProvider.put(extension.trim(), prov);
-// }
- } catch (Exception e) {
- RubyPlugin.log(e);
- }
-
+ IExtensionPoint point = getTextHoverExtensionPoint();
+ if (point == null)
+ return fExtensions;
+ IExtension[] exts = point.getExtensions();
+ for (int i = 0; i < exts.length; i++) {
+ IConfigurationElement[] elem = exts[i].getConfigurationElements();
+ String attrs[] = elem[0].getAttributeNames();
+ try {
+ Object tempProv = elem[0].createExecutableExtension("class");
+ if (tempProv instanceof ITextHoverProvider) {
+ ITextHoverProvider prov = (ITextHoverProvider) tempProv;
+ fExtensions.add(prov);
}
+ } catch (Exception e) {
+ RubyPlugin.log(e);
}
}
-
}
return fExtensions;
-
}
+ private IExtensionPoint getTextHoverExtensionPoint() {
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IExtensionPoint[] points = reg.getExtensionPoints(RDT_UI_NAMESPACE);
+ if (points == null)
+ return null;
+ for (int i = 0; i < points.length; i++) {
+ IExtensionPoint currentPoint = points[i];
+ if (currentPoint.getUniqueIdentifier().endsWith(RDT_UI_TEXTHOVERPROVIDER)) {
+ return currentPoint;
+ }
+ }
+ return null;
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|