KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > gui > sheet > CategorySheetPanel


1 /*
2  * Copyright (C) 2005 - 2006 JasperSoft Corporation. All rights reserved.
3  * http://www.jaspersoft.com.
4  *
5  * Unless you have purchased a commercial license agreement from JasperSoft,
6  * the following license terms apply:
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  *
12  * This program is distributed WITHOUT ANY WARRANTY; and without the
13  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14  * See the GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt
18  * or write to:
19  *
20  * Free Software Foundation, Inc.,
21  * 59 Temple Place - Suite 330,
22  * Boston, MA USA 02111-1307
23  *
24  *
25  *
26  *
27  * CategorySheetPanel.java
28  *
29  * Created on 4 ottobre 2004, 23.21
30  *
31  */

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 JavaDoc;
39 import javax.swing.*;
40 import it.businesslogic.ireport.gui.event.*;
41 import java.awt.Component JavaDoc;
42 import java.awt.Graphics JavaDoc;
43
44 /**
45  *
46  * @author Administrator
47  */

48 public class CategorySheetPanel extends javax.swing.JPanel JavaDoc 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 JavaDoc opened_icon = new javax.swing.ImageIcon JavaDoc( CategorySheetPanel.class.getResource("/it/businesslogic/ireport/icons/sheet/opened.png"));
55     public static final javax.swing.ImageIcon JavaDoc closed_icon =new javax.swing.ImageIcon JavaDoc( CategorySheetPanel.class.getResource("/it/businesslogic/ireport/icons/sheet/closed.png"));
56     
57     protected java.util.Vector JavaDoc properties;
58     protected java.util.Vector JavaDoc categories;
59     protected java.util.HashMap JavaDoc propCategories;
60     protected java.util.Vector JavaDoc compressedCategories;
61     private int viewMode = 1;
62     private int current_position = 0;
63         
64     private boolean showResetButton = true;
65     
66     /** Creates new form SheetPanel */
67     public CategorySheetPanel() {
68         initComponents();
69         jPanel1.setBackground(new java.awt.Color JavaDoc(234,234,234) );
70         properties = new Vector();
71         categories = new Vector();
72         propCategories = new HashMap JavaDoc();
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 JavaDoc getPropertiesValues()
88     {
89          java.util.Properties JavaDoc prop = new java.util.Properties JavaDoc();
90          
91          for (int i=0; i<getProperties().size(); ++i)
92          {
93             SheetProperty sp = (SheetProperty)getProperties().elementAt(i);
94             Object JavaDoc 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 JavaDoc prop)
105     {
106          Enumeration enum_keys = prop.keys();
107          while (enum_keys.hasMoreElements())
108          {
109              String JavaDoc key = (String JavaDoc)enum_keys.nextElement();
110              // Looking for this property...
111
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 JavaDoc value = prop.getProperty(key);
117                     sp.setEditorValue( (javax.swing.JComponent JavaDoc)jPanelEditors.getComponent((2*i) +1 ), value );
118                 }
119              }
120          }
121     }
122     
123     public void setPropertyValue(String JavaDoc propertyName, Object JavaDoc 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                     //(javax.swing.JComponent)jPanelEditors.getComponent((2*i) +1 )
131
sp.setValue(value); // EditorValue( sp.getEditor() , value );
132
}
133              }
134     }
135     
136     public Object JavaDoc getPropertyValue(String JavaDoc 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                     //(javax.swing.JComponent)jPanelEditors.getComponent((2*i) +1 )
144
return sp.getValue(); // getEditorValue( sp.getEditor() );
145
}
146              }
147         return null;
148     }
149     
150     public Object JavaDoc getSheetProperty(String JavaDoc 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; // getEditorValue( sp.getEditor() );
158
}
159              }
160         return null;
161     }
162     
163     public Object JavaDoc 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          //recreateSheet();
181
}
182     
183     public void addSheetProperty(String JavaDoc 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         //recreateSheet();
196
}
197     
198     public void recreateSheet()
199     {
200         current_position = 0;
201         
202         jPanelLabels.removeAll();
203         jPanel1.removeAll();
204         jPanelEditors.removeAll();
205         
206         //System.out.println("Labels: " + jPanelLabels.getComponentCount() + " prps:" + this.getProperties().size());
207
jPanelLabels.setLayout(new java.awt.GridBagLayout JavaDoc());
208         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
209         jPanelEditors.setLayout(new java.awt.GridBagLayout JavaDoc());
210         
211         java.awt.GridBagConstraints JavaDoc gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(50,0) );
221         jPanelLabels.setMinimumSize(new java.awt.Dimension JavaDoc(50,0));
222          
223         if (getViewMode() == VIEW_BY_CATEGORY)
224         {
225             for (int i=0; i<categories.size(); ++i)
226             {
227                 // Add the category....
228
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 JavaDoc(16,19*current_position));
242         jPanelSheet.setPreferredSize(new java.awt.Dimension JavaDoc(16,19*current_position));
243         
244         //System.out.println("Labels: " + jPanelLabels.getComponentCount() + " " + current_position);
245

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 JavaDoc oldFont = jLabel.getFont();
267             
268             jLabel.setFont(new java.awt.Font JavaDoc(oldFont.getFamily(), java.awt.Font.BOLD, oldFont.getSize()));
269         }
270         
271         
272         jLabel.setMaximumSize(new java.awt.Dimension JavaDoc(41, 18));
273         jLabel.setMinimumSize(new java.awt.Dimension JavaDoc(41, 18));
274         jLabel.setPreferredSize(new java.awt.Dimension JavaDoc(41, 18));
275         java.awt.GridBagConstraints JavaDoc gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 2, 0, 2);
283         }
284         else
285         {
286             gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 0, 0);
287             jLabel.setBackground(new java.awt.Color JavaDoc(234,234,234) );
288             jLabel.setOpaque(true);
289         }
290         
291         
292         jPanelLabels.add(jLabel, gridBagConstraints);
293  
294         /* Set pulsante category... */
295         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(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             //jLabel.addMouseListener( );
307
b.setMinimumSize(new java.awt.Dimension JavaDoc(16,19));
308             b.setMaximumSize(new java.awt.Dimension JavaDoc(16,19));
309             b.setPreferredSize(new java.awt.Dimension JavaDoc(16,19));
310             b.setBorder(new javax.swing.border.EmptyBorder JavaDoc(0,0,0,0));
311             b.setOpaque(false);
312             jPanel1.add(b, gridBagConstraints);
313             b.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
314                 public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
315                     categoryClicked(evt);
316                 }
317             });
318         }
319         else
320         {
321             JPanel p = new JPanel();
322             p.setMinimumSize(new java.awt.Dimension JavaDoc(16,19));
323             p.setMaximumSize(new java.awt.Dimension JavaDoc(16,19));
324             p.setPreferredSize(new java.awt.Dimension JavaDoc(16,19));
325             p.setBorder(new javax.swing.border.EmptyBorder JavaDoc(0,0,0,0));
326             p.setOpaque(false);
327             jPanel1.add(p, gridBagConstraints);
328             
329         }
330         
331         
332         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 2, 0, 2);
333         
334         
335         /******** Set editor *******/
336         javax.swing.JComponent JavaDoc 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 JavaDoc(0, 0, 0, 0);
359             gridBagConstraints.gridwidth = 2;
360             editor.setBackground(new java.awt.Color JavaDoc(234,234,234) );
361             editor.setOpaque(true);
362         }
363         
364         editor.setMaximumSize(new java.awt.Dimension JavaDoc(41, 18));
365         editor.setMinimumSize(new java.awt.Dimension JavaDoc(41, 18));
366         editor.setPreferredSize(new java.awt.Dimension JavaDoc(41, 18));
367         
368         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 2, 0, 0);
369         if (editor instanceof JPanel || sp.getType() != sp.CATEGORY_LABEL)
370         {
371             gridBagConstraints.insets = new java.awt.Insets JavaDoc(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 JavaDoc();
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 JavaDoc(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 JavaDoc(0, 1));
392         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc(0, 1));
402         jPanelLabels.add(jSeparator, gridBagConstraints);
403         
404         jPanelLabels.setMinimumSize(new java.awt.Dimension JavaDoc(30, 20*properties.size()));
405         jPanelLabels.setPreferredSize(new java.awt.Dimension JavaDoc(30, 20*properties.size()));
406         jPanelEditors.setMinimumSize(new java.awt.Dimension JavaDoc(30, 20*properties.size()));
407         jPanelEditors.setPreferredSize(new java.awt.Dimension JavaDoc(30, 20*properties.size()));
408
409         sp.setLabelComponent(jLabel);
410         
411         sp.updateLabel();
412         
413         //jPanelLabels.updateUI();
414
//jPanelEditors.updateUI();
415
//jScrollPane1.updateUI();
416

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 JavaDoc unsorted_hm = new HashMap JavaDoc();
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 JavaDoc o1,Object JavaDoc 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 JavaDoc 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 JavaDoc getProperties() {
467         return properties;
468     }
469
470     public void setProperties(java.util.Vector JavaDoc 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     /** This method is called from within the constructor to
484      * initialize the form.
485      * WARNING: Do NOT modify this code. The content of this method is
486      * always regenerated by the Form Editor.
487      */

488     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
489
private void initComponents() {
490         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
491
492         buttonGroupToolbar = new javax.swing.ButtonGroup JavaDoc();
493         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
494         jPanelSheet = new javax.swing.JPanel JavaDoc();
495         jPanel1 = new javax.swing.JPanel JavaDoc();
496         jPanelFiller = new javax.swing.JPanel JavaDoc();
497         jSplitPane1 = new javax.swing.JSplitPane JavaDoc();
498         jPanelLabels = new javax.swing.JPanel JavaDoc();
499         jPanelFillerLabels = new javax.swing.JPanel JavaDoc();
500         jPanelEditors = new javax.swing.JPanel JavaDoc();
501         jPanelFillerEditors = new javax.swing.JPanel JavaDoc();
502         jPanel2 = new javax.swing.JPanel JavaDoc();
503         jButtonOrderByCategory = new javax.swing.JButton JavaDoc();
504         jButtonOrderByAlpha = new javax.swing.JButton JavaDoc();
505         jPanel3 = new javax.swing.JPanel JavaDoc();
506
507         setLayout(new java.awt.BorderLayout JavaDoc());
508
509         setBackground(new java.awt.Color JavaDoc(255, 255, 255));
510         setMinimumSize(new java.awt.Dimension JavaDoc(22, 200));
511         setPreferredSize(new java.awt.Dimension JavaDoc(128, 200));
512         jScrollPane1.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
513         jScrollPane1.setMinimumSize(new java.awt.Dimension JavaDoc(22, 0));
514         jScrollPane1.setOpaque(false);
515         jPanelSheet.setLayout(new java.awt.GridBagLayout JavaDoc());
516
517         jPanelSheet.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
518         jPanelSheet.setMinimumSize(new java.awt.Dimension JavaDoc(126, 0));
519         jPanelSheet.setPreferredSize(new java.awt.Dimension JavaDoc(126, 0));
520         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
521
522         jPanel1.setMaximumSize(new java.awt.Dimension JavaDoc(16, 2147483647));
523         jPanel1.setMinimumSize(new java.awt.Dimension JavaDoc(16, 20));
524         jPanel1.setPreferredSize(new java.awt.Dimension JavaDoc(16, 0));
525         jPanelFiller.setMinimumSize(new java.awt.Dimension JavaDoc(10, 0));
526         jPanelFiller.setPreferredSize(new java.awt.Dimension JavaDoc(10, 0));
527         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc();
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 JavaDoc(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 JavaDoc() {
549             public void mouseEntered(java.awt.event.MouseEvent JavaDoc evt) {
550                 jSplitPane1MouseEntered(evt);
551             }
552             public void mouseExited(java.awt.event.MouseEvent JavaDoc evt) {
553                 jSplitPane1MouseExited(evt);
554             }
555         });
556
557         jPanelLabels.setLayout(new java.awt.GridBagLayout JavaDoc());
558
559         jPanelLabels.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
560         jPanelLabels.setMinimumSize(new java.awt.Dimension JavaDoc(70, 10));
561         jPanelLabels.setPreferredSize(new java.awt.Dimension JavaDoc(70, 10));
562         jPanelFillerLabels.setMinimumSize(new java.awt.Dimension JavaDoc(10, 0));
563         jPanelFillerLabels.setPreferredSize(new java.awt.Dimension JavaDoc(10, 0));
564         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc());
573
574         jPanelEditors.setBackground(new java.awt.Color JavaDoc(255, 255, 255));
575         jPanelFillerEditors.setMinimumSize(new java.awt.Dimension JavaDoc(10, 0));
576         jPanelFillerEditors.setPreferredSize(new java.awt.Dimension JavaDoc(10, 0));
577         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
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 JavaDoc();
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 JavaDoc());
598
599         jPanel2.setMinimumSize(new java.awt.Dimension JavaDoc(10, 20));
600         jPanel2.setPreferredSize(new java.awt.Dimension JavaDoc(10, 24));
601         jButtonOrderByCategory.setIcon(new javax.swing.ImageIcon JavaDoc(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 JavaDoc(25, 25));
607         jButtonOrderByCategory.setPreferredSize(new java.awt.Dimension JavaDoc(25, 25));
608         jButtonOrderByCategory.setSelected(true);
609         jButtonOrderByCategory.addActionListener(new java.awt.event.ActionListener JavaDoc() {
610             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
611                 jButtonOrderByCategoryActionPerformed(evt);
612             }
613         });
614
615         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
616         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 2, 2);
617         jPanel2.add(jButtonOrderByCategory, gridBagConstraints);
618
619         jButtonOrderByAlpha.setIcon(new javax.swing.ImageIcon JavaDoc(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 JavaDoc(25, 25));
625         jButtonOrderByAlpha.setPreferredSize(new java.awt.Dimension JavaDoc(25, 25));
626         jButtonOrderByAlpha.addActionListener(new java.awt.event.ActionListener JavaDoc() {
627             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
628                 jButtonOrderByAlphaActionPerformed(evt);
629             }
630         });
631
632         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
633         gridBagConstraints.insets = new java.awt.Insets JavaDoc(0, 0, 2, 0);
634         jPanel2.add(jButtonOrderByAlpha, gridBagConstraints);
635
636         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
637         gridBagConstraints.weightx = 1.0;
638         jPanel2.add(jPanel3, gridBagConstraints);
639
640         add(jPanel2, java.awt.BorderLayout.NORTH);
641
642     }// </editor-fold>//GEN-END:initComponents
643

644     private void jButtonOrderByAlphaActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonOrderByAlphaActionPerformed
645
this.setViewMode( VIEW_SORTED );
646     }//GEN-LAST:event_jButtonOrderByAlphaActionPerformed
647

648     private void jButtonOrderByCategoryActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonOrderByCategoryActionPerformed
649
this.setViewMode( VIEW_BY_CATEGORY );
650     }//GEN-LAST:event_jButtonOrderByCategoryActionPerformed
651

652     private void jSplitPane1MouseExited(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jSplitPane1MouseExited
653
//System.out.println("exited");
654
//this.setCursor( new java.awt.Cursor(java.awt.Cursor.W_RESIZE_CURSOR));
655

656         
657     }//GEN-LAST:event_jSplitPane1MouseExited
658

659     private void jSplitPane1MouseEntered(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jSplitPane1MouseEntered
660

661         //System.out.println("entered");
662
//this.setCursor( new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
663

664         
665     }//GEN-LAST:event_jSplitPane1MouseEntered
666

667     public void categoryClicked(java.awt.event.MouseEvent JavaDoc evt){
668         
669         String JavaDoc 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 JavaDoc ex) {
687             ex.printStackTrace();
688         }
689     }
690     
691     /**
692      * Collapse the specified category.
693      *
694      */

695     public void collapseCategory(String JavaDoc category)
696     {
697         if (!compressedCategories.contains(category))
698         {
699             compressedCategories.add(category);
700             recreateSheet();
701             return;
702         }
703     }
704
705     /**
706      * Explode the specified category.
707      *
708      */

709     public void explodeCategory(String JavaDoc category)
710     {
711         
712         if (compressedCategories.contains(category))
713         {
714             compressedCategories.removeElement(category);
715             recreateSheet();
716             return;
717         }
718     }
719     
720     /**
721      * Registers SheetPropertyValueChangedListener to receive events.
722      * @param listener The listener to register.
723      */

724     public synchronized void addSheetPropertyValueChangedListener(it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener listener) {
725
726         if (listenerList == null ) {
727             listenerList = new javax.swing.event.EventListenerList JavaDoc();
728         }
729         listenerList.add (it.businesslogic.ireport.gui.event.SheetPropertyValueChangedListener.class, listener);
730     }
731
732     /**
733      * Removes SheetPropertyValueChangedListener from the list of listeners.
734      * @param listener The listener to remove.
735      */

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     /**
742      * Notifies all registered listeners about the event.
743      *
744      * @param event The event to be fired
745      */

746     private void fireSheetPropertyValueChangedListenerSheetPropertyValueChanged(it.businesslogic.ireport.gui.event.SheetPropertyValueChangedEvent event) {
747
748         if (listenerList == null) return;
749         Object JavaDoc[] 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     // Variables declaration - do not modify//GEN-BEGIN:variables
758
private javax.swing.ButtonGroup JavaDoc buttonGroupToolbar;
759     private javax.swing.JButton JavaDoc jButtonOrderByAlpha;
760     private javax.swing.JButton JavaDoc jButtonOrderByCategory;
761     private javax.swing.JPanel JavaDoc jPanel1;
762     private javax.swing.JPanel JavaDoc jPanel2;
763     private javax.swing.JPanel JavaDoc jPanel3;
764     private javax.swing.JPanel JavaDoc jPanelEditors;
765     private javax.swing.JPanel JavaDoc jPanelFiller;
766     private javax.swing.JPanel JavaDoc jPanelFillerEditors;
767     private javax.swing.JPanel JavaDoc jPanelFillerLabels;
768     private javax.swing.JPanel JavaDoc jPanelLabels;
769     private javax.swing.JPanel JavaDoc jPanelSheet;
770     private javax.swing.JScrollPane JavaDoc jScrollPane1;
771     private javax.swing.JSplitPane JavaDoc jSplitPane1;
772     // End of variables declaration//GEN-END:variables
773

774     public void sheetPropertyValueChanged(SheetPropertyValueChangedEvent evt)
775     {
776         evt.setSource( this );
777         fireSheetPropertyValueChangedListenerSheetPropertyValueChanged(evt);
778     }
779
780     /**
781      * Utility field used by event firing mechanism.
782      */

783     private javax.swing.event.EventListenerList JavaDoc listenerList = null;
784
785     public boolean isShowResetButton() {
786         return showResetButton;
787     }
788
789     /**
790      * This method does not perform a recreateSheet...
791      *
792      */

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                 // Start autogenerated code ----------------------
816
// End autogenerated code ----------------------
817
}
818 }
819
Popular Tags