void (Graphics g) { super.paintChildren(g); Rectangle visibleRect = getVisibleRect(); int rowForLocation = getClosestRowForLocation(0, visibleRect.y); int limit = rowForLocation + TreeUtil.getVisibleRowCount(this) + 1; for (int i = rowForLocation; i < limit; i++) { final TreePath eachPath = getPathForRow(i); if (eachPath == null) continue; final Object lastPathComponent = eachPath.getLastPathComponent(); final boolean hasNextStep = getTreeStep().hasSubstep(extractUserObject(lastPathComponent)); if (!hasNextStep) continue; Icon icon = AllIcons.Icons.Ide.NextStep; final Rectangle rec = getPathBounds(eachPath); int x = getSize().width - icon.getIconWidth() - 1; int y = rec.y + (rec.height - icon.getIconWidth()) / 2; icon.paintIcon(this, g, x, y); } }