protected void drawCueLine(TreePath path, int mouseY) { drawCueLine(path, mouseY, false);
protected void drawCueLine(TreePath path, boolean pathIsNewParent, boolean aboveTopPath) {  paintImmediately(dirtyCueBounds); Rectangle bounds = getPathBounds(path); Graphics2D g2d = (Graphics2D) getGraphics();  int x1 = 0, x2 = 0, y = 0;  if (pathIsNewParent) { dirtyCueBounds = highlightPath(path, UIManager.getColor("CueLine.stroke")); x1 = bounds.x + bounds.width; y  = bounds.y + (bounds.height / 2); } else { if (isExpanded(path) && getModel().isLeaf(path.getLastPathComponent())) {      Object child = getModel().getChild(path.getLastPathComponent(), 0); Rectangle childBounds = getPathBounds(path.pathByAddingChild(child)); x1 = childBounds.x; } else { dirtyCueBounds = VOID_RECTANGLE; x1 = bounds.x; } if (!aboveTopPath) y = bounds.y + bounds.height; }  x2 = getX() + getWidth();  int lineWidth = 1; if (cueLineStroke != null) { g2d.setStroke(cueLineStroke); if (highlightStroke instanceof BasicStroke) lineWidth = (int) ((BasicStroke) highlightStroke).getLineWidth(); }    dirtyCueBounds.add(new Rectangle(x1, y, Math.abs(x2 - x1), lineWidth));  g2d.setColor(UIManager.getColor("CueLine.stroke")); g2d.drawLine(x1, y, x2, y);
	protected void drawCueLine(TreePath path, int mouseY) {		drawCueLine(path, mouseY, false);	}