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); } }