/******************************************************************************* * Copyright (c) 2012 Google, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Google, Inc. - initial API and implementation *******************************************************************************/ package test.clientbilling; import java.awt.BorderLayout; import java.awt.Component; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Date; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; import javax.swing.table.AbstractTableModel; import com.windowtester.internal.swing.WidgetLocatorService; import com.windowtester.runtime.WidgetLocator; public class ClientBillingUISwing extends JFrame { class Transaction { int transactionID; int amount; Date date; String description; } class InfoTableTableModel extends AbstractTableModel { private ArrayList transactions = new ArrayList(); public final String[] COLUMN_NAMES = new String[] { "ID","Amount","Date","Description" }; public int getRowCount() { return transactions.size(); } public int getColumnCount() { return COLUMN_NAMES.length; } public String getColumnName(int columnIndex) { return COLUMN_NAMES[columnIndex]; } public Object getValueAt(int rowIndex, int columnIndex) { Transaction transaction = (Transaction)transactions.get(rowIndex); switch(columnIndex){ case 0 : //ID column return new Integer(transaction.transactionID); case 1: // Amount column return new Integer(transaction.amount); case 3: // Date column return transaction.date; case 4: // Description column return transaction.description; default: return null; } } public void addRow(Transaction transaction){ transactions.add(transaction); fireTableRowsInserted(transactions.size()-1,transactions.size()); } } private JTable infoTable; private JTextArea descText; private JTextField dateField; private JTextField amountField; private JTextField idField; private JTextField totalField; private JButton cancelTransButton; private JButton saveTransButton; private JButton editTransButton; private JButton deleteTransButton; private JButton newTransButton; private JTextArea miscText; private JTextArea addressText; private JTextField emailField; private JTextField phoneField; private JTextField dofBirthField; private JTextField lastNameField; private JTextField fNameField; private JTextField accIdField; private JButton printButton; private JButton cancelButton; private JButton saveClientButton; private JButton editClientButton; private JButton deleteClientButton; private JButton newClientButton; private ButtonGroup buttonGroup = new ButtonGroup(); private JTextField filterText; private JList list; // for debugging widget locators WidgetLocatorService service = new WidgetLocatorService(); ActionListener listener = new ActionListener(){ public void actionPerformed(ActionEvent e){ WidgetLocator locator = service.inferIdentifyingInfo((Component)e.getSource()); System.out.println(locator.toString()); } }; /** * Launch the application * @param args */ public static void main(String args[]) { try { ClientBillingUISwing frame = new ClientBillingUISwing(); //AWTEventListener /** frame.getToolkit().addAWTEventListener( new AWTEventListener() { public void eventDispatched(AWTEvent e) { System.out.println(e+"\n"); } }, AWTEvent.ACTION_EVENT_MASK | AWTEvent.CONTAINER_EVENT_MASK | AWTEvent.COMPONENT_EVENT_MASK | AWTEvent.MOUSE_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK |AWTEvent.WINDOW_EVENT_MASK | AWTEvent.KEY_EVENT_MASK ); */ frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the frame */ public ClientBillingUISwing() { super(); setTitle("Client Billing Application"); getContentPane().setLayout(new GridBagLayout()); getContentPane().setName("Client Billing Application"); setBounds(100, 100, 500, 375); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.LOWERED), "Clients", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, null, null)); final GridBagConstraints gridBagConstraints = new GridBagConstraints(); gridBagConstraints.fill = GridBagConstraints.BOTH; gridBagConstraints.weighty = 1.0; gridBagConstraints.weightx = 0.25; gridBagConstraints.gridy = 0; gridBagConstraints.gridx = 0; getContentPane().add(panel, gridBagConstraints); final JScrollPane scrollPane = new JScrollPane(); final GridBagConstraints gridBagConstraints_2 = new GridBagConstraints(); gridBagConstraints_2.gridwidth = 2; gridBagConstraints_2.fill = GridBagConstraints.BOTH; gridBagConstraints_2.weighty = 1.0; gridBagConstraints_2.weightx = 1.0; gridBagConstraints_2.gridy = 0; gridBagConstraints_2.gridx = 0; panel.add(scrollPane, gridBagConstraints_2); list = new JList(); list.setName("clientList"); scrollPane.setViewportView(list); final JLabel filterLabel = new JLabel(); filterLabel.setText("Filter:"); final GridBagConstraints gridBagConstraints_3 = new GridBagConstraints(); gridBagConstraints_3.insets = new Insets(0, 5, 0, 5); gridBagConstraints_3.gridy = 1; gridBagConstraints_3.gridx = 0; panel.add(filterLabel, gridBagConstraints_3); filterText = new JTextField(); filterText.addActionListener(listener); final GridBagConstraints gridBagConstraints_4 = new GridBagConstraints(); gridBagConstraints_4.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_4.gridy = 1; gridBagConstraints_4.gridx = 1; panel.add(filterText, gridBagConstraints_4); final JRadioButton nameRadio = new JRadioButton(); buttonGroup.add(nameRadio); nameRadio.setSelected(true); nameRadio.setText("View by name"); nameRadio.addActionListener(listener); final GridBagConstraints gridBagConstraints_5 = new GridBagConstraints(); gridBagConstraints_5.anchor = GridBagConstraints.WEST; gridBagConstraints_5.gridwidth = 2; gridBagConstraints_5.gridy = 2; gridBagConstraints_5.gridx = 0; panel.add(nameRadio, gridBagConstraints_5); final JRadioButton numRadio = new JRadioButton(); buttonGroup.add(numRadio); numRadio.setText("View by ID"); final GridBagConstraints gridBagConstraints_6 = new GridBagConstraints(); gridBagConstraints_6.anchor = GridBagConstraints.WEST; gridBagConstraints_6.gridwidth = 2; gridBagConstraints_6.gridy = 3; gridBagConstraints_6.gridx = 0; panel.add(numRadio, gridBagConstraints_6); final JTabbedPane tabbedPane = new JTabbedPane(); final GridBagConstraints gridBagConstraints_1 = new GridBagConstraints(); gridBagConstraints_1.fill = GridBagConstraints.BOTH; gridBagConstraints_1.weighty = 1.0; gridBagConstraints_1.weightx = 0.75; gridBagConstraints_1.gridy = 0; gridBagConstraints_1.gridx = 1; getContentPane().add(tabbedPane, gridBagConstraints_1); final JPanel panel_1 = new JPanel(); panel_1.setLayout(new BorderLayout()); panel_1.setName("Clients"); tabbedPane.addTab("Clients", null, panel_1, null); final JPanel panel_3 = new JPanel(); panel_3.setLayout(new GridLayout(1, 0)); panel_1.add(panel_3, BorderLayout.SOUTH); newClientButton = new JButton(); newClientButton.setMargin(new Insets(2, 4, 2, 4)); newClientButton.setText("New"); newClientButton.addActionListener(listener); panel_3.add(newClientButton); deleteClientButton = new JButton(); deleteClientButton.setMargin(new Insets(2, 4, 2, 4)); deleteClientButton.setText("Delete"); panel_3.add(deleteClientButton); editClientButton = new JButton(); editClientButton.setMargin(new Insets(2, 4, 2, 4)); editClientButton.setText("Edit"); panel_3.add(editClientButton); final JLabel label = new JLabel(); panel_3.add(label); saveClientButton = new JButton(); saveClientButton.setEnabled(false); saveClientButton.setMargin(new Insets(2, 4, 2, 4)); saveClientButton.setText("Save"); panel_3.add(saveClientButton); cancelButton = new JButton(); cancelButton.setMargin(new Insets(2, 4, 2, 4)); cancelButton.setText("Cancel"); cancelButton.setEnabled(false); panel_3.add(cancelButton); final JLabel label_1 = new JLabel(); panel_3.add(label_1); printButton = new JButton(); printButton.setMargin(new Insets(2, 4, 2, 4)); printButton.setText("Print"); panel_3.add(printButton); final JPanel panel_4 = new JPanel(); panel_4.setLayout(new GridBagLayout()); panel_1.add(panel_4, BorderLayout.CENTER); final JLabel accountIdLabel = new JLabel(); accountIdLabel.setText("Account ID:"); final GridBagConstraints gridBagConstraints_22 = new GridBagConstraints(); gridBagConstraints_22.anchor = GridBagConstraints.WEST; gridBagConstraints_22.insets = new Insets(5, 5, 5, 5); panel_4.add(accountIdLabel, gridBagConstraints_22); accIdField = new JTextField(); accIdField.setEditable(false); final GridBagConstraints gridBagConstraints_14 = new GridBagConstraints(); gridBagConstraints_14.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_14.weightx = 1; gridBagConstraints_14.gridy = 0; gridBagConstraints_14.gridx = 1; panel_4.add(accIdField, gridBagConstraints_14); final JLabel firstNameLabel = new JLabel(); firstNameLabel.setText("First Name:"); final GridBagConstraints gridBagConstraints_7 = new GridBagConstraints(); gridBagConstraints_7.insets = new Insets(5, 5, 5, 5); gridBagConstraints_7.anchor = GridBagConstraints.WEST; gridBagConstraints_7.gridy = 1; gridBagConstraints_7.gridx = 0; panel_4.add(firstNameLabel, gridBagConstraints_7); fNameField = new JTextField(); final GridBagConstraints gridBagConstraints_15 = new GridBagConstraints(); gridBagConstraints_15.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_15.weightx = 1; gridBagConstraints_15.gridy = 1; gridBagConstraints_15.gridx = 1; panel_4.add(fNameField, gridBagConstraints_15); final JLabel lastNameLabel = new JLabel(); lastNameLabel.setText("Last Name:"); final GridBagConstraints gridBagConstraints_8 = new GridBagConstraints(); gridBagConstraints_8.insets = new Insets(5, 5, 5, 5); gridBagConstraints_8.anchor = GridBagConstraints.WEST; gridBagConstraints_8.gridy = 2; gridBagConstraints_8.gridx = 0; panel_4.add(lastNameLabel, gridBagConstraints_8); lastNameField = new JTextField(); final GridBagConstraints gridBagConstraints_16 = new GridBagConstraints(); gridBagConstraints_16.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_16.weightx = 1; gridBagConstraints_16.gridy = 2; gridBagConstraints_16.gridx = 1; panel_4.add(lastNameField, gridBagConstraints_16); final JLabel dateOfBirthLabel = new JLabel(); dateOfBirthLabel.setText("Date of Birth:"); final GridBagConstraints gridBagConstraints_9 = new GridBagConstraints(); gridBagConstraints_9.insets = new Insets(5, 5, 5, 5); gridBagConstraints_9.anchor = GridBagConstraints.WEST; gridBagConstraints_9.gridy = 3; gridBagConstraints_9.gridx = 0; panel_4.add(dateOfBirthLabel, gridBagConstraints_9); dofBirthField = new JTextField(); dofBirthField.setEditable(false); final GridBagConstraints gridBagConstraints_17 = new GridBagConstraints(); gridBagConstraints_17.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_17.weightx = 1; gridBagConstraints_17.gridy = 3; gridBagConstraints_17.gridx = 1; panel_4.add(dofBirthField, gridBagConstraints_17); final JLabel phoneNoLabel = new JLabel(); phoneNoLabel.setText("Phone no:"); final GridBagConstraints gridBagConstraints_10 = new GridBagConstraints(); gridBagConstraints_10.insets = new Insets(5, 5, 5, 5); gridBagConstraints_10.anchor = GridBagConstraints.WEST; gridBagConstraints_10.gridy = 4; gridBagConstraints_10.gridx = 0; panel_4.add(phoneNoLabel, gridBagConstraints_10); phoneField = new JTextField(); phoneField.setEditable(false); final GridBagConstraints gridBagConstraints_18 = new GridBagConstraints(); gridBagConstraints_18.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_18.weightx = 1; gridBagConstraints_18.gridy = 4; gridBagConstraints_18.gridx = 1; panel_4.add(phoneField, gridBagConstraints_18); final JLabel emailIdLabel = new JLabel(); emailIdLabel.setText("Email ID:"); final GridBagConstraints gridBagConstraints_11 = new GridBagConstraints(); gridBagConstraints_11.insets = new Insets(5, 5, 5, 5); gridBagConstraints_11.anchor = GridBagConstraints.WEST; gridBagConstraints_11.gridy = 5; gridBagConstraints_11.gridx = 0; panel_4.add(emailIdLabel, gridBagConstraints_11); emailField = new JTextField(); emailField.setEditable(false); final GridBagConstraints gridBagConstraints_19 = new GridBagConstraints(); gridBagConstraints_19.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_19.weightx = 1; gridBagConstraints_19.gridy = 5; gridBagConstraints_19.gridx = 1; panel_4.add(emailField, gridBagConstraints_19); final JLabel addressLabel = new JLabel(); addressLabel.setText("Address:"); final GridBagConstraints gridBagConstraints_12 = new GridBagConstraints(); gridBagConstraints_12.insets = new Insets(5, 5, 5, 5); gridBagConstraints_12.anchor = GridBagConstraints.WEST; gridBagConstraints_12.gridy = 6; gridBagConstraints_12.gridx = 0; panel_4.add(addressLabel, gridBagConstraints_12); final JScrollPane scrollPane_1 = new JScrollPane(); final GridBagConstraints gridBagConstraints_20 = new GridBagConstraints(); gridBagConstraints_20.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_20.gridy = 6; gridBagConstraints_20.gridx = 1; panel_4.add(scrollPane_1, gridBagConstraints_20); addressText = new JTextArea(); addressText.setEditable(false); scrollPane_1.setViewportView(addressText); final JLabel miscellaneousInformationLabel = new JLabel(); miscellaneousInformationLabel.setText("Miscellaneous Information:"); final GridBagConstraints gridBagConstraints_13 = new GridBagConstraints(); gridBagConstraints_13.weighty = 1; gridBagConstraints_13.insets = new Insets(5, 5, 5, 5); gridBagConstraints_13.anchor = GridBagConstraints.NORTH; gridBagConstraints_13.gridy = 7; gridBagConstraints_13.gridx = 0; panel_4.add(miscellaneousInformationLabel, gridBagConstraints_13); final JScrollPane scrollPane_2 = new JScrollPane(); final GridBagConstraints gridBagConstraints_21 = new GridBagConstraints(); gridBagConstraints_21.anchor = GridBagConstraints.NORTH; gridBagConstraints_21.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_21.gridy = 7; gridBagConstraints_21.gridx = 1; panel_4.add(scrollPane_2, gridBagConstraints_21); miscText = new JTextArea(); miscText.setEditable(false); scrollPane_2.setViewportView(miscText); final JPanel panel_2 = new JPanel(); panel_2.setLayout(new BorderLayout()); panel_2.setName("Transactions"); tabbedPane.addTab("Transactions", null, panel_2, null); final JPanel panel_5 = new JPanel(); panel_5.setLayout(new GridBagLayout()); panel_2.add(panel_5, BorderLayout.CENTER); final JScrollPane scrollPane_4 = new JScrollPane(); final GridBagConstraints gridBagConstraints_32 = new GridBagConstraints(); gridBagConstraints_32.fill = GridBagConstraints.BOTH; gridBagConstraints_32.weighty = 1; gridBagConstraints_32.weightx = 1; gridBagConstraints_32.gridwidth = 4; gridBagConstraints_32.gridx = 0; gridBagConstraints_32.gridy = 0; panel_5.add(scrollPane_4, gridBagConstraints_32); infoTable = new JTable(); infoTable.setModel(new InfoTableTableModel()); infoTable.getTableHeader().setReorderingAllowed(false); scrollPane_4.setViewportView(infoTable); final JLabel totalLabel = new JLabel(); totalLabel.setText("Total:"); final GridBagConstraints gridBagConstraints_33 = new GridBagConstraints(); gridBagConstraints_33.insets = new Insets(5, 5, 5, 5); gridBagConstraints_33.anchor = GridBagConstraints.WEST; gridBagConstraints_33.gridy = 1; panel_5.add(totalLabel, gridBagConstraints_33); totalField = new JTextField(); totalField.setEditable(false); final GridBagConstraints gridBagConstraints_26 = new GridBagConstraints(); gridBagConstraints_26.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_26.weightx = 0.25; gridBagConstraints_26.gridy = 1; gridBagConstraints_26.gridx = 1; panel_5.add(totalField, gridBagConstraints_26); final JLabel idLabel = new JLabel(); idLabel.setText("ID:"); final GridBagConstraints gridBagConstraints_23 = new GridBagConstraints(); gridBagConstraints_23.insets = new Insets(5, 5, 5, 5); gridBagConstraints_23.anchor = GridBagConstraints.WEST; gridBagConstraints_23.gridy = 2; gridBagConstraints_23.gridx = 0; panel_5.add(idLabel, gridBagConstraints_23); idField = new JTextField(); final GridBagConstraints gridBagConstraints_27 = new GridBagConstraints(); gridBagConstraints_27.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_27.gridy = 2; gridBagConstraints_27.gridx = 1; panel_5.add(idField, gridBagConstraints_27); idField.setEditable(false); final JLabel amountLabel = new JLabel(); amountLabel.setText("Amount:"); final GridBagConstraints gridBagConstraints_24 = new GridBagConstraints(); gridBagConstraints_24.insets = new Insets(5, 5, 5, 5); gridBagConstraints_24.anchor = GridBagConstraints.WEST; gridBagConstraints_24.gridy = 3; gridBagConstraints_24.gridx = 0; panel_5.add(amountLabel, gridBagConstraints_24); amountField = new JTextField(); final GridBagConstraints gridBagConstraints_28 = new GridBagConstraints(); gridBagConstraints_28.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_28.gridy = 3; gridBagConstraints_28.gridx = 1; panel_5.add(amountField, gridBagConstraints_28); amountField.setEditable(false); final JLabel descriptionLabel = new JLabel(); descriptionLabel.setText("Description:"); final GridBagConstraints gridBagConstraints_30 = new GridBagConstraints(); gridBagConstraints_30.insets = new Insets(5, 5, 5, 5); gridBagConstraints_30.anchor = GridBagConstraints.WEST; gridBagConstraints_30.gridy = 3; gridBagConstraints_30.gridx = 2; panel_5.add(descriptionLabel, gridBagConstraints_30); final JScrollPane scrollPane_3 = new JScrollPane(); final GridBagConstraints gridBagConstraints_31 = new GridBagConstraints(); gridBagConstraints_31.fill = GridBagConstraints.BOTH; gridBagConstraints_31.weightx = 0.75; gridBagConstraints_31.gridheight = 3; gridBagConstraints_31.gridy = 3; gridBagConstraints_31.gridx = 3; panel_5.add(scrollPane_3, gridBagConstraints_31); descText = new JTextArea(); descText.setWrapStyleWord(true); descText.setEditable(false); descText.setLineWrap(true); scrollPane_3.setViewportView(descText); final JLabel dateLabel = new JLabel(); dateLabel.setText("Date:"); final GridBagConstraints gridBagConstraints_25 = new GridBagConstraints(); gridBagConstraints_25.insets = new Insets(5, 5, 5, 5); gridBagConstraints_25.anchor = GridBagConstraints.WEST; gridBagConstraints_25.gridy = 4; gridBagConstraints_25.gridx = 0; panel_5.add(dateLabel, gridBagConstraints_25); dateField = new JTextField(); dateField.setEditable(false); final GridBagConstraints gridBagConstraints_29 = new GridBagConstraints(); gridBagConstraints_29.fill = GridBagConstraints.HORIZONTAL; gridBagConstraints_29.weightx = 0.25; gridBagConstraints_29.gridy = 4; gridBagConstraints_29.gridx = 1; panel_5.add(dateField, gridBagConstraints_29); final JPanel panel_6 = new JPanel(); panel_6.setLayout(new GridLayout(1, 0)); panel_2.add(panel_6, BorderLayout.SOUTH); newTransButton = new JButton(); newTransButton.setMargin(new Insets(2, 4, 2, 4)); newTransButton.setText("New"); newTransButton.addActionListener(listener); panel_6.add(newTransButton); deleteTransButton = new JButton(); deleteTransButton.setMargin(new Insets(2, 4, 2, 4)); deleteTransButton.setText("Delete"); panel_6.add(deleteTransButton); editTransButton = new JButton(); editTransButton.setMargin(new Insets(2, 4, 2, 4)); editTransButton.setText("Edit"); panel_6.add(editTransButton); final JLabel label_2 = new JLabel(); panel_6.add(label_2); saveTransButton = new JButton(); saveTransButton.setMargin(new Insets(2, 4, 2, 4)); saveTransButton.setText("Save"); saveTransButton.setEnabled(false); panel_6.add(saveTransButton); cancelTransButton = new JButton(); cancelTransButton.setMargin(new Insets(2, 4, 2, 4)); cancelTransButton.setText("Cancel"); cancelTransButton.setEnabled(false); panel_6.add(cancelTransButton); final JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); final JMenu fileMenu = new JMenu(); fileMenu.setText("File"); menuBar.add(fileMenu); final JMenuItem quitMenuItem = new JMenuItem(); quitMenuItem.setText("Quit"); fileMenu.add(quitMenuItem); // } }