|
|||||||||
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 DefaultCS
public int minP()
DefaultCS
minP
in class DefaultCS
public int maxP()
CS
maxP
in class CS
public java.lang.String keyword()
DefaultCS
keyword
in class DefaultCS
CS.parent()
,
CS.newInstance()
,
CS.name()
public java.lang.String description()
CS
description
in class DefaultCS
public double cost()
CS
cost
in class CS
public java.lang.Object getObject()
getObject
in class DefaultCS
anyObject
public boolean setObject(java.lang.Object setTo)
setObject
in class DefaultCS
anyObject
public 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 DefaultCS
public boolean deleteP(int index)
DefaultCS
deleteP
in class DefaultCS
public 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.TreeSelectionListener
public void treeNodesChanged(javax.swing.event.TreeModelEvent e)
treeNodesChanged
in interface javax.swing.event.TreeModelListener
public void treeNodesInserted(javax.swing.event.TreeModelEvent e)
treeNodesInserted
in interface javax.swing.event.TreeModelListener
public void treeNodesRemoved(javax.swing.event.TreeModelEvent e)
treeNodesRemoved
in interface javax.swing.event.TreeModelListener
public void treeStructureChanged(javax.swing.event.TreeModelEvent e)
treeStructureChanged
in interface javax.swing.event.TreeModelListener
public void mouseClicked(java.awt.event.MouseEvent e)
mouseClicked
in interface java.awt.event.MouseListener
public void mouseEntered(java.awt.event.MouseEvent e)
mouseEntered
in interface java.awt.event.MouseListener
public void mouseExited(java.awt.event.MouseEvent e)
mouseExited
in interface java.awt.event.MouseListener
public void mousePressed(java.awt.event.MouseEvent e)
mousePressed
in interface java.awt.event.MouseListener
public 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 |