package org.korsakow.ide.ui.factory; import java.awt.Component; import java.awt.LayoutManager; import javax.swing.BoundedRangeModel; import javax.swing.ComboBoxModel; import javax.swing.Icon; import javax.swing.JButton; import javax.swing.JToggleButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JRadioButton; import javax.swing.JSlider; import javax.swing.JSplitPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.ListCellRenderer; import javax.swing.ListModel; public interface IUIFactory { LayoutManager createLayout(String name); JLabel createLabel(String name); JLabel createLabel(String name, String label); JLabel createLabel(String name, Icon icon); JLabel createLabel(String name, String text, Icon icon); JTextArea createTextArea(String name); JTextField createTextField(String name); JTextField createTextField(String name, String text); JCheckBox createCheckBox(String name); JCheckBox createCheckBox(String name, String label); JButton createButton(String name); JButton createButton(String namej, String label); JButton createButton(String name, Icon icon); JButton createButton(String name, String label, Icon icon); JToggleButton createToggleButton(String name, String label, Icon icon, boolean selected); JRadioButton createRadioButton(String name); JRadioButton createRadioButton(String namej, String label); JRadioButton createRadioButton(String name, Icon icon); JRadioButton createRadioButton(String name, String label, Icon icon); JComboBox createComboBox(String name); JComboBox createComboBox(String name, ComboBoxModel model); JComboBox createComboBox(String name, ComboBoxModel model, ListCellRenderer renderer); JList createList(String name); JList createList(String name, ListModel model); JTabbedPane createTabbedPane(String name); JSlider createHorizontalSlider(String name); JSlider createHorizontalSlider(String name, int min, int max, int initial); JSplitPane createSplitPane(String name); JSlider createSlider(String name, BoundedRangeModel model); /** * Not sure why, but it might have an idea to have any custom components go through here while we're at it. * @param comp * @return */ <T extends Component> T customComponent(String name, T comp); }