Package com.sun.demo
Class ElementTreePanel
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- com.sun.demo.ElementTreePanel
-
- All Implemented Interfaces:
java.awt.image.ImageObserver
,java.awt.MenuContainer
,java.beans.PropertyChangeListener
,java.io.Serializable
,java.util.EventListener
,javax.accessibility.Accessible
,javax.swing.event.CaretListener
,javax.swing.event.DocumentListener
,javax.swing.event.TreeSelectionListener
public class ElementTreePanel extends javax.swing.JPanel implements javax.swing.event.CaretListener, javax.swing.event.DocumentListener, java.beans.PropertyChangeListener, javax.swing.event.TreeSelectionListener
Displays a tree showing all the elements in a text Document. Selecting a node will result in reseting the selection of the JTextComponent. This also becomes a CaretListener to know when the selection has changed in the text to update the selected item in the tree.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ElementTreePanel.ElementTreeModel
ElementTreeModel is an implementation of TreeModel to handle displaying the Elements from a Document.-
Nested classes/interfaces inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
-
Nested classes/interfaces inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.swing.text.JTextComponent
editor
Text component showing elemenst for.protected javax.swing.JTree
tree
Tree showing the documents element structure.protected ElementTreePanel.ElementTreeModel
treeModel
Model for the tree.protected boolean
updatingSelection
Set to true when updatin the selection.-
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 ElementTreePanel(javax.swing.text.JTextComponent editor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
caretUpdate(javax.swing.event.CaretEvent e)
Messaged when the selection in the editor has changed.void
changedUpdate(javax.swing.event.DocumentEvent e)
Gives notification that an attribute or set of attributes changed.protected javax.swing.text.JTextComponent
getEditor()
protected javax.swing.tree.TreePath
getPathForIndex(int position, java.lang.Object root, javax.swing.text.Element rootElement)
Returns a TreePath to the element atposition
.protected javax.swing.JTree
getTree()
javax.swing.tree.DefaultTreeModel
getTreeModel()
void
insertUpdate(javax.swing.event.DocumentEvent e)
Gives notification that there was an insert into the document.void
propertyChange(java.beans.PropertyChangeEvent e)
Invoked when a property changes.void
removeUpdate(javax.swing.event.DocumentEvent e)
Gives notification that a portion of the document has been removed.void
setEditor(javax.swing.text.JTextComponent editor)
Resets the JTextComponent toeditor
.protected void
updateTree(javax.swing.event.DocumentEvent event)
Updates the tree based on the event type.protected void
updateTree(javax.swing.event.DocumentEvent event, javax.swing.text.Element element)
Creates TreeModelEvents based on the DocumentEvent and messages the treemodel.void
valueChanged(javax.swing.event.TreeSelectionEvent e)
Called whenever the value of the selection changes.-
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, paramString, setUI, 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, 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
-
-
-
-
Field Detail
-
tree
protected javax.swing.JTree tree
Tree showing the documents element structure.
-
editor
protected javax.swing.text.JTextComponent editor
Text component showing elemenst for.
-
treeModel
protected ElementTreePanel.ElementTreeModel treeModel
Model for the tree.
-
updatingSelection
protected boolean updatingSelection
Set to true when updatin the selection.
-
-
Method Detail
-
setEditor
public void setEditor(javax.swing.text.JTextComponent editor)
Resets the JTextComponent toeditor
. This will update the tree accordingly.
-
propertyChange
public void propertyChange(java.beans.PropertyChangeEvent e)
Invoked when a property changes. We are only interested in when the Document changes to reset the DocumentListener.- Specified by:
propertyChange
in interfacejava.beans.PropertyChangeListener
-
insertUpdate
public void insertUpdate(javax.swing.event.DocumentEvent e)
Gives notification that there was an insert into the document. The given range bounds the freshly inserted region.- Specified by:
insertUpdate
in interfacejavax.swing.event.DocumentListener
- Parameters:
e
- the document event
-
removeUpdate
public void removeUpdate(javax.swing.event.DocumentEvent e)
Gives notification that a portion of the document has been removed. The range is given in terms of what the view last saw (that is, before updating sticky positions).- Specified by:
removeUpdate
in interfacejavax.swing.event.DocumentListener
- Parameters:
e
- the document event
-
changedUpdate
public void changedUpdate(javax.swing.event.DocumentEvent e)
Gives notification that an attribute or set of attributes changed.- Specified by:
changedUpdate
in interfacejavax.swing.event.DocumentListener
- Parameters:
e
- the document event
-
caretUpdate
public void caretUpdate(javax.swing.event.CaretEvent e)
Messaged when the selection in the editor has changed. Will update the selection in the tree.- Specified by:
caretUpdate
in interfacejavax.swing.event.CaretListener
-
valueChanged
public void valueChanged(javax.swing.event.TreeSelectionEvent e)
Called whenever the value of the selection changes.- Specified by:
valueChanged
in interfacejavax.swing.event.TreeSelectionListener
- Parameters:
e
- the event that characterizes the change.
-
getTree
protected javax.swing.JTree getTree()
- Returns:
- tree showing elements.
-
getEditor
protected javax.swing.text.JTextComponent getEditor()
- Returns:
- JTextComponent showing elements for.
-
getTreeModel
public javax.swing.tree.DefaultTreeModel getTreeModel()
- Returns:
- TreeModel implementation used to represent the elements.
-
updateTree
protected void updateTree(javax.swing.event.DocumentEvent event)
Updates the tree based on the event type. This will invoke either updateTree with the root element, or handleChange.
-
updateTree
protected void updateTree(javax.swing.event.DocumentEvent event, javax.swing.text.Element element)
Creates TreeModelEvents based on the DocumentEvent and messages the treemodel. This recursively invokes this method with children elements.- Parameters:
event
- indicates what elements in the tree hierarchy have changed.element
- Current element to check for changes against.
-
getPathForIndex
protected javax.swing.tree.TreePath getPathForIndex(int position, java.lang.Object root, javax.swing.text.Element rootElement)
Returns a TreePath to the element atposition
.
-
-