org.merlotxml.merlot
Class XMLEditorDocUI

java.lang.Object
  |
  +--java.awt.Component
        |
        +--java.awt.Container
              |
              +--javax.swing.JComponent
                    |
                    +--javax.swing.JPanel
                          |
                          +--org.merlotxml.merlot.XMLEditorDocUI

public class XMLEditorDocUI
extends javax.swing.JPanel
implements java.awt.event.MouseListener, MerlotConstants, javax.swing.event.ChangeListener, StatusListener

XML Document UI L&F code

Version:
$Id: XMLEditorDocUI.java,v 1.30.4.1 2001/01/30 04:01:02 camk Exp $
Author:
Kelly A. Campbell
See Also:
Serialized Form

Inner Class Summary
protected  class XMLEditorDocUI.EditCancelNodeActionListener
           
 class XMLEditorDocUI.EditorNodeListener
           
protected  class XMLEditorDocUI.EditSaveNodeActionListener
           
protected  class XMLEditorDocUI.NodeAddActionListener
           
protected  class XMLEditorDocUI.NodeAddSpecialCommentActionListener
           
protected  class XMLEditorDocUI.NodeAddSpecialPIActionListener
           
protected  class XMLEditorDocUI.ShowNodeActionListener
           
 class XMLEditorDocUI.StatusCleaner
           
 
Inner classes inherited from class javax.swing.JPanel
javax.swing.JPanel.AccessibleJPanel
 
Inner classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
protected  XMLEditorDoc _doc
           
protected  javax.swing.JMenuBar _menuBar
           
protected  boolean _mouseChangedTab
           
protected  java.util.Hashtable _openEditors
           
protected  java.util.Hashtable _openEditPanels
           
protected  java.util.Hashtable _openNodes
           
protected  javax.swing.JSplitPane _splitPane
           
protected  javax.swing.JLabel _status1
           
protected  javax.swing.JLabel _status2
           
protected  javax.swing.JLabel _status3
           
protected  javax.swing.JPanel _statusPanel
           
protected  com.sun.javax.swing.JTreeTable _table
           
protected  javax.swing.JPanel _treePanel
           
protected  javax.swing.JMenu _treePasteMenu
           
protected  javax.swing.JTabbedPane _workspace
           
protected  DOMTreeTableAdapter _XMLmodel
           
protected static long STATUS_DISPLAY_TIME
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface org.merlotxml.merlot.MerlotConstants
ACTION_MENU_ACCELERATOR, ACTION_MENU_ICON, ACTION_NAME, ACTION_SHORT_DESCRIPTION, ACTION_SMALL_ICON, AFTER, BEFORE, ERR, INTO, UI, XML
 
Constructor Summary
XMLEditorDocUI(XMLEditorDoc doc)
           
 
Method Summary
protected  javax.swing.JMenu createTreePasteMenu()
           
 void deleteNode(MerlotDOMNode node)
           
protected  void doPopup(java.awt.event.MouseEvent e)
           
 void editNode(MerlotDOMNode node, boolean brandSpankinNew)
          Displays a node for editing in the workspace panel.
 void editText(MerlotDOMNode node)
           
protected  void enablePasteItems(MerlotDOMNode node)
          This enables or disables the proper paste items in the paste menu based on the node parameter as the parent or sibling and a peek at the Transferable in the clipboard.
protected  javax.swing.JMenuBar getMenuBar()
           
protected  javax.swing.JMenu getNodeAddMenu(MerlotDOMNode node, int where)
          Creates the add-> menu popup for right-click actions on a particular node.
protected  javax.swing.JMenu getNodeAddSpecialMenu(MerlotDOMNode node)
           
 MerlotDOMNode getNodeForPath(javax.swing.tree.TreePath tp)
           
 MerlotDOMNode getNodeForRow(int row)
           
protected  javax.swing.JPopupMenu getNodePopupMenu(MerlotDOMNode node)
           
 MerlotDOMNode getSelectedNode()
          Gets the Node object that is the current selection in the document tree.
 MerlotDOMNode[] getSelectedNodes()
           
 int getSelectedRow()
           
 java.awt.datatransfer.Transferable getTransferable()
          gets the transfer data for the current selection, or null if no selection exists
 java.awt.Dimension getWorkspaceSize()
          Returns the dimensions of the workspace
 void mouseClicked(java.awt.event.MouseEvent e)
          this gets a menu for what you can add as a sibling after a particular node
 void mouseEntered(java.awt.event.MouseEvent e)
           
 void mouseExited(java.awt.event.MouseEvent e)
           
 void mousePressed(java.awt.event.MouseEvent e)
           
 void mouseReleased(java.awt.event.MouseEvent e)
           
 void refreshNode(MerlotDOMNode node, boolean cancelOnly)
          Refreshs a panel (accessible via the node).
 void saveOpenEditors()
           
 void setStatus(java.lang.String s)
           
 void setStatus(java.lang.String s, int i)
           
protected  void setupPanel()
          This panel looks a little like Windows Explorer.
protected  javax.swing.JPanel setupTreeTable()
           
 void showNode(MerlotDOMNode node)
          Highlights the node in the JTree
 void stateChanged(javax.swing.event.ChangeEvent evt)
           
 void statusChanged(StatusEvent evt)
           
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUIClassID, paramString, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getAlignmentX, getAlignmentY, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getGraphics, getHeight, getInsets, getInsets, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getVisibleRect, getWidth, getX, getY, grabFocus, hasFocus, isDoubleBuffered, isFocusCycleRoot, isFocusTraversable, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, processComponentKeyEvent, processFocusEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDoubleBuffered, setEnabled, setFont, setForeground, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setUI, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, addImpl, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getLayout, insets, invalidate, isAncestorOf, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setCursor, setLayout, validate, validateTree
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, getBackground, getBounds, getColorModel, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getInputContext, getInputMethodRequests, getLocale, getLocation, getLocationOnScreen, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hide, imageUpdate, inside, isDisplayable, isEnabled, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processInputMethodEvent, processMouseEvent, remove, removeComponentListener, removeFocusListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, 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

_doc

protected XMLEditorDoc _doc

_table

protected com.sun.javax.swing.JTreeTable _table

_XMLmodel

protected DOMTreeTableAdapter _XMLmodel

_treePanel

protected javax.swing.JPanel _treePanel

_splitPane

protected javax.swing.JSplitPane _splitPane

_workspace

protected javax.swing.JTabbedPane _workspace

_statusPanel

protected javax.swing.JPanel _statusPanel

_status1

protected javax.swing.JLabel _status1

_status2

protected javax.swing.JLabel _status2

_status3

protected javax.swing.JLabel _status3

_menuBar

protected javax.swing.JMenuBar _menuBar

_treePasteMenu

protected javax.swing.JMenu _treePasteMenu

_openNodes

protected java.util.Hashtable _openNodes

_openEditors

protected java.util.Hashtable _openEditors

_openEditPanels

protected java.util.Hashtable _openEditPanels

_mouseChangedTab

protected boolean _mouseChangedTab

STATUS_DISPLAY_TIME

protected static final long STATUS_DISPLAY_TIME
Constructor Detail

XMLEditorDocUI

public XMLEditorDocUI(XMLEditorDoc doc)
Method Detail

setupPanel

protected void setupPanel()
This panel looks a little like Windows Explorer. It has a treetable at the left, a JSplitPane slider in the middle, and then an editing workspace at the right.

createTreePasteMenu

protected javax.swing.JMenu createTreePasteMenu()

getMenuBar

protected javax.swing.JMenuBar getMenuBar()

setupTreeTable

protected javax.swing.JPanel setupTreeTable()

editNode

public void editNode(MerlotDOMNode node,
                     boolean brandSpankinNew)
Displays a node for editing in the workspace panel.
Parameters:
node - the node to edit

editText

public void editText(MerlotDOMNode node)

deleteNode

public void deleteNode(MerlotDOMNode node)

saveOpenEditors

public void saveOpenEditors()

getNodePopupMenu

protected javax.swing.JPopupMenu getNodePopupMenu(MerlotDOMNode node)

enablePasteItems

protected void enablePasteItems(MerlotDOMNode node)
This enables or disables the proper paste items in the paste menu based on the node parameter as the parent or sibling and a peek at the Transferable in the clipboard.

getNodeAddMenu

protected javax.swing.JMenu getNodeAddMenu(MerlotDOMNode node,
                                           int where)
Creates the add-> menu popup for right-click actions on a particular node.
Parameters:
node - the node this is acting on.
where - what the add is for.. INTO, BEFORE, AFTER the context node
Returns:
a menu containing elements that can be added to a node. If the INTO param is passed, this also adds the add after and before submenus.

getNodeAddSpecialMenu

protected javax.swing.JMenu getNodeAddSpecialMenu(MerlotDOMNode node)

mouseClicked

public void mouseClicked(java.awt.event.MouseEvent e)
this gets a menu for what you can add as a sibling after a particular node
Specified by:
mouseClicked in interface java.awt.event.MouseListener

mouseEntered

public void mouseEntered(java.awt.event.MouseEvent e)
Specified by:
mouseEntered in interface java.awt.event.MouseListener

mouseExited

public void mouseExited(java.awt.event.MouseEvent e)
Specified by:
mouseExited in interface java.awt.event.MouseListener

mousePressed

public void mousePressed(java.awt.event.MouseEvent e)
Specified by:
mousePressed in interface java.awt.event.MouseListener

mouseReleased

public void mouseReleased(java.awt.event.MouseEvent e)
Specified by:
mouseReleased in interface java.awt.event.MouseListener

doPopup

protected void doPopup(java.awt.event.MouseEvent e)

getSelectedNode

public MerlotDOMNode getSelectedNode()
Gets the Node object that is the current selection in the document tree.

getSelectedNodes

public MerlotDOMNode[] getSelectedNodes()

getSelectedRow

public int getSelectedRow()

getNodeForPath

public MerlotDOMNode getNodeForPath(javax.swing.tree.TreePath tp)

getNodeForRow

public MerlotDOMNode getNodeForRow(int row)

refreshNode

public void refreshNode(MerlotDOMNode node,
                        boolean cancelOnly)
Refreshs a panel (accessible via the node). Works by cancelling and re-opening the node to edit. cancelOnly option cancels without re-opening.

showNode

public void showNode(MerlotDOMNode node)
Highlights the node in the JTree

getWorkspaceSize

public java.awt.Dimension getWorkspaceSize()
Returns the dimensions of the workspace

getTransferable

public java.awt.datatransfer.Transferable getTransferable()
gets the transfer data for the current selection, or null if no selection exists

setStatus

public void setStatus(java.lang.String s)

setStatus

public void setStatus(java.lang.String s,
                      int i)

statusChanged

public void statusChanged(StatusEvent evt)
Specified by:
statusChanged in interface StatusListener

stateChanged

public void stateChanged(javax.swing.event.ChangeEvent evt)
Specified by:
stateChanged in interface javax.swing.event.ChangeListener