codesimian
Class TextAreaCS

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.TextAreaCS
All Implemented Interfaces:
CodeSimian

public class TextAreaCS
extends DefaultCS

A GUI TextArea wrapped in a CS. This is a STRING. Its params are the char values. Use P() to get the text, and setP and deleteP() to set the text. D() returns the string length.

This class should later be changed to use all the text if no text is selected or only the selected text if any text is selected. countP() will change depending on what you select.


Field Summary
protected  javax.swing.JTextArea text
           
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
TextAreaCS()
           
TextAreaCS(java.lang.String initialString)
           
 
Method Summary
 int charsPerGUIUpdate()
          When loading large texts, upading the screen every char printed to a textarea is VERY SLOW.
 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.
 int countP()
          returns string length
 boolean deleteP(int index)
          deletes a char from the string and returns a Const from the constant-pool with its value public CS deleteP(int index){ if (index < 0 || countP() <= index){ String t = text.getText(); text.setText( t.substring(0, index) + t.substring(index+1, t.length()) ); if (index < execPosition) execPosition--; return Const.pool( (double) t.charAt(index) ); } return null; }
 boolean deleteP(int index, int quantity)
          deletes a range of Params
 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.
 int indexP(CS myParam)
          TextAreaCS's only params are from Const.pool().
 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()".
 java.lang.Object LForProxy(java.lang.Class type)
          the default implementation can use many Class parameters.
 java.lang.Object LForProxy(int index, java.lang.Class type, int quantity)
          by default, only works if castToThisType==CS[].class or is a String or List.
 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.
static java.lang.String numberArrayToString(java.lang.Object couldBeAnArray)
          If its a number array, each number becomes a char in a String.
 CS P(int charIndex)
          Returns a Const from the constant-pool whose value equals the char with index 'charIndex' in the string.
Returns null if charIndex is invalid therefore causes: IndexOutOfBoundsException.
 boolean setL(int index, java.lang.Object value)
          needs to be tested
 boolean setL(int index, java.lang.Object value, int quantity)
          needs to be tested
 boolean setL(java.lang.Object value)
          setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.
 boolean setP(int index, CS setTo)
          sets one of the char values of the String displayed in this TextArea, one of my params
 
Methods inherited from class codesimian.DefaultCS
B, C, decrementMyFuel, F, fuel, getExec, getObject, heap, I, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertP, insertS, insertZ, J, javaCode, myFuel, name, newInstance, objectToCS, objectToCSArray, objectToCSArray, prevD, prevL, PType, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL1, setMyFuel, setName, setObject, 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, 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
 

Field Detail

text

protected javax.swing.JTextArea text
Constructor Detail

TextAreaCS

public TextAreaCS()

TextAreaCS

public TextAreaCS(java.lang.String initialString)
Method Detail

DForProxy

public double DForProxy()
Description copied from class: CS
Execute this CS and cast to double.

D() and DForProxy() are the 2 most important functions in CS. They execute this CS. All other execute functions, by default, return DForProxy cast to their own type.

For example, J() calls the proxy which calls JForProxy() which calls DForProxy(). D() calls the proxy which calls DForProxy().

By default, all other primitive EXECUTE functions defer to D.
Functions that EXECUTE this CS: L(Class) L(int,Class,int) Z() B() C() S() I() J() F() D() V()

Specified by:
DForProxy in class DefaultCS

minP

public int minP()
Description copied from class: DefaultCS
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.

Overrides:
minP in class DefaultCS

maxP

public int maxP()
Description copied from class: CS
Maximum quantity of Params

Overrides:
maxP in class CS

keyword

public java.lang.String keyword()
Description copied from class: DefaultCS
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()".
Default: Returns class name, minus package name (and its dots), and change the first letter to lowercase.

For example, CS.MaxParams does not override keyword(), which returns "maxP".

Overrides:
keyword in class DefaultCS
See Also:
CS.parent(), CS.newInstance(), CS.name()

description

public java.lang.String description()
Description copied from class: CS
a short description of this CS, shorter than the javadoc, but long enough to tell what the params are for. Example use: in automatically generated webpages for CodeSimian. Example: "returns sum of all params" for Add.

Overrides:
description in class DefaultCS

cost

public double cost()
Description copied from class: CS
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. The INTERNAL cost.

One unit of myFuel() costs cost() units of fuel(). Beware of CSs that counterfeit fuel.

Returns 1 by default.

Overrides:
cost in class CS

charsPerGUIUpdate

public int charsPerGUIUpdate()
When loading large texts, upading the screen every char printed to a textarea is VERY SLOW. Therefore it will update less often when the text is large. Of course, there needs to be a way to ensure text will be put there if enough milliseconds elapse and no more updates occur. A timer will have to be programmed. WARNING: THIS IS NOT DONE YET!!! PROGRAMS WITHOUT THEIR LAST FEW LETTERS WILL CRASH!!!


setP

public boolean setP(int index,
                    CS setTo)
sets one of the char values of the String displayed in this TextArea, one of my params

Overrides:
setP in class DefaultCS

P

public CS P(int charIndex)
Returns a Const from the constant-pool whose value equals the char with index 'charIndex' in the string.
Returns null if charIndex is invalid therefore causes: IndexOutOfBoundsException.

Overrides:
P in class DefaultCS
Parameters:
charIndex - range 0 (or neg?) to countP()-1 inclusive
See Also:
CS.heap()

countP

public int countP()
returns string length

Overrides:
countP in class DefaultCS

deleteP

public boolean deleteP(int index)
deletes a char from the string and returns a Const from the constant-pool with its value public CS deleteP(int index){ if (index < 0 || countP() <= index){ String t = text.getText(); text.setText( t.substring(0, index) + t.substring(index+1, t.length()) ); if (index < execPosition) execPosition--; return Const.pool( (double) t.charAt(index) ); } return null; }

Overrides:
deleteP in class DefaultCS

deleteP

public boolean deleteP(int index,
                       int quantity)
Description copied from class: CS
deletes a range of Params

Specified by:
deleteP in interface CodeSimian
Overrides:
deleteP in class CS

indexP

public int indexP(CS myParam)
TextAreaCS's only params are from Const.pool(). Returns the index of the last param that equals myParam and is from the constant-pool, else returns -1.

This function is not much useful because theres only approximately 60 useful chars, and many will be repeated in the same string.

Overrides:
indexP in class DefaultCS

LForProxy

public java.lang.Object LForProxy(int index,
                                  java.lang.Class type,
                                  int quantity)
Description copied from class: DefaultCS
by default, only works if castToThisType==CS[].class or is a String or List. TODO: add more types, including all types L(Class) can use.

Overrides:
LForProxy in class DefaultCS
See Also:
CS.L(int,Class,int)

LForProxy

public java.lang.Object LForProxy(java.lang.Class type)
Description copied from class: DefaultCS
the default implementation can use many Class parameters. If you override but do not know what to return, return super.LForProxy(Class). All EXEC objects must override L(Class) the same way they override D(), reversed.

TODO: add ability to return List, or should I make every CS be a list?

Overrides:
LForProxy in class DefaultCS
See Also:
execProxy(), setExecProxy(CS)

setL

public boolean setL(java.lang.Object value)
Description copied from class: CS
setL setD setF setJ setI setS setC setB setZ are functions that SET THE VALUE OF THIS CS to some object, primitive, or array.

Overrides:
setL in class DefaultCS

setL

public boolean setL(int index,
                    java.lang.Object value)
Description copied from class: DefaultCS
needs to be tested

Specified by:
setL in interface CodeSimian
Overrides:
setL in class DefaultCS
See Also:
CS.setL(int,Object,int)

setL

public boolean setL(int index,
                    java.lang.Object value,
                    int quantity)
Description copied from class: DefaultCS
needs to be tested

Specified by:
setL in interface CodeSimian
Overrides:
setL in class DefaultCS

numberArrayToString

public static java.lang.String numberArrayToString(java.lang.Object couldBeAnArray)
If its a number array, each number becomes a char in a String. Else returns null.