1 32 33 package it.businesslogic.ireport.gui; 34 35 import it.businesslogic.ireport.util.*; 36 import it.businesslogic.ireport.*; 37 41 public class JRGroupDialog extends javax.swing.JDialog { 42 43 private String groupName; 44 private String expression; 45 private int minHeightStartNewPage = 0; 46 private int headerBandHeight = 0; 47 private int footerBandHeight = 0; 48 private boolean startNewPage = false; 49 private boolean startNewColumn = false; 50 private boolean printHeaderEachPage = false; 51 private boolean resetPageNumber = false; 52 53 private JReportFrame jReportFrame = null; 54 55 public JRGroupDialog(JReportFrame jReportFrame, boolean modal) { 56 super((java.awt.Frame )null, modal); 57 initComponents(); 58 applyI18n(); 59 this.jReportFrame = jReportFrame; 60 this.jRTextExpressionArea.setText(""); 61 62 63 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 64 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 65 public void actionPerformed(java.awt.event.ActionEvent e) { 66 jButtonCancelActionPerformed(e); 67 } 68 }; 69 70 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 71 getRootPane().getActionMap().put("ESCAPE", escapeAction); 72 73 74 this.pack(); 75 this.getRootPane().setDefaultButton(this.jButtonOK); 77 } 78 79 80 85 private void initComponents() { 87 java.awt.GridBagConstraints gridBagConstraints; 88 89 jLabel1 = new javax.swing.JLabel (); 90 jTextFieldName = new javax.swing.JTextField (); 91 jCheckBoxStartNewColumn = new javax.swing.JCheckBox (); 92 jLabel3 = new javax.swing.JLabel (); 93 jRTextExpressionArea = new it.businesslogic.ireport.gui.JRTextExpressionArea(); 94 jCheckBoxStartNewPage = new javax.swing.JCheckBox (); 95 jCheckBoxResetPageNumber = new javax.swing.JCheckBox (); 96 jCheckBoxPrintHeaderEachPage = new javax.swing.JCheckBox (); 97 jLabel5 = new javax.swing.JLabel (); 98 jNumberFieldMinStartNewPage = new it.businesslogic.ireport.gui.JNumberField(); 99 jLabel6 = new javax.swing.JLabel (); 100 jNumberFieldHeaderBand = new it.businesslogic.ireport.gui.JNumberField(); 101 jLabel7 = new javax.swing.JLabel (); 102 jNumberFieldFooterBand = new it.businesslogic.ireport.gui.JNumberField(); 103 jPanel1 = new javax.swing.JPanel (); 104 jButtonOK = new javax.swing.JButton (); 105 jButtonCancel = new javax.swing.JButton (); 106 107 getContentPane().setLayout(new java.awt.GridBagLayout ()); 108 109 setTitle("Add/modify group"); 110 setModal(true); 111 setResizable(false); 112 addWindowListener(new java.awt.event.WindowAdapter () { 113 public void windowClosing(java.awt.event.WindowEvent evt) { 114 closeDialog(evt); 115 } 116 }); 117 118 jLabel1.setText("Group name"); 119 gridBagConstraints = new java.awt.GridBagConstraints (); 120 gridBagConstraints.gridx = 0; 121 gridBagConstraints.gridy = 0; 122 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 123 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 124 getContentPane().add(jLabel1, gridBagConstraints); 125 126 gridBagConstraints = new java.awt.GridBagConstraints (); 127 gridBagConstraints.gridx = 0; 128 gridBagConstraints.gridy = 1; 129 gridBagConstraints.gridwidth = 2; 130 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 131 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 132 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 133 getContentPane().add(jTextFieldName, gridBagConstraints); 134 135 jCheckBoxStartNewColumn.setText("Start on a new column"); 136 gridBagConstraints = new java.awt.GridBagConstraints (); 137 gridBagConstraints.gridx = 0; 138 gridBagConstraints.gridy = 2; 139 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 140 gridBagConstraints.insets = new java.awt.Insets (3, 3, 0, 3); 141 getContentPane().add(jCheckBoxStartNewColumn, gridBagConstraints); 142 143 jLabel3.setText("Group expression"); 144 gridBagConstraints = new java.awt.GridBagConstraints (); 145 gridBagConstraints.gridx = 0; 146 gridBagConstraints.gridy = 5; 147 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 148 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 149 getContentPane().add(jLabel3, gridBagConstraints); 150 151 jRTextExpressionArea.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 152 jRTextExpressionArea.setPreferredSize(new java.awt.Dimension (300, 70)); 153 gridBagConstraints = new java.awt.GridBagConstraints (); 154 gridBagConstraints.gridx = 0; 155 gridBagConstraints.gridy = 6; 156 gridBagConstraints.gridwidth = 2; 157 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 158 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 159 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 160 getContentPane().add(jRTextExpressionArea, gridBagConstraints); 161 162 jCheckBoxStartNewPage.setText("Start on a new page"); 163 gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.gridx = 0; 165 gridBagConstraints.gridy = 3; 166 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 167 gridBagConstraints.insets = new java.awt.Insets (0, 3, 3, 3); 168 getContentPane().add(jCheckBoxStartNewPage, gridBagConstraints); 169 170 jCheckBoxResetPageNumber.setText("Reset page number"); 171 gridBagConstraints = new java.awt.GridBagConstraints (); 172 gridBagConstraints.gridx = 1; 173 gridBagConstraints.gridy = 2; 174 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 175 gridBagConstraints.insets = new java.awt.Insets (3, 3, 0, 3); 176 getContentPane().add(jCheckBoxResetPageNumber, gridBagConstraints); 177 178 jCheckBoxPrintHeaderEachPage.setText("Print header on each page"); 179 gridBagConstraints = new java.awt.GridBagConstraints (); 180 gridBagConstraints.gridx = 1; 181 gridBagConstraints.gridy = 3; 182 gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; 183 gridBagConstraints.insets = new java.awt.Insets (0, 3, 3, 3); 184 getContentPane().add(jCheckBoxPrintHeaderEachPage, gridBagConstraints); 185 186 jLabel5.setText("Min height to start new page"); 187 gridBagConstraints = new java.awt.GridBagConstraints (); 188 gridBagConstraints.gridx = 0; 189 gridBagConstraints.gridy = 4; 190 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 191 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 192 getContentPane().add(jLabel5, gridBagConstraints); 193 194 jNumberFieldMinStartNewPage.setColumns(4); 195 jNumberFieldMinStartNewPage.setHorizontalAlignment(javax.swing.JTextField.RIGHT); 196 try { 197 jNumberFieldMinStartNewPage.setDecimals(0); 198 } catch (java.beans.PropertyVetoException e1) { 199 e1.printStackTrace(); 200 } 201 gridBagConstraints = new java.awt.GridBagConstraints (); 202 gridBagConstraints.gridx = 1; 203 gridBagConstraints.gridy = 4; 204 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 205 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 206 getContentPane().add(jNumberFieldMinStartNewPage, gridBagConstraints); 207 208 jLabel6.setText("Group header band height"); 209 gridBagConstraints = new java.awt.GridBagConstraints (); 210 gridBagConstraints.gridx = 0; 211 gridBagConstraints.gridy = 7; 212 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 213 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 214 getContentPane().add(jLabel6, gridBagConstraints); 215 216 jNumberFieldHeaderBand.setColumns(4); 217 jNumberFieldHeaderBand.setHorizontalAlignment(javax.swing.JTextField.RIGHT); 218 try { 219 jNumberFieldHeaderBand.setDecimals(0); 220 } catch (java.beans.PropertyVetoException e1) { 221 e1.printStackTrace(); 222 } 223 try { 224 jNumberFieldHeaderBand.setValue(50.0); 225 } catch (java.beans.PropertyVetoException e1) { 226 e1.printStackTrace(); 227 } 228 gridBagConstraints = new java.awt.GridBagConstraints (); 229 gridBagConstraints.gridx = 1; 230 gridBagConstraints.gridy = 7; 231 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 232 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 233 getContentPane().add(jNumberFieldHeaderBand, gridBagConstraints); 234 235 jLabel7.setText("Group footer band height"); 236 gridBagConstraints = new java.awt.GridBagConstraints (); 237 gridBagConstraints.gridx = 0; 238 gridBagConstraints.gridy = 8; 239 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 240 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 241 getContentPane().add(jLabel7, gridBagConstraints); 242 243 jNumberFieldFooterBand.setColumns(4); 244 jNumberFieldFooterBand.setHorizontalAlignment(javax.swing.JTextField.RIGHT); 245 try { 246 jNumberFieldFooterBand.setDecimals(0); 247 } catch (java.beans.PropertyVetoException e1) { 248 e1.printStackTrace(); 249 } 250 try { 251 jNumberFieldFooterBand.setValue(50.0); 252 } catch (java.beans.PropertyVetoException e1) { 253 e1.printStackTrace(); 254 } 255 gridBagConstraints = new java.awt.GridBagConstraints (); 256 gridBagConstraints.gridx = 1; 257 gridBagConstraints.gridy = 8; 258 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 259 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 260 getContentPane().add(jNumberFieldFooterBand, gridBagConstraints); 261 262 jPanel1.setLayout(new java.awt.FlowLayout (java.awt.FlowLayout.RIGHT)); 263 264 jButtonOK.setMnemonic('o'); 265 jButtonOK.setText("OK"); 266 jButtonOK.addActionListener(new java.awt.event.ActionListener () { 267 public void actionPerformed(java.awt.event.ActionEvent evt) { 268 jButtonOKActionPerformed(evt); 269 } 270 }); 271 272 jPanel1.add(jButtonOK); 273 274 jButtonCancel.setText("Cancel"); 275 jButtonCancel.setMnemonic('c'); 276 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 277 public void actionPerformed(java.awt.event.ActionEvent evt) { 278 jButtonCancelActionPerformed(evt); 279 } 280 }); 281 282 jPanel1.add(jButtonCancel); 283 284 gridBagConstraints = new java.awt.GridBagConstraints (); 285 gridBagConstraints.gridx = 0; 286 gridBagConstraints.gridy = 9; 287 gridBagConstraints.gridwidth = 2; 288 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 289 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 290 gridBagConstraints.weightx = 1.0; 291 gridBagConstraints.weighty = 1.0; 292 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 293 getContentPane().add(jPanel1, gridBagConstraints); 294 295 pack(); 296 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize(); 297 java.awt.Dimension dialogSize = getSize(); 298 setLocation((screenSize.width-dialogSize.width)/2,(screenSize.height-dialogSize.height)/2); 299 } 301 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { setVisible(false); 303 this.setDialogResult( javax.swing.JOptionPane.CANCEL_OPTION); 304 dispose(); 305 } 307 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) { 309 if (this.jTextFieldName.getText().trim().length() <= 0) 310 { 311 javax.swing.JOptionPane.showMessageDialog(this, 312 I18n.getString( "messages.jRGroupDialog.notValidGroupName","Please insert a valid group name!"), 313 I18n.getString( "messages.jRGroupDialog.notValidGroupNameCaption","Invalid name!"), 314 javax.swing.JOptionPane.WARNING_MESSAGE ); 315 return; 316 } 317 318 setGroupName( this.jTextFieldName.getText() ); 319 setHeaderBandHeight( (int)this.jNumberFieldHeaderBand.getValue()); 321 setFooterBandHeight( (int)this.jNumberFieldFooterBand.getValue()); 322 setMinHeightStartNewPage( (int)this.jNumberFieldMinStartNewPage.getValue()); 323 324 setStartNewColumn( jCheckBoxStartNewColumn.isSelected()); 325 setStartNewPage( jCheckBoxStartNewPage.isSelected()); 326 setPrintHeaderEachPage( jCheckBoxPrintHeaderEachPage.isSelected()); 327 setResetPageNumber( jCheckBoxResetPageNumber.isSelected()); 328 329 setExpression( jRTextExpressionArea.getText() ); 330 331 setVisible(false); 332 this.setDialogResult( javax.swing.JOptionPane.OK_OPTION); 333 dispose(); 334 } 336 337 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); 339 this.setDialogResult( javax.swing.JOptionPane.CLOSED_OPTION); 340 dispose(); 341 } 343 346 public static void main(String args[]) { 347 new JRParameterDialog(new javax.swing.JFrame (), true).setVisible(true); 348 } 349 350 354 public void setGroup(it.businesslogic.ireport.Group group) { 355 this.jTextFieldName.setText( new String (group.getName() )); 356 this.jCheckBoxStartNewPage.setSelected( group.isIsStartNewPage() ); 357 this.jCheckBoxStartNewColumn.setSelected( group.isIsStartNewColumn() ); 358 this.jCheckBoxPrintHeaderEachPage.setSelected( group.isIsReprintHeaderOnEachPage()); 359 this.jCheckBoxResetPageNumber.setSelected( group.isIsResetPageNumber() ); 360 this.jRTextExpressionArea.setText( new String (group.getGroupExpression().trim())); 361 362 try { 363 this.jNumberFieldMinStartNewPage.setValue( group.getMinHeightToStartNewPage() ); 364 this.jNumberFieldHeaderBand.setValue( group.getGroupHeader().getHeight()); 365 this.jNumberFieldFooterBand.setValue( group.getGroupFooter().getHeight()); 366 } catch (Exception ex) {} 367 } 368 369 373 public int getDialogResult() { 374 return dialogResult; 375 } 376 377 381 public void setDialogResult(int dialogResult) { 382 this.dialogResult = dialogResult; 383 } 384 385 389 public java.lang.String getExpression() { 390 return expression; 391 } 392 393 397 public void setExpression(java.lang.String expression) { 398 this.expression = expression; 399 } 400 401 405 public int getFooterBandHeight() { 406 return footerBandHeight; 407 } 408 409 413 public void setFooterBandHeight(int footerBandHeight) { 414 this.footerBandHeight = footerBandHeight; 415 } 416 417 421 public java.lang.String getGroupName() { 422 return groupName; 423 } 424 425 429 public void setGroupName(java.lang.String groupName) { 430 this.groupName = groupName; 431 } 432 433 437 public int getHeaderBandHeight() { 438 return headerBandHeight; 439 } 440 441 445 public void setHeaderBandHeight(int headerBandHeight) { 446 this.headerBandHeight = headerBandHeight; 447 } 448 449 453 public int getMinHeightStartNewPage() { 454 return minHeightStartNewPage; 455 } 456 457 461 public void setMinHeightStartNewPage(int minHeightStartNewPage) { 462 this.minHeightStartNewPage = minHeightStartNewPage; 463 } 464 465 469 public boolean isPrintHeaderEachPage() { 470 return printHeaderEachPage; 471 } 472 473 477 public void setPrintHeaderEachPage(boolean printHeaderEachPage) { 478 this.printHeaderEachPage = printHeaderEachPage; 479 } 480 481 485 public boolean isResetPageNumber() { 486 return resetPageNumber; 487 } 488 489 493 public void setResetPageNumber(boolean resetPageNumber) { 494 this.resetPageNumber = resetPageNumber; 495 } 496 497 501 public boolean isStartNewColumn() { 502 return startNewColumn; 503 } 504 505 509 public void setStartNewColumn(boolean startNewColumn) { 510 this.startNewColumn = startNewColumn; 511 } 512 513 517 public boolean isStartNewPage() { 518 return startNewPage; 519 } 520 521 525 public void setStartNewPage(boolean startNewPage) { 526 this.startNewPage = startNewPage; 527 } 528 529 private javax.swing.JButton jButtonCancel; 531 private javax.swing.JButton jButtonOK; 532 private javax.swing.JCheckBox jCheckBoxPrintHeaderEachPage; 533 private javax.swing.JCheckBox jCheckBoxResetPageNumber; 534 private javax.swing.JCheckBox jCheckBoxStartNewColumn; 535 private javax.swing.JCheckBox jCheckBoxStartNewPage; 536 private javax.swing.JLabel jLabel1; 537 private javax.swing.JLabel jLabel3; 538 private javax.swing.JLabel jLabel5; 539 private javax.swing.JLabel jLabel6; 540 private javax.swing.JLabel jLabel7; 541 private it.businesslogic.ireport.gui.JNumberField jNumberFieldFooterBand; 542 private it.businesslogic.ireport.gui.JNumberField jNumberFieldHeaderBand; 543 private it.businesslogic.ireport.gui.JNumberField jNumberFieldMinStartNewPage; 544 private javax.swing.JPanel jPanel1; 545 private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionArea; 546 private javax.swing.JTextField jTextFieldName; 547 549 private int dialogResult; 550 551 public void applyI18n(){ 552 jCheckBoxPrintHeaderEachPage.setText(I18n.getString("jRGroupDialog.checkBoxPrintHeaderEachPage","Print header on each page")); 554 jCheckBoxResetPageNumber.setText(I18n.getString("jRGroupDialog.checkBoxResetPageNumber","Reset page number")); 555 jCheckBoxStartNewColumn.setText(I18n.getString("jRGroupDialog.checkBoxStartNewColumn","Start on a new column")); 556 jCheckBoxStartNewPage.setText(I18n.getString("jRGroupDialog.checkBoxStartNewPage","Start on a new page")); 557 jButtonCancel.setText(I18n.getString("jRGroupDialog.buttonCancel","Cancel")); 560 jButtonOK.setText(I18n.getString("jRGroupDialog.buttonOK","OK")); 561 jLabel1.setText(I18n.getString("jRGroupDialog.label1","Group name")); 562 jLabel3.setText(I18n.getString("jRGroupDialog.label3","Group expression")); 563 jLabel5.setText(I18n.getString("jRGroupDialog.label5","Min height to start new page")); 564 jLabel6.setText(I18n.getString("jRGroupDialog.label6","Group header band height")); 565 jLabel7.setText(I18n.getString("jRGroupDialog.label7","Group footer band height")); 566 } 568 } 569 | Popular Tags |