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);
  }
 @Override
 public boolean equals(Object obj) {
   if (obj == this) {
     return true;
   }
   if (!(obj instanceof DoubleLineDialFrame)) {
     return false;
   }
   DoubleLineDialFrame that = (DoubleLineDialFrame) obj;
   if (!PaintUtilities.equal(getBackgroundPaint(), that.getBackgroundPaint())) {
     return false;
   }
   if (!PaintUtilities.equal(getForegroundPaint(), that.getForegroundPaint())) {
     return false;
   }
   if (!PaintUtilities.equal(getInnerForegroundPaint(), that.getInnerForegroundPaint())) {
     return false;
   }
   if (getRadius() != that.getRadius()) {
     return false;
   }
   if (!this.getStroke().equals(that.getStroke())) {
     return false;
   }
   return super.equals(obj);
 }