forked from LupusNobilis/java-org.hwo.ui
75 lines
1.4 KiB
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;
|
|
}
|
|
|
|
|
|
}
|