/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package omr.ui;
import com.jgoodies.looks.LookUtils;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import omr.util.BaseTestCase;
import org.jdesktop.application.SingleFrameApplication;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JToolBar;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.border.EmptyBorder;
import omr.ui.util.SeparableToolBar;
import org.jdesktop.application.Application;
import org.junit.Test;
/**
*
* @author herve
*/
public class BsafTest
extends BaseTestCase
{
//~ Methods ----------------------------------------------------------------
public static final void main (String... args)
{
Application.launch(Appl.class, null);
}
@Test
public void testAppl ()
{
Application.launch(Appl.class, null);
}
//~ Inner Classes ----------------------------------------------------------
private static class Appl
extends SingleFrameApplication
{
//~ Methods ------------------------------------------------------------
@Override
protected void startup ()
{
String lafName =
LookUtils.IS_OS_WINDOWS_XP
? com.jgoodies.looks.Options.getCrossPlatformLookAndFeelClassName()
: com.jgoodies.looks.Options.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lafName);
} catch (Exception e) {
System.err.println("Can't set look & feel:" + e);
}
JFrame frame = getMainFrame();
frame.setJMenuBar(buildMenuBar());
frame.setContentPane(buildContentPane());
frame.setSize(600, 400);
frame.setTitle("BSAF Test");
show(frame);
}
/**
* Builds and answers the menu bar.
*/
private JMenuBar buildMenuBar ()
{
JMenu menu;
JMenuBar innerBar = new JMenuBar();
innerBar.putClientProperty(com.jgoodies.looks.Options.HEADER_STYLE_KEY, Boolean.TRUE);
menu = new JMenu("File");
menu.add(new JMenuItem("New..."));
menu.add(new JMenuItem("Open..."));
menu.add(new JMenuItem("Save"));
menu.addSeparator();
menu.add(new JMenuItem("Print..."));
innerBar.add(menu);
menu = new JMenu("Edit");
menu.add(new JMenuItem("Cut"));
menu.add(new JMenuItem("Copy"));
menu.add(new JMenuItem("Paste"));
innerBar.add(menu);
JProgressBar bar;
JMenuBar outerBar = new JMenuBar();
outerBar.setLayout(new GridLayout(1, 0));
outerBar.add(innerBar);
outerBar.add(new JLabel("I'm the banner!", JLabel.CENTER));
return outerBar;
}
/**
* Builds and answers the content pane.
*/
private JComponent buildContentPane ()
{
JPanel panel = new JPanel(new BorderLayout());
panel.setBackground(Color.orange);
panel.add(buildToolBar(), BorderLayout.NORTH);
panel.add(createCenteredLabel("Content"), BorderLayout.CENTER);
panel.add(buildStatusBar(), BorderLayout.SOUTH);
return panel;
}
/**
* Builds and answers the tool bar.
*/
private Component buildStatusBar ()
{
JPanel statusBar = new JPanel(new BorderLayout());
statusBar.setBackground(Color.LIGHT_GRAY);
statusBar.add(createCenteredLabel("Status Bar"));
return statusBar;
}
/**
* Builds and answers the tool bar.
*/
private Component buildToolBar ()
{
JToolBar toolBar = new SeparableToolBar();
toolBar.setBackground(Color.PINK);
///toolBar.putClientProperty(Options.HEADER_STYLE_KEY, Boolean.TRUE);
toolBar.add(createCenteredLabel("Tool Bar"));
JButton button1 = new JButton("Bouton #1");
toolBar.add(button1);
toolBar.addSeparator();
JButton button2 = new JButton("Bouton #2");
toolBar.add(button2);
return toolBar;
}
/**
* Creates and answers a
* <code>JLabel</code> that has the text
* centered and that is wrapped with an empty border.
*/
private Component createCenteredLabel (String text)
{
JLabel label = new JLabel(text);
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setBorder(new EmptyBorder(3, 3, 3, 3));
return label;
}
}
}