001/*
002Below is the copyright agreement for the Ptolemy II system.
003Version: $Id$
004
005Copyright (c) 2007-2009 The Regents of the University of California.
006All rights reserved.
007
008Permission is hereby granted, without written agreement and without
009license or royalty fees, to use, copy, modify, and distribute this
010software and its documentation for any purpose, provided that the above
011copyright notice and the following two paragraphs appear in all copies
012of this software.
013
014IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
015FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
016ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
017THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
018SUCH DAMAGE.
019
020THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
021INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
022MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
023PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
024CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
025ENHANCEMENTS, OR MODIFICATIONS.
026 */
027package org.mlc.swing.example;
028
029import java.awt.BorderLayout;
030import java.awt.LayoutManager;
031
032import javax.swing.JButton;
033import javax.swing.JFrame;
034import javax.swing.UIDefaults;
035import javax.swing.UIManager;
036import javax.swing.WindowConstants;
037
038import org.mlc.swing.layout.LayoutFrame;
039
040/** A customer panel example.
041 * @author Michael Connor
042 * @version $Id$
043 * @since Ptolemy II 8.0
044 */
045@SuppressWarnings("serial")
046public class CustomerPanel extends javax.swing.JPanel {
047    javax.swing.JComboBox suffixCombo = new javax.swing.JComboBox();
048
049    javax.swing.JLabel lastNameLabel = new javax.swing.JLabel("Last Name");
050
051    javax.swing.JTextField firstNameText = new javax.swing.JTextField();
052
053    javax.swing.JTextField lastNameText = new javax.swing.JTextField();
054
055    javax.swing.JTextField faxText = new javax.swing.JTextField();
056
057    java.awt.Component contactSeparator = com.jgoodies.forms.factories.DefaultComponentFactory
058            .getInstance().createSeparator("Contact Info");
059
060    javax.swing.JLabel surnameLabel = new javax.swing.JLabel("Surname");
061
062    javax.swing.JButton okButton = new javax.swing.JButton("OK");
063
064    javax.swing.JButton cancelButton = new javax.swing.JButton("Cancel");
065
066    java.awt.Component buttonBar = com.jgoodies.forms.factories.ButtonBarFactory
067            .buildRightAlignedBar(new JButton[] { okButton, cancelButton });
068
069    javax.swing.JLabel workPhoneLabel = new javax.swing.JLabel("Work Phone");
070
071    javax.swing.JTextField workPhoneText = new javax.swing.JTextField();
072
073    javax.swing.JTextField emailText = new javax.swing.JTextField();
074
075    javax.swing.JTextField homePhoneText = new javax.swing.JTextField();
076
077    javax.swing.JLabel faxLabel = new javax.swing.JLabel("Fax Number");
078
079    java.awt.Component ordersSeparator = com.jgoodies.forms.factories.DefaultComponentFactory
080            .getInstance().createSeparator("Orders");
081
082    javax.swing.JComboBox surnameCombo = new javax.swing.JComboBox();
083
084    java.awt.Component nameSeparator = com.jgoodies.forms.factories.DefaultComponentFactory
085            .getInstance().createSeparator("Name");
086
087    javax.swing.JLabel suffixLabel = new javax.swing.JLabel("Suffix");
088
089    javax.swing.JLabel emailLabel = new javax.swing.JLabel("E-mail");
090
091    javax.swing.JLabel homePhoneLabel = new javax.swing.JLabel("Home Phone");
092
093    javax.swing.JLabel firstNameLabel = new javax.swing.JLabel("First Name");
094
095    javax.swing.JTable orderTableControl = new javax.swing.JTable();
096
097    javax.swing.JScrollPane orderTable = new javax.swing.JScrollPane(
098            orderTableControl);
099
100    /** Instantiate the CustomerPanel. */
101    public CustomerPanel() {
102        super();
103        java.io.InputStream is = this.getClass()
104                .getResourceAsStream("customerLayout.xml");
105        if (is == null) {
106            System.err.println("Could not find constraints customerLayout.xml");
107            return;
108        }
109        org.mlc.swing.layout.LayoutConstraintsManager layoutConstraintsManager = org.mlc.swing.layout.LayoutConstraintsManager
110                .getLayoutConstraintsManager(is);
111        setBorder(com.jgoodies.forms.factories.Borders.DIALOG_BORDER);
112        LayoutManager layout = layoutConstraintsManager.createLayout("panel",
113                this);
114        this.setLayout(layout);
115
116        this.add(nameSeparator, "nameSeparator");
117        this.add(surnameLabel, "surnameLabel");
118        this.add(surnameCombo, "surnameCombo");
119        this.add(firstNameLabel, "firstNameLabel");
120        this.add(firstNameText, "firstNameText");
121        this.add(lastNameLabel, "lastNameLabel");
122        this.add(lastNameText, "lastNameText");
123        this.add(suffixLabel, "suffixLabel");
124        this.add(suffixCombo, "suffixCombo");
125        this.add(contactSeparator, "contactSeparator");
126        this.add(workPhoneLabel, "workPhoneLabel");
127        this.add(workPhoneText, "workPhoneText");
128        this.add(homePhoneLabel, "homePhoneLabel");
129        this.add(homePhoneText, "homePhoneText");
130        this.add(faxLabel, "faxLabel");
131        this.add(faxText, "faxText");
132        this.add(emailLabel, "emailLabel");
133        this.add(emailText, "emailText");
134        this.add(ordersSeparator, "ordersSeparator");
135        this.add(orderTable, "orderTable");
136        this.add(buttonBar, "buttonBar");
137
138        LayoutFrame frame = new LayoutFrame(layoutConstraintsManager);
139        frame.setVisible(true);
140    }
141
142    /** Run the CustomerPanel example.
143     *  @param args Not used.
144     */
145    public static void main(String[] args) {
146        UIDefaults defaults = UIManager.getDefaults();
147        defaults.put("Label.font", new javax.swing.plaf.FontUIResource(
148                new java.awt.Font("Arial", java.awt.Font.PLAIN, 12)));
149        defaults.put("ComboBox.background",
150                new javax.swing.plaf.ColorUIResource(255, 255, 255));
151
152        CustomerPanel customerPanel = new CustomerPanel();
153
154        JFrame frame = new JFrame("Edit Customer");
155        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
156        frame.getContentPane().setLayout(new BorderLayout());
157        frame.getContentPane().add(customerPanel, BorderLayout.CENTER);
158        frame.setSize(600, 700);
159        frame.setVisible(true);
160    }
161
162}