Correcting expanded view height when the horizontal scrollbar will (likely) appear.
authorJan Lahoda <jlahoda@netbeans.org>
Sat, 11 Aug 2012 21:19:03 +0200
changeset 1785882ced9993fc9
parent 17857 83fc895456d9
child 17859 8d1d8f4e6b6c
Correcting expanded view height when the horizontal scrollbar will (likely) appear.
java.breadcrumbs/src/org/netbeans/modules/java/breadcrumbs/BreadCrumbComponent.java
     1.1 --- a/java.breadcrumbs/src/org/netbeans/modules/java/breadcrumbs/BreadCrumbComponent.java	Fri Aug 10 15:45:13 2012 +0200
     1.2 +++ b/java.breadcrumbs/src/org/netbeans/modules/java/breadcrumbs/BreadCrumbComponent.java	Sat Aug 11 21:19:03 2012 +0200
     1.3 @@ -315,7 +315,26 @@
     1.4          expanded.setBorder(new LineBorder(Color.BLACK, 1));
     1.5          expanded.add(new ListView() {
     1.6              {
     1.7 -                list.setVisibleRowCount(Math.min(what.getChildren().getNodesCount(), MAX_ROWS_IN_POP_UP));
     1.8 +                int nodesCount = what.getChildren().getNodesCount();
     1.9 +                
    1.10 +                if (nodesCount >= MAX_ROWS_IN_POP_UP) {
    1.11 +                    list.setVisibleRowCount(MAX_ROWS_IN_POP_UP);
    1.12 +                } else {
    1.13 +                    list.setVisibleRowCount(nodesCount);
    1.14 +                    
    1.15 +                    NodeRenderer nr = new NodeRenderer();
    1.16 +                    int i = 0;
    1.17 +                    int width = getPreferredSize().width;
    1.18 +                    
    1.19 +                    for (Node n : what.getChildren().getNodes()) {
    1.20 +                        if (nr.getListCellRendererComponent(list, n, i, false, false).getPreferredSize().width > width) {
    1.21 +                            Dimension pref = getPreferredSize();
    1.22 +                            pref.height += getHorizontalScrollBar().getPreferredSize().height;
    1.23 +                            setPreferredSize(pref);
    1.24 +                            break;
    1.25 +                        }
    1.26 +                    }
    1.27 +                }
    1.28              }
    1.29          }, BorderLayout.CENTER);
    1.30          expandManager.setRootContext(what);