package org.hwo.ui; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.LinkedList; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JToggleButton; import org.hwo.ui.toolbar.UITool; public class JToolButtonBar extends JPanel { LinkedList tools; LinkedList buttons; UITool selectedTool; public JToolButtonBar() { tools = new LinkedList(); buttons = new LinkedList(); } public void addTool(final UITool tool){ tools.add(tool); JToggleButton button = new JToggleButton(); button.setSize(32, 32); button.setText( tool.getLabel() ); button.setToolTipText(tool.getHelp()); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { selectTool(tool); } }); buttons.add(button); add(button); } public void selectTool(UITool tool){ if (selectedTool != null) { selectedTool.unselect(); int idx = tools.indexOf(selectedTool); if (idx != -1){ buttons.get(idx).setSelected(false); } selectedTool = null; } if (tool != null){ int idx = tools.indexOf(tool); if (idx != -1){ buttons.get(idx).setSelected(true); } tool.select(); selectedTool = tool; } } public UITool getSelectedTool() { return selectedTool; } }