edu.ucsb.nceas.morpho.editor
Class DocFrame

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjava.awt.Window
              extended byjava.awt.Frame
                  extended byjavax.swing.JFrame
                      extended byedu.ucsb.nceas.morpho.editor.DocFrame
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, java.awt.MenuContainer, javax.swing.RootPaneContainer, java.io.Serializable, javax.swing.WindowConstants

public class DocFrame
extends javax.swing.JFrame

DocFrame is a container for an XML editor which shows combined outline and nested panel views of an XML document. This class uses a DTDParser to 'merge' an existing XML instance with a template created from its DTD. This merging adds optional nodes missing from the original document. Help information and special custom node editors are also loaded from a 'template'.

Author:
higgins
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JFrame
javax.swing.JFrame.AccessibleJFrame
 
Nested classes inherited from class java.awt.Frame
java.awt.Frame.AccessibleAWTFrame
 
Nested classes inherited from class java.awt.Window
java.awt.Window.AccessibleAWTWindow
 
Nested classes inherited from class java.awt.Container
java.awt.Container.AccessibleAWTContainer
 
Nested classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
static java.lang.String ATTRIB_NAME_FOR_SCHEMA_LOCATION
          used by the transform() method to get the schemaLocation (if one has been defined) from the Document root node
static int counter
          counter for name
 DTDTree dtdtree
           
static java.lang.String NAMESPACE_FOR_SCHEMA_LOCATION
          used by the transform() method to get the schemaLocation (if one has been defined) from the Document root node
 boolean removeExtraInfoFlag
           
 javax.swing.tree.DefaultMutableTreeNode rootNode
           
 javax.swing.JTree tree
           
 javax.swing.tree.DefaultTreeModel treeModel
           
 boolean xmlAttributesInTreeFlag
           
 
Fields inherited from class javax.swing.JFrame
accessibleContext, EXIT_ON_CLOSE, rootPane, rootPaneCheckingEnabled
 
Fields inherited from class java.awt.Frame
CROSSHAIR_CURSOR, DEFAULT_CURSOR, E_RESIZE_CURSOR, HAND_CURSOR, ICONIFIED, MAXIMIZED_BOTH, MAXIMIZED_HORIZ, MAXIMIZED_VERT, MOVE_CURSOR, N_RESIZE_CURSOR, NE_RESIZE_CURSOR, NORMAL, NW_RESIZE_CURSOR, S_RESIZE_CURSOR, SE_RESIZE_CURSOR, SW_RESIZE_CURSOR, TEXT_CURSOR, W_RESIZE_CURSOR, WAIT_CURSOR
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
DocFrame()
          This constructor builds the contents of the DocFrame Display
DocFrame(java.io.File file)
          Constructor for the DocFrame object which pass the xml as a File
DocFrame(Morpho morpho, java.lang.String sTitle, java.lang.String doctext, boolean flag)
          This constructor actual handles the creation of a tree and panel for displaying and editing the information is an XML document, as represented in the String 'doctext'
DocFrame(Morpho morpho, java.lang.String sTitle, java.lang.String doctext, java.lang.String id, java.lang.String location)
          this version of the constructor is needed so that each DocFrame can 'remember' the id and location parameters used to create it
DocFrame(Morpho morpho, java.lang.String sTitle, java.lang.String doctext, java.lang.String id, java.lang.String location, boolean templFlag)
          this version of the constructor is needed so that each DocFrame can 'remember' the id and location parameters used to create it; includes template flag
DocFrame(Morpho morpho, java.lang.String sTitle, java.lang.String doctext, java.lang.String id, java.lang.String location, java.lang.String nodeName, java.lang.String nodeValue)
          this version allows one to create a new DocFrame and set the initially selected nodename/nodetext
DocFrame(java.lang.String sTitle)
          Constructor which adds a title string to the Frame
DocFrame(java.lang.String sTitle, java.lang.String doctext)
          Constructor which adds a title and passes the xml to display as a string; puts XML into tree
 
Method Summary
 void choiceCombo_actionPerformed(java.awt.event.ActionEvent event)
           
 javax.swing.tree.DefaultMutableTreeNode findTemplateNodeByName(java.lang.String nodeName)
          locate the first node in the template tree by name return null if unable to locate to be used to get subtrees
 java.lang.String getIdString()
          Gets the IdString attribute of the DocFrame object
 java.lang.String getLocationString()
          Gets the LocationString attribute of the DocFrame object
 void initDoc(Morpho morpho, org.w3c.dom.Document doc, java.lang.String id, java.lang.String loc, java.lang.String initNodeName, int initNodeNumber)
           
 void initDoc(Morpho morpho, org.w3c.dom.Node docnode, java.lang.String id, java.lang.String loc, java.lang.String schemaId)
           
 void initDoc(Morpho finalMorpho, java.lang.String doctext)
          The initialization routine for DocFrame; this method creates a secondary thread where the input XML string is parsed and turned into an editable document.
static void main(java.lang.String[] args)
          usual Main method
 void setController(EditorPlugin con)
          Sets the Controller attribute of the DocFrame object The 'controller' is the class used to call the DocFrame editor.
 void setDoctype(java.lang.String doctype)
          Sets the Doctype attribute of the DocFrame object
 void setFile(java.io.File f)
          Sets the File attribute of the DocFrame object
 void setSelectedNodes(javax.swing.tree.DefaultMutableTreeNode node)
          Sets the SelectedNodes attribute of nodes in the tree.
 void setTopOfTree(javax.swing.tree.DefaultMutableTreeNode rootTreeNode, java.lang.String name)
          This method will reset the treeModel rootnode, thus changing the node displayed at the top of the tree 'name' is name of new node to be at top of tree
 void setTopOfTree(org.w3c.dom.Node rootNode, java.lang.String path)
          This method will reset the treeModel rootnode, thus changing the node displayed at the top of the tree NOTE: this only works if the treemodel was created from a DOM since it uses XPath to search the DOM and then looks up the equivalent JTree node
 void setTreeValueFlag(boolean flg)
          Sets the TreeValueFlag attribute of the DocFrame object
 void setVisible(boolean b)
          Sets the Visible attribute of the DocFrame object
 org.w3c.dom.Node writeToDOM(javax.swing.tree.DefaultMutableTreeNode node)
          This method writes a DOM Node based on the TreeNode returns the root node of the DOM
 java.lang.String writeXMLString(javax.swing.tree.DefaultMutableTreeNode node, boolean returnError)
          write the tree starting at the indicated node to a String
 java.lang.String xmlvalidate(java.lang.String xml)
          used to validate the xml string from the editor before leaving
 
Methods inherited from class javax.swing.JFrame
addImpl, createRootPane, frameInit, getAccessibleContext, getContentPane, getDefaultCloseOperation, getGlassPane, getJMenuBar, getLayeredPane, getRootPane, isDefaultLookAndFeelDecorated, isRootPaneCheckingEnabled, paramString, processWindowEvent, remove, setContentPane, setDefaultCloseOperation, setDefaultLookAndFeelDecorated, setGlassPane, setJMenuBar, setLayeredPane, setLayout, setRootPane, setRootPaneCheckingEnabled, update
 
Methods inherited from class java.awt.Frame
addNotify, finalize, getCursorType, getExtendedState, getFrames, getIconImage, getMaximizedBounds, getMenuBar, getState, getTitle, isResizable, isUndecorated, remove, removeNotify, setCursor, setExtendedState, setIconImage, setMaximizedBounds, setMenuBar, setResizable, setState, setTitle, setUndecorated
 
Methods inherited from class java.awt.Window
addPropertyChangeListener, addPropertyChangeListener, addWindowFocusListener, addWindowListener, addWindowStateListener, applyResourceBundle, applyResourceBundle, createBufferStrategy, createBufferStrategy, dispose, getBufferStrategy, getFocusableWindowState, getFocusCycleRootAncestor, getFocusOwner, getFocusTraversalKeys, getGraphicsConfiguration, getInputContext, getListeners, getLocale, getMostRecentFocusOwner, getOwnedWindows, getOwner, getToolkit, getWarningString, getWindowFocusListeners, getWindowListeners, getWindowStateListeners, hide, isActive, isFocusableWindow, isFocusCycleRoot, isFocused, isShowing, pack, postEvent, processEvent, processWindowFocusEvent, processWindowStateEvent, removeWindowFocusListener, removeWindowListener, removeWindowStateListener, setCursor, setFocusableWindowState, setFocusCycleRoot, setLocationRelativeTo, show, toBack, toFront
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getAlignmentX, getAlignmentY, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalPolicy, getInsets, getLayout, getMaximumSize, getMinimumSize, getPreferredSize, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paint, paintComponents, preferredSize, print, printComponents, processContainerEvent, remove, removeAll, removeContainerListener, setFocusTraversalKeys, setFocusTraversalPolicy, setFont, transferFocusBackward, 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, contains, createImage, createImage, createVolatileImage, createVolatileImage, disable, disableEvents, dispatchEvent, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocation, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isOpaque, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, prepareImage, prepareImage, printAll, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setBounds, setComponentOrientation, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeysEnabled, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.awt.MenuContainer
getFont, postEvent
 

Field Detail

treeModel

public javax.swing.tree.DefaultTreeModel treeModel

rootNode

public javax.swing.tree.DefaultMutableTreeNode rootNode

dtdtree

public DTDTree dtdtree

tree

public javax.swing.JTree tree

NAMESPACE_FOR_SCHEMA_LOCATION

public static final java.lang.String NAMESPACE_FOR_SCHEMA_LOCATION
used by the transform() method to get the schemaLocation (if one has been defined) from the Document root node

See Also:
Constant Field Values

ATTRIB_NAME_FOR_SCHEMA_LOCATION

public static final java.lang.String ATTRIB_NAME_FOR_SCHEMA_LOCATION
used by the transform() method to get the schemaLocation (if one has been defined) from the Document root node

See Also:
Constant Field Values

counter

public static int counter
counter for name


removeExtraInfoFlag

public boolean removeExtraInfoFlag

xmlAttributesInTreeFlag

public boolean xmlAttributesInTreeFlag
Constructor Detail

DocFrame

public DocFrame()
This constructor builds the contents of the DocFrame Display


DocFrame

public DocFrame(java.lang.String sTitle)
Constructor which adds a title string to the Frame

Parameters:
sTitle - Window title string

DocFrame

public DocFrame(java.lang.String sTitle,
                java.lang.String doctext)
Constructor which adds a title and passes the xml to display as a string; puts XML into tree

Parameters:
sTitle - title string
doctext - XML document as a string

DocFrame

public DocFrame(java.io.File file)
Constructor for the DocFrame object which pass the xml as a File

Parameters:
file - Description of Parameter

DocFrame

public DocFrame(Morpho morpho,
                java.lang.String sTitle,
                java.lang.String doctext,
                boolean flag)
This constructor actual handles the creation of a tree and panel for displaying and editing the information is an XML document, as represented in the String 'doctext'

Parameters:
morpho - the main morpho object controller
sTitle - window title string
doctext - xml document as a string
flag - only the template based on the DocType is displayed (i.e. no merging with existing data) For use in creating new docs.

DocFrame

public DocFrame(Morpho morpho,
                java.lang.String sTitle,
                java.lang.String doctext,
                java.lang.String id,
                java.lang.String location)
this version of the constructor is needed so that each DocFrame can 'remember' the id and location parameters used to create it

Parameters:
morpho - the main morpho object controller
sTitle - window title string
doctext - xml document as a string
id - document id
location - i.e. local or metacat

DocFrame

public DocFrame(Morpho morpho,
                java.lang.String sTitle,
                java.lang.String doctext,
                java.lang.String id,
                java.lang.String location,
                boolean templFlag)
this version of the constructor is needed so that each DocFrame can 'remember' the id and location parameters used to create it; includes template flag

Parameters:
morpho - the main morpho object controller
sTitle - window title string
doctext - xml document as a string
id - document id
location - i.e. local or metacat
templFlag - only the template based on the DocType is displayed (i.e. no merging with existing data) For use in creating new docs.

DocFrame

public DocFrame(Morpho morpho,
                java.lang.String sTitle,
                java.lang.String doctext,
                java.lang.String id,
                java.lang.String location,
                java.lang.String nodeName,
                java.lang.String nodeValue)
this version allows one to create a new DocFrame and set the initially selected nodename/nodetext

Parameters:
morpho - the main morpho object controller
sTitle - window title string
doctext - xml document as a string
id - document id
location - i.e. local or metacat
nodeName - node name
nodeValue - value of node name
Method Detail

setFile

public void setFile(java.io.File f)
Sets the File attribute of the DocFrame object

Parameters:
f - The new File value

setDoctype

public void setDoctype(java.lang.String doctype)
Sets the Doctype attribute of the DocFrame object

Parameters:
doctype - The new Doctype value

setVisible

public void setVisible(boolean b)
Sets the Visible attribute of the DocFrame object

Parameters:
b - The new Visible value

setTreeValueFlag

public void setTreeValueFlag(boolean flg)
Sets the TreeValueFlag attribute of the DocFrame object

Parameters:
flg - The new TreeValueFlag value

setController

public void setController(EditorPlugin con)
Sets the Controller attribute of the DocFrame object The 'controller' is the class used to call the DocFrame editor. It is set here to an EditorPlugin object. Control is passed back to the controller when the editor is finished.

Parameters:
con - The new Controller value

getIdString

public java.lang.String getIdString()
Gets the IdString attribute of the DocFrame object

Returns:
The IdString value

getLocationString

public java.lang.String getLocationString()
Gets the LocationString attribute of the DocFrame object

Returns:
The LocationString value

initDoc

public void initDoc(Morpho finalMorpho,
                    java.lang.String doctext)
The initialization routine for DocFrame; this method creates a secondary thread where the input XML string is parsed and turned into an editable document.

Parameters:
finalMorpho - The parent Morpho class
doctext - xml to be edited

initDoc

public void initDoc(Morpho morpho,
                    org.w3c.dom.Node docnode,
                    java.lang.String id,
                    java.lang.String loc,
                    java.lang.String schemaId)

initDoc

public void initDoc(Morpho morpho,
                    org.w3c.dom.Document doc,
                    java.lang.String id,
                    java.lang.String loc,
                    java.lang.String initNodeName,
                    int initNodeNumber)

setTopOfTree

public void setTopOfTree(org.w3c.dom.Node rootNode,
                         java.lang.String path)
This method will reset the treeModel rootnode, thus changing the node displayed at the top of the tree NOTE: this only works if the treemodel was created from a DOM since it uses XPath to search the DOM and then looks up the equivalent JTree node


setTopOfTree

public void setTopOfTree(javax.swing.tree.DefaultMutableTreeNode rootTreeNode,
                         java.lang.String name)
This method will reset the treeModel rootnode, thus changing the node displayed at the top of the tree 'name' is name of new node to be at top of tree


main

public static void main(java.lang.String[] args)
usual Main method

Parameters:
args - not used

setSelectedNodes

public void setSelectedNodes(javax.swing.tree.DefaultMutableTreeNode node)
Sets the SelectedNodes attribute of nodes in the tree. makes sure that nodes with text data in leaves is 'selected' if a choice node appears in path to root

Parameters:
node - The new SelectedNodes value

writeXMLString

public java.lang.String writeXMLString(javax.swing.tree.DefaultMutableTreeNode node,
                                       boolean returnError)
write the tree starting at the indicated node to a String

Parameters:
node - top level node
Returns:
xml string

writeToDOM

public org.w3c.dom.Node writeToDOM(javax.swing.tree.DefaultMutableTreeNode node)
This method writes a DOM Node based on the TreeNode returns the root node of the DOM


choiceCombo_actionPerformed

public void choiceCombo_actionPerformed(java.awt.event.ActionEvent event)

xmlvalidate

public java.lang.String xmlvalidate(java.lang.String xml)
used to validate the xml string from the editor before leaving


findTemplateNodeByName

public javax.swing.tree.DefaultMutableTreeNode findTemplateNodeByName(java.lang.String nodeName)
locate the first node in the template tree by name return null if unable to locate to be used to get subtrees



Copyright © 2000 National Center for Ecological Analysis and Synthesis. All Rights Reserved.