1 32 33 package it.businesslogic.ireport.gui.prompt; 34 35 import it.businesslogic.ireport.util.I18n; 36 import java.awt.BorderLayout ; 37 38 import java.awt.Frame ; 39 import java.awt.event.KeyAdapter ; 40 import java.awt.event.KeyEvent ; 41 import java.text.SimpleDateFormat ; 42 import java.util.StringTokenizer ; 43 44 import java.util.Vector ; 45 46 import javax.swing.JOptionPane ; 47 48 49 52 public class PromptDialog 53 extends javax.swing.JDialog 54 { 55 56 static Vector cachedValues = new Vector (); 57 private int dialogResult = JOptionPane.CANCEL_OPTION; 58 private Object value = null; 59 60 private com.michaelbaranov.microba.calendar.DatePicker datePicker = null; 61 private JDateTimePicker datetimePicker = null; 62 63 private boolean isCollection = false; 64 65 71 public PromptDialog(Frame parent, boolean modal) 72 { 73 super(parent, modal); 74 initComponents(); 75 applyI18n(); 76 jLabelYouCan.setText(it.businesslogic.ireport.util.I18n.getString( 77 "gui.prompt.parameter", 78 "You can provide a value for the parameter:")); 79 80 for (int i = 0; i < cachedValues.size(); ++i) 81 { 82 this.jComboBox1.addItem(cachedValues.elementAt(i)); 83 } 84 85 this.jComboBox1.getEditor().getEditorComponent().addKeyListener(new KeyAdapter () { 86 public void keyPressed(KeyEvent evt) 87 { 88 jButton1KeyPressed(evt); 89 } 90 91 public void keyTyped(KeyEvent evt) 92 { 93 } 94 }); 95 96 it.businesslogic.ireport.util.Misc.centerFrame(this); 97 98 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 99 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 100 public void actionPerformed(java.awt.event.ActionEvent e) { 101 jButton2ActionPerformed(e); 102 } 103 }; 104 105 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 106 getRootPane().getActionMap().put("ESCAPE", escapeAction); 107 108 109 this.getRootPane().setDefaultButton(this.jButton2); 111 } 112 113 118 public void setParameter(it.businesslogic.ireport.JRParameter param) 119 { 120 121 Object val = param.getLastDefaultValue(); 122 123 String format = ""; 124 125 if (param.getClassType().equals("java.util.Date")) 126 { 127 format=""; 128 jPanel4.removeAll(); 129 datePicker = new com.michaelbaranov.microba.calendar.DatePicker(); 130 datePicker.setLocale( I18n.getCurrentLocale() ); 131 SimpleDateFormat sdf = new SimpleDateFormat (); 132 try { 133 if (val instanceof java.util.Date ) 134 { 135 datePicker.setDate( (java.util.Date )val ); 136 } 137 } catch (Exception ex) 138 { 139 ex.printStackTrace(); 140 } 141 jPanel4.add(datePicker, BorderLayout.CENTER); 142 } 143 else if (param.getClassType().equals("java.sql.Time") || 144 param.getClassType().equals("java.sql.Timestamp")) 145 { 146 format=""; 147 jPanel4.removeAll(); 148 datetimePicker = new JDateTimePicker(); 149 datetimePicker.setLocale( I18n.getCurrentLocale() ); 150 151 try { 152 if (val instanceof java.util.Date ) 153 { 154 datetimePicker.setDate( (java.util.Date )val ); 155 } 156 } catch (Exception ex) 157 { 158 ex.printStackTrace(); 159 } 160 jPanel4.add(datetimePicker, BorderLayout.CENTER); 161 } 162 else 163 { 164 val = (val == null) ? "" : val; 165 this.jComboBox1.setSelectedItem(val); 166 this.jComboBox1.getEditor().selectAll(); 167 } 168 169 jLabelParamName.setText(param.getName()); 170 171 if (param.getDescription() != null && 172 param.getDescription().length() > 0) 173 { 174 jLabelParamName.setToolTipText(param.getDescription()); 175 } 176 177 178 179 if (param.getClassType().equals("java.util.Date")) 180 { 181 } 186 else if (param.getClassType().equals("java.sql.Time") || 187 param.getClassType().equals("java.sql.Timestamp")) 188 { 189 } 194 else if (param.getClassType().equals("java.lang.Boolean")) 195 { 196 format = " (true | false)"; 197 } 198 else if (param.getClassType().equals("java.lang.String")) 199 { 200 201 } 202 else 203 { 204 205 try { 206 Class clazz = Class.forName(param.getClassType()); 207 if ( java.util.Collection .class.isAssignableFrom(clazz) ) 208 { 209 format = " ( foo,bar,test )"; 210 } 211 212 } catch (Exception ex) 213 { 214 215 } 216 } 217 218 jLabelClass.setText( 219 it.businesslogic.ireport.util.I18n.getString( 220 "gui.prompt.class", "The class type is:") + " " + 221 param.getClassType() + format); 222 223 if (param.getDescription() != null && 224 param.getDescription().length()>0) 225 { 226 jTextArea1.setText( param.getDescription() ); 227 jScrollPane1.setVisible(true); 228 } 229 else 230 { 231 jScrollPane1.setVisible(false); 232 } 233 if (jComboBox1.isVisible()) this.jComboBox1.requestFocusInWindow(); 234 } 235 236 241 242 243 private void initComponents() { 245 java.awt.GridBagConstraints gridBagConstraints; 246 247 jLabel1 = new javax.swing.JLabel (); 248 jPanel1 = new javax.swing.JPanel (); 249 jLabelYouCan = new javax.swing.JLabel (); 250 jLabelParamName = new javax.swing.JLabel (); 251 jPanel4 = new javax.swing.JPanel (); 252 jComboBox1 = new javax.swing.JComboBox (); 253 jLabelClass = new javax.swing.JLabel (); 254 jSeparator1 = new javax.swing.JSeparator (); 255 jScrollPane1 = new javax.swing.JScrollPane (); 256 jTextArea1 = new javax.swing.JTextArea (); 257 jPanel2 = new javax.swing.JPanel (); 258 jPanel3 = new javax.swing.JPanel (); 259 jButton1 = new javax.swing.JButton (); 260 jButton2 = new javax.swing.JButton (); 261 262 getContentPane().setLayout(new java.awt.GridBagLayout ()); 263 264 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 265 setTitle("Parameter prompt"); 266 jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); 267 jLabel1.setIcon(new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/keyboard.png"))); 268 gridBagConstraints = new java.awt.GridBagConstraints (); 269 gridBagConstraints.gridx = 0; 270 gridBagConstraints.gridy = 0; 271 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 272 gridBagConstraints.ipadx = 10; 273 gridBagConstraints.ipady = 10; 274 getContentPane().add(jLabel1, gridBagConstraints); 275 276 jPanel1.setLayout(new java.awt.GridBagLayout ()); 277 278 jLabelYouCan.setFont(new java.awt.Font ("SansSerif", 0, 12)); 279 jLabelYouCan.setText("You can provide a value for the parameter:"); 280 jLabelYouCan.setVerticalAlignment(javax.swing.SwingConstants.TOP); 281 gridBagConstraints = new java.awt.GridBagConstraints (); 282 gridBagConstraints.gridx = 0; 283 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 284 gridBagConstraints.weightx = 1.0; 285 jPanel1.add(jLabelYouCan, gridBagConstraints); 286 287 jLabelParamName.setFont(new java.awt.Font ("SansSerif", 1, 16)); 288 jLabelParamName.setText("Param name"); 289 jLabelParamName.setVerticalAlignment(javax.swing.SwingConstants.TOP); 290 gridBagConstraints = new java.awt.GridBagConstraints (); 291 gridBagConstraints.gridx = 0; 292 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 293 gridBagConstraints.weightx = 1.0; 294 jPanel1.add(jLabelParamName, gridBagConstraints); 295 296 jPanel4.setLayout(new java.awt.BorderLayout ()); 297 298 jPanel4.setMinimumSize(new java.awt.Dimension (118, 18)); 299 jPanel4.setPreferredSize(new java.awt.Dimension (400, 25)); 300 jComboBox1.setEditable(true); 301 jComboBox1.setPreferredSize(new java.awt.Dimension (400, 25)); 302 jComboBox1.addKeyListener(new java.awt.event.KeyAdapter () { 303 public void keyPressed(java.awt.event.KeyEvent evt) { 304 jComboBox1KeyPressed(evt); 305 } 306 }); 307 308 jPanel4.add(jComboBox1, java.awt.BorderLayout.CENTER); 309 310 gridBagConstraints = new java.awt.GridBagConstraints (); 311 gridBagConstraints.gridx = 0; 312 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 313 gridBagConstraints.weightx = 1.0; 314 jPanel1.add(jPanel4, gridBagConstraints); 315 316 jLabelClass.setFont(new java.awt.Font ("SansSerif", 0, 12)); 317 jLabelClass.setText("The class type is:"); 318 gridBagConstraints = new java.awt.GridBagConstraints (); 319 gridBagConstraints.gridx = 0; 320 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 321 jPanel1.add(jLabelClass, gridBagConstraints); 322 323 gridBagConstraints = new java.awt.GridBagConstraints (); 324 gridBagConstraints.gridx = 0; 325 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 326 gridBagConstraints.insets = new java.awt.Insets (4, 0, 2, 4); 327 jPanel1.add(jSeparator1, gridBagConstraints); 328 329 jScrollPane1.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1)); 330 jScrollPane1.setPreferredSize(new java.awt.Dimension (3, 40)); 331 jTextArea1.setEditable(false); 332 jTextArea1.setOpaque(false); 333 jScrollPane1.setViewportView(jTextArea1); 334 335 gridBagConstraints = new java.awt.GridBagConstraints (); 336 gridBagConstraints.gridx = 0; 337 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 338 gridBagConstraints.weightx = 1.0; 339 gridBagConstraints.weighty = 1.0; 340 gridBagConstraints.insets = new java.awt.Insets (4, 0, 0, 4); 341 jPanel1.add(jScrollPane1, gridBagConstraints); 342 343 gridBagConstraints = new java.awt.GridBagConstraints (); 344 gridBagConstraints.gridx = 1; 345 gridBagConstraints.gridy = 0; 346 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 347 gridBagConstraints.ipadx = 1; 348 gridBagConstraints.ipady = 1; 349 gridBagConstraints.weightx = 1.0; 350 gridBagConstraints.weighty = 1.0; 351 getContentPane().add(jPanel1, gridBagConstraints); 352 353 jPanel2.setLayout(new java.awt.GridBagLayout ()); 354 355 jPanel2.setMinimumSize(new java.awt.Dimension (50, 40)); 356 jPanel2.setPreferredSize(new java.awt.Dimension (40, 40)); 357 gridBagConstraints = new java.awt.GridBagConstraints (); 358 gridBagConstraints.weightx = 1.0; 359 jPanel2.add(jPanel3, gridBagConstraints); 360 361 jButton1.setText("Ok"); 362 jButton1.setPreferredSize(new java.awt.Dimension (100, 26)); 363 jButton1.addActionListener(new java.awt.event.ActionListener () { 364 public void actionPerformed(java.awt.event.ActionEvent evt) { 365 jButton1ActionPerformed(evt); 366 } 367 }); 368 jButton1.addKeyListener(new java.awt.event.KeyAdapter () { 369 public void keyPressed(java.awt.event.KeyEvent evt) { 370 jButton1KeyPressed(evt); 371 } 372 public void keyTyped(java.awt.event.KeyEvent evt) { 373 jButton1KeyTyped(evt); 374 } 375 }); 376 377 gridBagConstraints = new java.awt.GridBagConstraints (); 378 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 379 jPanel2.add(jButton1, gridBagConstraints); 380 381 jButton2.setText("Use default"); 382 jButton2.setPreferredSize(new java.awt.Dimension (100, 26)); 383 jButton2.addActionListener(new java.awt.event.ActionListener () { 384 public void actionPerformed(java.awt.event.ActionEvent evt) { 385 jButton2ActionPerformed(evt); 386 } 387 }); 388 389 gridBagConstraints = new java.awt.GridBagConstraints (); 390 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 391 jPanel2.add(jButton2, gridBagConstraints); 392 393 gridBagConstraints = new java.awt.GridBagConstraints (); 394 gridBagConstraints.gridx = 0; 395 gridBagConstraints.gridy = 1; 396 gridBagConstraints.gridwidth = 2; 397 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 398 getContentPane().add(jPanel2, gridBagConstraints); 399 400 pack(); 401 } private void jComboBox1KeyPressed(java.awt.event.KeyEvent evt ) 404 { 405 } 407 private void jButton1KeyPressed(java.awt.event.KeyEvent evt ) 409 { 410 411 if (evt.getKeyCode() == evt.VK_ENTER) 412 { 413 jComboBox1.setSelectedItem(jComboBox1.getEditor().getItem()); 414 this.jButton1.requestFocusInWindow(); 415 jButton1ActionPerformed(null); 416 } 417 } 419 private void jButton1KeyTyped(java.awt.event.KeyEvent evt ) 421 { 422 } 424 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt ) 426 { 427 setDialogResult(javax.swing.JOptionPane.CANCEL_OPTION); 428 setValue(null); 429 setVisible(false); 430 dispose(); 431 } 433 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt ) 435 { 436 setDialogResult(javax.swing.JOptionPane.OK_OPTION); 437 438 if (jPanel4.getComponent(0) == jComboBox1) 439 { 440 if (jComboBox1.getSelectedItem() == null) 441 { 442 setValue(null); 443 } 444 else 445 { 446 setValue(jComboBox1.getSelectedItem()); 447 if (!cachedValues.contains(getValue())) 448 { 449 cachedValues.addElement(getValue()); 450 } 451 } 452 } 453 else if (jPanel4.getComponent(0) == datePicker) 454 { 455 setValue( datePicker.getDate() ); 456 } 457 else if (jPanel4.getComponent(0) == datetimePicker) 458 { 459 setValue( datetimePicker.getDate() ); 460 } 461 462 463 setVisible(false); 464 dispose(); 465 466 } 468 469 470 475 public int getDialogResult() 476 { 477 478 return dialogResult; 479 } 480 481 486 public void setDialogResult(int dialogResult) 487 { 488 this.dialogResult = dialogResult; 489 } 490 491 496 public Object getValue() 497 { 498 499 return value; 500 } 501 502 507 public void setValue(Object value) 508 { 509 this.value = value; 510 } 511 512 513 514 515 516 private javax.swing.JButton jButton1; 518 private javax.swing.JButton jButton2; 519 private javax.swing.JComboBox jComboBox1; 520 private javax.swing.JLabel jLabel1; 521 private javax.swing.JLabel jLabelClass; 522 private javax.swing.JLabel jLabelParamName; 523 private javax.swing.JLabel jLabelYouCan; 524 private javax.swing.JPanel jPanel1; 525 private javax.swing.JPanel jPanel2; 526 private javax.swing.JPanel jPanel3; 527 private javax.swing.JPanel jPanel4; 528 private javax.swing.JScrollPane jScrollPane1; 529 private javax.swing.JSeparator jSeparator1; 530 private javax.swing.JTextArea jTextArea1; 531 public void applyI18n(){ 533 jButton1.setText(I18n.getString("promptDialog.button1","Ok")); 535 jButton2.setText(I18n.getString("promptDialog.button2","Use default")); 536 jLabelClass.setText(I18n.getString("promptDialog.labelClass","The class type is:")); 537 jLabelParamName.setText(I18n.getString("promptDialog.labelParamName","Param name")); 538 } 540 } 541 | Popular Tags |