createFakeTree in TreeComboBox

This commit is contained in:
Alexey Pegov
2011-03-24 20:48:10 +03:00
parent 84b36bf2e7
commit cadf9e26c3
@@ -43,6 +43,7 @@ public class TreeComboBox extends JComboBox {
final static int INDENT = UIUtil.getTreeLeftChildIndent();
private TreeModel myTreeModel;
private String myDefaultText;
private boolean myShowRootNode;
public TreeComboBox(@NotNull final TreeModel model) {
this(model, true);
@@ -55,6 +56,7 @@ public class TreeComboBox extends JComboBox {
public TreeComboBox(@NotNull final TreeModel model, final boolean showRootNode, final String defaultText) {
myTreeModel = model;
myDefaultText = defaultText;
myShowRootNode = showRootNode;
setModel(new TreeModelWrapper(myTreeModel, showRootNode));
setRenderer(new TreeListCellRenderer(this, showRootNode, defaultText));
if (SystemInfo.isMac && UIUtil.isUnderAquaLookAndFeel()) setMaximumRowCount(25);
@@ -69,6 +71,12 @@ public class TreeComboBox extends JComboBox {
return myTreeModel;
}
public JTree createFakeTree() {
final JTree tree = new JTree(getTreeModel());
tree.setRootVisible(myShowRootNode);
return tree;
}
private static class TreeListCellRenderer extends SimpleColoredRenderer implements ListCellRenderer {
private static final Border SELECTION_PAINTER = (Border)UIManager.get("MenuItem.selectedBackgroundPainter");