449 |
protected void setModel(TreeModel model) |
protected void setModel(TreeModel model) |
450 |
{ |
{ |
451 |
tree.setModel(model); |
tree.setModel(model); |
452 |
treeModel = model; |
treeModel = tree.getModel(); |
453 |
} |
} |
454 |
|
|
455 |
/** |
/** |
583 |
{ |
{ |
584 |
Object cell = path.getLastPathComponent(); |
Object cell = path.getLastPathComponent(); |
585 |
TreeModel mod = tree.getModel(); |
TreeModel mod = tree.getModel(); |
586 |
TreeNode root = (TreeNode) mod.getRoot(); |
if (mod != null) |
587 |
if (!tree.isRootVisible() |
{ |
588 |
&& tree.isExpanded(new TreePath(root))) |
TreeNode root = (TreeNode) mod.getRoot(); |
589 |
root = getNextNode(root); |
if (!tree.isRootVisible() |
590 |
|
&& tree.isExpanded(new TreePath(root))) |
591 |
Point loc = getCellLocation(0, 0, tree, mod, cell, root); |
root = getNextNode(root); |
592 |
return getCellBounds(loc.x, loc.y, cell); |
|
593 |
|
Point loc = getCellLocation(0, 0, tree, mod, cell, root); |
594 |
|
return getCellBounds(loc.x, loc.y, cell); |
595 |
|
} |
596 |
} |
} |
597 |
return null; |
return null; |
598 |
} |
} |
608 |
*/ |
*/ |
609 |
public TreePath getPathForRow(JTree tree, int row) |
public TreePath getPathForRow(JTree tree, int row) |
610 |
{ |
{ |
611 |
TreeNode node = ((TreeNode) (tree.getModel()).getRoot()); |
TreeModel mod = tree.getModel(); |
612 |
if (!tree.isRootVisible() |
if (mod != null) |
613 |
&& tree.isExpanded(new TreePath(getPathToRoot(node, 0)))) |
{ |
614 |
node = getNextNode(node); |
TreeNode node = ((TreeNode) mod.getRoot()); |
615 |
|
if (!tree.isRootVisible() |
616 |
for (int i = 0; i < row; i++) |
&& tree.isExpanded(new TreePath(getPathToRoot(node, 0)))) |
617 |
node = getNextVisibleNode(node); |
node = getNextNode(node); |
618 |
|
|
619 |
// in case nothing was found |
for (int i = 0; i < row; i++) |
620 |
if (node == null) |
node = getNextVisibleNode(node); |
621 |
return null; |
|
622 |
|
if (node == null) |
623 |
// something was found |
return null; |
624 |
return new TreePath(getPathToRoot(node, 0)); |
|
625 |
|
return new TreePath(getPathToRoot(node, 0)); |
626 |
|
} |
627 |
|
return null; |
628 |
} |
} |
629 |
|
|
630 |
/** |
/** |
653 |
*/ |
*/ |
654 |
public int getRowCount(JTree tree) |
public int getRowCount(JTree tree) |
655 |
{ |
{ |
656 |
TreeNode node = ((TreeNode) (tree.getModel()) |
TreeModel mod = tree.getModel(); |
|
.getRoot()); |
|
|
if (!tree.isRootVisible() |
|
|
&& tree.isExpanded(new TreePath((getPathToRoot(node, 0))))) |
|
|
node = getNextNode(node); |
|
|
|
|
657 |
int count = 0; |
int count = 0; |
658 |
|
if (mod != null) |
659 |
while (node != null) |
{ |
660 |
|
TreeNode node = ((TreeNode) mod.getRoot()); |
661 |
|
if (!tree.isRootVisible() |
662 |
|
&& tree.isExpanded(new TreePath((getPathToRoot(node, 0))))) |
663 |
|
node = getNextNode(node); |
664 |
|
|
665 |
|
while (node != null) |
666 |
{ |
{ |
667 |
count++; |
count++; |
668 |
node = getNextVisibleNode(node); |
node = getNextVisibleNode(node); |
669 |
} |
} |
670 |
|
} |
671 |
return count; |
return count; |
672 |
} |
} |
673 |
|
|
1169 |
tree.addComponentListener(componentListener); |
tree.addComponentListener(componentListener); |
1170 |
cellEditor.addCellEditorListener(cellEditorListener); |
cellEditor.addCellEditorListener(cellEditorListener); |
1171 |
tree.addTreeExpansionListener(treeExpansionListener); |
tree.addTreeExpansionListener(treeExpansionListener); |
1172 |
treeModel.addTreeModelListener(treeModelListener); |
if (treeModel != null) |
1173 |
|
treeModel.addTreeModelListener(treeModelListener); |
1174 |
} |
} |
1175 |
|
|
1176 |
/** |
/** |
1183 |
super.installUI(c); |
super.installUI(c); |
1184 |
installDefaults((JTree) c); |
installDefaults((JTree) c); |
1185 |
tree = (JTree) c; |
tree = (JTree) c; |
1186 |
setModel(tree.getModel()); |
TreeModel mod = tree.getModel(); |
1187 |
|
setModel(mod); |
1188 |
tree.setRootVisible(true); |
tree.setRootVisible(true); |
1189 |
tree.expandPath(new TreePath(tree.getModel().getRoot())); |
if (mod != null) |
1190 |
|
tree.expandPath(new TreePath(mod.getRoot())); |
1191 |
treeSelectionModel = tree.getSelectionModel(); |
treeSelectionModel = tree.getSelectionModel(); |
1192 |
installListeners(); |
installListeners(); |
1193 |
installKeyboardActions(); |
installKeyboardActions(); |
1237 |
{ |
{ |
1238 |
JTree tree = (JTree) c; |
JTree tree = (JTree) c; |
1239 |
TreeModel mod = tree.getModel(); |
TreeModel mod = tree.getModel(); |
1240 |
Object root = mod.getRoot(); |
if (mod != null) |
1241 |
|
{ |
1242 |
if (!tree.isRootVisible()) |
Object root = mod.getRoot(); |
1243 |
tree.expandPath(new TreePath(root)); |
|
1244 |
|
if (!tree.isRootVisible()) |
1245 |
paintRecursive(g, 0, 0, 0, 0, tree, mod, root); |
tree.expandPath(new TreePath(root)); |
1246 |
|
|
1247 |
if (hasControlIcons()) |
paintRecursive(g, 0, 0, 0, 0, tree, mod, root); |
1248 |
paintControlIcons(g, 0, 0, 0, 0, tree, mod, root); |
|
1249 |
|
if (hasControlIcons()) |
1250 |
|
paintControlIcons(g, 0, 0, 0, 0, tree, mod, root); |
1251 |
|
} |
1252 |
} |
} |
1253 |
|
|
1254 |
/** |
/** |
1308 |
public Dimension getPreferredSize(JComponent c, boolean checkConsistancy) |
public Dimension getPreferredSize(JComponent c, boolean checkConsistancy) |
1309 |
{ |
{ |
1310 |
// FIXME: checkConsistancy not implemented, c not used |
// FIXME: checkConsistancy not implemented, c not used |
1311 |
TreeNode node = ((TreeNode) (tree.getModel()) |
TreeModel model = tree.getModel(); |
|
.getRoot()); |
|
1312 |
int maxWidth = 0; |
int maxWidth = 0; |
1313 |
int count = 0; |
int count = 0; |
1314 |
if (node != null) |
if (model != null) |
1315 |
|
{ |
1316 |
|
TreeNode node = (TreeNode) model.getRoot(); |
1317 |
|
if (node != null) |
1318 |
{ |
{ |
1319 |
maxWidth = (int) (getCellBounds(0, 0, node).getWidth()); |
maxWidth = (int) (getCellBounds(0, 0, node).getWidth()); |
1320 |
while (node != null) |
while (node != null) |
1321 |
{ |
{ |
1322 |
count++; |
count++; |
1323 |
TreeNode nextNode = getNextVisibleNode(node); |
TreeNode nextNode = getNextVisibleNode(node); |
1324 |
if (nextNode != null) |
if (nextNode != null) |
1325 |
maxWidth = Math.max(maxWidth, (int) (getCellBounds(0, 0, nextNode) |
maxWidth = Math.max(maxWidth, (int) (getCellBounds(0, 0, nextNode) |
1326 |
.getWidth())); |
.getWidth())); |
1327 |
node = nextNode; |
node = nextNode; |
1328 |
} |
} |
1329 |
} |
} |
1330 |
|
} |
1331 |
return new Dimension(maxWidth, (getRowHeight() * count)); |
return new Dimension(maxWidth, (getRowHeight() * count)); |
1332 |
} |
} |
1333 |
|
|