1 32 33 package it.businesslogic.ireport.gui.sheet; 34 import it.businesslogic.ireport.util.I18n; 35 import it.businesslogic.ireport.util.LanguageChangedEvent; 36 import it.businesslogic.ireport.util.LanguageChangedListener; 37 import java.util.*; 38 import java.util.HashMap ; 39 import javax.swing.*; 40 import it.businesslogic.ireport.gui.event.*; 41 import java.awt.Component ; 42 import java.awt.Graphics ; 43 44 48 public class CategorySheetPanel extends javax.swing.JPanel implements SheetPropertyValueChangedListener { 49 50 public static final int VIEW_BY_CATEGORY = 1; 51 public static final int VIEW_SORTED = 2; 52 public static final int VIEW_UNSORTED = 3; 53 54 public static final javax.swing.ImageIcon opened_icon = new javax.swing.ImageIcon ( CategorySheetPanel.class.getResource("/it/businesslogic/ireport/icons/sheet/opened.png")); 55 public static final javax.swing.ImageIcon closed_icon =new javax.swing.ImageIcon ( CategorySheetPanel.class.getResource("/it/businesslogic/ireport/icons/sheet/closed.png")); 56 57 protected java.util.Vector properties; 58 protected java.util.Vector categories; 59 protected java.util.HashMap propCategories; 60 protected java.util.Vector compressedCategories; 61 private int viewMode = 1; 62 private int current_position = 0; 63 64 private boolean showResetButton = true; 65 66 67 public CategorySheetPanel() { 68 initComponents(); 69 jPanel1.setBackground(new java.awt.Color (234,234,234) ); 70 properties = new Vector(); 71 categories = new Vector(); 72 propCategories = new HashMap (); 73 compressedCategories = new Vector(); 74 jSplitPane1.setResizeWeight(0.5); 75 recreateSheet(); 76 77 I18n.addOnLanguageChangedListener(new LanguageChangedListener() { 78 public void languageChanged(LanguageChangedEvent evt) { 79 80 CategorySheetPanel.this.updateUI(); 81 82 } 83 }); 84 applyI18n(); 85 } 86 87 public java.util.Properties getPropertiesValues() 88 { 89 java.util.Properties prop = new java.util.Properties (); 90 91 for (int i=0; i<getProperties().size(); ++i) 92 { 93 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 94 Object value = ""; 95 value = getPropertyValue(i); 96 if (value != null) 97 { 98 prop.setProperty(sp.getKeyName(), value+""); 99 } 100 } 101 return prop; 102 } 103 104 public void setPropertiesValues(java.util.Properties prop) 105 { 106 Enumeration enum_keys = prop.keys(); 107 while (enum_keys.hasMoreElements()) 108 { 109 String key = (String )enum_keys.nextElement(); 110 for (int i=0; i<getProperties().size(); ++i) 112 { 113 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 114 if (sp.getKeyName().equals(key) ) 115 { 116 String value = prop.getProperty(key); 117 sp.setEditorValue( (javax.swing.JComponent )jPanelEditors.getComponent((2*i) +1 ), value ); 118 } 119 } 120 } 121 } 122 123 public void setPropertyValue(String propertyName, Object value) 124 { 125 for (int i=0; i<getProperties().size(); ++i) 126 { 127 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 128 if (sp.getKeyName().equals(propertyName) ) 129 { 130 sp.setValue(value); } 133 } 134 } 135 136 public Object getPropertyValue(String propertyName) 137 { 138 for (int i=0; i<getProperties().size(); ++i) 139 { 140 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 141 if (sp.getKeyName().equals(propertyName) ) 142 { 143 return sp.getValue(); } 146 } 147 return null; 148 } 149 150 public Object getSheetProperty(String propertyName) 151 { 152 for (int i=0; i<getProperties().size(); ++i) 153 { 154 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 155 if (sp != null && sp.getKeyName().equals(propertyName) ) 156 { 157 return sp; } 159 } 160 return null; 161 } 162 163 public Object getPropertyValue(int index) 164 { 165 SheetProperty sp = (SheetProperty)getProperties().elementAt(index); 166 return sp.getValue(); 167 } 168 169 public void removeAllProperties() 170 { 171 for (int i=0; i<getProperties().size(); ++i) 172 { 173 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 174 sp.removeSheetPropertyValueChangedListener(this); 175 } 176 177 getProperties().removeAllElements(); 178 categories.removeAllElements(); 179 propCategories.clear(); 180 } 182 183 public void addSheetProperty(String category, SheetProperty sp) 184 { 185 properties.add(sp); 186 187 Vector v_category = (Vector)propCategories.get(category); 188 if (v_category == null) 189 { 190 v_category = new Vector(); 191 categories.add(category); 192 propCategories.put(category, v_category); 193 } 194 v_category.add(sp); 195 } 197 198 public void recreateSheet() 199 { 200 current_position = 0; 201 202 jPanelLabels.removeAll(); 203 jPanel1.removeAll(); 204 jPanelEditors.removeAll(); 205 206 jPanelLabels.setLayout(new java.awt.GridBagLayout ()); 208 jPanel1.setLayout(new java.awt.GridBagLayout ()); 209 jPanelEditors.setLayout(new java.awt.GridBagLayout ()); 210 211 java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints (); 212 gridBagConstraints.gridx = 0; 213 gridBagConstraints.gridy = 400; 214 gridBagConstraints.weighty = 1.0; 215 216 jPanelEditors.add(jPanelFillerEditors, gridBagConstraints); 217 jPanelLabels.add(jPanelFillerLabels, gridBagConstraints); 218 jPanel1.add(jPanelFiller, gridBagConstraints); 219 220 jPanelEditors.setMinimumSize( new java.awt.Dimension (50,0) ); 221 jPanelLabels.setMinimumSize(new java.awt.Dimension (50,0)); 222 223 if (getViewMode() == VIEW_BY_CATEGORY) 224 { 225 for (int i=0; i<categories.size(); ++i) 226 { 227 addCategory( ""+categories.elementAt(i) ); 229 } 230 } 231 else if (getViewMode() == VIEW_UNSORTED ) 232 { 233 addItems( properties ); 234 } 235 else 236 { 237 Vector items = getSortedProperties( properties ); 238 addItems( items ); 239 } 240 241 jPanelSheet.setMinimumSize(new java.awt.Dimension (16,19*current_position)); 242 jPanelSheet.setPreferredSize(new java.awt.Dimension (16,19*current_position)); 243 244 246 jPanelLabels.updateUI(); 247 jPanelEditors.updateUI(); 248 jScrollPane1.updateUI(); 249 } 250 251 protected void addItem( SheetProperty sp ) 252 { 253 boolean setting = sp.isSetting(); 254 sp.setSetting(true); 255 256 sp.addSheetPropertyValueChangedListener( this ); 257 JLabel jLabel = new JLabel(sp.getName()); 258 259 260 if (sp.getType() != sp.CATEGORY_LABEL) 261 { 262 jLabel.setToolTipText(sp.getName()); 263 } 264 else 265 { 266 java.awt.Font oldFont = jLabel.getFont(); 267 268 jLabel.setFont(new java.awt.Font (oldFont.getFamily(), java.awt.Font.BOLD, oldFont.getSize())); 269 } 270 271 272 jLabel.setMaximumSize(new java.awt.Dimension (41, 18)); 273 jLabel.setMinimumSize(new java.awt.Dimension (41, 18)); 274 jLabel.setPreferredSize(new java.awt.Dimension (41, 18)); 275 java.awt.GridBagConstraints gridBagConstraints = new java.awt.GridBagConstraints (); 276 gridBagConstraints.gridx = 0; 277 gridBagConstraints.gridy = (current_position)*2; 278 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 279 gridBagConstraints.weightx = 1.0; 280 if (sp.getType() != sp.CATEGORY_LABEL) 281 { 282 gridBagConstraints.insets = new java.awt.Insets (0, 2, 0, 2); 283 } 284 else 285 { 286 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 0); 287 jLabel.setBackground(new java.awt.Color (234,234,234) ); 288 jLabel.setOpaque(true); 289 } 290 291 292 jPanelLabels.add(jLabel, gridBagConstraints); 293 294 295 gridBagConstraints = new java.awt.GridBagConstraints (); 296 gridBagConstraints.gridx = 0; 297 gridBagConstraints.gridy = (current_position)*2; 298 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 299 gridBagConstraints.weightx = 1.0; 300 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 0); 301 302 if (sp.getType() == sp.CATEGORY_LABEL) 303 { 304 JLabel b = new JLabel( (!compressedCategories.contains( sp.getName()) ) ? opened_icon : closed_icon); 305 b.setName(sp.getName()); 306 b.setMinimumSize(new java.awt.Dimension (16,19)); 308 b.setMaximumSize(new java.awt.Dimension (16,19)); 309 b.setPreferredSize(new java.awt.Dimension (16,19)); 310 b.setBorder(new javax.swing.border.EmptyBorder (0,0,0,0)); 311 b.setOpaque(false); 312 jPanel1.add(b, gridBagConstraints); 313 b.addMouseListener(new java.awt.event.MouseAdapter () { 314 public void mouseClicked(java.awt.event.MouseEvent evt) { 315 categoryClicked(evt); 316 } 317 }); 318 } 319 else 320 { 321 JPanel p = new JPanel(); 322 p.setMinimumSize(new java.awt.Dimension (16,19)); 323 p.setMaximumSize(new java.awt.Dimension (16,19)); 324 p.setPreferredSize(new java.awt.Dimension (16,19)); 325 p.setBorder(new javax.swing.border.EmptyBorder (0,0,0,0)); 326 p.setOpaque(false); 327 jPanel1.add(p, gridBagConstraints); 328 329 } 330 331 332 gridBagConstraints.insets = new java.awt.Insets (0, 2, 0, 2); 333 334 335 336 javax.swing.JComponent editor = sp.getEditor(); 337 338 339 340 341 if (sp.isReadOnly()) 342 { 343 editor.setEnabled( false ); 344 } 345 else 346 { 347 editor.setEnabled( true ); 348 } 349 350 if (sp.getType() != sp.CATEGORY_LABEL) 351 { 352 editor.setOpaque(false); 353 editor.setBackground( java.awt.Color.WHITE); 354 gridBagConstraints.gridwidth = (!sp.isShowResetButton()) ? 2 : 1; 355 } 356 else 357 { 358 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 0); 359 gridBagConstraints.gridwidth = 2; 360 editor.setBackground(new java.awt.Color (234,234,234) ); 361 editor.setOpaque(true); 362 } 363 364 editor.setMaximumSize(new java.awt.Dimension (41, 18)); 365 editor.setMinimumSize(new java.awt.Dimension (41, 18)); 366 editor.setPreferredSize(new java.awt.Dimension (41, 18)); 367 368 gridBagConstraints.insets = new java.awt.Insets (0, 2, 0, 0); 369 if (editor instanceof JPanel || sp.getType() != sp.CATEGORY_LABEL) 370 { 371 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 0); 372 } 373 374 jPanelEditors.add(editor, gridBagConstraints); 375 376 377 378 if (sp.getType() != sp.CATEGORY_LABEL && sp.isShowResetButton()) 379 { 380 gridBagConstraints = new java.awt.GridBagConstraints (); 381 gridBagConstraints.gridx = 1; 382 gridBagConstraints.gridy = (current_position)*2; 383 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 384 gridBagConstraints.weightx = 0; 385 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 0); 386 ResetButton resetButton = new ResetButton(sp); 387 jPanelEditors.add(resetButton, gridBagConstraints); 388 } 389 390 JSeparator jSeparator1 = new JSeparator(JSeparator.HORIZONTAL); 391 jSeparator1.setPreferredSize(new java.awt.Dimension (0, 1)); 392 gridBagConstraints = new java.awt.GridBagConstraints (); 393 gridBagConstraints.gridx = 0; 394 gridBagConstraints.gridwidth = 2; 395 gridBagConstraints.gridy = (current_position*2)+1; 396 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 397 398 jPanelEditors.add(jSeparator1, gridBagConstraints); 399 400 JSeparator jSeparator = new JSeparator(JSeparator.HORIZONTAL); 401 jSeparator.setPreferredSize(new java.awt.Dimension (0, 1)); 402 jPanelLabels.add(jSeparator, gridBagConstraints); 403 404 jPanelLabels.setMinimumSize(new java.awt.Dimension (30, 20*properties.size())); 405 jPanelLabels.setPreferredSize(new java.awt.Dimension (30, 20*properties.size())); 406 jPanelEditors.setMinimumSize(new java.awt.Dimension (30, 20*properties.size())); 407 jPanelEditors.setPreferredSize(new java.awt.Dimension (30, 20*properties.size())); 408 409 sp.setLabelComponent(jLabel); 410 411 sp.updateLabel(); 412 413 417 current_position++; 418 419 sp.setSetting(setting); 420 } 421 422 protected Vector getSortedProperties(Vector props) 423 { 424 SheetProperty[] names = new SheetProperty[props.size()]; 425 HashMap unsorted_hm = new HashMap (); 426 for (int i=0; i< props.size(); ++i) 427 { 428 SheetProperty sp = (SheetProperty)props.elementAt(i); 429 names[i] = sp; 430 } 431 432 java.util.Arrays.sort(names, new Comparator() 433 { 434 public int compare(Object o1,Object o2 ) 435 { 436 return ((SheetProperty)o1).getName().compareTo( ((SheetProperty)o2).getName() ); 437 } 438 }); 439 Vector v = new Vector(); 440 for (int i=0; i< names.length; ++i) 441 { 442 v.add(i,names[i]); 443 } 444 445 return v; 446 } 447 448 protected void addItems( Vector sheetProperties) 449 { 450 for (int i=0; i< sheetProperties.size(); ++i) 451 { 452 addItem( (SheetProperty)sheetProperties.elementAt(i)); 453 } 454 } 455 456 protected void addCategory(String name) 457 { 458 SheetProperty sp = new SheetProperty(name,name,SheetProperty.CATEGORY_LABEL); 459 addItem( sp ); 460 if (!compressedCategories.contains( sp.getName()) ) 461 { 462 addItems( (Vector)propCategories.get( name ) ); 463 } 464 } 465 466 public java.util.Vector getProperties() { 467 return properties; 468 } 469 470 public void setProperties(java.util.Vector properties) { 471 this.properties = properties; 472 } 473 474 public int getViewMode() { 475 return viewMode; 476 } 477 478 public void setViewMode(int viewMode) { 479 this.viewMode = viewMode; 480 recreateSheet(); 481 } 482 483 488 private void initComponents() { 490 java.awt.GridBagConstraints gridBagConstraints; 491 492 buttonGroupToolbar = new javax.swing.ButtonGroup (); 493 jScrollPane1 = new javax.swing.JScrollPane (); 494 jPanelSheet = new javax.swing.JPanel (); 495 jPanel1 = new javax.swing.JPanel (); 496 jPanelFiller = new javax.swing.JPanel (); 497 jSplitPane1 = new javax.swing.JSplitPane (); 498 jPanelLabels = new javax.swing.JPanel (); 499 jPanelFillerLabels = new javax.swing.JPanel (); 500 jPanelEditors = new javax.swing.JPanel (); 501 jPanelFillerEditors = new javax.swing.JPanel (); 502 jPanel2 = new javax.swing.JPanel (); 503 jButtonOrderByCategory = new javax.swing.JButton (); 504 jButtonOrderByAlpha = new javax.swing.JButton (); 505 jPanel3 = new javax.swing.JPanel (); 506 507 setLayout(new java.awt.BorderLayout ()); 508 509 setBackground(new java.awt.Color (255, 255, 255)); 510 setMinimumSize(new java.awt.Dimension (22, 200)); 511 setPreferredSize(new java.awt.Dimension (128, 200)); 512 jScrollPane1.setBackground(new java.awt.Color (255, 255, 255)); 513 jScrollPane1.setMinimumSize(new java.awt.Dimension (22, 0)); 514 jScrollPane1.setOpaque(false); 515 jPanelSheet.setLayout(new java.awt.GridBagLayout ()); 516 517 jPanelSheet.setBackground(new java.awt.Color (255, 255, 255)); 518 jPanelSheet.setMinimumSize(new java.awt.Dimension (126, 0)); 519 jPanelSheet.setPreferredSize(new java.awt.Dimension (126, 0)); 520 jPanel1.setLayout(new java.awt.GridBagLayout ()); 521 522 jPanel1.setMaximumSize(new java.awt.Dimension (16, 2147483647)); 523 jPanel1.setMinimumSize(new java.awt.Dimension (16, 20)); 524 jPanel1.setPreferredSize(new java.awt.Dimension (16, 0)); 525 jPanelFiller.setMinimumSize(new java.awt.Dimension (10, 0)); 526 jPanelFiller.setPreferredSize(new java.awt.Dimension (10, 0)); 527 gridBagConstraints = new java.awt.GridBagConstraints (); 528 gridBagConstraints.gridx = 0; 529 gridBagConstraints.gridy = 400; 530 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 531 gridBagConstraints.weightx = 1.0; 532 gridBagConstraints.weighty = 1.0; 533 jPanel1.add(jPanelFiller, gridBagConstraints); 534 535 gridBagConstraints = new java.awt.GridBagConstraints (); 536 gridBagConstraints.gridx = 0; 537 gridBagConstraints.gridy = 0; 538 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 539 jPanelSheet.add(jPanel1, gridBagConstraints); 540 541 jSplitPane1.setBackground(new java.awt.Color (255, 255, 255)); 542 jSplitPane1.setBorder(null); 543 jSplitPane1.setDividerSize(1); 544 jSplitPane1.setResizeWeight(0.5); 545 jSplitPane1.setContinuousLayout(true); 546 jSplitPane1.setOneTouchExpandable(true); 547 jSplitPane1.setOpaque(false); 548 jSplitPane1.addMouseListener(new java.awt.event.MouseAdapter () { 549 public void mouseEntered(java.awt.event.MouseEvent evt) { 550 jSplitPane1MouseEntered(evt); 551 } 552 public void mouseExited(java.awt.event.MouseEvent evt) { 553 jSplitPane1MouseExited(evt); 554 } 555 }); 556 557 jPanelLabels.setLayout(new java.awt.GridBagLayout ()); 558 559 jPanelLabels.setBackground(new java.awt.Color (255, 255, 255)); 560 jPanelLabels.setMinimumSize(new java.awt.Dimension (70, 10)); 561 jPanelLabels.setPreferredSize(new java.awt.Dimension (70, 10)); 562 jPanelFillerLabels.setMinimumSize(new java.awt.Dimension (10, 0)); 563 jPanelFillerLabels.setPreferredSize(new java.awt.Dimension (10, 0)); 564 gridBagConstraints = new java.awt.GridBagConstraints (); 565 gridBagConstraints.gridx = 0; 566 gridBagConstraints.gridy = 400; 567 gridBagConstraints.weighty = 1.0; 568 jPanelLabels.add(jPanelFillerLabels, gridBagConstraints); 569 570 jSplitPane1.setLeftComponent(jPanelLabels); 571 572 jPanelEditors.setLayout(new java.awt.GridBagLayout ()); 573 574 jPanelEditors.setBackground(new java.awt.Color (255, 255, 255)); 575 jPanelFillerEditors.setMinimumSize(new java.awt.Dimension (10, 0)); 576 jPanelFillerEditors.setPreferredSize(new java.awt.Dimension (10, 0)); 577 gridBagConstraints = new java.awt.GridBagConstraints (); 578 gridBagConstraints.gridx = 0; 579 gridBagConstraints.gridy = 400; 580 gridBagConstraints.weighty = 1.0; 581 jPanelEditors.add(jPanelFillerEditors, gridBagConstraints); 582 583 jSplitPane1.setRightComponent(jPanelEditors); 584 585 gridBagConstraints = new java.awt.GridBagConstraints (); 586 gridBagConstraints.gridx = 1; 587 gridBagConstraints.gridy = 0; 588 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 589 gridBagConstraints.weightx = 1.0; 590 gridBagConstraints.weighty = 1.0; 591 jPanelSheet.add(jSplitPane1, gridBagConstraints); 592 593 jScrollPane1.setViewportView(jPanelSheet); 594 595 add(jScrollPane1, java.awt.BorderLayout.CENTER); 596 597 jPanel2.setLayout(new java.awt.GridBagLayout ()); 598 599 jPanel2.setMinimumSize(new java.awt.Dimension (10, 20)); 600 jPanel2.setPreferredSize(new java.awt.Dimension (10, 24)); 601 jButtonOrderByCategory.setIcon(new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/sheet/tree.png"))); 602 jButtonOrderByCategory.setBorderPainted(false); 603 buttonGroupToolbar.add(jButtonOrderByCategory); 604 jButtonOrderByCategory.setContentAreaFilled(false); 605 jButtonOrderByCategory.setFocusPainted(false); 606 jButtonOrderByCategory.setMinimumSize(new java.awt.Dimension (25, 25)); 607 jButtonOrderByCategory.setPreferredSize(new java.awt.Dimension (25, 25)); 608 jButtonOrderByCategory.setSelected(true); 609 jButtonOrderByCategory.addActionListener(new java.awt.event.ActionListener () { 610 public void actionPerformed(java.awt.event.ActionEvent evt) { 611 jButtonOrderByCategoryActionPerformed(evt); 612 } 613 }); 614 615 gridBagConstraints = new java.awt.GridBagConstraints (); 616 gridBagConstraints.insets = new java.awt.Insets (0, 0, 2, 2); 617 jPanel2.add(jButtonOrderByCategory, gridBagConstraints); 618 619 jButtonOrderByAlpha.setIcon(new javax.swing.ImageIcon (getClass().getResource("/it/businesslogic/ireport/icons/sheet/az.png"))); 620 jButtonOrderByAlpha.setBorderPainted(false); 621 buttonGroupToolbar.add(jButtonOrderByAlpha); 622 jButtonOrderByAlpha.setContentAreaFilled(false); 623 jButtonOrderByAlpha.setFocusPainted(false); 624 jButtonOrderByAlpha.setMinimumSize(new java.awt.Dimension (25, 25)); 625 jButtonOrderByAlpha.setPreferredSize(new java.awt.Dimension (25, 25)); 626 jButtonOrderByAlpha.addActionListener(new java.awt.event.ActionListener () { 627 public void actionPerformed(java.awt.event.ActionEvent evt) { 628 jButtonOrderByAlphaActionPerformed(evt); 629 } 630 }); 631 632 gridBagConstraints = new java.awt.GridBagConstraints (); 633 gridBagConstraints.insets = new java.awt.Insets (0, 0, 2, 0); 634 jPanel2.add(jButtonOrderByAlpha, gridBagConstraints); 635 636 gridBagConstraints = new java.awt.GridBagConstraints (); 637 gridBagConstraints.weightx = 1.0; 638 jPanel2.add(jPanel3, gridBagConstraints); 639 640 add(jPanel2, java.awt.BorderLayout.NORTH); 641 642 } 644 private void jButtonOrderByAlphaActionPerformed(java.awt.event.ActionEvent evt) { this.setViewMode( VIEW_SORTED ); 646 } 648 private void jButtonOrderByCategoryActionPerformed(java.awt.event.ActionEvent evt) { this.setViewMode( VIEW_BY_CATEGORY ); 650 } 652 private void jSplitPane1MouseExited(java.awt.event.MouseEvent evt) { 656 657 } 659 private void jSplitPane1MouseEntered(java.awt.event.MouseEvent evt) { 661 664 665 } 667 public void categoryClicked(java.awt.event.MouseEvent evt){ 668 669 String category = ""; 670 try { 671 JLabel jlabel = (JLabel)(evt.getSource()); 672 if (compressedCategories.contains( jlabel.getName()) ) 673 { 674 jlabel.setIcon(opened_icon); 675 compressedCategories.removeElement(jlabel.getName()); 676 recreateSheet(); 677 } 678 else 679 { 680 jlabel.setIcon(closed_icon); 681 682 compressedCategories.add(jlabel.getName()); 683 recreateSheet(); 684 } 685 686 } catch (Exception ex) { 687 ex.printStackTrace(); 688 } 689 } 690 691 695 public void collapseCategory(String category) 696 { 697 if (!compressedCategories.contains(category)) 698 { 699 compressedCategories.add(category); 700 recreateSheet(); 701 return; 702 } 703 } 704 705 709 public void explodeCategory(String category) 710 { 711 712 if (compressedCategories.contains(category)) 713 { 714 compressedCategories.removeElement(category); 715 recreateSheet(); 716 return; 717 } 718 } 719 720 724 public synchronized void addSheetPropertyValueChangedListener(it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener listener) { 725 726 if (listenerList == null ) { 727 listenerList = new javax.swing.event.EventListenerList (); 728 } 729 listenerList.add (it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener.class, listener); 730 } 731 732 736 public synchronized void removeSheetPropertyValueChangedListener(it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener listener) { 737 738 listenerList.remove (it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener.class, listener); 739 } 740 741 746 private void fireSheetPropertyValueChangedListenerSheetPropertyValueChanged(it.businesslogic.ireport.gui.event.SheetPropertyValueChangedEvent event) { 747 748 if (listenerList == null) return; 749 Object [] listeners = listenerList.getListenerList (); 750 for (int i = listeners.length-2; i>=0; i-=2) { 751 if (listeners[i]==it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener.class) { 752 ((it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener)listeners[i+1]).sheetPropertyValueChanged (event); 753 } 754 } 755 } 756 757 private javax.swing.ButtonGroup buttonGroupToolbar; 759 private javax.swing.JButton jButtonOrderByAlpha; 760 private javax.swing.JButton jButtonOrderByCategory; 761 private javax.swing.JPanel jPanel1; 762 private javax.swing.JPanel jPanel2; 763 private javax.swing.JPanel jPanel3; 764 private javax.swing.JPanel jPanelEditors; 765 private javax.swing.JPanel jPanelFiller; 766 private javax.swing.JPanel jPanelFillerEditors; 767 private javax.swing.JPanel jPanelFillerLabels; 768 private javax.swing.JPanel jPanelLabels; 769 private javax.swing.JPanel jPanelSheet; 770 private javax.swing.JScrollPane jScrollPane1; 771 private javax.swing.JSplitPane jSplitPane1; 772 774 public void sheetPropertyValueChanged(SheetPropertyValueChangedEvent evt) 775 { 776 evt.setSource( this ); 777 fireSheetPropertyValueChangedListenerSheetPropertyValueChanged(evt); 778 } 779 780 783 private javax.swing.event.EventListenerList listenerList = null; 784 785 public boolean isShowResetButton() { 786 return showResetButton; 787 } 788 789 793 public void setShowResetButton(boolean showResetButton) { 794 this.showResetButton = showResetButton; 795 for (int i=0; i<getProperties().size(); ++i) 796 { 797 SheetProperty sp = (SheetProperty)getProperties().elementAt(i); 798 sp.setShowResetButton( showResetButton ); 799 } 800 } 801 802 public void setResizeWeight(double resizeWeight) { 803 jSplitPane1.setResizeWeight(resizeWeight); 804 } 805 806 public void updateUI() { 807 super.updateUI(); 808 if (jPanelLabels != null && this.getProperties().size() > 0) 809 { 810 recreateSheet(); 811 } 812 } 813 814 public void applyI18n(){ 815 } 818 } 819 | Popular Tags |