package org.korsakow.ide.util; import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.Box; import javax.swing.BoxLayout; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; import org.korsakow.ide.ui.factory.UIFactory; public class UIHelper { public static JPanel createWestEastPanel(JComponent west, Component center, JComponent east) { JPanel panel = new JPanel(new BorderLayout()); panel.add(east, BorderLayout.EAST); panel.add(center, BorderLayout.CENTER); panel.add(west, BorderLayout.WEST); return panel; } public static JPanel createWestEastPanel(JComponent west, JComponent east) { JPanel panel = new JPanel(new BorderLayout()); panel.add(east, BorderLayout.EAST); panel.add(west, BorderLayout.WEST); return panel; } public static JPanel createHorizontalBoxLayoutPanel(Component... components) { JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); for (Component comp : components) panel.add(comp); return panel; } public static JPanel createVerticalBoxLayoutPanel(Component... components) { JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); for (Component comp : components) panel.add(comp); return panel; } public static JPanel createHorizontalFlowLayoutPanel(Component... components) { JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0)); for (Component comp : components) panel.add(comp); return panel; } public static JPanel createHorizontalMarginPanel(JComponent content, int leftMargin, int rightMargin) { JPanel panel = new JPanel(); panel.setAlignmentX(JPanel.LEFT_ALIGNMENT); panel.setAlignmentY(JPanel.TOP_ALIGNMENT); panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); panel.add(Box.createHorizontalStrut(leftMargin)); panel.add(content); panel.add(Box.createHorizontalStrut(rightMargin)); return panel; } public static JPanel createLabelPanel(String label, JComponent content) { return createLabelPanel("", label, content); } public static JPanel createLabelPanel(String name, String label, JComponent content) { JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT)); panel.setName("UIHelper.createLabelPanel"); JLabel jlabel; panel.add(jlabel = UIFactory.getFactory().createLabel(name, label)); jlabel.setHorizontalAlignment(JLabel.LEFT); panel.add(content); panel.setAlignmentX(JPanel.LEFT_ALIGNMENT); return panel; } public static JPanel createBorderLayoutLabelPanel(String label, Component content) { JPanel panel = new JPanel(new BorderLayout()); panel.add(new JLabel(label), BorderLayout.WEST); panel.add(content, BorderLayout.CENTER); panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 30)); return panel; } public static JPanel createVerticalLabelPanel(String label, Component content) { JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); panel.add(new JLabel(label)); panel.add(content); return panel; } public static JPanel createHorizontalStrut(int width) { JPanel panel = new JPanel(); final Dimension d = new Dimension(width, 0); panel.setPreferredSize(d); panel.setMaximumSize(d); return panel; } }