Project: codjo-segmentation
/*
 * codjo.net 
 * 
 * Common Apache License 2.0 
 */
package net.codjo.segmentation.gui.settings; 
import java.awt.Component; 
import java.awt.FlowLayout; 
import java.awt.Insets; 
import java.util.HashMap; 
import java.util.Map; 
import javax.swing.Action; 
import javax.swing.JButton; 
import javax.swing.JPopupMenu; 
import javax.swing.JToolBar; 
/**
 * GUI de la barre d'outils de l'arbre, contenant les boutons permettant d'ajouter ou de 
 * supprimer des noeuds et des feuilles. 
 */
 
public class AxisTreeToolBar extends JToolBar { 
    private Map allActions = new HashMap(); 
    private JPopupMenu popupMenu = new JPopupMenu(); 
    private JButton addSleeveButton = new JButton("Ajouter poche"); 
    private JButton addFolderButton = new JButton("Ajouter noeud"); 
    private JButton deleteButton = new JButton("Supprimer"); 
 
    public AxisTreeToolBar() { 
        buildAndAddItems(); 
    } 
 
    private void buildAndAddItems() { 
        setLayout(new FlowLayout(FlowLayout.RIGHT)); 
        setFloatable(false); 
 
        addSleeveButton.setEnabled(false); 
        addSleeveButton.setName("addSleeveNode"); 
        addFolderButton.setEnabled(false); 
        addFolderButton.setName("addFolderNode"); 
        deleteButton.setName("deleteNode"); 
        deleteButton.setEnabled(false); 
 
        add(addSleeveButton); 
        add(addFolderButton); 
        add(deleteButton); 
        doEffect(this); 
    } 
 
 
    public static void doEffect(JToolBar tb) { 
        Component[] components = tb.getComponents(); 
        for (Component component : components) { 
            if (component instanceof JButton) { 
                ((JButton)component).setMargin(new Insets(1313)); 
            } 
        } 
    } 
 
 
    @Override 
    public void setEnabled(boolean enabled) { 
        super.setEnabled(enabled); 
        for (Object object : allActions.values()) { 
            Action action = (Action)object; 
            action.setEnabled(enabled); 
        } 
    } 
 
 
    public void init() { 
        removeAll(); 
        allActions.clear(); 
        popupMenu.removeAll(); 
    } 
 
 
    public JButton getAddSleeveButton() { 
        return addSleeveButton; 
    } 
 
 
    public JButton getAddFolderButton() { 
        return addFolderButton; 
    } 
 
 
    public JButton getDeleteButton() { 
        return deleteButton; 
    } 
 
 
    public void addSleeveActionListener(AxisTreeToolBarLogic.AddSleeveAction listener) { 
        addSleeveButton.addActionListener(listener); 
    } 
 
 
    public void addFolderActionListener(AxisTreeToolBarLogic.AddFolderAction listener) { 
        addFolderButton.addActionListener(listener); 
    } 
 
 
    public void addDeleteActionListener(AxisTreeToolBarLogic.DeleteAction listener) { 
        deleteButton.addActionListener(listener); 
    } 
}