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:
java.awt.image.ImageObserver,java.awt.MenuContainer,java.io.Serializable,javax.accessibility.Accessible,javax.swing.Scrollable
- Direct Known Subclasses:
JavaOutlineTree,JavaScriptOutlineTree,XmlOutlineTree
public abstract class AbstractSourceTree extends javax.swing.JTreeA tree showing the structure of a source file being edited in anRSyntaxTextArea. 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
RSyntaxTextAreainstance by callinglistenTo(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
SourceTreeNodeor subclasses to this tree. You should also provide a no-argument constructor if you wish to use your subclass inGoToMemberAction.- Version:
- 1.0
- See Also:
SourceTreeNode,JavaOutlineTree,JavaScriptOutlineTree,XmlOutlineTree, Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.swing.JTree
javax.swing.JTree.AccessibleJTree, javax.swing.JTree.DropLocation, javax.swing.JTree.DynamicUtilTreeNode, javax.swing.JTree.EmptySelectionModel, javax.swing.JTree.TreeModelHandler, javax.swing.JTree.TreeSelectionRedirector
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description private booleangotoSelectedElementOnClickprivate java.util.regex.Patternpatternprivate booleanshowMajorElementsOnlyprivate booleansortedprotected org.fife.ui.rsyntaxtextarea.RSyntaxTextAreatextArea-
Fields 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, visibleRowCount
-
Fields inherited from class javax.swing.JComponent
listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
-
-
Constructor Summary
Constructors Constructor Description AbstractSourceTree()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract voidexpandInitialNodes()Expands all nodes in the specified tree.protected booleanfastExpandAll(javax.swing.tree.TreePath parent, boolean expand)An attempt to quickly expand all tree nodes.private booleanfastExpandAllImpl(javax.swing.tree.TreePath parent, boolean expand)voidfilter(java.lang.String pattern)Filters visible tree nodes based on the specified prefix.booleangetGotoSelectedElementOnClick()Returns whether, when a source element is selected in this tree, the same source element should be selected in the editor.booleangetShowMajorElementsOnly()Returns whether only "major" structural elements are shown in this source tree.abstract booleangotoSelectedElement()Highlights 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.voidselectFirstNodeMatchingFilter()Selects the first visible tree node matching the filter text.voidselectNextVisibleRow()Selects the next visible row.voidselectPreviousVisibleRow()Selects 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 voiduninstall()Makes 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, updateUI
-
Methods 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, update
-
Methods 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, validateTree
-
Methods 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
-
-
-
-
Method Detail
-
expandInitialNodes
public abstract void expandInitialNodes()
Expands all nodes in the specified tree. Subclasses should implement this in a way logical for the language.
-
fastExpandAll
protected boolean fastExpandAll(javax.swing.tree.TreePath parent, boolean expand)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
private boolean fastExpandAllImpl(javax.swing.tree.TreePath parent, boolean expand)
-
filter
public void filter(java.lang.String pattern)
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:
setGotoSelectedElementOnClick(boolean)
-
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:
setShowMajorElementsOnly(boolean)
-
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:
setSorted(boolean)
-
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:
uninstall()
-
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()
-
selectPreviousVisibleRow
public void selectPreviousVisibleRow()
Selects the previous visible row.- See Also:
selectNextVisibleRow()
-
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:
getGotoSelectedElementOnClick()
-
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:
getShowMajorElementsOnly()
-
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:
isSorted()
-
uninstall
public abstract void uninstall()
Makes this outline tree stop listening to its current text area.- See Also:
listenTo(RSyntaxTextArea)
-
-