blob: 1ead212bd2c4e1f8abe3c98d5a3815c4926afa0a [file] [log] [blame]
/*
*****************************************************************************
* 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();
}
}