Merge branch 'subtree'
[nikiroo-utils.git] / src / be / nikiroo / utils / ui / BreadCrumbsBar.java
index 8b993e64b58706c4bf1b567d482ff1618deae43d..ed7e0bb0f9012d710ea113c9064117ec09c0759a 100644 (file)
@@ -3,7 +3,6 @@ package be.nikiroo.utils.ui;
 
 import java.awt.BorderLayout;
 import java.awt.Dimension;
-import java.awt.FlowLayout;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ComponentAdapter;
@@ -40,12 +39,13 @@ public class BreadCrumbsBar<T> extends ListenerPanel {
                                                }
                                        }
                                });
-                               
+
                                this.add(button, BorderLayout.CENTER);
                        }
 
-                       if (!node.getChildren().isEmpty()) {
-                               // TODO (see things with icons included in viewer)
+                       if ((node.isRoot() && node.getChildren().isEmpty())
+                                       || !node.getChildren().isEmpty()) {
+                               // TODO allow an image or ">", viewer
                                down = new JToggleButton(">");
                                final JPopupMenu popup = new JPopupMenu();
 
@@ -113,6 +113,8 @@ public class BreadCrumbsBar<T> extends ListenerPanel {
                        }
                });
 
+               setSelectedNode(new DataNode<T>(null, null));
+
                new SwingWorker<DataNode<T>, Void>() {
                        @Override
                        protected DataNode<T> doInBackground() throws Exception {
@@ -123,7 +125,10 @@ public class BreadCrumbsBar<T> extends ListenerPanel {
                        @Override
                        protected void done() {
                                try {
-                                       node = get();
+                                       DataNode<T> node = get();
+
+                                       setSelectedNode(null);
+                                       BreadCrumbsBar.this.node = node;
                                        addCrumb(node);
 
                                        // TODO: option?