@Override
  protected void createElements() {
    Node contentNode = chartNode.selectSingleNode(BUBBLE_LABEL_CONTENT_NODE_LOC);
    String content = getValue(contentNode);
    Node zFormatNode = chartNode.selectSingleNode(BUBBLE_LABEL_Z_FORMAT_NODE_LOC);
    String zFormat = getValue(zFormatNode);
    DecimalFormat df = null;
    if (zFormat != null) {
      df = new DecimalFormat(zFormat);
    }

    for (int row = 0; row < getRowCount(); row++) {
      Element e = null;
      String text = getRowHeader(row);

      ScatterChart sc = new ScatterChart(""); // $NON-NLS-1$
      sc.setColour(getColor(row));
      Number x = (Number) getValueAt(row, 0);
      Number y = (Number) getValueAt(row, 1);
      Number z = (Number) getValueAt(row, 2);

      setupDotSize(sc, z);

      sc.addPoint(x.doubleValue(), y.doubleValue());

      if (content != null) {
        String zstr = null;
        if (df != null) {
          zstr = df.format(z);
        } else {
          if (z != null) {
            zstr = z.toString();
          }
        }
        sc.setTooltip(
            MessageFormat.format(
                content,
                text,
                NumberFormat.getInstance().format(x),
                NumberFormat.getInstance().format(y),
                zstr));
      }

      if (alpha != null) {
        sc.setAlpha(alpha);
      }

      e = sc;
      e.setText(text);
      elements.add(e);
    }
  }
 public void setupDotSize(ScatterChart se, Number x) {
   se.setDotSize(
       Integer.valueOf(
           java.lang.Math.round(maxBubbleSize * (x.floatValue() / bubbleMaxX.floatValue()))));
 }