import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ComponentAdapter;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JToggleButton;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
import javax.swing.JToggleButton;
private JToggleButton down;
public BreadCrumb(final DataNode<T> node) {
this.setLayout(new BorderLayout());
private JToggleButton down;
public BreadCrumb(final DataNode<T> node) {
this.setLayout(new BorderLayout());
- 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();
for (final DataNode<T> child : node.getChildren()) {
popup.add(new AbstractAction(child.toString()) {
down = new JToggleButton(">");
final JPopupMenu popup = new JPopupMenu();
for (final DataNode<T> child : node.getChildren()) {
popup.add(new AbstractAction(child.toString()) {
new SwingWorker<DataNode<T>, Void>() {
@Override
protected DataNode<T> doInBackground() throws Exception {
new SwingWorker<DataNode<T>, Void>() {
@Override
protected DataNode<T> doInBackground() throws Exception {