1 32 33 package it.businesslogic.ireport.gui; 34 35 import it.businesslogic.ireport.util.*; 36 import it.businesslogic.ireport.*; 37 41 public class JRFieldDialog extends javax.swing.JDialog { 42 43 JRField tmpField = null; 44 private SubDataset subDataset = null; 45 private String originalName = null; 46 47 public JRFieldDialog(java.awt.Frame parent, boolean modal) { 48 super(parent, modal); 49 initComponents(); 50 applyI18n(); 51 setClassTypes(); 52 this.jComboBoxType.setSelectedItem("java.lang.String"); 53 54 55 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 56 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 57 public void actionPerformed(java.awt.event.ActionEvent e) { 58 jButtonCancelActionPerformed(e); 59 } 60 }; 61 62 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 63 getRootPane().getActionMap().put("ESCAPE", escapeAction); 64 65 66 this.getRootPane().setDefaultButton(this.jButtonOK); 68 } 69 70 public void setClassTypes() { 71 this.jComboBoxType.addItem("java.lang.String"); 72 this.jComboBoxType.addItem("java.lang.Object"); 73 this.jComboBoxType.addItem("java.lang.Boolean"); 74 this.jComboBoxType.addItem("java.lang.Byte"); 75 this.jComboBoxType.addItem("java.util.Date"); 76 this.jComboBoxType.addItem("java.sql.Timestamp"); 77 this.jComboBoxType.addItem("java.sql.Time"); 78 this.jComboBoxType.addItem("java.lang.Double"); 79 this.jComboBoxType.addItem("java.lang.Float"); 80 this.jComboBoxType.addItem("java.lang.Integer"); 81 this.jComboBoxType.addItem("java.io.InputStream"); 82 this.jComboBoxType.addItem("java.lang.Long"); 83 this.jComboBoxType.addItem("java.lang.Short"); 84 this.jComboBoxType.addItem("java.math.BigDecimal"); 85 } 86 87 88 93 private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; 95 96 jLabel1 = new javax.swing.JLabel (); 97 jTextFieldName = new javax.swing.JTextField (); 98 jLabel2 = new javax.swing.JLabel (); 99 jComboBoxType = new javax.swing.JComboBox (); 100 jLabel4 = new javax.swing.JLabel (); 101 jPanel1 = new javax.swing.JPanel (); 102 jButtonOK = new javax.swing.JButton (); 103 jButtonCancel = new javax.swing.JButton (); 104 jScrollPane1 = new javax.swing.JScrollPane (); 105 jTextAreaDescription = new javax.swing.JTextArea (); 106 107 getContentPane().setLayout(new java.awt.GridBagLayout ()); 108 109 setTitle("Add/modify field"); 110 setModal(true); 111 addWindowListener(new java.awt.event.WindowAdapter () { 112 public void windowClosing(java.awt.event.WindowEvent evt) { 113 closeDialog(evt); 114 } 115 }); 116 117 jLabel1.setText("Field name"); 118 gridBagConstraints = new java.awt.GridBagConstraints (); 119 gridBagConstraints.gridx = 0; 120 gridBagConstraints.gridy = 0; 121 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 122 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 123 getContentPane().add(jLabel1, gridBagConstraints); 124 125 gridBagConstraints = new java.awt.GridBagConstraints (); 126 gridBagConstraints.gridx = 0; 127 gridBagConstraints.gridy = 1; 128 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 129 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 130 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 131 getContentPane().add(jTextFieldName, gridBagConstraints); 132 133 jLabel2.setText("Field class type"); 134 gridBagConstraints = new java.awt.GridBagConstraints (); 135 gridBagConstraints.gridx = 0; 136 gridBagConstraints.gridy = 2; 137 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 138 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 139 getContentPane().add(jLabel2, gridBagConstraints); 140 141 jComboBoxType.setEditable(true); 142 gridBagConstraints = new java.awt.GridBagConstraints (); 143 gridBagConstraints.gridx = 0; 144 gridBagConstraints.gridy = 3; 145 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 146 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 147 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 148 getContentPane().add(jComboBoxType, gridBagConstraints); 149 150 jLabel4.setText("Field description"); 151 gridBagConstraints = new java.awt.GridBagConstraints (); 152 gridBagConstraints.gridx = 0; 153 gridBagConstraints.gridy = 4; 154 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 155 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 156 getContentPane().add(jLabel4, gridBagConstraints); 157 158 jPanel1.setLayout(new java.awt.FlowLayout (java.awt.FlowLayout.RIGHT)); 159 160 jButtonOK.setText("OK"); 161 jButtonOK.setMnemonic('o'); 162 jButtonOK.addActionListener(new java.awt.event.ActionListener () { 163 public void actionPerformed(java.awt.event.ActionEvent evt) { 164 jButtonOKActionPerformed(evt); 165 } 166 }); 167 168 jPanel1.add(jButtonOK); 169 170 jButtonCancel.setText("Cancel"); 171 jButtonCancel.setMnemonic('c'); 172 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 173 public void actionPerformed(java.awt.event.ActionEvent evt) { 174 jButtonCancelActionPerformed(evt); 175 } 176 }); 177 178 jPanel1.add(jButtonCancel); 179 180 gridBagConstraints = new java.awt.GridBagConstraints (); 181 gridBagConstraints.gridx = 0; 182 gridBagConstraints.gridy = 7; 183 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 184 gridBagConstraints.anchor = java.awt.GridBagConstraints.SOUTHEAST; 185 gridBagConstraints.weightx = 1.0; 186 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 187 getContentPane().add(jPanel1, gridBagConstraints); 188 189 jScrollPane1.setPreferredSize(new java.awt.Dimension (300, 80)); 190 jScrollPane1.setViewportView(jTextAreaDescription); 191 192 gridBagConstraints = new java.awt.GridBagConstraints (); 193 gridBagConstraints.gridx = 0; 194 gridBagConstraints.gridy = 6; 195 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 196 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 197 gridBagConstraints.weightx = 1.0; 198 gridBagConstraints.weighty = 1.0; 199 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 200 getContentPane().add(jScrollPane1, gridBagConstraints); 201 202 pack(); 203 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 204 java.awt.Dimension dialogSize = getSize(); 205 setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); 206 } 208 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 210 this.setDialogResult( javax.swing.JOptionPane.CANCEL_OPTION); 211 dispose(); 212 } 214 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) { 216 if (this.jTextFieldName.getText().trim().length() <= 0) { 217 javax.swing.JOptionPane.showMessageDialog(this, 218 I18n.getString( "messages.jRFieldDialog.notValidFieldName","Please insert a valid field name!"), 219 I18n.getString( "messages.jRFieldDialog.notValidFieldNameCaption","Invalid field!"), 220 javax.swing.JOptionPane.WARNING_MESSAGE ); 221 return; 222 } 223 224 if (getSubDataset() != null) 225 { 226 String newName = this.jTextFieldName.getText(); 228 if (getOriginalName() == null || !getOriginalName().equals(newName)) 229 { 230 for (int i=0; i< getSubDataset().getFields().size(); ++i) 231 { 232 JRField f = (JRField)getSubDataset().getFields().get(i); 233 if (f.getName().equals(newName)) 234 { 235 javax.swing.JOptionPane.showMessageDialog(this, 236 I18n.getString( "messages.JRFieldDialog.DuplicatedFieldName","A field with this name already exists!"), 237 I18n.getString( "messages.JRFieldDialog.notValidFieldNameCaption","Invalid field!"), 238 javax.swing.JOptionPane.WARNING_MESSAGE ); 239 return; 240 } 241 } 242 } 243 } 244 245 tmpField = new JRField( this.jTextFieldName.getText(), "java.lang.String" ); 246 247 if (this.jComboBoxType.getSelectedItem().toString().trim().length() != 0) { 248 tmpField.setClassType( this.jComboBoxType.getSelectedItem().toString().trim() ); 249 } 250 tmpField.setDescription( this.jTextAreaDescription.getText()); 251 setVisible(false); 252 this.setDialogResult( javax.swing.JOptionPane.OK_OPTION); 253 dispose(); 254 } 256 257 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); 259 this.setDialogResult( javax.swing.JOptionPane.CLOSED_OPTION); 260 dispose(); 261 } 263 266 public static void main(String args[]) { 267 new JRParameterDialog(new javax.swing.JFrame (), true).setVisible(true); 268 } 269 270 274 public it.businesslogic.ireport.JRField getField() { 275 return tmpField; 276 } 277 278 282 public void setField(it.businesslogic.ireport.JRField tmpField) { 283 originalName = tmpField.getName(); 284 this.jTextFieldName.setText( new String (tmpField.getName())); 285 this.jComboBoxType.setSelectedItem( new String (tmpField.getClassType())); 286 this.jTextAreaDescription.setText( new String (tmpField.getDescription())); 287 } 288 289 293 public int getDialogResult() { 294 return dialogResult; 295 } 296 297 301 public void setDialogResult(int dialogResult) { 302 this.dialogResult = dialogResult; 303 } 304 305 private javax.swing.JButton jButtonCancel; 307 private javax.swing.JButton jButtonOK; 308 private javax.swing.JComboBox jComboBoxType; 309 private javax.swing.JLabel jLabel1; 310 private javax.swing.JLabel jLabel2; 311 private javax.swing.JLabel jLabel4; 312 private javax.swing.JPanel jPanel1; 313 private javax.swing.JScrollPane jScrollPane1; 314 private javax.swing.JTextArea jTextAreaDescription; 315 private javax.swing.JTextField jTextFieldName; 316 318 private int dialogResult; 319 320 public void applyI18n(){ 321 jButtonCancel.setText(I18n.getString("jRFieldDialog.buttonCancel","Cancel")); 323 jButtonOK.setText(I18n.getString("jRFieldDialog.buttonOK","OK")); 324 jLabel1.setText(I18n.getString("jRFieldDialog.label1","Field name")); 325 jLabel2.setText(I18n.getString("jRFieldDialog.label2","Field class type")); 326 jLabel4.setText(I18n.getString("jRFieldDialog.label4","Field description")); 327 } 329 330 public SubDataset getSubDataset() { 331 return subDataset; 332 } 333 334 public void setSubDataset(SubDataset subDataset) { 335 this.subDataset = subDataset; 336 } 337 338 public String getOriginalName() { 339 return originalName; 340 } 341 342 public void setOriginalName(String originalName) { 343 this.originalName = originalName; 344 } 345 } 346 | Popular Tags |