ix.util.xml
Class XMLTreeEditPanel

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--ix.util.xml.XMLTreeEditPanel
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.event.ActionListener, java.util.EventListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.swing.event.TreeSelectionListener

public class XMLTreeEditPanel
extends javax.swing.JPanel
implements java.awt.event.ActionListener, javax.swing.event.TreeSelectionListener

A panel that contains an XML tree-editor.

See Also:
XMLTreeEditor, XMLTreeEditFrame, Serialized Form

Inner Class Summary
(package private)  class XMLTreeEditPanel.CutFrame
          A frame that shows a subtree cut from the main editor panel.
(package private)  class XMLTreeEditPanel.EditingTextArea
          A text area for editing string values
(package private)  class XMLTreeEditPanel.EditorTree
          JTree subclass used for all trees in the editor.
(package private)  class XMLTreeEditPanel.InvalidCommand
           
(package private)  class XMLTreeEditPanel.InvalidNode
           
(package private)  class XMLTreeEditPanel.NodePopupMenu
          The popup menu that appears when the user right-clicks on a tree node.
(package private)  class XMLTreeEditPanel.RecordingExpansionListener
           
(package private)  class XMLTreeEditPanel.TemplateSyntax
          Knows about the syntax of Java classes.
(package private)  class XMLTreeEditPanel.TNode
          A TreeNode for use in EditorTrees.
(package private)  class XMLTreeEditPanel.TNodeFactory
          Makes nodes from JDOM Documents and Elements.
(package private)  class XMLTreeEditPanel.TNodeParser
          Responsible for understanding the object-like structure of tree nodes and for converting nodes into JDOM Documents or Elements.
(package private)  class XMLTreeEditPanel.TreeMouseListener
           
 
Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent, javax.swing.JComponent.ActionStandin, javax.swing.JComponent.IntVector, javax.swing.JComponent.KeyboardState
 
Inner classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.AWTTreeLock
 
Field Summary
protected  javax.swing.tree.DefaultTreeModel docModel
           
protected  XMLTreeEditPanel.EditorTree docTree
           
protected  org.jdom.Document document
          The document this panel is editing.
protected  XMLTreeEditPanel.EditingTextArea editText
           
protected  XMLTreeEditPanel.EditorTree mostRecentlySelectedTree
           
protected  XMLTreeEditPanel.TNodeFactory nodeFactory
           
protected  XMLTreeEditPanel.TNodeParser nodeParser
           
protected  javax.swing.JButton submitButton
           
protected  XMLTreeEditPanel.TemplateSyntax syntax
           
protected  XMLTreeEditPanel.EditorTree templateTree
           
 
Fields inherited from class javax.swing.JComponent
_bounds, accessibleContext, listenerList, paintingChild, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Container
component, containerListener, layoutMgr, listeningBoundsChildren, listeningChildren, ncomponents
 
Fields inherited from class java.awt.Component
actionListenerK, adjustmentListenerK, appContext, background, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, componentListener, componentListenerK, componentOrientation, containerListenerK, cursor, dropTarget, enabled, eventMask, focusListener, focusListenerK, font, foreground, graphicsConfig, hasFocus, height, hierarchyBoundsListener, hierarchyBoundsListenerK, hierarchyListener, hierarchyListenerK, incRate, inputMethodListener, inputMethodListenerK, isInc, isPacked, itemListenerK, keyListener, keyListenerK, LEFT_ALIGNMENT, locale, LOCK, metrics, minSize, mouseListener, mouseListenerK, mouseMotionListener, mouseMotionListenerK, newEventsOnly, ownedWindowK, parent, peer, peerFont, popups, prefSize, RIGHT_ALIGNMENT, textListenerK, TOP_ALIGNMENT, valid, visible, width, windowClosingException, windowListenerK, x, y
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
XMLTreeEditPanel()
           
 
Method Summary
 void actionPerformed(java.awt.event.ActionEvent e)
          Action interpreter for panel buttons
 void addChild()
          Adds a new node after the existing children of the selected node.
 void addTemplate(XMLTreeEditPanel.TNode template)
           
 void addTemplatesFor(java.lang.Class[] classes)
           
 void addTemplatesFor(java.util.List classes)
           
protected  void complain(java.lang.Object message)
           
 void copySubtree()
          Copy the subtree below and including the currently selected node.
 void cutSubtree()
          "Cut" the subtree below and including the currently selected node.
 void editDocument(org.jdom.Document doc)
           
 void editObject(java.lang.Object object)
           
 org.jdom.Document getDocument()
           
 java.lang.Object getObject()
           
protected  javax.swing.JButton makeButton(java.lang.String command)
           
protected  javax.swing.JPanel makeButtonPanel()
           
protected  XMLTreeEditPanel.EditorTree makeTemplateTree()
           
protected  void reset()
           
protected  void setDocRoot(XMLTreeEditPanel.TNode root)
           
 void valueChanged(javax.swing.event.TreeSelectionEvent e)
           
 
Methods inherited from class javax.swing.JPanel
, getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
_paintImmediately, addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, alwaysOnTop, checkIfChildObscuredBySibling, componentInputMapChanged, computeVisibleRect, computeVisibleRect, compWriteObjectNotify, contains, createToolTip, disable, enable, enableSerialization, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getActionMap, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getCreatedDoubleBuffer, getDebugGraphicsOptions, getGraphics, getHeight, getInputMap, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVerifyInputWhenFocusTarget, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, hide, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processFocusEvent, processKeyBinding, processKeyBindings, processKeyBindingsForAllComponents, processKeyEvent, processMouseMotionEvent, putClientProperty, rectangleIsObscured, rectangleIsObscuredBySibling, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setCreatedDoubleBuffer, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPaintingChild, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVerifyInputWhenFocusTarget, setVisible, shouldDebugGraphics, superProcessMouseMotionEvent, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, adjustListeningChildren, applyOrientation, checkGD, countComponents, createChildHierarchyEvents, createHierarchyEvents, deliverEvent, dispatchEventImpl, dispatchEventToSelf, doLayout, eventEnabled, findComponentAt, findComponentAt, findComponentAt, getAccessibleAt, getAccessibleChild, getAccessibleChildrenCount, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents_NoClientCode, getComponents, getLayout, getMouseEventTarget, getWindow, insets, invalidate, invalidateTree, isAncestorOf, layout, lightweightPaint, lightweightPrint, list, list, locate, minimumSize, nextFocus, numListening, paintComponents, paintHeavyweightComponents, postProcessKeyEvent, postsOldMouseEvents, preferredSize, preProcessKeyEvent, printComponents, printHeavyweightComponents, processContainerEvent, processEvent, proxyEnableEvents, proxyRequestFocus, remove, remove, removeAll, removeContainerListener, setFocusOwner, setLayout, transferFocus, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, areInputMethodsEnabled, bounds, checkImage, checkImage, checkWindowClosingException, coalesceEvents, constructComponentName, contains, createImage, createImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, getAccessibleIndexInParent, getAccessibleStateSet, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont_NoClientCode, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen_NoTreeLock, getLocationOnScreen, getName, getNativeContainer, getParent_NoClientCode, getParent, getPeer, getSize, getToolkit, getToolkitImpl, getTreeLock, gotFocus, handleEvent, imageUpdate, inside, isDisplayable, isEnabled, isEnabledImpl, isLightweight, isRecursivelyVisible, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resetGC, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

document

protected org.jdom.Document document
The document this panel is editing.

nodeFactory

protected XMLTreeEditPanel.TNodeFactory nodeFactory

nodeParser

protected XMLTreeEditPanel.TNodeParser nodeParser

syntax

protected XMLTreeEditPanel.TemplateSyntax syntax

docTree

protected XMLTreeEditPanel.EditorTree docTree

docModel

protected javax.swing.tree.DefaultTreeModel docModel

templateTree

protected XMLTreeEditPanel.EditorTree templateTree

mostRecentlySelectedTree

protected XMLTreeEditPanel.EditorTree mostRecentlySelectedTree

editText

protected XMLTreeEditPanel.EditingTextArea editText

submitButton

protected javax.swing.JButton submitButton
Constructor Detail

XMLTreeEditPanel

public XMLTreeEditPanel()
Method Detail

reset

protected void reset()

setDocRoot

protected void setDocRoot(XMLTreeEditPanel.TNode root)

editDocument

public void editDocument(org.jdom.Document doc)

getDocument

public org.jdom.Document getDocument()

editObject

public void editObject(java.lang.Object object)

getObject

public java.lang.Object getObject()

addTemplatesFor

public void addTemplatesFor(java.lang.Class[] classes)

addTemplatesFor

public void addTemplatesFor(java.util.List classes)

addTemplate

public void addTemplate(XMLTreeEditPanel.TNode template)

makeTemplateTree

protected XMLTreeEditPanel.EditorTree makeTemplateTree()

makeButtonPanel

protected javax.swing.JPanel makeButtonPanel()

makeButton

protected javax.swing.JButton makeButton(java.lang.String command)

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Action interpreter for panel buttons
Specified by:
actionPerformed in interface java.awt.event.ActionListener

addChild

public void addChild()
Adds a new node after the existing children of the selected node.

copySubtree

public void copySubtree()
Copy the subtree below and including the currently selected node. This is essentially the same as a "Cut" without deletion, but it also takes a copy of the subtree rather than taking those very nodes.

cutSubtree

public void cutSubtree()
"Cut" the subtree below and including the currently selected node.

complain

protected void complain(java.lang.Object message)

valueChanged

public void valueChanged(javax.swing.event.TreeSelectionEvent e)
Specified by:
valueChanged in interface javax.swing.event.TreeSelectionListener