コード例 #1
0
ファイル: InteractionUse.java プロジェクト: ruediste/umlet
  @Override
  public void draw(DrawHandler drawHandler, DrawingInfo drawingInfo) {
    double width = drawingInfo.getSymmetricWidth(getFirstLifeline(), getLastLifeline(), tick);
    double height = getHeight(drawHandler, width);
    double topY =
        drawingInfo.getVerticalStart(tick) + (drawingInfo.getTickHeight(tick) - height) / 2;
    PointDouble topLeft =
        new PointDouble(
            drawingInfo.getHDrawingInfo(getFirstLifeline()).getSymmetricHorizontalStart(tick),
            topY);

    drawHandler.drawRectangle(topLeft.x, topLeft.y, width, height);
    PointDouble pentagonSize = PentagonDrawingHelper.draw(drawHandler, HEADER_TEXT, width, topLeft);
    TextSplitter.drawText(
        drawHandler,
        textLines,
        topLeft.x + pentagonSize.x + TEXT_X_PADDING,
        topLeft.y,
        width - (pentagonSize.x + TEXT_X_PADDING) * 2,
        height,
        AlignHorizontal.CENTER,
        AlignVertical.CENTER);

    for (Lifeline ll : coveredLifelines) {
      drawingInfo.getDrawingInfo(ll).addInterruptedArea(new Line1D(topLeft.y, topLeft.y + height));
    }
  }
コード例 #2
0
ファイル: InteractionUse.java プロジェクト: ruediste/umlet
 private double getHeight(DrawHandler drawHandler, double width) {
   double textWidth =
       width
           - TEXT_X_PADDING * 2
           - PentagonDrawingHelper.getPentagonMinimumWidth(drawHandler, HEADER_TEXT) * 2;
   return Math.max(
       PentagonDrawingHelper.getHeight(drawHandler, HEADER_TEXT, width) + HEADER_BOTTOM_PADDING,
       TextSplitter.getSplitStringHeight(textLines, textWidth, drawHandler) + TEXT_Y_PADDING * 2);
 }
コード例 #3
0
ファイル: InteractionUse.java プロジェクト: ruediste/umlet
 @Override
 public double getOverallMinWidth(DrawHandler drawHandler, double lifelineHorizontalPadding) {
   return PentagonDrawingHelper.getPentagonMinimumWidth(drawHandler, HEADER_TEXT) * 2
       + TEXT_X_PADDING * 2
       + TextSplitter.getTextMinWidth(textLines, drawHandler);
 }