How to Create XML Schema From JTree ?

Please help me... Thank you.

This is Code

Tree.java -- Run This File

import java.awt.BorderLayout;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.tree.DefaultMutableTreeNode;

publicclass Treeextends JPanelimplements ActionListener{

privateint newNodeSuffix = 1;

privatestatic String ADD_COMMAND ="add";

privatestatic String REMOVE_COMMAND ="remove";

privatestatic String CLEAR_COMMAND ="clear";

privatestatic String OK_COMMAND ="ok";

private DynamicTree treePanel;

public Tree(){

super(new BorderLayout());

//Create the components.

treePanel =new DynamicTree();

//populateTree(treePanel);

JButton addButton =new JButton("Add");

addButton.setActionCommand(ADD_COMMAND);

addButton.addActionListener(this);

JButton removeButton =new JButton("Remove");

removeButton.setActionCommand(REMOVE_COMMAND);

removeButton.addActionListener(this);

JButton clearButton =new JButton("Clear");

clearButton.setActionCommand(CLEAR_COMMAND);

clearButton.addActionListener(this);

JButton okButton =new JButton("OK");

okButton.setActionCommand(OK_COMMAND);

okButton.addActionListener(this);

//Lay everything out.

treePanel.setPreferredSize(new Dimension(300, 150));

add(treePanel, BorderLayout.CENTER);

JPanel panel =new JPanel(new GridLayout(0,1));

panel.add(addButton);

panel.add(removeButton);

panel.add(clearButton);

panel.add(okButton);

add(panel, BorderLayout.LINE_END);

}

/*public void populateTree(DynamicTree treePanel) {

String p1Name = new String("Parent 1");

//String p2Name = new String("Parent 2");

String c1Name = new String("Child 1");

//String c2Name = new String("Child 2");

DefaultMutableTreeNode p1;

p1 = treePanel.addObject(null, p1Name);

//p2 = treePanel.addObject(null, p2Name);

treePanel.addObject(p1, c1Name);

//treePanel.addObject(p1, c2Name);

//treePanel.addObject(p2, c1Name);

//treePanel.addObject(p2, c2Name);

}*/

publicvoid actionPerformed(ActionEvent e){

String command = e.getActionCommand();

if (ADD_COMMAND.equals(command)){

//Add button clicked.

treePanel.addObject("New Node " + newNodeSuffix++);

}elseif (REMOVE_COMMAND.equals(command)){

//Remove button clicked.

treePanel.removeCurrentNode();

}elseif (CLEAR_COMMAND.equals(command)){

//Clear button clicked.

treePanel.clear();

}elseif (OK_COMMAND.equals(command)){

//Ok button clicked.

treePanel.ok();

}

}

/**

* Create the GUI and show it. For thread safety,

* this method should be invoked from the

* event-dispatching thread.

*/

privatestaticvoid createAndShowGUI(){

//Create and set up the window.

JFrame frame =new JFrame("Craete XML Tree");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.

Tree newContentPane =new Tree();

newContentPane.setOpaque(true);//content panes must be opaque

frame.setContentPane(newContentPane);

//Display the window.

frame.pack();

frame.setVisible(true);

}

publicstaticvoid main(String[] args){

//Schedule a job for the event-dispatching thread:

//creating and showing this application's GUI.

javax.swing.SwingUtilities.invokeLater(new Runnable(){

publicvoid run(){

createAndShowGUI();

}

});

}

}

DynamicTree.java

import javax.swing.JOptionPane;

import java.awt.GridLayout;

import java.awt.Toolkit;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTree;

import javax.swing.tree.DefaultMutableTreeNode;

import javax.swing.tree.DefaultTreeModel;

import javax.swing.tree.MutableTreeNode;

import javax.swing.tree.TreePath;

import javax.swing.tree.TreeSelectionModel;

import javax.swing.event.TreeModelEvent;

import javax.swing.event.TreeModelListener;

publicclass DynamicTreeextends JPanel{

protected DefaultMutableTreeNode rootNode;

protected DefaultTreeModel treeModel;

protected JTree tree;

private Toolkit toolkit = Toolkit.getDefaultToolkit();

public DynamicTree(){

super(new GridLayout(1,0));

rootNode =new DefaultMutableTreeNode("Root Node");

treeModel =new DefaultTreeModel(rootNode);

treeModel.addTreeModelListener(new MyTreeModelListener());

tree =new JTree(treeModel);

tree.setEditable(true);

tree.getSelectionModel().setSelectionMode

(TreeSelectionModel.SINGLE_TREE_SELECTION);

tree.setShowsRootHandles(true);

JScrollPane scrollPane =new JScrollPane(tree);

add(scrollPane);

}

/** Remove all nodes except the root node. */

publicvoid clear(){

rootNode.removeAllChildren();

treeModel.reload();

}

publicvoid ok(){

int n = JOptionPane.showConfirmDialog(null,"Do you want to create XML Schema?","", JOptionPane.YES_NO_OPTION);

}

/** Remove the currently selected node. */

publicvoid removeCurrentNode(){

TreePath currentSelection = tree.getSelectionPath();

if (currentSelection !=null){

DefaultMutableTreeNode currentNode = (DefaultMutableTreeNode)

(currentSelection.getLastPathComponent());

MutableTreeNode parent = (MutableTreeNode)(currentNode.getParent());

if (parent !=null){

treeModel.removeNodeFromParent(currentNode);

return;

}

}

// Either there was no selection, or the root was selected.

toolkit.beep();

}

/** Add child to the currently selected node. */

public DefaultMutableTreeNode addObject(Object child){

DefaultMutableTreeNode parentNode =null;

TreePath parentPath = tree.getSelectionPath();

if (parentPath ==null){

parentNode = rootNode;

}else{

parentNode = (DefaultMutableTreeNode)

(parentPath.getLastPathComponent());

}

return addObject(parentNode, child,true);

}

public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,

Object child){

return addObject(parent, child,false);

}

public DefaultMutableTreeNode addObject(DefaultMutableTreeNode parent,

Object child,

boolean shouldBeVisible){

DefaultMutableTreeNode childNode =

new DefaultMutableTreeNode(child);

if (parent ==null){

parent = rootNode;

}

treeModel.insertNodeInto(childNode, parent,

parent.getChildCount());

//Make sure the user can see the lovely new node.

if (shouldBeVisible){

tree.scrollPathToVisible(new TreePath(childNode.getPath()));

}

return childNode;

}

class MyTreeModelListenerimplements TreeModelListener{

publicvoid treeNodesChanged(TreeModelEvent e){

DefaultMutableTreeNode node;

node = (DefaultMutableTreeNode)

(e.getTreePath().getLastPathComponent());

/*

* If the event lists children, then the changed

* node is the child of the node we've already

* gotten. Otherwise, the changed node and the

* specified node are the same.

*/

try{

int index = e.getChildIndices()[0];

node = (DefaultMutableTreeNode)

(node.getChildAt(index));

}catch (NullPointerException exc){}

System.out.println("The user has finished editing the node.");

System.out.println("New value: " + node.getUserObject());

}

publicvoid treeNodesInserted(TreeModelEvent e){

}

publicvoid treeNodesRemoved(TreeModelEvent e){

}

publicvoid treeStructureChanged(TreeModelEvent e){

}

}

}

[15322 byte] By [OhmKu62a] at [2007-11-27 7:58:09]
# 1
XML shema is basically an XML file. So u need to know how to create an XML,provided u know how the shema file should be.Creating an XML : http://forum.java.sun.com/thread.jspa?threadID=5181031&messageID=9705786#9705786
haishaia at 2007-7-12 19:40:02 > top of Java-index,Enterprise & Remote Computing,Enterprise Technologies...