| /* |
| ***************************************************************************** |
| * Copyright (C) 2000-2004, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ***************************************************************************** |
| */ |
| package com.ibm.rbm.gui; |
| |
| import java.awt.*; |
| import java.awt.event.*; |
| |
| import javax.swing.*; |
| |
| import com.ibm.rbm.*; |
| |
| /** |
| * A dialog which allows the user to create a new Bundle Group |
| */ |
| class BundleGroupCreationDialog extends JDialog { |
| RBManager rbm; |
| |
| // Helper data |
| int left_col_width = 125; |
| int right_col_width = 275; |
| int row_height = 25; |
| Dimension leftDim = new Dimension(left_col_width, row_height); |
| Dimension rightDim = new Dimension(right_col_width, row_height); |
| |
| // Components |
| Box mainBox = new Box(BoxLayout.Y_AXIS); |
| Box box1 = new Box(BoxLayout.X_AXIS); |
| Box box2 = new Box(BoxLayout.X_AXIS); |
| Box box3 = new Box(BoxLayout.X_AXIS); |
| |
| JTextArea instructionsArea = new JTextArea(""); |
| JLabel nameLabel = new JLabel(Resources.getTranslation("dialog_group")); |
| JLabel commentLabel = new JLabel(Resources.getTranslation("dialog_group_comment")); |
| JTextField nameField = new JTextField(""); |
| JTextField commentField = new JTextField(""); |
| JButton createButton = new JButton(Resources.getTranslation("button_create")); |
| JButton cancelButton = new JButton(Resources.getTranslation("button_cancel")); |
| |
| |
| public BundleGroupCreationDialog(RBManager rbm, JFrame frame, String title, boolean modal) { |
| super(frame, title, modal); |
| this.rbm = rbm; |
| initComponents(); |
| enableEvents(AWTEvent.KEY_EVENT_MASK); |
| } |
| |
| boolean createGroup() { |
| if (rbm == null) return false; |
| return rbm.createGroup(nameField.getText().trim(), commentField.getText().trim()); |
| } |
| |
| protected void processKeyEvent(KeyEvent ev) { |
| if (ev.getKeyCode() == KeyEvent.VK_ENTER) { |
| boolean success = createGroup(); |
| if (!success) { |
| String alert = Resources.getTranslation("error_create_group") + " " + |
| Resources.getTranslation("error_try_again_group"); |
| JOptionPane.showMessageDialog(this, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE); |
| } else { |
| setVisible(false); |
| dispose(); |
| } |
| } else if (ev.getKeyCode() == KeyEvent.VK_CANCEL) { |
| closeWindow(); |
| } |
| } |
| |
| private void initComponents(){ |
| // Error check |
| if (rbm == null) { |
| String alert = Resources.getTranslation("error_no_bundle_for_group"); |
| JOptionPane.showMessageDialog(this, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE); |
| closeWindow(); |
| return; |
| } |
| |
| // Initialize values |
| |
| // Set up the components |
| nameLabel.setPreferredSize(leftDim); |
| nameField.setColumns(30); |
| commentLabel.setPreferredSize(leftDim); |
| commentField.setColumns(30); |
| getRootPane().setDefaultButton(createButton); |
| |
| box1.add(nameLabel); box1.add(nameField); |
| box2.add(commentLabel); box2.add(commentField); |
| box3.add(createButton); |
| box3.add(Box.createHorizontalStrut(5)); |
| box3.add(cancelButton); |
| |
| instructionsArea.setBorder(BorderFactory.createEtchedBorder()); |
| |
| // Add the appropriate listeners |
| cancelButton.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent ev) { |
| JDialog dialog = (JDialog)((JButton)ev.getSource()).getParent().getParent().getParent().getParent().getParent(); |
| dialog.setVisible(false); |
| dialog.dispose(); |
| } |
| }); |
| |
| createButton.addActionListener(new ActionListener() { |
| public void actionPerformed(ActionEvent ev) { |
| BundleGroupCreationDialog dialog = |
| (BundleGroupCreationDialog)((JButton)ev.getSource()).getParent().getParent().getParent().getParent().getParent(); |
| boolean success = dialog.createGroup(); |
| if (!success) { |
| String alert = Resources.getTranslation("error_create_group") + " " + |
| Resources.getTranslation("error_try_again_group"); |
| JOptionPane.showMessageDialog(dialog, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE); |
| } else { |
| dialog.setVisible(false); |
| dialog.dispose(); |
| } |
| } |
| }); |
| |
| // Complete the initialization of the frame |
| setLocation(new java.awt.Point(50, 50)); |
| mainBox.removeAll(); |
| mainBox.add(box1); |
| mainBox.add(Box.createVerticalStrut(5)); |
| mainBox.add(box2); |
| getContentPane().setLayout(new BorderLayout()); |
| getContentPane().removeAll(); |
| //getContentPane().add(instructionsArea, BorderLayout.NORTH); |
| getContentPane().add(mainBox, BorderLayout.CENTER); |
| getContentPane().add(box3, BorderLayout.SOUTH); |
| validateTree(); |
| pack(); |
| setVisible(true); |
| //setResizable(false); |
| } |
| |
| void closeWindow() { |
| setVisible(false); |
| dispose(); |
| } |
| } |
| |