added object cache

This commit is contained in:
bancika
2011-01-21 18:57:05 +00:00
parent d67a0e7c87
commit c51357f58c
15 changed files with 80 additions and 35 deletions
@@ -0,0 +1,32 @@
package org.diylc.common;
import java.awt.BasicStroke;
import java.awt.Stroke;
import java.util.HashMap;
import java.util.Map;
public class ObjectCache {
private static ObjectCache instance;
public static ObjectCache getInstance() {
if (instance == null) {
instance = new ObjectCache();
}
return instance;
}
private ObjectCache() {
}
private Map<Integer, Stroke> basicStrokeMap = new HashMap<Integer, Stroke>();
public Stroke fetchBasicStroke(int width) {
if (basicStrokeMap.containsKey(width)) {
return basicStrokeMap.get(width);
}
Stroke stroke = new BasicStroke(width);
basicStrokeMap.put(width, stroke);
return stroke;
}
}
@@ -8,6 +8,7 @@ import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import java.awt.geom.CubicCurve2D; import java.awt.geom.CubicCurve2D;
import org.diylc.common.ObjectCache;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDrawingObserver; import org.diylc.core.IDrawingObserver;
import org.diylc.core.Project; import org.diylc.core.Project;
@@ -50,12 +51,12 @@ public abstract class AbstractCurvedComponent<T> extends AbstractTransparentComp
@Override @Override
public void drawIcon(Graphics2D g2d, int width, int height) { public void drawIcon(Graphics2D g2d, int width, int height) {
g2d.setColor(getDefaultColor().darker()); g2d.setColor(getDefaultColor().darker());
g2d.setStroke(new BasicStroke(3)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3));
CubicCurve2D curve = new CubicCurve2D.Double(1, height - 1, width / 4, height / 3, CubicCurve2D curve = new CubicCurve2D.Double(1, height - 1, width / 4, height / 3,
3 * width / 4, 2 * height / 3, width - 1, 1); 3 * width / 4, 2 * height / 3, width - 1, 1);
g2d.draw(curve); g2d.draw(curve);
g2d.setColor(getDefaultColor()); g2d.setColor(getDefaultColor());
g2d.setStroke(new BasicStroke(1)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.draw(curve); g2d.draw(curve);
} }
@@ -12,6 +12,7 @@ import java.awt.Shape;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import org.diylc.common.Display; import org.diylc.common.Display;
import org.diylc.common.ObjectCache;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDrawingObserver; import org.diylc.core.IDrawingObserver;
import org.diylc.core.Project; import org.diylc.core.Project;
@@ -65,12 +66,14 @@ public abstract class AbstractLeadedComponent<T> extends AbstractTransparentComp
double distance = points[0].distance(points[1]); double distance = points[0].distance(points[1]);
Shape shape = getBodyShape(); Shape shape = getBodyShape();
if (shape == null) { if (shape == null) {
g2d.setStroke(new BasicStroke(getLeadThickness().convertToPixels())); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(
getLeadThickness().convertToPixels()));
g2d.setColor(shouldShadeLeads() ? getLeadColor(componentState).darker() g2d.setColor(shouldShadeLeads() ? getLeadColor(componentState).darker()
: getLeadColor(componentState)); : getLeadColor(componentState));
g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y); g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y);
if (shouldShadeLeads()) { if (shouldShadeLeads()) {
g2d.setStroke(new BasicStroke(getLeadThickness().convertToPixels() - 2)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(
getLeadThickness().convertToPixels() - 2));
g2d.setColor(getLeadColor(componentState)); g2d.setColor(getLeadColor(componentState));
g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y); g2d.drawLine(points[0].x, points[0].y, points[1].x, points[1].y);
} }
@@ -99,7 +102,7 @@ public abstract class AbstractLeadedComponent<T> extends AbstractTransparentComp
g2d.draw(shape); g2d.draw(shape);
// Draw leads. // Draw leads.
int leadThickness = getClosestOdd(getLeadThickness().convertToPixels()); int leadThickness = getClosestOdd(getLeadThickness().convertToPixels());
g2d.setStroke(new BasicStroke(leadThickness)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
g2d.setColor(shouldShadeLeads() ? getLeadColor(componentState).darker() g2d.setColor(shouldShadeLeads() ? getLeadColor(componentState).darker()
: getLeadColor(componentState)); : getLeadColor(componentState));
g2d.drawLine((int) (shapeRect.width - distance) / 2, (int) shapeRect.height / 2, g2d.drawLine((int) (shapeRect.width - distance) / 2, (int) shapeRect.height / 2,
@@ -109,7 +112,7 @@ public abstract class AbstractLeadedComponent<T> extends AbstractTransparentComp
(int) ((shapeRect.width + distance) / 2 - leadLenght) + leadThickness / 2, (int) ((shapeRect.width + distance) / 2 - leadLenght) + leadThickness / 2,
(int) shapeRect.height / 2); (int) shapeRect.height / 2);
if (shouldShadeLeads()) { if (shouldShadeLeads()) {
g2d.setStroke(new BasicStroke(leadThickness - 2)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
g2d.setColor(getLeadColor(componentState)); g2d.setColor(getLeadColor(componentState));
g2d.drawLine((int) (shapeRect.width - distance) / 2, (int) shapeRect.height / 2, g2d.drawLine((int) (shapeRect.width - distance) / 2, (int) shapeRect.height / 2,
(int) ((shapeRect.width - distance) / 2 + leadLenght) - leadThickness / 2, (int) ((shapeRect.width - distance) / 2 + leadLenght) - leadThickness / 2,
@@ -23,6 +23,7 @@ import org.diylc.common.DrawOption;
import org.diylc.common.EventType; import org.diylc.common.EventType;
import org.diylc.common.GridType; import org.diylc.common.GridType;
import org.diylc.common.IComponentFiler; import org.diylc.common.IComponentFiler;
import org.diylc.common.ObjectCache;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
import org.diylc.core.Project; import org.diylc.core.Project;
@@ -249,7 +250,7 @@ public class DrawingManager {
// Draw component area for test // Draw component area for test
if (DEBUG_COMPONENT_AREAS) { if (DEBUG_COMPONENT_AREAS) {
g2d.setStroke(new BasicStroke()); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.setColor(Color.red); g2d.setColor(Color.red);
for (Area area : componentAreaMap.values()) { for (Area area : componentAreaMap.values()) {
g2d.draw(area); g2d.draw(area);
@@ -6,6 +6,7 @@ import java.awt.Composite;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractTransparentComponent; import org.diylc.components.AbstractTransparentComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDrawingObserver; import org.diylc.core.IDrawingObserver;
@@ -14,7 +15,6 @@ import org.diylc.core.VisibilityPolicy;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
public abstract class AbstractBoard extends AbstractTransparentComponent<String> { public abstract class AbstractBoard extends AbstractTransparentComponent<String> {
@@ -37,7 +37,7 @@ public abstract class AbstractBoard extends AbstractTransparentComponent<String>
@Override @Override
public void draw(Graphics2D g2d, ComponentState componentState, Project project, public void draw(Graphics2D g2d, ComponentState componentState, Project project,
IDrawingObserver drawingObserver) { IDrawingObserver drawingObserver) {
g2d.setStroke(Constants.BASIC_STROKE); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
if (componentState != ComponentState.DRAGGING) { if (componentState != ComponentState.DRAGGING) {
Composite oldComposite = g2d.getComposite(); Composite oldComposite = g2d.getComposite();
if (alpha < MAX_ALPHA) { if (alpha < MAX_ALPHA) {
@@ -52,10 +52,10 @@ public class VeroBoard extends AbstractBoard {
p.y += spacing; p.y += spacing;
g2d.setColor(padColor); g2d.setColor(padColor);
g2d.fillRect(p.x + SPACING.convertToPixels() / 2, p.y - stripSize / 2, g2d.fillRect(p.x + SPACING.convertToPixels() / 2, p.y - stripSize / 2,
controlPoints[1].x - spacing - p.x, stripSize); secondPoint.x - spacing - p.x, stripSize);
g2d.setColor(padColor.darker()); g2d.setColor(padColor.darker());
g2d.drawRect(p.x + SPACING.convertToPixels() / 2, p.y - stripSize / 2, g2d.drawRect(p.x + SPACING.convertToPixels() / 2, p.y - stripSize / 2,
controlPoints[1].x - spacing - p.x, stripSize); secondPoint.x - spacing - p.x, stripSize);
while (p.x < secondPoint.x - spacing) { while (p.x < secondPoint.x - spacing) {
p.x += spacing; p.x += spacing;
g2d.setColor(Constants.CANVAS_COLOR); g2d.setColor(Constants.CANVAS_COLOR);
@@ -1,10 +1,10 @@
package org.diylc.components.connectivity; package org.diylc.components.connectivity;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Shape; import java.awt.Shape;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractLeadedComponent; import org.diylc.components.AbstractLeadedComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.CreationMethod; import org.diylc.core.CreationMethod;
@@ -27,7 +27,7 @@ public class CopperTrace extends AbstractLeadedComponent<Void> {
@Override @Override
public void drawIcon(Graphics2D g2d, int width, int height) { public void drawIcon(Graphics2D g2d, int width, int height) {
g2d.setStroke(new BasicStroke(3)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(3));
g2d.setColor(COLOR); g2d.setColor(COLOR);
g2d.drawLine(1, height - 2, width - 2, 1); g2d.drawLine(1, height - 2, width - 2, 1);
} }
@@ -1,10 +1,10 @@
package org.diylc.components.connectivity; package org.diylc.components.connectivity;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.geom.CubicCurve2D; import java.awt.geom.CubicCurve2D;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractCurvedComponent; import org.diylc.components.AbstractCurvedComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
@@ -31,7 +31,7 @@ public class CurvedTrace extends AbstractCurvedComponent<Void> {
@Override @Override
protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) {
int thickness = size.convertToPixels(); int thickness = size.convertToPixels();
g2d.setStroke(new BasicStroke(thickness)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness));
g2d.setColor(componentState == ComponentState.SELECTED g2d.setColor(componentState == ComponentState.SELECTED
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color); || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color);
g2d.draw(curve); g2d.draw(curve);
@@ -1,10 +1,10 @@
package org.diylc.components.connectivity; package org.diylc.components.connectivity;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.geom.CubicCurve2D; import java.awt.geom.CubicCurve2D;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractCurvedComponent; import org.diylc.components.AbstractCurvedComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
@@ -13,14 +13,14 @@ import org.diylc.core.annotations.EditableProperty;
import org.diylc.utils.Constants; import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Hookup Wire", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "W", description = "Flexible wire with two control points", zOrder = IDIYComponent.ABOVE_COMPONENT) @ComponentDescriptor(name = "Hookup Wire", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "W", description = "Flexible wire with two control points", zOrder = IDIYComponent.ABOVE_COMPONENT)
public class HookupWire extends AbstractCurvedComponent<AWG> { public class HookupWire extends AbstractCurvedComponent<Void> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
public static Color COLOR = Color.green; public static Color COLOR = Color.green;
public static double INSULATION_THICKNESS_PCT = 0.3; public static double INSULATION_THICKNESS_PCT = 0.3;
protected AWG value = AWG._22; protected AWG gauge = AWG._22;
@Override @Override
protected Color getDefaultColor() { protected Color getDefaultColor() {
@@ -29,27 +29,35 @@ public class HookupWire extends AbstractCurvedComponent<AWG> {
@Override @Override
protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) {
int thickness = (int) (Math.pow(Math.E, -1.12436 - 0.11594 * value.getValue()) int thickness = (int) (Math.
pow(Math.E, -1.12436 - 0.11594 * gauge.getValue())
* Constants.PIXELS_PER_INCH * (1 + 2 * INSULATION_THICKNESS_PCT)); * Constants.PIXELS_PER_INCH * (1 + 2 * INSULATION_THICKNESS_PCT));
g2d.setColor(componentState == ComponentState.SELECTED g2d.setColor(componentState == ComponentState.SELECTED
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker()); || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker());
g2d.setStroke(new BasicStroke(thickness)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness));
g2d.draw(curve); g2d.draw(curve);
if (componentState == ComponentState.NORMAL) { if (componentState == ComponentState.NORMAL) {
g2d.setColor(color); g2d.setColor(color);
g2d.setStroke(new BasicStroke(thickness - 2)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness - 2));
g2d.draw(curve); g2d.draw(curve);
} }
} }
@EditableProperty(name = "AWG") @EditableProperty(name = "AWG")
@Override public AWG getGauge() {
public AWG getValue() { return gauge;
return value; }
public void setGauge(AWG gauge) {
this.gauge = gauge;
} }
@Override @Override
public void setValue(AWG value) { public Void getValue() {
this.value = value; return null;
}
@Override
public void setValue(Void value) {
} }
} }
@@ -1,10 +1,10 @@
package org.diylc.components.connectivity; package org.diylc.components.connectivity;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Shape; import java.awt.Shape;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractLeadedComponent; import org.diylc.components.AbstractLeadedComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.CreationMethod; import org.diylc.core.CreationMethod;
@@ -22,7 +22,7 @@ public class Jumper extends AbstractLeadedComponent<Void> {
@Override @Override
public void drawIcon(Graphics2D g2d, int width, int height) { public void drawIcon(Graphics2D g2d, int width, int height) {
g2d.setStroke(new BasicStroke(1)); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.setColor(COLOR); g2d.setColor(COLOR);
g2d.drawLine(1, height - 2, width - 2, 1); g2d.drawLine(1, height - 2, width - 2, 1);
} }
@@ -4,6 +4,7 @@ import java.awt.Color;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Point; import java.awt.Point;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractComponent; import org.diylc.components.AbstractComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
@@ -14,7 +15,6 @@ import org.diylc.core.annotations.ComponentDescriptor;
import org.diylc.core.annotations.EditableProperty; import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.measures.Size; import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit; import org.diylc.core.measures.SizeUnit;
import org.diylc.utils.Constants;
@ComponentDescriptor(name = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Cut", stretchable = false, zOrder = IDIYComponent.ABOVE_BOARD) @ComponentDescriptor(name = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Cut", stretchable = false, zOrder = IDIYComponent.ABOVE_BOARD)
public class TraceCut extends AbstractComponent<Void> { public class TraceCut extends AbstractComponent<Void> {
@@ -41,7 +41,7 @@ public class TraceCut extends AbstractComponent<Void> {
g2d.fillRect(point.x - size / 2, point.y - size / 2, size, size); g2d.fillRect(point.x - size / 2, point.y - size / 2, size, size);
g2d.setColor(componentState == ComponentState.SELECTED g2d.setColor(componentState == ComponentState.SELECTED
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor); || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : borderColor);
g2d.setStroke(Constants.BASIC_STROKE); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.drawRect(point.x - size / 2, point.y - size / 2, size, size); g2d.drawRect(point.x - size / 2, point.y - size / 2, size, size);
g2d g2d
.fillOval(point.x - dotDiameter / 2, point.y - dotDiameter / 2, dotDiameter, .fillOval(point.x - dotDiameter / 2, point.y - dotDiameter / 2, dotDiameter,
@@ -55,7 +55,7 @@ public class TraceCut extends AbstractComponent<Void> {
g2d.setColor(FILL_COLOR); g2d.setColor(FILL_COLOR);
g2d.fillRect((width - size) / 2, (height - size) / 2, size, size); g2d.fillRect((width - size) / 2, (height - size) / 2, size, size);
g2d.setColor(BORDER_COLOR); g2d.setColor(BORDER_COLOR);
g2d.setStroke(Constants.BASIC_STROKE); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.drawRect((width - size) / 2, (height - size) / 2, size, size); g2d.drawRect((width - size) / 2, (height - size) / 2, size, size);
g2d.fillOval((width - dotDiameter) / 2, (height - dotDiameter) / 2, dotDiameter, g2d.fillOval((width - dotDiameter) / 2, (height - dotDiameter) / 2, dotDiameter,
dotDiameter); dotDiameter);
@@ -1,7 +1,6 @@
package org.diylc.components.electromechanical; package org.diylc.components.electromechanical;
import java.awt.AlphaComposite; import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Composite; import java.awt.Composite;
import java.awt.Graphics2D; import java.awt.Graphics2D;
@@ -9,6 +8,7 @@ import java.awt.Point;
import java.awt.Shape; import java.awt.Shape;
import java.awt.geom.RoundRectangle2D; import java.awt.geom.RoundRectangle2D;
import org.diylc.common.ObjectCache;
import org.diylc.components.AbstractTransparentComponent; import org.diylc.components.AbstractTransparentComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
import org.diylc.core.IDIYComponent; import org.diylc.core.IDIYComponent;
@@ -178,7 +178,7 @@ public class MiniToggleSwitch extends AbstractTransparentComponent<ToggleSwitchT
g2d.setColor(BODY_COLOR); g2d.setColor(BODY_COLOR);
g2d.fill(body); g2d.fill(body);
g2d.setComposite(oldComposite); g2d.setComposite(oldComposite);
g2d.setStroke(new BasicStroke()); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.setColor(componentState == ComponentState.SELECTED g2d.setColor(componentState == ComponentState.SELECTED
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR); || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR);
g2d.draw(body); g2d.draw(body);
@@ -1,7 +1,6 @@
package org.diylc.components.semiconductors; package org.diylc.components.semiconductors;
import java.awt.AlphaComposite; import java.awt.AlphaComposite;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Composite; import java.awt.Composite;
import java.awt.FontMetrics; import java.awt.FontMetrics;
@@ -12,6 +11,7 @@ import java.awt.Shape;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.awt.geom.RoundRectangle2D; import java.awt.geom.RoundRectangle2D;
import org.diylc.common.ObjectCache;
import org.diylc.common.Orientation; import org.diylc.common.Orientation;
import org.diylc.components.AbstractTransparentComponent; import org.diylc.components.AbstractTransparentComponent;
import org.diylc.core.ComponentState; import org.diylc.core.ComponentState;
@@ -246,7 +246,7 @@ public class DIL_IC extends AbstractTransparentComponent<String> {
g2d.setComposite(oldComposite); g2d.setComposite(oldComposite);
g2d.setColor(componentState == ComponentState.SELECTED g2d.setColor(componentState == ComponentState.SELECTED
|| componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR); || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : BORDER_COLOR);
g2d.setStroke(new BasicStroke()); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(1));
g2d.draw(getBody()); g2d.draw(getBody());
// Draw label. // Draw label.
g2d.setFont(Constants.LABEL_FONT); g2d.setFont(Constants.LABEL_FONT);