[[alice]]
 

do tridy MyScene

public void run() {
        Window w = new Window ();
        w.setVisible (true);
        w.info (this);
}
 
public class MyNode 
{
    public String name;
    public Object obj;
    public java.lang.reflect.Method met;
 
    public String toString ()
    {
        return name;
    }
}
 
// NO import edu.cmu.cs.dennisc.scenegraph.*;
import javax.swing.tree.*;
import org.alice.apis.moveandturn.*;
import java.lang.reflect.*;
 
public class Window extends javax.swing.JFrame {
 
    public Window() {
        initComponents();
    }
 
    DefaultTreeModel model;
    DefaultMutableTreeNode act;
 
    public void open (Object s)
    {
        DefaultMutableTreeNode node = new DefaultMutableTreeNode (s);
        if (model == null)
        {
            model = new DefaultTreeModel (node);
            jTree1.setModel (model);
        }
        else
        {
            int inx = act.getChildCount();
            model.insertNodeInto (node, act, inx);
        }
        act = node;
    }
 
    public void put (Object s)
    {
        DefaultMutableTreeNode node = new DefaultMutableTreeNode (s);
        int inx = act.getChildCount();
        model.insertNodeInto (node, act, inx);
    }
 
    public void close ()
    {
       act = (DefaultMutableTreeNode) act.getParent();
    }
 
    public void detail (Composite c)
    {
        // import org.alice.apis.moveandturn.*;
        open (c.getName());
 
        Class cls = c.getClass();
        open ("methods of " + cls.getName());
        // import java.lang.reflect.*;
        Method [] list = cls.getMethods();
        for (Method m : list)
        {
            open (m.getName ());
            Parameter [] params =  m.getParameters();
            for (Parameter p : params)
                put ("param " + p.getType().getSimpleName());
            put ("result " + m.getReturnType().getSimpleName());
 
            if (m.getParameterCount() == 0 && m.getName().startsWith("get"))
            {
                try
                {
                    Object value = m.invoke (c);
                    put ("value " + value);
                }
                catch (Exception ex)
                {
                }
            }
 
            close ();
        }
        close ();
 
        Transformable [] a = c.getComponents();
        for (Transformable t : a)
        {
            if (t instanceof Composite)
                detail ( (Composite) t );
            else
                put ("" + a);
        }
        close ();
    }
 
    public void info (Composite c)
    {
        /*
        open ("Abc");
                put ("item 1");
                put ("item 2");
                open ("Klm");
                    put ("item 3");
                close ();
                put ("item 4");
        close ();
        */
        // import org.alice.apis.moveandturn.*;
        detail (c);
    }
 
    private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) {                                    
        TreePath p = evt.getPath();
        Object t = p.getLastPathComponent();
        if (t instanceof DefaultMutableTreeNode)
        {
            DefaultMutableTreeNode n = (DefaultMutableTreeNode) t;
            if (n.getUserObject() instanceof MyNode)
            {
                MyNode u = (MyNode) n.getUserObject();
                jButton1.setText (u.name);
            }
        }
    }
 
alice.txt · Last modified: 2014/11/20 19:12 by 147.32.8.115
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki