|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcodesimian.CS<CSGeneric>
codesimian.DefaultCS
codesimian.TreeOfCodeGUI
public class TreeOfCodeGUI
A GUI component that displays a JTree of CodeSimian code.
The tree is a depth-first traversal starting from param0.
If there is a param1, param1 is replaced by the CS selected
in the GUI every time a new CS is selected.
When you setP(1, selectThisCS),
and selectThisCS is contained in a TreeNode in the JTree,
the JTree selects that TreeNode and shows it in the GUI.
If its not in the JTree, param1 is not set.
If there is a param2, param2 is used as an anonymous function with 1 param.
When a CS is selected in the JTree,
tries to set TreeOfCodeGUI.param2.param0 to TreeOfCodeGUI.param1
then executes TreeOfCodeGUI.param2.
If that fails, does nothing. Maybe it will work for next CS clicked by mouse.
Each TreeNode is updated when it is selected in the GUI.
Update means to display the new params
of that TreeNode's CS if they have changed.
If the CS at the tree's root changes, the JTree
returned by getObject() is replaced by a new JTree,
but only if the GUI object that contains me
calls getObject() (or L(JTree.class)) again.
Use getObject() and setObject(CS jtreeOrCSThatContainsAJTree) to access the JTree.
Or, use the normal PARAM functions on param0 to change the root CS that the JTree displays.
| Nested Class Summary | |
|---|---|
static class |
TreeOfCodeGUI.TreeNodeForCS
User-object (getUserObject()) can be any Object to put in a tree. |
| Field Summary |
|---|
| Fields inherited from class codesimian.CS |
|---|
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS |
| Constructor Summary | |
|---|---|
TreeOfCodeGUI()
initial JTree displays a mostly empty tree containing only Const.zero |
|
TreeOfCodeGUI(CS treeRoot)
initial JTree displays treeRoot |
|
| Method Summary | |
|---|---|
javax.swing.tree.TreeNode[] |
allTreeNodes(javax.swing.tree.TreeNode root)
returns all TreeNodes that can be reached through some TreePath starting from 'root' |
double |
cost()
cost() should be changed to return a float, and should be renamed to costToExecute() cost of EXECUTING this CS, not including any CSs it executes recursively. |
boolean |
deleteP(int index)
WARNING: if returns false, could have deleted but not moved other params down 1 index. WARNING: if duplicates not allowed, can not slide params down 1 index the standard way, returns false. |
java.lang.String |
description()
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. |
double |
DForProxy()
Execute this CS and cast to double. |
java.lang.Object |
getObject()
returns the JTree that this TreeOfCodeGUI represents |
boolean |
insertP(int index,
CS insertMe)
same as setP(int,CS) but inserts instead of overwriting. |
java.lang.String |
keyword()
For the CodeSimian language as a String. CodeSimian language keyword, like "+" "*" "max" ">" etc. Override this function if you want to specify a keyword other than how I derive them from the class name, like + for Add. Some CSs might never be intended to be used in the language by their keyword. The best example (4/05) is Num, because it is used in the language like "3.4" instead of "num()". |
int |
maxP()
Maximum quantity of Params |
int |
minP()
For DForProxy(). Minimum number of parameters in param[] needed to call DForProxy(). Defines which indexs of param[] DForProxy() can use. Functions with a different number of parameters must override this. OVERRIDE THIS FUNCTION IF EXEC USES A DIFFERENT NUMBER OF PARAMETERS. Default is 1. |
void |
mouseClicked(java.awt.event.MouseEvent e)
|
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)
|
javax.swing.tree.TreePath |
path(javax.swing.tree.TreeNode start,
javax.swing.tree.TreeNode end)
null if no path exists |
boolean |
selectInGUI(CS selectMe)
|
boolean |
setObject(java.lang.Object setTo)
Sets the JTree that this TreeOfCodeGUI represents, to a new JTree. |
boolean |
setP(int index,
CS setTo)
Every CS is a list of other CSs, between size minP() and maxP() inclusive. |
java.awt.Dimension |
sizeIShouldBe()
|
void |
treeNodesChanged(javax.swing.event.TreeModelEvent e)
|
void |
treeNodesInserted(javax.swing.event.TreeModelEvent e)
|
void |
treeNodesRemoved(javax.swing.event.TreeModelEvent e)
|
javax.swing.JTree |
treeOfCode(CS treeRoot)
|
javax.swing.tree.TreePath |
treePathToCS(javax.swing.tree.TreeNode startHere,
CS lastTreeNodeContainsThisCS)
Returns a TreePath from startHere to the TreeNode that contains lastTreeNodeContainsThisCS, or null if no such path exists. |
void |
treeStructureChanged(javax.swing.event.TreeModelEvent e)
|
void |
updateSize()
|
boolean |
updateTreeNode(javax.swing.tree.TreeNode updateMe)
updateMe's child TreeNodes should contain the child CSs of updateMe's CS. |
void |
valueChanged(javax.swing.event.TreeSelectionEvent e)
|
| Methods inherited from class codesimian.DefaultCS |
|---|
B, C, countP, decrementMyFuel, F, fuel, getExec, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertS, insertZ, J, javaCode, LForProxy, LForProxy, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, setL, setL1, setMyFuel, setName, setPrevExec, setPType, setS, setZ, start, toString, V, Z |
| Methods inherited from class codesimian.CS |
|---|
addB, addC, addD, addF, addI, addJ, addL, addP, addP, addP, addP, addP, addS, addZ, BForProxy, CForProxy, clone, D, deleteP, FForProxy, GETB, GETC, GETD, GETF, GETI, GETJ, GETL, GETS, GETZ, IForProxy, isIllusion, JForProxy, L, L, L, L, L, maxD, minD, overwrites, parent, parsePriority, PB, PC, PD, PF, PI, PJ, PL, prevB, prevC, prevF, prevI, prevJ, prevS, prevZ, proxyOf, PS, PZ, reflect, reflect, reflect6, setB, SETB, setC, SETC, setCost, SETD, setDescription, setF, SETF, setHeap, setI, SETI, setJ, SETJ, SETL, setL, setL, setParent, setParsePriority, setProxyOf, setS, SETS, setTester, setZ, SETZ, SForProxy, tester, toJavaCode, VForProxy, voidReflect, ZForProxy |
| Methods inherited from class java.lang.Object |
|---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public TreeOfCodeGUI(CS treeRoot)
public TreeOfCodeGUI()
| Method Detail |
|---|
public double DForProxy()
CS
DForProxy in class DefaultCSpublic int minP()
DefaultCS
minP in class DefaultCSpublic int maxP()
CS
maxP in class CSpublic java.lang.String keyword()
DefaultCS
keyword in class DefaultCSCS.parent(),
CS.newInstance(),
CS.name()public java.lang.String description()
CS
description in class DefaultCSpublic double cost()
CS
cost in class CSpublic java.lang.Object getObject()
getObject in class DefaultCSanyObjectpublic boolean setObject(java.lang.Object setTo)
setObject in class DefaultCSanyObjectpublic void updateSize()
public java.awt.Dimension sizeIShouldBe()
public javax.swing.JTree treeOfCode(CS treeRoot)
public boolean setP(int index,
CS setTo)
CS
setP in class DefaultCS
public boolean insertP(int index,
CS insertMe)
CS
insertP in class DefaultCSpublic boolean deleteP(int index)
DefaultCS
deleteP in class DefaultCSpublic boolean selectInGUI(CS selectMe)
public boolean updateTreeNode(javax.swing.tree.TreeNode updateMe)
public javax.swing.tree.TreePath path(javax.swing.tree.TreeNode start,
javax.swing.tree.TreeNode end)
public javax.swing.tree.TreePath treePathToCS(javax.swing.tree.TreeNode startHere,
CS lastTreeNodeContainsThisCS)
public javax.swing.tree.TreeNode[] allTreeNodes(javax.swing.tree.TreeNode root)
public void valueChanged(javax.swing.event.TreeSelectionEvent e)
valueChanged in interface javax.swing.event.TreeSelectionListenerpublic void treeNodesChanged(javax.swing.event.TreeModelEvent e)
treeNodesChanged in interface javax.swing.event.TreeModelListenerpublic void treeNodesInserted(javax.swing.event.TreeModelEvent e)
treeNodesInserted in interface javax.swing.event.TreeModelListenerpublic void treeNodesRemoved(javax.swing.event.TreeModelEvent e)
treeNodesRemoved in interface javax.swing.event.TreeModelListenerpublic void treeStructureChanged(javax.swing.event.TreeModelEvent e)
treeStructureChanged in interface javax.swing.event.TreeModelListenerpublic void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked in interface java.awt.event.MouseListenerpublic void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered in interface java.awt.event.MouseListenerpublic void mouseExited(java.awt.event.MouseEvent e)
mouseExited in interface java.awt.event.MouseListenerpublic void mousePressed(java.awt.event.MouseEvent e)
mousePressed in interface java.awt.event.MouseListenerpublic void mouseReleased(java.awt.event.MouseEvent e)
mouseReleased in interface java.awt.event.MouseListener
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||