public void drawLineInternal( final UGraphic ug, Stencil stencil, double y, UStroke defaultStroke) { stencil = addSkip(stencil); final UStroke strokeToUse = style == '\0' ? defaultStroke : getStroke(); final UGraphic ugStroke = ug.apply(strokeToUse); if (title == null) { drawHLine(stencil, y, ugStroke); return; } final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); drawHLine(firstHalf(stencil, dimTitle.getWidth()), y, ugStroke); final double startingX = stencil.getStartingX(ug.getStringBounder(), y); final double endingX = stencil.getEndingX(ug.getStringBounder(), y); drawTitleInternal(ug, startingX, endingX, y, false); drawHLine(secondHalf(stencil, dimTitle.getWidth()), y, ugStroke); }
public void drawTitleInternal( UGraphic ug, double startingX, double endingX, double y, boolean clearArea) { if (title == null || blankTitle) { return; } final double widthToUse = endingX - startingX; final Dimension2D dimTitle = title.calculateDimension(ug.getStringBounder()); final double space = (widthToUse - dimTitle.getWidth()) / 2; final double x1 = startingX + space; final double y1 = y - dimTitle.getHeight() / 2 - 0.5; ug = ug.apply(new UTranslate(x1, y1)); if (clearArea) { ug.apply(getStroke()).draw(new URectangle(dimTitle)); } title.drawU(ug); }
public void drawMe(UGraphic ug) { ug.draw(this); }
private static void drawSimpleHline(UGraphic ug, Stencil stencil, double y) { final double startingX = stencil.getStartingX(ug.getStringBounder(), y); final double endingX = stencil.getEndingX(ug.getStringBounder(), y); ug.apply(new UTranslate(startingX, y)).draw(new ULine(endingX - startingX, 0)); }