Ejemplo n.º 1
0
  /**
   * Render cells, starting at specified item.
   *
   * @param graphics
   * @param treemap
   * @param item
   * @param active
   */
  public void renderTree(TreemapGraphics graphics, Treemap treemap, Object item, boolean active) {
    TreemapCell cell = treemap.getCell(item);
    if (cell == null) {
      return;
    }
    boolean visible = cell.isLeaf() || cell.getFramed() != null;
    Object value = cell.getValue();

    if (active) {
      if (visible) {
        graphics.fill(cell, colorProvider.getHighlightColor(item, value));
      }
    } else {
      Rectangle borders = cell.getBorders();
      if (borders != null) {
        graphics.fill(borders, colorProvider.getBorderColor(item, value));
      }
      if (visible) {
        Color color1 = colorProvider.getBackgroundColor(item, value);
        Color color2 = colorProvider.getBackgroundGradientColor(item, value);
        graphics.fill(cell, color1, color2);
      }
    }
    if (!cell.isLeaf()) {
      Rectangle framed = cell.getFramed();
      if (framed != null) {
        graphics.fill(framed, colorProvider.getBorderColor(item, value));
      }
      for (Object node : cell.getChildren()) {
        renderTree(graphics, treemap, node, false);
      }
    }
  }
Ejemplo n.º 2
0
 private void renderLabels(
     TreemapGraphics graphics, Treemap treemap, Object item, boolean forked, int levels) {
   if (levels == 0) {
     return;
   }
   TreemapCell cell = treemap.getCell(item);
   if (cell == null) {
     return;
   }
   boolean attachLabel;
   switch (attachLabelMode) {
     case AnyVisible:
       attachLabel = cell.isLeaf() || cell.getFramed() != null;
       break;
     case VisibleForked:
       attachLabel = cell.isLeaf() || cell.getFramed() != null || forked;
       break;
     default:
       attachLabel = true;
   }
   if (attachLabel) {
     if (renderLabel(graphics, cell, item) && cell.getFramed() != null) {
       renderChildrenLabels(graphics, treemap, cell.getChildren(), levels - 1);
     }
   } else if (attachLabelMode != AttachLabelMode.TopLevelsOnly) {
     renderChildrenLabels(graphics, treemap, cell.getChildren(), levels - 1);
   }
 }
Ejemplo n.º 3
0
 /**
  * Render all cells.
  *
  * @param graphics
  * @param treemap
  */
 public void renderTree(TreemapGraphics graphics, Treemap treemap) {
   for (Object item : treemap.getElements()) {
     renderTree(graphics, treemap, item, false);
   }
 }
Ejemplo n.º 4
0
 /**
  * Render all labels.
  *
  * @param graphics
  * @param treemap
  * @param input
  */
 public void renderLabels(TreemapGraphics graphics, Treemap treemap) {
   Object[] elements = treemap.getElements();
   for (Object element : elements) {
     renderLabels(graphics, treemap, element, elements.length > 1, labelLevels);
   }
 }