public class JavaBrowseSupport
extends java.lang.Object
JavaBrowseSupport
class provides the routines for
supporting the "Browse Symbol at Cursor" and "Browse JavaDoc"
command that appears in the context-sensitive This class does the
work of checking whether a "Browse Symbol" operation can be
performed, as well as to find the appropriate source file to bring
up in an editor. It is a singleton class as it does not store any editor references internally.
FUTURE ENHANCEMENTS Skip the parse (nice-to-have, straightforward). BrowseSymbol currently always parses the file and uses a simple heuristic for determining which symbol the cursor is under. If the user has already made a selection, BrowseSymbol should try to browse that selection FIRST, and failing that, then do the parse and proceed with the browsing.
Modifier | Constructor and Description |
---|---|
protected |
JavaBrowseSupport() |
Modifier and Type | Method and Description |
---|---|
protected void |
browseInCurrentFile(JavaBrowseHelper helper,
int offset)
Used by Browse Symbol to jump to the (hopefully) correct
symbol in the current file.
|
HelpInfo |
getHelpInfo(Context context,
int offset,
boolean reportErrors)
|
protected HelpInfo |
getHelpInfoImpl(JavaBrowseHelper helper,
boolean reportErrors)
|
protected JavaBrowseContext |
getJavaBrowseContext(Context context,
int offset) |
protected JavaBrowseHelper |
getJavaBrowseHelper(Context context,
int offset)
Subclasses should override this in order to provide different
JavaBrowseContext.
|
static NumberRange |
getJavaIdentifierAtOffset(javax.swing.text.JTextComponent textComponent,
int offset)
Utility routine to determine the identifier at the given offset,
or null if there is none.
|
static JavaBrowseSupport |
getSingleton() |
JavaHasType |
getSymbolAtOffset(Context context,
int offset) |
protected static void |
gotoOffset(Context context,
int offset)
Retrieves the line that the offset is at and goes to it.
|
protected HelpInfo |
helpInfoFor(Context context,
JavaClass browseClass) |
protected HelpInfo |
helpInfoFor(Context context,
JavaMethod method) |
void |
performBrowseSymbolAtOffset(Context context,
int cursorOffset)
Performs a browse symbol on the given context at the given offset.
|
void |
performJavaHelpAtOffset(Context context,
int offset,
boolean reportErrors)
Static entrypoint provided for showing help for symbol under the offset..
|
protected static void |
reportError(java.lang.String errorMessage)
Reports the specified error message to the user using an error
dialog.
|
public static JavaBrowseSupport getSingleton()
protected JavaBrowseContext getJavaBrowseContext(Context context, int offset)
protected JavaBrowseHelper getJavaBrowseHelper(Context context, int offset)
public HelpInfo getHelpInfo(Context context, int offset, boolean reportErrors)
context
- the ide contextoffset
- the offset to usereportErrors
- true to display errors to users (such as class not found)public JavaHasType getSymbolAtOffset(Context context, int offset)
public void performBrowseSymbolAtOffset(Context context, int cursorOffset)
NOTES to Jimmy:
1. You may have figured this out already, but just to make sure you don't forget: When the user right-clicks on the BaseElement in the Code Explorer, you should pass in the end-offset of the symbol instead of the start-offset. If you pass in the start-offset, especially for an import statement, it'll try to browse the package and fail. Go ahead and remove this note when you implement.
2. I'm getting strange UI behavior when I hack BaseElement to call this method. Let me know if stuff is acting up. I don't have a real easy way to debug this function right now.
context
- The Java src context from which to retrieve the TextBuffer
that will be used with the cursorOffset.public void performJavaHelpAtOffset(Context context, int offset, boolean reportErrors)
context
- offset
- reportErrors
- true to display errors to users (such as class not found)protected HelpInfo getHelpInfoImpl(JavaBrowseHelper helper, boolean reportErrors)
helper
- the editor that the browse doc at cursor action
was performedprotected HelpInfo helpInfoFor(Context context, JavaMethod method)
protected static void gotoOffset(Context context, int offset)
protected void browseInCurrentFile(JavaBrowseHelper helper, int offset)
public static NumberRange getJavaIdentifierAtOffset(javax.swing.text.JTextComponent textComponent, int offset)
offset
- the offset to checkprotected static void reportError(java.lang.String errorMessage)
errorMessage
- the error message to report