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}