/* * 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(1, 3, 1, 3)); } } } @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); } }