package com.baselet.element.old.activity;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.geom.Rectangle2D;
import com.baselet.diagram.DiagramHandler;
public class Label extends Element {
private String[] label;
private int line_height;
public Label(DiagramHandler handler, String label, Graphics2D g, int padding) {
super(handler, g, padding, null);
this.label = label.split("\\\\");
int w = 0, h = 0;
for (String element : this.label) {
Rectangle2D rect = g.getFont().getStringBounds(element, g.getFontRenderContext());
w = w < (int) (rect.getMaxX() - rect.getMinX()) ? (int) (rect.getMaxX() - rect.getMinX()) : w;
h += (int) (rect.getMaxY() - rect.getMinY());
line_height = (int) (rect.getMaxY() - rect.getMinY());
}
setWidth(w);
setHeight(h);
}
@Override
public boolean connectIn() {
return false;
}
@Override
public boolean connectOut_overrideable() {
return false;
}
@Override
public void paint() {
Point cord = getPosition();
int y = cord.y - getHeight() / 2 - getPadding();
for (int i = 0; i < label.length; i++) {
getGraphics().drawString(label[i], cord.x - getWidth() / 2,
y + getHeight() - (label.length - i - 1) * line_height - 1);
}
}
}