protected void setDialFrame(ChartDocument chartDocument, DialPlot dialPlot) {
    // ~ params begin
    Color frameForegroundPaint = Color.black;
    Color frameInnerForegroundPaint = Color.black;
    Color frameBackgroundPaint = Color.white;
    Stroke frameStroke = new BasicStroke(2.0f);
    // ~ params end

    final StrokeFactory strokeFacObj = StrokeFactory.getInstance();

    ChartElement plotElement = getUniqueElement(chartDocument, ChartElement.TAG_NAME_PLOT);

    final BasicStroke borderStyleStroke = strokeFacObj.getBorderStroke(plotElement);
    if (borderStyleStroke != null) {
      frameStroke = borderStyleStroke;
    }

    final Color outerBorderColor =
        ColorFactory.getInstance().getColor(plotElement, BorderStyleKeys.BORDER_TOP_COLOR);
    if (outerBorderColor != null) {
      frameForegroundPaint = outerBorderColor;
    }

    final Color innerBorderColorTmp =
        ColorFactory.getInstance().getColor(plotElement, BorderStyleKeys.BORDER_BOTTOM_COLOR);
    if (innerBorderColorTmp != null) {
      frameInnerForegroundPaint = innerBorderColorTmp;
    }

    final Color borderBackgroundColorTmp = ColorFactory.getInstance().getColor(plotElement);
    if (borderBackgroundColorTmp != null) {
      frameBackgroundPaint = borderBackgroundColorTmp;
    }

    final DoubleLineDialFrame dialFrame = new DoubleLineDialFrame();
    dialFrame.setForegroundPaint(frameForegroundPaint);
    dialFrame.setInnerForegroundPaint(frameInnerForegroundPaint);
    dialFrame.setStroke(frameStroke);
    dialFrame.setBackgroundPaint(frameBackgroundPaint);

    dialPlot.setDialFrame(dialFrame);
  }