コード例 #1
0
  public void draw(Canvas _canvas, Rect _top_left) {
    Rect myrect;
    Rect subrect;
    // START KGU 2015-10-13: All highlighting rules now encapsulated by this new method
    // Color drawColor = getColor();
    Color drawColor = getFillColor();
    // END KGU 2015-10-13
    FontMetrics fm = _canvas.getFontMetrics(Element.font);
    Canvas canvas = _canvas;
    // START KGU 2015-10-13: Became obsolete by new method getFillColor() applied above now
    //		if (selected==true)
    //		{
    //			drawColor=Element.E_DRAWCOLOR;
    //		}
    // END KGU 2015-10-13

    rect = _top_left.copy();

    myrect = _top_left.copy();
    myrect.bottom = myrect.top;

    if (children.size() > 0) {
      // draw children
      for (int i = 0; i < children.size(); i++) {
        subrect = ((Element) children.get(i)).prepareDraw(_canvas);
        myrect.bottom += subrect.bottom;
        if (i == children.size() - 1) {
          myrect.bottom = _top_left.bottom;
        }
        ((Element) children.get(i)).draw(_canvas, myrect);

        // myrect.bottom-=1;
        myrect.top += subrect.bottom;
      }
    } else {
      // draw nothing
      rect = _top_left.copy();

      canvas.setBackground(drawColor);
      canvas.setColor(drawColor);

      myrect = _top_left.copy();

      canvas.fillRect(myrect);

      canvas.setColor(Color.BLACK);
      canvas.writeOut(
          _top_left.left
              + ((_top_left.right - _top_left.left) / 2)
              - (_canvas.stringWidth("\u2205") / 2),
          _top_left.top + ((_top_left.bottom - _top_left.top) / 2) + (fm.getHeight() / 2),
          "\u2205");

      canvas.drawRect(_top_left);
    }
  }