codesimian
Class Layout

java.lang.Object
  extended by codesimian.CS<CSGeneric>
      extended by codesimian.DefaultCS
          extended by codesimian.Layout
All Implemented Interfaces:
CodeSimian, java.awt.LayoutManager

public class Layout
extends DefaultCS
implements java.awt.LayoutManager

A GUI LAYOUT positions other GUI objects within its own rectangle area.
Examples: FlowLayout, GridLayout, BorderLayout.

2/06 this class is partially broken. It will only use horizontal layout, currently called horizontal.

My getObject() returns a Container (Container?) whose LayoutManager is my instance var 'layoutManager'.

The default fuzzy-type of all params is GUI.containerType

Common fuzzy-types are GUI.containerType and GUI.componentType. Those fuzzy-types require that getObject() return a java.awt.Container or java.awt.Container.


Field Summary
static StackNeverEmpty<java.awt.Container> containerStack
          the top Container in this stack is copied to new Layouts.
 
Fields inherited from class codesimian.CS
DESCRIPTION, END, EXECPROXY, HEAP, JAVACODE, MYFUEL, NAME, NEWINSTANCE, NULL, PARENT, PARSEPRIORITY, PREV, TESTER, THIS
 
Constructor Summary
Layout()
          Default is a vertical GridLayout
Layout(java.awt.LayoutManager L, java.awt.Container C, int minP, int maxP, java.lang.String keyword)
          C is a Container whose LayoutManager is L.
 
Method Summary
 void addLayoutComponent(java.lang.String name, java.awt.Component comp)
           
 double cost()
          default: 100000, because GUI should only be used for important things, not to do low-level calculations for an AI.
 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()
          Returns countP().
 java.awt.Container getContainer()
          returns the Container whose LayoutManager of this Layout
 java.awt.LayoutManager getLayoutManager()
           
 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()".
 void layoutContainer(java.awt.Container parent)
           
 java.lang.Object LForProxy(java.lang.Class type)
          the default implementation can use many Class parameters.
 int maxP()
          Maximum quantity of Params
 java.awt.Dimension minimumLayoutSize(java.awt.Container parent)
           
 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.
 CS newInstance()
          temporarily (need to write some more code), uses Class objects to instantiate the default constructor
 java.awt.Dimension preferredLayoutSize(java.awt.Container parent)
           
 CS PType(int indexP)
          default for all params: GUI.containerType
 void removeLayoutComponent(java.awt.Component comp)
           
 boolean setContainer(java.awt.Container setTo)
           
 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 setLayoutManager(java.awt.LayoutManager setTo)
           
 boolean setP(int index, CS setTo)
          Only sets that param to setTo if setTo has the fuzzy-type returned by PType(index).
 
Methods inherited from class codesimian.DefaultCS
B, C, countP, decrementMyFuel, F, fuel, getExec, getObject, heap, I, indexP, indexPName, insertB, insertC, insertD, insertF, insertI, insertJ, insertL, insertL, insertL1, insertS, insertZ, J, javaCode, LForProxy, myFuel, name, objectToCS, objectToCSArray, objectToCSArray, P, prevD, prevL, S, setB, setC, setCountP, setD, setD, setExec, setF, setFuel, setI, setJ, setL, setL, 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, 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
 

Field Detail

containerStack

public static final StackNeverEmpty<java.awt.Container> containerStack
the top Container in this stack is copied to new Layouts. 'containerStack' has not been tested 6/05.

Constructor Detail

Layout

public Layout(java.awt.LayoutManager L,
              java.awt.Container C,
              int minP,
              int maxP,
              java.lang.String keyword)
C is a Container whose LayoutManager is L. If C and/or L is null, a default LayoutManager and/or Container will be used. Minimum and maximum params of this CS. Keyword is the name of a certain layout type.


Layout

public Layout()
Default is a vertical GridLayout

Method Detail

DForProxy

public double DForProxy()
Returns countP(). When not changing params or resizing the GUI, Layouts dont do much.

Specified by:
DForProxy in class DefaultCS

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()

PType

public CS PType(int indexP)
default for all params: GUI.containerType

Overrides:
PType in class DefaultCS

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()
default: 100000, because GUI should only be used for important things, not to do low-level calculations for an AI. GUI takes SECONDS to interact with a person. A plus or divide is millions of times faster (not billions because CodeSimian is slow).

Overrides:
cost in class CS

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

newInstance

public CS newInstance()
Description copied from class: DefaultCS
temporarily (need to write some more code), uses Class objects to instantiate the default constructor

Overrides:
newInstance in class DefaultCS

getLayoutManager

public java.awt.LayoutManager getLayoutManager()

setLayoutManager

public boolean setLayoutManager(java.awt.LayoutManager setTo)

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

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)

getContainer

public java.awt.Container getContainer()
returns the Container whose LayoutManager of this Layout


setContainer

public boolean setContainer(java.awt.Container setTo)

addLayoutComponent

public void addLayoutComponent(java.lang.String name,
                               java.awt.Component comp)
Specified by:
addLayoutComponent in interface java.awt.LayoutManager

layoutContainer

public void layoutContainer(java.awt.Container parent)
Specified by:
layoutContainer in interface java.awt.LayoutManager

minimumLayoutSize

public java.awt.Dimension minimumLayoutSize(java.awt.Container parent)
Specified by:
minimumLayoutSize in interface java.awt.LayoutManager

preferredLayoutSize

public java.awt.Dimension preferredLayoutSize(java.awt.Container parent)
Specified by:
preferredLayoutSize in interface java.awt.LayoutManager

removeLayoutComponent

public void removeLayoutComponent(java.awt.Component comp)
Specified by:
removeLayoutComponent in interface java.awt.LayoutManager

setP

public boolean setP(int index,
                    CS setTo)
Only sets that param to setTo if setTo has the fuzzy-type returned by PType(index).

Overrides:
setP in class DefaultCS

insertP

public boolean insertP(int index,
                       CS insertMe)
Description copied from class: CS
same as setP(int,CS) but inserts instead of overwriting. All higher params slide up 1 index.

Overrides:
insertP in class DefaultCS

deleteP

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

Overrides:
deleteP in class DefaultCS