package org.jdal.swing.tree;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import org.jdal.swing.AbstractView;
import org.jdal.swing.form.FormUtils;
import org.jdal.swing.list.ListComboBoxModel;
/**
* Tree View that show a List of TreeModelBuilders
*
* @author Jose Luis Martin - (jlm@joseluismartin.info)
*/
public class TreeView extends AbstractView<TreeViewModel> implements ActionListener {
private JComboBox combo = FormUtils.newCombo(25);
private JTree tree = new JTree();
public void init() {
combo.addActionListener(this);
}
@Override
protected JComponent buildPanel() {
JPanel p = new JPanel(new BorderLayout());
p.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
p.add(BorderLayout.NORTH, combo);
p.add(BorderLayout.CENTER, new JScrollPane(tree));
return p;
}
/**
* {@inheritDoc}
*/
@Override
protected void doRefresh() {
TreeViewModel model = getModel();
if (model != null) {
combo.setModel(new ListComboBoxModel(model.getBuilders()));
}
}
public void actionPerformed(ActionEvent e) {
TreeModelBuilder b = (TreeModelBuilder) combo.getSelectedItem();
if (b != null)
tree.setModel(b.build());
}
}