org.eclipse.xtend.shared.ui.editor.navigation
Class AbstractHyperlinkDetector

java.lang.Object
  extended by org.eclipse.xtend.shared.ui.editor.navigation.AbstractHyperlinkDetector
All Implemented Interfaces:
org.eclipse.jface.text.hyperlink.IHyperlinkDetector
Direct Known Subclasses:
CheckHyperlinkDetector, GenericHyperlinkDetector, XpandHyperlinkDetector, XtendHyperlinkDetector

public abstract class AbstractHyperlinkDetector
extends java.lang.Object
implements org.eclipse.jface.text.hyperlink.IHyperlinkDetector

GenericHyperlinkDetector is used to detect hyperlinkable words inside Xtend editors.

Author:
Darius Jockel, Peter Friese

Field Summary
protected  IXtendXpandResource _xxresource
           
protected  org.eclipse.ui.IEditorPart editor
           
 
Constructor Summary
AbstractHyperlinkDetector(org.eclipse.ui.IEditorPart editor)
           
 
Method Summary
protected  ContextComputer computeContext(IXtendXpandResource resource, Expression expression)
           
protected  java.lang.String computeHyperlinkLabel(java.lang.String name, java.lang.String typeName, java.util.List<DeclaredParameter> params, IXtendXpandResource xxresource)
          Provides a label for a extension or definition with given parameter list.
protected  java.util.List<GenericHyperlink> computeMatchesAndHyperlinks(org.eclipse.jface.text.IRegion hyperlinkRegion, java.lang.String hyperlinkedWord, IXtendXpandProject project)
           
protected  java.util.List<GenericHyperlink> createHyperlinkToImportedExtensions(IXtendXpandResource resource, org.eclipse.jface.text.IRegion region, java.lang.String hyperlinkedName)
           
 org.eclipse.jface.text.hyperlink.IHyperlink[] detectHyperlinks(org.eclipse.jface.text.ITextViewer textViewer, org.eclipse.jface.text.IRegion region, boolean canShowMultipleHyperlinks)
          
protected  SyntaxElement findOwningElement(IXtendXpandResource file, Expression expression)
           
protected  org.eclipse.core.resources.IFile getFile()
           
protected  org.eclipse.jface.text.IRegion getHyperlinkRegion(org.eclipse.jface.text.ITextViewer textViewer, int offset)
          Given a text viewer and an offset (i.e.
protected  org.eclipse.ui.IWorkbenchPage getWorkbenchPage()
           
protected  IXtendXpandProject getXtendXpandProject()
           
protected  IXtendXpandResource getXXResourceByName(java.lang.String fqName, java.lang.String extension)
          A cached getter for a IXtendXpandResource.
protected  java.util.List<GenericHyperlink> useGenericHyplerlinkDetector(org.eclipse.jface.text.IRegion hyperlinkRegion, java.lang.String hyperlinkedWord, IXtendXpandProject project)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

editor

protected final org.eclipse.ui.IEditorPart editor

_xxresource

protected IXtendXpandResource _xxresource
Constructor Detail

AbstractHyperlinkDetector

public AbstractHyperlinkDetector(org.eclipse.ui.IEditorPart editor)
Method Detail

computeMatchesAndHyperlinks

protected java.util.List<GenericHyperlink> computeMatchesAndHyperlinks(org.eclipse.jface.text.IRegion hyperlinkRegion,
                                                                       java.lang.String hyperlinkedWord,
                                                                       IXtendXpandProject project)

useGenericHyplerlinkDetector

protected java.util.List<GenericHyperlink> useGenericHyplerlinkDetector(org.eclipse.jface.text.IRegion hyperlinkRegion,
                                                                        java.lang.String hyperlinkedWord,
                                                                        IXtendXpandProject project)
Since:
2.0

findOwningElement

protected SyntaxElement findOwningElement(IXtendXpandResource file,
                                          Expression expression)
Since:
2.0

computeContext

protected ContextComputer computeContext(IXtendXpandResource resource,
                                         Expression expression)
Since:
2.0

detectHyperlinks

public org.eclipse.jface.text.hyperlink.IHyperlink[] detectHyperlinks(org.eclipse.jface.text.ITextViewer textViewer,
                                                                      org.eclipse.jface.text.IRegion region,
                                                                      boolean canShowMultipleHyperlinks)

Specified by:
detectHyperlinks in interface org.eclipse.jface.text.hyperlink.IHyperlinkDetector

getWorkbenchPage

protected org.eclipse.ui.IWorkbenchPage getWorkbenchPage()

getXtendXpandProject

protected IXtendXpandProject getXtendXpandProject()

getFile

protected org.eclipse.core.resources.IFile getFile()

getHyperlinkRegion

protected org.eclipse.jface.text.IRegion getHyperlinkRegion(org.eclipse.jface.text.ITextViewer textViewer,
                                                            int offset)
Given a text viewer and an offset (i.e. the current cursor position), analyse the region around this location in order to find the word under the cursor.

Parameters:
textViewer - The underlying text viewer.
offset - The cursor location.
Returns:
The document region defining the hyperlinked word.

computeHyperlinkLabel

protected java.lang.String computeHyperlinkLabel(java.lang.String name,
                                                 java.lang.String typeName,
                                                 java.util.List<DeclaredParameter> params,
                                                 IXtendXpandResource xxresource)
Provides a label for a extension or definition with given parameter list.

Parameters:
name - The name of the element
params - A list of parameters declared by the element DeclaredParameter
Returns:
A label: name(params,...) - FileName

getXXResourceByName

protected IXtendXpandResource getXXResourceByName(java.lang.String fqName,
                                                  java.lang.String extension)
A cached getter for a IXtendXpandResource.

Parameters:
fqName - The full qualified name of the resource
extension - The kind of resource
Returns:
The value of _xxresource if _xxresource is filled and the names are equal. Otherwise the ModelManager tries to find that file.

createHyperlinkToImportedExtensions

protected java.util.List<GenericHyperlink> createHyperlinkToImportedExtensions(IXtendXpandResource resource,
                                                                               org.eclipse.jface.text.IRegion region,
                                                                               java.lang.String hyperlinkedName)