package captor.windowsystem.main.locationPane;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Observable;
import java.util.Observer;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.border.BevelBorder;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import captor.lib.intl.MyIntl;
import captor.modelsystem.Model;
import captor.windowsystem.main.locationPane.util.CustomRenderer;
import captor.windowsystem.main.locationPane.util.FormPath;
import captor.windowsystem.util.IconUtil;
public class TreePane extends JPanel implements Observer, ActionListener {
public static final long serialVersionUID = 155;
JPanel controlPane, control, historyPane;
DefaultMutableTreeNode root;
DefaultMutableTreeNode []level;
JTree tree;
JScrollPane treePane;
Color color;
JPanel mainPane;
JLabel label = new JLabel(MyIntl.NAVIGATOR_LABEL);
JButton button = new JButton("x");
private Model model;
public TreePane(Model model) {
this.model = model;
color = new Color(132, 132, 132);
color = Color.white;
create();
}
public void create() {
FormPath pp = new FormPath();
root = new DefaultMutableTreeNode(pp);
pp.setTreeNode(root);
createTree();
treePane = new JScrollPane(tree);
treePane.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
tree.addMouseListener(new FormNavigatorPopup(tree, model));
mainPane = new JPanel();
//mainPane.setBackground(color);
mainPane.setLayout(new BoxLayout(mainPane, BoxLayout.X_AXIS));
mainPane.add(treePane);
mainPane.add(Box.createRigidArea(new Dimension(2,2)));
//------------------------------
label = new JLabel(MyIntl.NAVIGATOR_LABEL);
button = new JButton();
button.setBackground(Color.white);
Dimension d = new Dimension(18, 19);
button.setPreferredSize(d);
button.setMaximumSize(d);
Icon icon = IconUtil.getIcon("closeArrow.gif");
button.setIcon(icon);
button.addActionListener(this);
JPanel titlePanel = new JPanel();
titlePanel.setLayout(new BoxLayout(titlePanel, BoxLayout.Y_AXIS));
titlePanel.add(Box.createRigidArea(new Dimension(2,6)));
titlePanel.add(label);
JPanel hHeader = new JPanel();
//hHeader.setBackground(color);
hHeader.setMaximumSize(new Dimension(600, 30));
hHeader.setLayout(new BoxLayout(hHeader, BoxLayout.X_AXIS));
hHeader.add(titlePanel);
hHeader.add(Box.createHorizontalGlue());
hHeader.add(button);
hHeader.add(Box.createRigidArea(new Dimension(2,3)));
label.setAlignmentX(Component.LEFT_ALIGNMENT);
mainPane.setAlignmentX(Component.LEFT_ALIGNMENT);
hHeader.setAlignmentX(Component.LEFT_ALIGNMENT);
//------------------------------
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
//setBackground(color);
add(Box.createRigidArea(new Dimension(5,12)));
add(hHeader);
add(Box.createRigidArea(new Dimension(5,1)));
add(mainPane);
add(Box.createRigidArea(new Dimension(5,3)));
}
//-------------------------------------------------------------------------
private void createTree() {
tree = new JTree(root);
DefaultTreeModel treeModel = null;
CustomRenderer customRenderer = new CustomRenderer(model);
DefaultMutableTreeNode root = (DefaultMutableTreeNode)tree.getModel().getRoot();
treeModel = new DefaultTreeModel(root);
tree = new JTree(treeModel);
tree.setCellRenderer(customRenderer);
tree.setShowsRootHandles(false);
model.getGui().setTree(tree);
}
//-------------------------------------------------------------------------
public void update(Observable observable, Object obj) {
// System.out.println("HistoryPane Notificado!");
}
//-------------------------------------------------------------------------
public void loadDomain() {
if ( level != null ) {
for ( int i = 0; i < level.length; i++ ) {
if( level[i] != null ) {
root.remove(level[i]);
}
}
}
((DefaultTreeModel)tree.getModel()).reload(root);
}
//-------------------------------------------------------------------------
public void actionPerformed(ActionEvent e) {
if ( mainPane.isVisible() ) {
mainPane.setVisible(false);
label.setVisible(false);
model.getGui().getGuiControl().setHideNavigator(false);
Icon icon = IconUtil.getIcon("openArrow.gif");
button.setIcon(icon);
}
else {
mainPane.setVisible(true);
label.setVisible(true);
model.getGui().getGuiControl().setHideNavigator(true);
Icon icon = IconUtil.getIcon("closeArrow.gif");
button.setIcon(icon);
}
}
//-------------------------------------------------------------------------
}