Package org.scilab.forge.jlatexmath
Class Box
- java.lang.Object
-
- org.scilab.forge.jlatexmath.Box
-
- Direct Known Subclasses:
CharBox
,FcscoreBox
,FramedBox
,GeoGebraLogoBox
,GlueBox
,GraphicsBox
,HorizontalBox
,HorizontalRule
,JavaFontRenderingBox
,OverBar
,OverUnderBox
,ReflectBox
,RotateBox
,ScaleBox
,StrutBox
public abstract class Box extends java.lang.Object
An abstract graphical representation of a formula, that can be painted. All characters, font sizes, positions are fixed. Only special Glue boxes could possibly stretch or shrink. A box has 3 dimensions (width, height and depth), can be composed of other child boxes that can possibly be shifted (up, down, left or right). Child boxes can also be positioned outside their parent's box (defined by it's dimensions).Subclasses must implement the abstract
draw(Graphics2D, float, float)
method (that paints the box). This implementation must start with calling the methodstartDraw(Graphics2D, float, float)
and end with calling the methodendDraw(Graphics2D)
to set and restore the color's that must be used for painting the box and to draw the background! They must also implement the abstractgetLastFontId()
method (the last font that will be used when this box will be painted).
-
-
Field Summary
Fields Modifier and Type Field Description protected java.awt.Color
background
The background color of the whole box.protected java.util.LinkedList<Box>
children
List of child boxesstatic boolean
DEBUG
protected float
depth
The depth of this box, i.e.protected Box
elderParent
protected java.awt.Color
foreground
The foreground color of the whole box.protected float
height
The height of this box, i.e.protected java.awt.Color
markForDEBUG
protected Box
parent
protected float
shift
The shift amount: the meaning depends on the particular kind of box (up, down, left, right)protected int
type
protected float
width
The width of this box, i.e.
-
Constructor Summary
Constructors Modifier Constructor Description protected
Box()
Creates an empty box (no children) with all dimensions set to 0 and no foreground and background color set (default values will be used: null)protected
Box(java.awt.Color fg, java.awt.Color bg)
Creates an empty box (no children) with all dimensions set to 0 and sets the foreground and background color of the box.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
add(int pos, Box b)
Inserts the given box at the given position in the list of child boxes.void
add(Box b)
Inserts the given box at the end of the list of child boxes.abstract void
draw(java.awt.Graphics2D g2, float x, float y)
Paints this box at the given coordinates using the given graphics context.protected void
drawDebug(java.awt.Graphics2D g2, float x, float y)
protected void
drawDebug(java.awt.Graphics2D g2, float x, float y, boolean showDepth)
protected void
endDraw(java.awt.Graphics2D g2)
Restores the previous color setting.float
getDepth()
Get the depth of this box.Box
getElderParent()
float
getHeight()
Get the height of this box.abstract int
getLastFontId()
Get the id of the font that will be used the last when this box will be painted.Box
getParent()
float
getShift()
Get the shift amount for this box.float
getWidth()
Get the width of this box.void
negWidth()
void
setDepth(float d)
Set the depth for this box.void
setElderParent(Box elderParent)
void
setHeight(float h)
Set the height for this box.void
setParent(Box parent)
void
setShift(float s)
Set the shift amount for this box.void
setWidth(float w)
Set the width for this box.protected void
startDraw(java.awt.Graphics2D g2, float x, float y)
Stores the old color setting, draws the background of the box (if not null) and sets the foreground color (if not null).
-
-
-
Field Detail
-
DEBUG
public static boolean DEBUG
-
foreground
protected java.awt.Color foreground
The foreground color of the whole box. Child boxes can override this color. If it's null and it has a parent box, the foreground color of the parent will be used. If it has no parent, the foreground color of the component on which it will be painted, will be used.
-
background
protected java.awt.Color background
The background color of the whole box. Child boxes can paint a background on top of this background. If it's null, no background will be painted.
-
width
protected float width
The width of this box, i.e. the value that will be used for further calculations.
-
height
protected float height
The height of this box, i.e. the value that will be used for further calculations.
-
depth
protected float depth
The depth of this box, i.e. the value that will be used for further calculations.
-
shift
protected float shift
The shift amount: the meaning depends on the particular kind of box (up, down, left, right)
-
type
protected int type
-
children
protected java.util.LinkedList<Box> children
List of child boxes
-
parent
protected Box parent
-
elderParent
protected Box elderParent
-
markForDEBUG
protected java.awt.Color markForDEBUG
-
-
Constructor Detail
-
Box
protected Box()
Creates an empty box (no children) with all dimensions set to 0 and no foreground and background color set (default values will be used: null)
-
Box
protected Box(java.awt.Color fg, java.awt.Color bg)
Creates an empty box (no children) with all dimensions set to 0 and sets the foreground and background color of the box.- Parameters:
fg
- the foreground colorbg
- the background color
-
-
Method Detail
-
add
public void add(Box b)
Inserts the given box at the end of the list of child boxes.- Parameters:
b
- the box to be inserted
-
add
public void add(int pos, Box b)
Inserts the given box at the given position in the list of child boxes.- Parameters:
pos
- the position at which to insert the given boxb
- the box to be inserted
-
setParent
public void setParent(Box parent)
-
getParent
public Box getParent()
-
setElderParent
public void setElderParent(Box elderParent)
-
getElderParent
public Box getElderParent()
-
getWidth
public float getWidth()
Get the width of this box.- Returns:
- the width of this box
-
negWidth
public void negWidth()
-
getHeight
public float getHeight()
Get the height of this box.- Returns:
- the height of this box
-
getDepth
public float getDepth()
Get the depth of this box.- Returns:
- the depth of this box
-
getShift
public float getShift()
Get the shift amount for this box.- Returns:
- the shift amount
-
setWidth
public void setWidth(float w)
Set the width for this box.- Parameters:
w
- the width
-
setDepth
public void setDepth(float d)
Set the depth for this box.- Parameters:
d
- the depth
-
setHeight
public void setHeight(float h)
Set the height for this box.- Parameters:
h
- the height
-
setShift
public void setShift(float s)
Set the shift amount for this box.- Parameters:
s
- the shift amount
-
draw
public abstract void draw(java.awt.Graphics2D g2, float x, float y)
Paints this box at the given coordinates using the given graphics context.- Parameters:
g2
- the graphics (2D) context to use for paintingx
- the x-coordinatey
- the y-coordinate
-
getLastFontId
public abstract int getLastFontId()
Get the id of the font that will be used the last when this box will be painted.- Returns:
- the id of the last font that will be used.
-
startDraw
protected void startDraw(java.awt.Graphics2D g2, float x, float y)
Stores the old color setting, draws the background of the box (if not null) and sets the foreground color (if not null).- Parameters:
g2
- the graphics (2D) contextx
- the x-coordinatey
- the y-coordinate
-
drawDebug
protected void drawDebug(java.awt.Graphics2D g2, float x, float y, boolean showDepth)
-
drawDebug
protected void drawDebug(java.awt.Graphics2D g2, float x, float y)
-
endDraw
protected void endDraw(java.awt.Graphics2D g2)
Restores the previous color setting.- Parameters:
g2
- the graphics (2D) context
-
-