
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Vector;

import javax.swing.*;
import javax.swing.tree.TreePath;
import java.util.*;
import java.net.URL;

public class Test extends JApplet {
    private SelfModifyingMenu toolsMenu;
    private Vector list;
    private TreePanel hashTree;

    private ImageIcon icon;
    protected String iconFilename = "images/middle.gif";
    private static boolean DEBUG = true;
   
    public void init() {
	JMenuBar menuBar = new JMenuBar();
	list = new Vector();

	createMenus(menuBar);
	setJMenuBar(menuBar);
	Container contentPane = getContentPane();

        URL iconURL = getURL(iconFilename);
        icon = new ImageIcon(iconURL, "a splat");

	hashTree = new TreePanel(this, icon);
	JScrollPane hashPane = new JScrollPane(hashTree);
	//hashPane.setPreferredSize(new Dimension(500,500));
	hashPane.setBorder(BorderFactory.createTitledBorder("Model Manager"));
	//hashTree.expandPath(new TreePath(hashTree.getModel().getRoot()));

	contentPane.setLayout(new FlowLayout());
	contentPane.add(hashPane);
    }

    protected URL getURL(String filename) {
        URL codeBase = getCodeBase();
        URL url = null;

        try {
            url = new URL(codeBase, filename);
        } catch (java.net.MalformedURLException e) {
            System.err.println("Couldn't create image: " +
                               "badly specified URL");
            return null;
        }
    
        return url;
    }

    public void menuActionItem(String s) {
	if (DEBUG) {
	     System.err.println("in updateMenu "+ s);
	}
	if (s.equals("Plot")) {
	    System.err.println("menuActionItem="+s);
	}
	
	if (s.equals("View Dataset")) {
	    System.err.println("menuActionItem="+s);
	    hashTree.viewData();
	}
    }

    public void updatemenu(String s) {
	//System.err.println("update the menu");
	toolsMenu.update(s);
    }

    public void createMenus(JMenuBar mbar) {
	mbar.add(createFileMenu());
	Vector vec = new Vector();
	vec.addElement(this);
	vec.addElement("Plot");
	vec.addElement("View Dataset");
	mbar.add(toolsMenu = new SelfModifyingMenu(vec, "Tools"));
    }
    private JMenu createFileMenu() {
	JMenu fileMenu = new JMenu("File");
	JMenu helpMenu = new JMenu("Help");
	//JMenuItem quitItem = new JMenuItem("Quit");
	//fileMenu.add(quitItem);
	//quitItem.addActionListener(new ActionListener() {
	    //public void actionPerformed(ActionEvent event) {
		//System.exit(0);
	    //}
	//});
	return fileMenu;
    }
}

