1 32 33 package it.businesslogic.ireport.chart.gui; 34 import it.businesslogic.ireport.gui.library.CustomExpression; 35 import it.businesslogic.ireport.gui.*; 36 import it.businesslogic.ireport.*; 37 import javax.swing.tree.*; 38 import it.businesslogic.ireport.util.I18n; 39 40 44 public class SerieDialog extends javax.swing.JDialog { 45 46 int dialogResult = 0; 47 48 private JReportFrame jrf = null; 49 private String serieExpression = null; 50 private String serieName = null; 51 private String serieReset = null; 52 private String serieType = null; 53 54 55 public SerieDialog(java.awt.Dialog parent, boolean modal) { 56 super(parent, modal); 57 initComponents(); 58 59 initFrame(); 60 } 61 62 public void initFrame() 63 { 64 65 this.setSize(400, 450); 66 67 this.setModal(true); 68 69 70 org.syntax.jedit.SyntaxDocument sd = new org.syntax.jedit.SyntaxDocument(); 71 sd.setTokenMarker(new org.syntax.jedit.tokenmarker.JavaTokenMarker() ); 72 73 this.jRTextExpressionAreaDefaultExpression.setDocument( sd ); 74 75 this.jComboBoxClassType.addItem("java.lang.String"); 76 this.jComboBoxClassType.addItem("java.lang.Object"); 77 this.jComboBoxClassType.addItem("java.lang.Boolean"); 78 this.jComboBoxClassType.addItem("java.lang.Byte"); 79 this.jComboBoxClassType.addItem("java.util.Date"); 80 this.jComboBoxClassType.addItem("java.sql.Timestamp"); 81 this.jComboBoxClassType.addItem("java.sql.Time"); 82 this.jComboBoxClassType.addItem("java.lang.Double"); 83 this.jComboBoxClassType.addItem("java.lang.Float"); 84 this.jComboBoxClassType.addItem("java.lang.Integer"); 85 this.jComboBoxClassType.addItem("java.io.InputStream"); 86 this.jComboBoxClassType.addItem("java.lang.Long"); 87 this.jComboBoxClassType.addItem("java.lang.Short"); 88 this.jComboBoxClassType.addItem("java.math.BigDecimal"); 89 90 92 this.dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 93 94 it.businesslogic.ireport.util.Misc.centerFrame(this); 95 96 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 97 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 98 public void actionPerformed(java.awt.event.ActionEvent e) { 99 jButtonCancelActionPerformed(e); 100 } 101 }; 102 103 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 104 getRootPane().getActionMap().put("ESCAPE", escapeAction); 105 106 applyI18n(); 107 108 this.getRootPane().setDefaultButton(this.jButtonOK); 110 } 111 112 public void setVariable( it.businesslogic.ireport.JRVariable var) 113 { 114 String var_name = var.getName(); 115 var_name = var_name.substring("SERIE_".length()); 116 if (var_name.startsWith("G_")) 117 { 118 var_name = var_name.substring(2); 119 String grp_name =""; 121 java.util.Enumeration enum_groups = getJrf().getReport().getGroups().elements(); 122 while (enum_groups.hasMoreElements()) 123 { 124 Group g = (Group)enum_groups.nextElement(); 125 grp_name = g.getName(); 126 if (var_name.startsWith(grp_name +"_")) 127 { 128 break; 129 } 130 } 131 132 this.jComboBox1.setSelectedItem(grp_name); 133 var_name = var_name.substring(grp_name.length()+1); 134 } 135 else 136 { 137 this.jComboBox1.setSelectedIndex(0); 138 139 } 140 this.jTextFieldName.setText( var_name ); 141 this.jComboBoxClassType.setSelectedItem( var.getClassType() ); 142 this.jRTextExpressionAreaDefaultExpression.setText( var.getExpression() ); 143 144 145 } 146 147 148 153 private void initComponents() { 155 java.awt.GridBagConstraints gridBagConstraints; 156 157 jLabelTitle = new javax.swing.JLabel (); 158 jRTextExpressionAreaDefaultExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea(); 159 jPanel1 = new javax.swing.JPanel (); 160 jPanel2 = new javax.swing.JPanel (); 161 jButtonOK = new javax.swing.JButton (); 162 jButtonCancel = new javax.swing.JButton (); 163 jTextFieldName = new javax.swing.JTextField (); 164 jLabelName = new javax.swing.JLabel (); 165 jLabelName1 = new javax.swing.JLabel (); 166 jComboBox1 = new javax.swing.JComboBox (); 167 jLabelName2 = new javax.swing.JLabel (); 168 jComboBoxClassType = new javax.swing.JComboBox (); 169 170 getContentPane().setLayout(new java.awt.GridBagLayout ()); 171 172 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 173 jLabelTitle.setText("Serie expression (the single object of this serie)"); 174 gridBagConstraints = new java.awt.GridBagConstraints (); 175 gridBagConstraints.gridx = 0; 176 gridBagConstraints.gridy = 3; 177 gridBagConstraints.gridwidth = 2; 178 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 179 gridBagConstraints.insets = new java.awt.Insets (8, 4, 0, 4); 180 getContentPane().add(jLabelTitle, gridBagConstraints); 181 182 jRTextExpressionAreaDefaultExpression.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 183 jRTextExpressionAreaDefaultExpression.setElectricScroll(0); 184 jRTextExpressionAreaDefaultExpression.setMinimumSize(new java.awt.Dimension (0, 60)); 185 jRTextExpressionAreaDefaultExpression.setPreferredSize(new java.awt.Dimension (310, 60)); 186 gridBagConstraints = new java.awt.GridBagConstraints (); 187 gridBagConstraints.gridx = 0; 188 gridBagConstraints.gridy = 5; 189 gridBagConstraints.gridwidth = 2; 190 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 191 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 192 gridBagConstraints.weighty = 0.2; 193 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 194 getContentPane().add(jRTextExpressionAreaDefaultExpression, gridBagConstraints); 195 196 jPanel1.setLayout(new java.awt.GridBagLayout ()); 197 198 jPanel1.setMinimumSize(new java.awt.Dimension (10, 30)); 199 jPanel1.setPreferredSize(new java.awt.Dimension (10, 30)); 200 gridBagConstraints = new java.awt.GridBagConstraints (); 201 gridBagConstraints.gridx = 0; 202 gridBagConstraints.gridy = 0; 203 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 204 gridBagConstraints.weightx = 1.0; 205 jPanel1.add(jPanel2, gridBagConstraints); 206 207 jButtonOK.setText("OK"); 208 jButtonOK.addActionListener(new java.awt.event.ActionListener () { 209 public void actionPerformed(java.awt.event.ActionEvent evt) { 210 jButtonOKActionPerformed(evt); 211 } 212 }); 213 214 jPanel1.add(jButtonOK, new java.awt.GridBagConstraints ()); 215 216 jButtonCancel.setText("Cancel"); 217 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 218 public void actionPerformed(java.awt.event.ActionEvent evt) { 219 jButtonCancelActionPerformed(evt); 220 } 221 }); 222 223 gridBagConstraints = new java.awt.GridBagConstraints (); 224 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 0); 225 jPanel1.add(jButtonCancel, gridBagConstraints); 226 227 gridBagConstraints = new java.awt.GridBagConstraints (); 228 gridBagConstraints.gridx = 0; 229 gridBagConstraints.gridy = 6; 230 gridBagConstraints.gridwidth = 2; 231 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 232 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 233 getContentPane().add(jPanel1, gridBagConstraints); 234 235 gridBagConstraints = new java.awt.GridBagConstraints (); 236 gridBagConstraints.gridx = 1; 237 gridBagConstraints.gridy = 1; 238 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 239 gridBagConstraints.weightx = 0.75; 240 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 241 getContentPane().add(jTextFieldName, gridBagConstraints); 242 243 jLabelName.setText("Serie name"); 244 jLabelName.setMaximumSize(new java.awt.Dimension (40, 16)); 245 jLabelName.setMinimumSize(new java.awt.Dimension (40, 16)); 246 gridBagConstraints = new java.awt.GridBagConstraints (); 247 gridBagConstraints.gridx = 0; 248 gridBagConstraints.gridy = 1; 249 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 250 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 251 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 0); 252 getContentPane().add(jLabelName, gridBagConstraints); 253 254 jLabelName1.setText("Reset when"); 255 jLabelName1.setMaximumSize(new java.awt.Dimension (40, 16)); 256 jLabelName1.setMinimumSize(new java.awt.Dimension (40, 16)); 257 gridBagConstraints = new java.awt.GridBagConstraints (); 258 gridBagConstraints.gridx = 0; 259 gridBagConstraints.gridy = 2; 260 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 261 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 262 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 0); 263 getContentPane().add(jLabelName1, gridBagConstraints); 264 265 gridBagConstraints = new java.awt.GridBagConstraints (); 266 gridBagConstraints.gridx = 1; 267 gridBagConstraints.gridy = 2; 268 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 269 gridBagConstraints.weightx = 1.0; 270 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 271 getContentPane().add(jComboBox1, gridBagConstraints); 272 273 jLabelName2.setText("Exp Class"); 274 jLabelName2.setMaximumSize(new java.awt.Dimension (40, 16)); 275 jLabelName2.setMinimumSize(new java.awt.Dimension (40, 16)); 276 gridBagConstraints = new java.awt.GridBagConstraints (); 277 gridBagConstraints.gridx = 0; 278 gridBagConstraints.gridy = 4; 279 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 280 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 281 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 0); 282 getContentPane().add(jLabelName2, gridBagConstraints); 283 284 jComboBoxClassType.setEditable(true); 285 gridBagConstraints = new java.awt.GridBagConstraints (); 286 gridBagConstraints.gridx = 1; 287 gridBagConstraints.gridy = 4; 288 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 289 gridBagConstraints.weightx = 1.0; 290 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 291 getContentPane().add(jComboBoxClassType, gridBagConstraints); 292 293 pack(); 294 } 296 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { this.dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 298 this.setVisible(false); 299 dispose(); } 302 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) { 304 if (this.jRTextExpressionAreaDefaultExpression.getText().trim().length() == 0) 305 { 306 javax.swing.JOptionPane.showMessageDialog(this,it.businesslogic.ireport.util.I18n.getString("gui.chart.SerieDialog.selectexpression","Please specify an expression")); 307 return; 308 } 309 310 if (this.jTextFieldName.getText().trim().length() == 0) 311 { 312 javax.swing.JOptionPane.showMessageDialog(this,it.businesslogic.ireport.util.I18n.getString("gui.chart.SerieDialog.selectname","Please specify an name for this serie")); 313 return; 314 } 315 316 this.serieExpression = jRTextExpressionAreaDefaultExpression.getText(); 317 this.serieName = jTextFieldName.getText(); 318 this.serieReset = ""; 319 this.setSerieType(""+jComboBoxClassType.getSelectedItem()) ; 320 if (jComboBox1.getSelectedIndex() > 0) 321 { 322 this.serieReset += ""+jComboBox1.getSelectedItem(); 323 } 324 325 this.dialogResult = javax.swing.JOptionPane.OK_OPTION; 326 this.setVisible(false); 327 dispose(); 328 329 330 } 332 335 public static void main(String args[]) { 336 java.awt.EventQueue.invokeLater(new Runnable () { 337 public void run() { 338 new SerieDialog(null, true).setVisible(true); 339 } 340 }); 341 } 342 343 347 public JReportFrame getJrf() { 348 349 return this.jrf; 350 } 351 352 356 public void setJrf(JReportFrame jrf) { 357 358 this.jrf = jrf; 359 jRTextExpressionAreaDefaultExpression.getTokenMarker().setKeywordLookup( 360 jrf.getReport().getKeywordLookup()); 361 362 jComboBox1.removeAllItems(); 363 jComboBox1.addItem(I18n.getString("serieDialog.none","<None>") ); 364 if (jrf == null) { 365 jComboBox1.updateUI(); 366 return; 367 } 368 369 java.util.Enumeration e = jrf.getReport().getGroups().elements(); 370 while (e.hasMoreElements()) 371 { 372 jComboBox1.addItem( ""+e.nextElement() ); 373 } 374 375 } 376 377 381 public int getDialogResult() { 382 383 return this.dialogResult; 384 } 385 386 390 public void setDialogResult(int dialogResult) { 391 392 this.dialogResult = dialogResult; 393 } 394 395 public String getSerieName() { 396 return serieName; 397 } 398 399 public void setSerieName(String serieName) { 400 this.serieName = serieName; 401 } 402 403 public String getSerieReset() { 404 return serieReset; 405 } 406 407 public void setSerieReset(String serieReset) { 408 this.serieReset = serieReset; 409 } 410 411 public String getSerieType() { 412 return serieType; 413 } 414 415 public void setSerieType(String serieType) { 416 this.serieType = serieType; 417 } 418 419 public String getSerieExpression() { 420 return serieExpression; 421 } 422 423 public void setSerieExpression(String serieExpression) { 424 this.serieExpression = serieExpression; 425 } 426 427 428 429 private javax.swing.JButton jButtonCancel; 431 private javax.swing.JButton jButtonOK; 432 private javax.swing.JComboBox jComboBox1; 433 private javax.swing.JComboBox jComboBoxClassType; 434 private javax.swing.JLabel jLabelName; 435 private javax.swing.JLabel jLabelName1; 436 private javax.swing.JLabel jLabelName2; 437 private javax.swing.JLabel jLabelTitle; 438 private javax.swing.JPanel jPanel1; 439 private javax.swing.JPanel jPanel2; 440 private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaDefaultExpression; 441 private javax.swing.JTextField jTextFieldName; 442 444 public void applyI18n(){ 445 jButtonCancel.setText(I18n.getString("serieDialog.buttonCancel","Cancel")); 447 jButtonOK.setText(I18n.getString("serieDialog.buttonOK","OK")); 448 jLabelName.setText(I18n.getString("serieDialog.labelName","Serie name")); 449 jLabelName1.setText(I18n.getString("serieDialog.labelName1","Reset when")); 450 jLabelName2.setText(I18n.getString("serieDialog.labelName2","Exp Class")); 451 jLabelTitle.setText(I18n.getString("serieDialog.labelTitle","Serie expression (the single object of this serie)")); 452 } 454 } 455 | Popular Tags |