void (Container parent) { Insets insets = getInsets(); int x = insets.left; int y = insets.top; if (myProgressComponent == null && myCheckBoxComponent != null) { Dimension size = myCheckBoxComponent.getPreferredSize(); myCheckBoxComponent.setBounds(x, (parent.getHeight() - size.height) / 2, size.width, size.height); x += size.width + myHGap.get(); } Dimension iconSize = myIconComponent.getPreferredSize(); myIconComponent.setBounds(x, y, iconSize.width, iconSize.height); x += iconSize.width + myHGap.get(); y += JBUIScale.scale(2); int width20 = JBUIScale.scale(20); int calcNameWidth = Math.max(width20, calculateNameWidth()); Dimension nameSize = myNameComponent.getPreferredSize(); int baseline = y + myNameComponent.getBaseline(nameSize.width, nameSize.height); myNameComponent.setToolTipText(calcNameWidth < nameSize.width ? myNameComponent.getText() : null); nameSize.width = Math.min(nameSize.width, calcNameWidth); myNameComponent.setBounds(x, y, nameSize.width, nameSize.height); y += nameSize.height; int width = getWidth(); if (myProgressComponent == null) { int nextX = x + nameSize.width + myHOffset.get(); if (myTagComponent != null) { Dimension size = myTagComponent.getPreferredSize(); setBaselineBounds(nextX, baseline, myTagComponent, size); nextX += size.width; } int lastX = width - insets.right; if (calcNameWidth > width20) { for (int i = myButtonComponents.size() - 1; i >= 0; i--) { Component component = myButtonComponents.get(i); if (!component.isVisible()) { continue; } Dimension size = component.getPreferredSize(); lastX -= size.width; setBaselineBounds(lastX, baseline, component, size); lastX -= myButtonOffset.get(); } } else { for (JComponent component : myButtonComponents) { if (component.isVisible()) { Dimension size = component.getPreferredSize(); setBaselineBounds(nextX, baseline, component, size); nextX += size.width + myButtonOffset.get(); } } } } else { Dimension size = myProgressComponent.getPreferredSize(); setBaselineBounds(width - size.width - insets.right, baseline, myProgressComponent, size); } int lineWidth = width - x - insets.right; for (JComponent component : myLineComponents) { if (component.isVisible()) { int lineHeight = component.getPreferredSize().height; component.setBounds(x, y, lineWidth, lineHeight); y += lineHeight; } } }