package org.gnudot.findbugs;
import org.gnudot.findbugs.ToolBarButton;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JToolBarExample extends JFrame
implements ItemListener {
private BrowserToolBar toolbar;
private JCheckBox labelBox;
public static void main(String[] args) {
new JToolBarExample();
}
public JToolBarExample() {
super("JToolBar Example");
//WindowUtilities.setNativeLookAndFeel();
//addWindowListener(new ExitListener());
Container content = getContentPane();
content.setBackground(Color.white);
toolbar = new BrowserToolBar();
content.add(toolbar, BorderLayout.NORTH);
labelBox = new JCheckBox("Show Text Labels?");
labelBox.setHorizontalAlignment(SwingConstants.CENTER);
labelBox.addItemListener(this);
content.add(new JTextArea(10,30), BorderLayout.CENTER);
content.add(labelBox, BorderLayout.SOUTH);
pack();
setVisible(true);
}
public void itemStateChanged(ItemEvent event) {
toolbar.setTextLabels(labelBox.isSelected());
pack();
}
}
class BrowserToolBar extends JToolBar {
public BrowserToolBar() {
String[] imageFiles =
{ "Left.gif", "Right.gif", "RotCCUp.gif",
"TrafficRed.gif", "Home.gif", "Print.gif", "Help.gif" };
String[] toolbarLabels =
{ "Back", "Forward", "Reload", "Stop", "Home", "Print", "Help" };
Insets margins = new Insets(0, 0, 0, 0);
for(int i=0; i<toolbarLabels.length; i++) {
ToolBarButton button =
new ToolBarButton("images/" + imageFiles[i]);
button.setToolTipText(toolbarLabels[i]);
button.setMargin(margins);
add(button);
}
}
public void setTextLabels(boolean labelsAreEnabled) {
Component c;
int i = 0;
while((c = getComponentAtIndex(i++)) != null) {
ToolBarButton button = (ToolBarButton)c;
if (labelsAreEnabled)
button.setText(button.getToolTipText());
else
button.setText(null);
}
}
}