Package org.fife.rsta.ac
Class AbstractSourceTree
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JTree
org.fife.rsta.ac.AbstractSourceTree
- All Implemented Interfaces:
ImageObserver,MenuContainer,Serializable,Accessible,Scrollable
- Direct Known Subclasses:
JavaOutlineTree,JavaScriptOutlineTree,XmlOutlineTree
A tree showing the structure of a source file being edited in an
RSyntaxTextArea. This can be used to display an "outline view"
of the code, for example.
Concrete implementations typically specialize in displaying code structure
for a single language, and are registered to listen to code changes in an
RSyntaxTextArea instance by calling
listenTo(RSyntaxTextArea). They should then listen to document
changes and adjust themselves to reflect the code structure of the current
content as best as possible.
You should only add instances of SourceTreeNode or subclasses to
this tree. You should also provide a no-argument constructor if you wish to
use your subclass in GoToMemberAction.
- Version:
- 1.0
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class javax.swing.JTree
JTree.AccessibleJTree, JTree.DropLocation, JTree.DynamicUtilTreeNode, JTree.EmptySelectionModel, JTree.TreeModelHandler, JTree.TreeSelectionRedirectorNested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponentNested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainerNested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate Patternprivate booleanprivate booleanprotected org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaFields inherited from class javax.swing.JTree
ANCHOR_SELECTION_PATH_PROPERTY, CELL_EDITOR_PROPERTY, CELL_RENDERER_PROPERTY, cellEditor, cellRenderer, editable, EDITABLE_PROPERTY, EXPANDS_SELECTED_PATHS_PROPERTY, INVOKES_STOP_CELL_EDITING_PROPERTY, invokesStopCellEditing, LARGE_MODEL_PROPERTY, largeModel, LEAD_SELECTION_PATH_PROPERTY, ROOT_VISIBLE_PROPERTY, rootVisible, ROW_HEIGHT_PROPERTY, rowHeight, SCROLLS_ON_EXPAND_PROPERTY, scrollsOnExpand, SELECTION_MODEL_PROPERTY, selectionModel, selectionRedirector, SHOWS_ROOT_HANDLES_PROPERTY, showsRootHandles, TOGGLE_CLICK_COUNT_PROPERTY, toggleClickCount, TREE_MODEL_PROPERTY, treeModel, treeModelListener, VISIBLE_ROW_COUNT_PROPERTY, visibleRowCountFields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOWFields inherited from class java.awt.Component
accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENTFields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidExpands all nodes in the specified tree.protected booleanfastExpandAll(TreePath parent, boolean expand) An attempt to quickly expand all tree nodes.private booleanfastExpandAllImpl(TreePath parent, boolean expand) voidFilters visible tree nodes based on the specified prefix.booleanReturns whether, when a source element is selected in this tree, the same source element should be selected in the editor.booleanReturns whether only "major" structural elements are shown in this source tree.abstract booleanHighlights the selected source element in the text editor, if any.booleanisSorted()Returns whether the contents of this tree are sorted.abstract voidlistenTo(org.fife.ui.rsyntaxtextarea.RSyntaxTextArea textArea) Causes this outline tree to reflect the source code in the specified text area.voidrefresh()Refreshes what children are visible in the tree.voidSelects the first visible tree node matching the filter text.voidSelects the next visible row.voidSelects the previous visible row.voidsetGotoSelectedElementOnClick(boolean gotoSelectedElement) Sets whether, when a source element is selected in this tree, the same source element should be selected in the editor.voidsetShowMajorElementsOnly(boolean show) Toggles whether only "major" structural elements should be shown in this source tree.voidsetSorted(boolean sorted) Toggles whether the contents of this tree are sorted.abstract voidMakes this outline tree stop listening to its current text area.Methods inherited from class javax.swing.JTree
addSelectionInterval, addSelectionPath, addSelectionPaths, addSelectionRow, addSelectionRows, addTreeExpansionListener, addTreeSelectionListener, addTreeWillExpandListener, cancelEditing, clearSelection, clearToggledPaths, collapsePath, collapseRow, convertValueToText, createTreeModel, createTreeModelListener, expandPath, expandRow, fireTreeCollapsed, fireTreeExpanded, fireTreeWillCollapse, fireTreeWillExpand, fireValueChanged, getAccessibleContext, getAnchorSelectionPath, getCellEditor, getCellRenderer, getClosestPathForLocation, getClosestRowForLocation, getDefaultTreeModel, getDescendantToggledPaths, getDragEnabled, getDropLocation, getDropMode, getEditingPath, getExpandedDescendants, getExpandsSelectedPaths, getInvokesStopCellEditing, getLastSelectedPathComponent, getLeadSelectionPath, getLeadSelectionRow, getMaxSelectionRow, getMinSelectionRow, getModel, getNextMatch, getPathBetweenRows, getPathBounds, getPathForLocation, getPathForRow, getPreferredScrollableViewportSize, getRowBounds, getRowCount, getRowForLocation, getRowForPath, getRowHeight, getScrollableBlockIncrement, getScrollableTracksViewportHeight, getScrollableTracksViewportWidth, getScrollableUnitIncrement, getScrollsOnExpand, getSelectionCount, getSelectionModel, getSelectionPath, getSelectionPaths, getSelectionRows, getShowsRootHandles, getToggleClickCount, getToolTipText, getTreeExpansionListeners, getTreeSelectionListeners, getTreeWillExpandListeners, getUI, getUIClassID, getVisibleRowCount, hasBeenExpanded, isCollapsed, isCollapsed, isEditable, isEditing, isExpanded, isExpanded, isFixedRowHeight, isLargeModel, isPathEditable, isPathSelected, isRootVisible, isRowSelected, isSelectionEmpty, isVisible, makeVisible, paramString, removeDescendantSelectedPaths, removeDescendantToggledPaths, removeSelectionInterval, removeSelectionPath, removeSelectionPaths, removeSelectionRow, removeSelectionRows, removeTreeExpansionListener, removeTreeSelectionListener, removeTreeWillExpandListener, scrollPathToVisible, scrollRowToVisible, setAnchorSelectionPath, setCellEditor, setCellRenderer, setDragEnabled, setDropMode, setEditable, setExpandedState, setExpandsSelectedPaths, setInvokesStopCellEditing, setLargeModel, setLeadSelectionPath, setModel, setRootVisible, setRowHeight, setScrollsOnExpand, setSelectionInterval, setSelectionModel, setSelectionPath, setSelectionPaths, setSelectionRow, setSelectionRows, setShowsRootHandles, setToggleClickCount, setUI, setVisibleRowCount, startEditingAtPath, stopEditing, treeDidChange, updateUIMethods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateMethods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeMethods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
-
Field Details
-
textArea
protected org.fife.ui.rsyntaxtextarea.RSyntaxTextArea textArea -
sorted
private boolean sorted -
pattern
-
gotoSelectedElementOnClick
private boolean gotoSelectedElementOnClick -
showMajorElementsOnly
private boolean showMajorElementsOnly
-
-
Constructor Details
-
AbstractSourceTree
public AbstractSourceTree()
-
-
Method Details
-
expandInitialNodes
public abstract void expandInitialNodes()Expands all nodes in the specified tree. Subclasses should implement this in a way logical for the language. -
fastExpandAll
An attempt to quickly expand all tree nodes. Only need to expand the "deepest" nodes, as they will auto-expand all parents to make sure they are visible.- Returns:
- Whether an expandPath was called for the last node in the parent path
-
fastExpandAllImpl
-
filter
Filters visible tree nodes based on the specified prefix.- Parameters:
pattern- The prefix, as a wildcard expression. If this isnull, all possible children are shown.
-
getGotoSelectedElementOnClick
public boolean getGotoSelectedElementOnClick()Returns whether, when a source element is selected in this tree, the same source element should be selected in the editor.- Returns:
- Whether to highlight the source element in the editor.
- See Also:
-
getShowMajorElementsOnly
public boolean getShowMajorElementsOnly()Returns whether only "major" structural elements are shown in this source tree. An example of a "minor" element could be a local variable in a function or method.- Returns:
- Whether only major elements are shown in this source tree.
- See Also:
-
gotoSelectedElement
public abstract boolean gotoSelectedElement()Highlights the selected source element in the text editor, if any.- Returns:
- Whether anything was selected in the tree.
-
isSorted
public boolean isSorted()Returns whether the contents of this tree are sorted.- Returns:
- Whether the contents of this tree are sorted.
- See Also:
-
listenTo
public abstract void listenTo(org.fife.ui.rsyntaxtextarea.RSyntaxTextArea textArea) Causes this outline tree to reflect the source code in the specified text area.- Parameters:
textArea- The text area. This should have been registered with theLanguageSupportFactory, and be editing the language we're interested in.- See Also:
-
refresh
public void refresh()Refreshes what children are visible in the tree. This should be called manually when updating a source tree with a new root, and is also called internally on filtering and sorting. -
selectFirstNodeMatchingFilter
public void selectFirstNodeMatchingFilter()Selects the first visible tree node matching the filter text. -
selectNextVisibleRow
public void selectNextVisibleRow()Selects the next visible row.- See Also:
-
selectPreviousVisibleRow
public void selectPreviousVisibleRow()Selects the previous visible row.- See Also:
-
setGotoSelectedElementOnClick
public void setGotoSelectedElementOnClick(boolean gotoSelectedElement) Sets whether, when a source element is selected in this tree, the same source element should be selected in the editor.- Parameters:
gotoSelectedElement- Whether to highlight the source element in the editor.- See Also:
-
setShowMajorElementsOnly
public void setShowMajorElementsOnly(boolean show) Toggles whether only "major" structural elements should be shown in this source tree. An example of a "minor" element could be a local variable in a function or method.- Parameters:
show- Whether only major elements are shown in this source tree.- See Also:
-
setSorted
public void setSorted(boolean sorted) Toggles whether the contents of this tree are sorted.- Parameters:
sorted- Whether the contents of this tree are sorted.- See Also:
-
uninstall
public abstract void uninstall()Makes this outline tree stop listening to its current text area.- See Also:
-