1 /* 2 ***************************************************************************** 3 * Copyright (C) 2000-2004, International Business Machines Corporation and * 4 * others. All Rights Reserved. * 5 ***************************************************************************** 6 */ 7 package com.ibm.rbm.gui; 8 9 import java.awt.*; 10 import java.awt.event.*; 11 12 import javax.swing.*; 13 14 import com.ibm.rbm.*; 15 16 /** 17 * A dialog for creating new Resource Files 18 */ 19 class ResourceCreationDialog extends JDialog { 20 RBManager rbm; 21 RBManagerGUI gui; 22 23 // Components 24 Box mainBox = new Box(BoxLayout.Y_AXIS); 25 Box infoBox = new Box(BoxLayout.Y_AXIS); 26 JPanel infoPanel = new JPanel(); 27 JPanel infoTitlePanel = new JPanel(); 28 JPanel infoCommentPanel = new JPanel(); 29 JPanel infoManagerPanel = new JPanel(); 30 JPanel langPanel = new JPanel(); 31 JPanel counPanel = new JPanel(); 32 JPanel variPanel = new JPanel(); 33 JPanel buttPanel = new JPanel(); 34 35 JLabel instructionsLabel = new JLabel(""); 36 JLabel titleLabel = new JLabel(Resources.getTranslation("dialog_file_title")); 37 JLabel commentLabel = new JLabel(Resources.getTranslation("dialog_file_comment")); 38 JLabel managerLabel = new JLabel(Resources.getTranslation("dialog_file_manager")); 39 JLabel enc1Label = new JLabel(Resources.getTranslation("dialog_encoding")); 40 JLabel enc2Label = new JLabel(Resources.getTranslation("dialog_encoding")); 41 JLabel enc3Label = new JLabel(Resources.getTranslation("dialog_encoding")); 42 JLabel nam1Label = new JLabel(Resources.getTranslation("dialog_name")); 43 JLabel nam2Label = new JLabel(Resources.getTranslation("dialog_name")); 44 JLabel nam3Label = new JLabel(Resources.getTranslation("dialog_name")); 45 46 JTextField titleField = new JTextField(""); 47 JTextField commentField = new JTextField(""); 48 JTextField managerField = new JTextField(""); 49 JTextField enc1Field = new JTextField(""); 50 JTextField enc2Field = new JTextField(""); 51 JTextField enc3Field = new JTextField(""); 52 JTextField nam1Field = new JTextField(""); 53 JTextField nam2Field = new JTextField(""); 54 JTextField nam3Field = new JTextField(""); 55 56 JCheckBox copyCheckBox = new JCheckBox(Resources.getTranslation("dialog_checkbox_copy_elements"), true); 57 58 JButton createButton = new JButton(Resources.getTranslation("button_create")); 59 JButton cancelButton = new JButton(Resources.getTranslation("button_cancel")); 60 ResourceCreationDialog(RBManager rbm, JFrame frame, String title, boolean modal)61 public ResourceCreationDialog(RBManager rbm, JFrame frame, String title, boolean modal) { 62 super(frame, title, modal); 63 this.gui = (RBManagerGUI)frame; 64 this.rbm = rbm; 65 initComponents(); 66 enableEvents(AWTEvent.KEY_EVENT_MASK); 67 } 68 processKeyEvent(KeyEvent ev)69 protected void processKeyEvent(KeyEvent ev) { 70 if (ev.getKeyCode() == KeyEvent.VK_ENTER) { 71 boolean success = createResource(); 72 if (!success) { 73 String alert = Resources.getTranslation("error_create_file") + " " + 74 Resources.getTranslation("error_try_again_file"); 75 JOptionPane.showMessageDialog(this, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE); 76 } else { 77 setVisible(false); 78 dispose(); 79 } 80 } else if (ev.getKeyCode() == KeyEvent.VK_CANCEL) { 81 closeWindow(); 82 } 83 } 84 createResource()85 boolean createResource() { 86 if (rbm == null) return false; 87 String encoding = enc1Field.getText().trim(); 88 String enc2 = enc2Field.getText().trim(); 89 if (enc2 != null && !enc2.equals("")) encoding += "_" + enc2; 90 String enc3 = enc3Field.getText().trim(); 91 if (enc3 != null && !enc3.equals("")) encoding += "_" + enc3; 92 boolean ret = rbm.createResource(titleField.getText().trim(), commentField.getText().trim(), managerField.getText().trim(), 93 encoding, nam1Field.getText().trim(), nam2Field.getText().trim(), 94 nam3Field.getText().trim(), copyCheckBox.isSelected()); 95 if (ret) { 96 gui.updateDisplayTree(); 97 gui.updateProjectTree(); 98 gui.updateProjectPanels(); 99 } 100 return ret; 101 } 102 initComponents()103 public void initComponents(){ 104 // Error check 105 if (rbm == null) { 106 String alert = Resources.getTranslation("error_no_bundle_for_file"); 107 JOptionPane.showMessageDialog(this, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE); 108 closeWindow(); 109 return; 110 } 111 112 // Initialize values 113 int tempWidth = 175; 114 Dimension labelDim = new Dimension(tempWidth, 30); 115 titleLabel.setPreferredSize(labelDim); 116 commentLabel.setPreferredSize(labelDim); 117 managerLabel.setPreferredSize(labelDim); 118 119 infoPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), 120 Resources.getTranslation("dialog_file_info"))); 121 langPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), 122 Resources.getTranslation("dialog_language"))); 123 counPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), 124 Resources.getTranslation("dialog_country"))); 125 variPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), 126 Resources.getTranslation("dialog_variant"))); 127 128 titleField.setColumns(30); 129 commentField.setColumns(30); 130 managerField.setColumns(30); 131 132 enc1Field.setColumns(3); 133 enc2Field.setColumns(3); 134 enc3Field.setColumns(3); 135 nam1Field.setColumns(20); 136 nam2Field.setColumns(20); 137 nam3Field.setColumns(20); 138 139 // Set up the components 140 infoTitlePanel.add(titleLabel); infoTitlePanel.add(titleField); 141 infoCommentPanel.add(commentLabel); infoCommentPanel.add(commentField); 142 infoManagerPanel.add(managerLabel); infoManagerPanel.add(managerField); 143 infoBox.add(infoTitlePanel); 144 infoBox.add(infoCommentPanel); 145 infoBox.add(infoManagerPanel); 146 infoPanel.add(infoBox); 147 148 langPanel.add(enc1Label); langPanel.add(enc1Field); langPanel.add(nam1Label); langPanel.add(nam1Field); 149 counPanel.add(enc2Label); counPanel.add(enc2Field); counPanel.add(nam2Label); counPanel.add(nam2Field); 150 variPanel.add(enc3Label); variPanel.add(enc3Field); variPanel.add(nam3Label); variPanel.add(nam3Field); 151 152 buttPanel.add(createButton); buttPanel.add(cancelButton); 153 154 // Add the appropriate listeners 155 cancelButton.addActionListener(new ActionListener() { 156 public void actionPerformed(ActionEvent ev) { 157 JDialog dialog = (JDialog)((JButton)ev.getSource()).getParent().getParent().getParent().getParent().getParent().getParent(); 158 dialog.setVisible(false); 159 dialog.dispose(); 160 } 161 }); 162 163 createButton.addActionListener(new ActionListener() { 164 public void actionPerformed(ActionEvent ev) { 165 ResourceCreationDialog dialog = 166 (ResourceCreationDialog)((JButton)ev.getSource()).getParent().getParent().getParent().getParent().getParent().getParent(); 167 boolean success = dialog.createResource(); 168 if (!success) { 169 String alert = Resources.getTranslation("error_create_file") + " " + 170 Resources.getTranslation("error_try_again_file"); 171 JOptionPane.showMessageDialog(dialog, alert, Resources.getTranslation("error"), JOptionPane.ERROR_MESSAGE); 172 } else { 173 dialog.setVisible(false); 174 dialog.dispose(); 175 } 176 } 177 }); 178 getRootPane().setDefaultButton(createButton); 179 180 // Complete the component layout 181 mainBox.removeAll(); 182 //mainBox.add(instructionsLabel); 183 mainBox.add(infoPanel); 184 mainBox.add(langPanel); 185 mainBox.add(counPanel); 186 mainBox.add(variPanel); 187 mainBox.add(copyCheckBox); 188 mainBox.add(buttPanel); 189 190 setLocation(new java.awt.Point(50, 50)); 191 getContentPane().add(mainBox, BorderLayout.CENTER); 192 validateTree(); 193 pack(); 194 setVisible(true); 195 //setResizable(false); 196 } 197 closeWindow()198 void closeWindow() { 199 setVisible(false); 200 dispose(); 201 } 202 } 203 204