Ejemplo n.º 1
0
    @Override
    public Point computeSize(int wHint, int hHint, boolean changed) {
      String text = item.getName();
      String info = getInfo();

      GC gc = new GC(this);
      Point extentText = gc.stringExtent(text);
      Point extentInfo = gc.stringExtent(info);
      gc.dispose();

      return new Point(Math.max(extentText.x, extentInfo.x) + 4, extentText.y + extentInfo.y + 4);
    }
Ejemplo n.º 2
0
    @Override
    public void render(
        final PaintEvent event,
        final ITreeModel<IRectangle<TaxonomyNode>> model,
        final IRectangle<TaxonomyNode> rectangle,
        final IColorProvider<TaxonomyNode, Color> colorProvider,
        final ILabelProvider<TaxonomyNode> labelProvider) {
      TaxonomyNode item = rectangle.getNode();

      if (item.getClassification() != null) return;

      Color oldForeground = event.gc.getForeground();
      Color oldBackground = event.gc.getBackground();

      Rectangle r =
          new Rectangle(
              rectangle.getX(), rectangle.getY(), rectangle.getWidth(), rectangle.getHeight());
      this.colorProvider.drawRectangle(model.getRoot().getNode(), item, event.gc, r);

      String label = item.getName();
      String info =
          String.format(
              "%s (%s%%)",
              Values.Amount.format(item.getActual()), // $NON-NLS-1$
              Values.Percent.format(
                  (double) item.getActual() / (double) this.model.getRootNode().getActual()));

      event.gc.setForeground(Colors.getTextColor(event.gc.getBackground()));

      Point labelExtend = event.gc.textExtent(label);
      Point infoExtend = event.gc.textExtent(info);

      int width = Math.max(labelExtend.x, infoExtend.x);
      if (width <= rectangle.getWidth() || rectangle.getWidth() > rectangle.getHeight()) {
        event.gc.drawText(label, r.x + 2, r.y + 2, true);
        event.gc.drawText(info, r.x + 2, r.y + 2 + labelExtend.y, true);
      } else {
        final Transform transform = new Transform(event.display);
        try {
          transform.translate(r.x, r.y);
          transform.rotate(-90);
          event.gc.setTransform(transform);
          event.gc.drawString(label, -labelExtend.x - 2, 2, true);
          event.gc.drawString(info, -infoExtend.x - 2, 2 + labelExtend.y, true);
        } finally {
          transform.dispose();
        }
      }

      event.gc.setForeground(oldForeground);
      event.gc.setBackground(oldBackground);
    }
Ejemplo n.º 3
0
    private void paintControl(Event e) {
      Color oldForeground = e.gc.getForeground();
      Color oldBackground = e.gc.getBackground();

      Point size = getSize();
      Rectangle r = new Rectangle(0, 0, size.x, size.y);

      renderer.drawRectangle(rootItem, item, e.gc, r);

      String text = item.getName();
      String info = getInfo();

      GC gc = e.gc;
      gc.setForeground(Colors.getTextColor(gc.getBackground()));
      gc.drawString(text, 2, 2, true);
      Point extent = gc.stringExtent(text);
      gc.drawString(info, 2, extent.y + 1, true);

      e.gc.setForeground(oldForeground);
      e.gc.setBackground(oldBackground);
    }