package com.explodingpixels.macwidgets; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JToggleButton; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.explodingpixels.macwidgets.LabeledComponentGroup; import java.awt.BorderLayout; import java.awt.Color; public class DLabeledComponentGroupTest { public static LabeledComponentGroup createAnatomy() { JLabel itemA = new JLabel("A"); itemA.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(Color.RED, 2), BorderFactory.createEmptyBorder(5, 5, 5, 5))); JLabel itemB = new JLabel("B"); itemB.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(Color.BLUE, 2), BorderFactory.createEmptyBorder(5, 5, 5, 5))); JLabel itemC = new JLabel("C"); itemC.setBorder(BorderFactory.createCompoundBorder( BorderFactory.createLineBorder(Color.ORANGE, 2), BorderFactory.createEmptyBorder(5, 5, 5, 5))); return new LabeledComponentGroup("Group Label", itemA, itemB, itemC); } public static LabeledComponentGroup createViewExample() { JToggleButton leftButton = new JToggleButton(new ImageIcon( DLabeledComponentGroupTest.class.getResource("/com/explodingpixels/macwidgets/icons/sourceViewNormal.png"))); leftButton.setSelectedIcon(new ImageIcon( DLabeledComponentGroupTest.class.getResource("/com/explodingpixels/macwidgets/icons/sourceViewNormalSelected.png"))); leftButton.putClientProperty("JButton.buttonType", "segmentedTextured"); leftButton.putClientProperty("JButton.segmentPosition", "first"); leftButton.setFocusable(false); JToggleButton rightButton = new JToggleButton(new ImageIcon( DLabeledComponentGroupTest.class.getResource("/com/explodingpixels/macwidgets/icons/ColumnViewTemplate.png"))); rightButton.putClientProperty("JButton.buttonType", "segmentedTextured"); rightButton.putClientProperty("JButton.segmentPosition", "last"); rightButton.setFocusable(false); return new LabeledComponentGroup("View", leftButton, rightButton); } public static LabeledComponentGroup createSearchExample() { JTextField textField = new JTextField(10); textField.putClientProperty("JTextField.variant", "search"); textField.setFocusable(false); return new LabeledComponentGroup("Search", textField); } private JFrame frame; @Before public void setUp() throws Exception { } @Test public void doTest() throws Exception { frame = new JFrame(); JPanel examplePanel = new JPanel(); examplePanel.add(createViewExample().getComponent()); examplePanel.add(createSearchExample().getComponent()); ((JComponent) frame.getContentPane()).setBorder(BorderFactory.createEmptyBorder(15, 15, 15, 15)); frame.add(createAnatomy().getComponent(), BorderLayout.NORTH); frame.add(examplePanel, BorderLayout.SOUTH); frame.setSize(400, 200); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frame.setVisible(true); } @After public void tearDown() throws Exception { frame.dispose(); } }