java-org.hwo.ui/src/org/hwo/ui/JToolButtonBar.java

75 lines
1.4 KiB
Java

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<UITool> tools;
LinkedList<JToggleButton> buttons;
UITool selectedTool;
public JToolButtonBar() {
tools = new LinkedList<UITool>();
buttons = new LinkedList<JToggleButton>();
}
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;
}
}