net.sourceforge.plantuml.activitydiagram3.ftile.FtileHeightFixedCentered Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plantuml-mit Show documentation
Show all versions of plantuml-mit Show documentation
PlantUML is a component that allows to quickly write diagrams from text.
// THIS FILE HAS BEEN GENERATED BY A PREPROCESSOR.
package net.sourceforge.plantuml.activitydiagram3.ftile;
import java.util.Collection;
import java.util.Collections;
import java.util.Set;
import net.sourceforge.plantuml.activitydiagram3.LinkRendering;
import net.sourceforge.plantuml.klimt.UTranslate;
import net.sourceforge.plantuml.klimt.drawing.UGraphic;
import net.sourceforge.plantuml.klimt.font.StringBounder;
import net.sourceforge.plantuml.klimt.geom.XDimension2D;
public class FtileHeightFixedCentered extends AbstractFtile {
private final Ftile tile;
private final double fixedHeight;
public FtileHeightFixedCentered(Ftile tile, double fixedHeight) {
super(tile.skinParam());
this.tile = tile;
this.fixedHeight = fixedHeight;
}
@Override
public Collection getMyChildren() {
return Collections.singleton(tile);
// return tile.getMyChildren();
}
@Override
public LinkRendering getInLinkRendering() {
return tile.getInLinkRendering();
}
@Override
public LinkRendering getOutLinkRendering() {
return tile.getOutLinkRendering();
}
public Set getSwimlanes() {
return tile.getSwimlanes();
}
public Swimlane getSwimlaneIn() {
return tile.getSwimlaneIn();
}
public Swimlane getSwimlaneOut() {
return tile.getSwimlaneOut();
}
@Override
protected FtileGeometry calculateDimensionFtile(StringBounder stringBounder) {
return tile.calculateDimension(stringBounder).translate(getTranslate(stringBounder)).fixedHeight(fixedHeight);
}
private UTranslate getTranslate(StringBounder stringBounder) {
final XDimension2D dim = tile.calculateDimension(stringBounder);
if (dim.getHeight() > fixedHeight)
throw new IllegalStateException();
return UTranslate.dy((fixedHeight - dim.getHeight()) / 2);
}
public void drawU(UGraphic ug) {
ug.apply(getTranslate(ug.getStringBounder())).draw(tile);
}
}