1 32 33 package it.businesslogic.ireport.gui; 34 35 import it.businesslogic.ireport.util.*; 36 import it.businesslogic.ireport.*; 37 41 public class JRParameterDialog extends javax.swing.JDialog { 42 43 JRParameter tmpParameter = null; 44 private SubDataset subDataset = null; 45 String originalName = null; 46 47 public JRParameterDialog(java.awt.Frame parent, boolean modal) { 48 49 super(parent, modal); 50 initComponents(); 51 applyI18n(); 52 this.jRTextExpressionAreaDefaultExpression.setText(""); 53 setClassTypes(); 54 this.jComboBoxType.setSelectedItem("java.lang.String"); 55 jComboBoxType.setEditable(true); 56 57 58 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 59 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 60 public void actionPerformed(java.awt.event.ActionEvent e) { 61 jButtonCancelActionPerformed(e); 62 } 63 }; 64 65 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 66 getRootPane().getActionMap().put("ESCAPE", escapeAction); 67 68 69 this.getRootPane().setDefaultButton(this.jButtonOK); 71 } 72 73 public void setClassTypes() 74 { 75 this.jComboBoxType.addItem("java.lang.String"); 76 this.jComboBoxType.addItem("java.lang.Object"); 77 this.jComboBoxType.addItem("java.lang.Boolean"); 78 this.jComboBoxType.addItem("java.lang.Byte"); 79 this.jComboBoxType.addItem("java.util.Date"); 80 this.jComboBoxType.addItem("java.sql.Timestamp"); 81 this.jComboBoxType.addItem("java.sql.Time"); 82 this.jComboBoxType.addItem("java.lang.Double"); 83 this.jComboBoxType.addItem("java.lang.Float"); 84 this.jComboBoxType.addItem("java.lang.Integer"); 85 this.jComboBoxType.addItem("java.io.InputStream"); 86 this.jComboBoxType.addItem("java.lang.Long"); 87 this.jComboBoxType.addItem("java.lang.Short"); 88 this.jComboBoxType.addItem("java.math.BigDecimal"); 89 this.jComboBoxType.addItem("net.sf.jasperreports.engine.JREmptyDataSource"); 90 } 91 92 97 private void initComponents() 99 { 100 java.awt.GridBagConstraints gridBagConstraints; 101 102 jLabel1 = new javax.swing.JLabel (); 103 jTextFieldName = new javax.swing.JTextField (); 104 jLabel2 = new javax.swing.JLabel (); 105 jComboBoxType = new javax.swing.JComboBox (); 106 jCheckBoxIsForPrompting = new javax.swing.JCheckBox (); 107 jLabel3 = new javax.swing.JLabel (); 108 jRTextExpressionAreaDefaultExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea(); 109 jLabel4 = new javax.swing.JLabel (); 110 jScrollPane1 = new javax.swing.JScrollPane (); 111 jTextAreaDescription = new javax.swing.JTextArea (); 112 jPanel1 = new javax.swing.JPanel (); 113 jButtonOK = new javax.swing.JButton (); 114 jButtonCancel = new javax.swing.JButton (); 115 116 getContentPane().setLayout(new java.awt.GridBagLayout ()); 117 118 setTitle("Add/modify parameter"); 119 setModal(true); 120 addWindowListener(new java.awt.event.WindowAdapter () 121 { 122 public void windowClosing(java.awt.event.WindowEvent evt) 123 { 124 closeDialog(evt); 125 } 126 }); 127 128 jLabel1.setText("Parameter name"); 129 gridBagConstraints = new java.awt.GridBagConstraints (); 130 gridBagConstraints.gridx = 0; 131 gridBagConstraints.gridy = 0; 132 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 133 gridBagConstraints.insets = new java.awt.Insets (3, 3, 0, 3); 134 getContentPane().add(jLabel1, gridBagConstraints); 135 136 gridBagConstraints = new java.awt.GridBagConstraints (); 137 gridBagConstraints.gridx = 0; 138 gridBagConstraints.gridy = 1; 139 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 140 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 141 gridBagConstraints.insets = new java.awt.Insets (0, 3, 3, 3); 142 getContentPane().add(jTextFieldName, gridBagConstraints); 143 144 jLabel2.setText("Parameter class type"); 145 gridBagConstraints = new java.awt.GridBagConstraints (); 146 gridBagConstraints.gridx = 0; 147 gridBagConstraints.gridy = 2; 148 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 149 gridBagConstraints.insets = new java.awt.Insets (3, 3, 0, 3); 150 getContentPane().add(jLabel2, gridBagConstraints); 151 152 jComboBoxType.setEditable(true); 153 gridBagConstraints = new java.awt.GridBagConstraints (); 154 gridBagConstraints.gridx = 0; 155 gridBagConstraints.gridy = 3; 156 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 157 gridBagConstraints.insets = new java.awt.Insets (0, 3, 3, 3); 158 getContentPane().add(jComboBoxType, gridBagConstraints); 159 160 jCheckBoxIsForPrompting.setText("Is for prompting"); 161 jCheckBoxIsForPrompting.setNextFocusableComponent(jRTextExpressionAreaDefaultExpression); 162 gridBagConstraints = new java.awt.GridBagConstraints (); 163 gridBagConstraints.gridx = 0; 164 gridBagConstraints.gridy = 4; 165 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 166 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 167 getContentPane().add(jCheckBoxIsForPrompting, gridBagConstraints); 168 169 jLabel3.setText("Default value expression"); 170 gridBagConstraints = new java.awt.GridBagConstraints (); 171 gridBagConstraints.gridx = 0; 172 gridBagConstraints.gridy = 5; 173 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 174 gridBagConstraints.insets = new java.awt.Insets (3, 3, 0, 3); 175 getContentPane().add(jLabel3, gridBagConstraints); 176 177 jRTextExpressionAreaDefaultExpression.setBorder(new javax.swing.border.EtchedBorder ()); 178 jRTextExpressionAreaDefaultExpression.setCaretVisible(false); 179 jRTextExpressionAreaDefaultExpression.setElectricScroll(0); 180 jRTextExpressionAreaDefaultExpression.setMinimumSize(new java.awt.Dimension (0, 60)); 181 jRTextExpressionAreaDefaultExpression.setPreferredSize(new java.awt.Dimension (310, 60)); 182 gridBagConstraints = new java.awt.GridBagConstraints (); 183 gridBagConstraints.gridx = 0; 184 gridBagConstraints.gridy = 6; 185 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 186 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 187 gridBagConstraints.weighty = 1.0; 188 gridBagConstraints.insets = new java.awt.Insets (0, 3, 3, 3); 189 getContentPane().add(jRTextExpressionAreaDefaultExpression, gridBagConstraints); 190 191 jLabel4.setText("Parameter description"); 192 gridBagConstraints = new java.awt.GridBagConstraints (); 193 gridBagConstraints.gridx = 0; 194 gridBagConstraints.gridy = 7; 195 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 196 gridBagConstraints.insets = new java.awt.Insets (3, 3, 0, 3); 197 getContentPane().add(jLabel4, gridBagConstraints); 198 199 jScrollPane1.setMinimumSize(new java.awt.Dimension (22, 50)); 200 jScrollPane1.setPreferredSize(new java.awt.Dimension (3, 50)); 201 jTextAreaDescription.setMinimumSize(new java.awt.Dimension (0, 32)); 202 jScrollPane1.setViewportView(jTextAreaDescription); 203 204 gridBagConstraints = new java.awt.GridBagConstraints (); 205 gridBagConstraints.gridx = 0; 206 gridBagConstraints.gridy = 8; 207 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 208 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 209 gridBagConstraints.weighty = 1.0; 210 gridBagConstraints.insets = new java.awt.Insets (0, 3, 3, 3); 211 getContentPane().add(jScrollPane1, gridBagConstraints); 212 213 jPanel1.setLayout(new java.awt.FlowLayout (java.awt.FlowLayout.RIGHT)); 214 215 jButtonOK.setMnemonic('o'); 216 jButtonOK.setText("OK"); 217 jButtonOK.addActionListener(new java.awt.event.ActionListener () 218 { 219 public void actionPerformed(java.awt.event.ActionEvent evt) 220 { 221 jButtonOKActionPerformed(evt); 222 } 223 }); 224 225 jPanel1.add(jButtonOK); 226 227 jButtonCancel.setMnemonic('c'); 228 jButtonCancel.setText("Cancel"); 229 jButtonCancel.addActionListener(new java.awt.event.ActionListener () 230 { 231 public void actionPerformed(java.awt.event.ActionEvent evt) 232 { 233 jButtonCancelActionPerformed(evt); 234 } 235 }); 236 237 jPanel1.add(jButtonCancel); 238 239 gridBagConstraints = new java.awt.GridBagConstraints (); 240 gridBagConstraints.gridx = 0; 241 gridBagConstraints.gridy = 9; 242 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 243 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 244 gridBagConstraints.weightx = 1.0; 245 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 246 getContentPane().add(jPanel1, gridBagConstraints); 247 248 pack(); 249 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 250 java.awt.Dimension dialogSize = getSize(); 251 setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); 252 } 253 255 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 257 this.setDialogResult( javax.swing.JOptionPane.CANCEL_OPTION); 258 dispose(); 259 } 261 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) { if (this.jTextFieldName.getText().trim().length() <= 0) 263 { 264 javax.swing.JOptionPane.showMessageDialog(this, 265 I18n.getString( "messages.jRParameterDialog.notValidParameterName","Please insert a valid parameter name!"), 266 I18n.getString( "messages.jRParameterDialog.notValidParameterNameCaption","Invalid parameter!"), 267 javax.swing.JOptionPane.WARNING_MESSAGE ); 268 return; 269 } 270 271 if (getSubDataset() != null) 272 { 273 String newName = this.jTextFieldName.getText(); 275 if (originalName == null || !originalName.equals(newName)) 276 { 277 for (int i=0; i< getSubDataset().getParameters().size(); ++i) 278 { 279 JRParameter f = (JRParameter)getSubDataset().getParameters().get(i); 280 if (f.getName().equals(newName)) 281 { 282 javax.swing.JOptionPane.showMessageDialog(this, 283 I18n.getString( "messages.jRParameterDialog.DuplicatedParameterName","A parameter with this name already exists!"), 284 I18n.getString( "messages.jRParameterDialog.notValidParameterNameCaption","Invalid parameter!"), 285 javax.swing.JOptionPane.WARNING_MESSAGE ); 286 return; 287 } 288 } 289 } 290 } 291 292 293 tmpParameter = new JRParameter( this.jTextFieldName.getText(), "java.lang.String", 294 this.jCheckBoxIsForPrompting.isSelected(), 295 this.jTextAreaDescription.getText()); 296 if (this.jComboBoxType.getSelectedItem().toString().trim().length() != 0) 297 { 298 tmpParameter.setClassType( this.jComboBoxType.getSelectedItem().toString().trim() ); 299 } 300 tmpParameter.setDefaultValueExpression( jRTextExpressionAreaDefaultExpression.getText()); 301 302 setVisible(false); 303 this.setDialogResult( javax.swing.JOptionPane.OK_OPTION); 304 dispose(); 305 } 307 308 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); 310 this.setDialogResult( javax.swing.JOptionPane.CLOSED_OPTION); 311 dispose(); 312 } 314 318 public it.businesslogic.ireport.JRParameter getParameter() { 319 return tmpParameter; 320 } 321 322 326 public void setParameter(it.businesslogic.ireport.JRParameter tmpParameter) { 327 originalName = tmpParameter.getName(); 328 this.jTextFieldName.setText( new String (tmpParameter.getName())); 329 this.jComboBoxType.setSelectedItem( new String (tmpParameter.getClassType())); 330 this.jCheckBoxIsForPrompting.setSelected( tmpParameter.isIsForPrompting() ); 331 this.jTextAreaDescription.setText( new String (tmpParameter.getDescription())); 332 this.jRTextExpressionAreaDefaultExpression.setText( new String (tmpParameter.getDefaultValueExpression())); 333 } 334 335 339 public int getDialogResult() { 340 return dialogResult; 341 } 342 343 347 public void setDialogResult(int dialogResult) { 348 this.dialogResult = dialogResult; 349 } 350 351 private javax.swing.JButton jButtonCancel; 353 private javax.swing.JButton jButtonOK; 354 private javax.swing.JCheckBox jCheckBoxIsForPrompting; 355 private javax.swing.JComboBox jComboBoxType; 356 private javax.swing.JLabel jLabel1; 357 private javax.swing.JLabel jLabel2; 358 private javax.swing.JLabel jLabel3; 359 private javax.swing.JLabel jLabel4; 360 private javax.swing.JPanel jPanel1; 361 private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaDefaultExpression; 362 private javax.swing.JScrollPane jScrollPane1; 363 private javax.swing.JTextArea jTextAreaDescription; 364 private javax.swing.JTextField jTextFieldName; 365 367 private int dialogResult; 368 369 public void setSubDataset(SubDataset subDataset) { 370 371 this.subDataset = subDataset; 372 jRTextExpressionAreaDefaultExpression.setSubDataset( subDataset); 373 jRTextExpressionAreaDefaultExpression.getTokenMarker().setKeywordLookup(subDataset.getKeywordLookup()); 374 } 375 376 public void applyI18n(){ 377 jCheckBoxIsForPrompting.setText(I18n.getString("jRParameterDialog.checkBoxIsForPrompting","Is for prompting")); 379 jButtonCancel.setText(I18n.getString("jRParameterDialog.buttonCancel","Cancel")); 382 jButtonOK.setText(I18n.getString("jRParameterDialog.buttonOK","OK")); 383 jLabel1.setText(I18n.getString("jRParameterDialog.label1","Parameter name")); 384 jLabel2.setText(I18n.getString("jRParameterDialog.label2","Parameter class type")); 385 jLabel3.setText(I18n.getString("jRParameterDialog.label3","Default value expression")); 386 jLabel4.setText(I18n.getString("jRParameterDialog.label4","Parameter description")); 387 } 389 390 public SubDataset getSubDataset() { 391 return subDataset; 392 } 393 } 394 | Popular Tags |