KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > it > businesslogic > ireport > chart > TimeSeriesDatasetPanel


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  * TimeSeriesDatasetPanel.java
28  *
29  * Created on 15 agosto 2005, 17.55
30  *
31  */

32
33 package it.businesslogic.ireport.chart;
34 import it.businesslogic.ireport.SubDataset;
35 import it.businesslogic.ireport.gui.sheet.Tag;
36 import java.util.*;
37 import it.businesslogic.ireport.util.Misc;
38 import it.businesslogic.ireport.util.I18n;
39 /**
40  *
41  * @author Administrator
42  */

43 public class TimeSeriesDatasetPanel extends javax.swing.JPanel JavaDoc implements ChartDatasetPanel {
44     
45     private TimeSeriesDataset timeSeriesDataset = null;
46     private boolean init = false;
47     private SubDataset subDataset = null;
48     
49     /** Creates new form PieDatasetPanel */
50     public TimeSeriesDatasetPanel() {
51         initComponents();
52         applyI18n();
53         
54         // Year | Quarter | Month | Week | Day | Hour | Minute | Second | Milisecond
55
this.jComboBoxPeriod.addItem(new Tag("Year",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Year","Year")));
56         this.jComboBoxPeriod.addItem(new Tag("Quarter",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Quarter","Quarter")));
57         this.jComboBoxPeriod.addItem(new Tag("Month",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Month","Month")));
58         this.jComboBoxPeriod.addItem(new Tag("Week",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Week","Week")));
59         this.jComboBoxPeriod.addItem(new Tag("Day",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Day","Day")));
60         this.jComboBoxPeriod.addItem(new Tag("Hour",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Hour","Hour")));
61         this.jComboBoxPeriod.addItem(new Tag("Minute",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Minute","Minute")));
62         this.jComboBoxPeriod.addItem(new Tag("Second",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Second","Second")));
63         this.jComboBoxPeriod.addItem(new Tag("Milisecond",it.businesslogic.ireport.util.I18n.getString("charts.timePeriod.Milisecond","Milisecond")));
64         
65         jList1.setModel( new javax.swing.DefaultListModel JavaDoc());
66     }
67
68     public void setTimeSeriesDataset(TimeSeriesDataset timeSeriesDataset) {
69         
70         init = true;
71         this.timeSeriesDataset = timeSeriesDataset;
72         
73         jButtonModify.setEnabled( false );
74         jButtonModify.setEnabled( false );
75         javax.swing.DefaultListModel JavaDoc lm = (javax.swing.DefaultListModel JavaDoc)jList1.getModel();
76         
77         lm.removeAllElements();
78         
79         Vector v = timeSeriesDataset.getTimeSeries();
80                         
81         for (int i=0; i< v.size(); ++i)
82         {
83             lm.addElement(v.elementAt(i) );
84         }
85         
86         Misc.setComboboxSelectedTagValue(jComboBoxPeriod, timeSeriesDataset.getTimePeriod() );
87         init = false;
88     }
89
90     public TimeSeriesDataset getTimeSeriesDataset() {
91         return timeSeriesDataset;
92     }
93   
94     
95     /** This method is called from within the constructor to
96      * initialize the form.
97      * WARNING: Do NOT modify this code. The content of this method is
98      * always regenerated by the Form Editor.
99      */

100     // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGIN:initComponents
101
private void initComponents() {
102         java.awt.GridBagConstraints JavaDoc gridBagConstraints;
103
104         jPopupMenuSeries = new javax.swing.JPopupMenu JavaDoc();
105         jMenuItemCopy = new javax.swing.JMenuItem JavaDoc();
106         jMenuItemPaste = new javax.swing.JMenuItem JavaDoc();
107         jPanelPeriod = new javax.swing.JPanel JavaDoc();
108         jLabelPeriod = new javax.swing.JLabel JavaDoc();
109         jComboBoxPeriod = new javax.swing.JComboBox JavaDoc();
110         jLabel1 = new javax.swing.JLabel JavaDoc();
111         jScrollPane1 = new javax.swing.JScrollPane JavaDoc();
112         jList1 = new javax.swing.JList JavaDoc();
113         jPanel1 = new javax.swing.JPanel JavaDoc();
114         jButtonAdd = new javax.swing.JButton JavaDoc();
115         jButtonModify = new javax.swing.JButton JavaDoc();
116         jButtonRemove = new javax.swing.JButton JavaDoc();
117         jPanel2 = new javax.swing.JPanel JavaDoc();
118
119         jMenuItemCopy.setText("Copy series");
120         jMenuItemCopy.addActionListener(new java.awt.event.ActionListener JavaDoc() {
121             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
122                 jMenuItemCopyActionPerformed(evt);
123             }
124         });
125
126         jPopupMenuSeries.add(jMenuItemCopy);
127
128         jMenuItemPaste.setText("Paste series");
129         jMenuItemPaste.addActionListener(new java.awt.event.ActionListener JavaDoc() {
130             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
131                 jMenuItemPasteActionPerformed(evt);
132             }
133         });
134
135         jPopupMenuSeries.add(jMenuItemPaste);
136
137         setLayout(new java.awt.GridBagLayout JavaDoc());
138
139         jPanelPeriod.setLayout(new java.awt.GridBagLayout JavaDoc());
140
141         jLabelPeriod.setText("Time period");
142         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
143         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
144         jPanelPeriod.add(jLabelPeriod, gridBagConstraints);
145
146         jComboBoxPeriod.addActionListener(new java.awt.event.ActionListener JavaDoc() {
147             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
148                 jComboBoxPeriodActionPerformed(evt);
149             }
150         });
151
152         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
153         gridBagConstraints.gridx = 1;
154         gridBagConstraints.gridy = 0;
155         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
156         gridBagConstraints.weightx = 1.0;
157         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 4, 4);
158         jPanelPeriod.add(jComboBoxPeriod, gridBagConstraints);
159
160         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
161         gridBagConstraints.gridwidth = 2;
162         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
163         gridBagConstraints.weightx = 1.0;
164         add(jPanelPeriod, gridBagConstraints);
165
166         jLabel1.setText("Time series");
167         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
168         gridBagConstraints.gridy = 1;
169         gridBagConstraints.gridwidth = 2;
170         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
171         gridBagConstraints.weightx = 1.0;
172         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 0, 4);
173         add(jLabel1, gridBagConstraints);
174
175         jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener JavaDoc() {
176             public void valueChanged(javax.swing.event.ListSelectionEvent JavaDoc evt) {
177                 jList1ValueChanged(evt);
178             }
179         });
180         jList1.addMouseListener(new java.awt.event.MouseAdapter JavaDoc() {
181             public void mouseClicked(java.awt.event.MouseEvent JavaDoc evt) {
182                 jList1MouseClicked(evt);
183             }
184         });
185
186         jScrollPane1.setViewportView(jList1);
187
188         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
189         gridBagConstraints.gridy = 2;
190         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
191         gridBagConstraints.weightx = 1.0;
192         gridBagConstraints.weighty = 1.0;
193         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 4, 4, 4);
194         add(jScrollPane1, gridBagConstraints);
195
196         jPanel1.setLayout(new java.awt.GridBagLayout JavaDoc());
197
198         jPanel1.setMinimumSize(new java.awt.Dimension JavaDoc(100, 0));
199         jPanel1.setPreferredSize(new java.awt.Dimension JavaDoc(100, 0));
200         jButtonAdd.setText("Add");
201         jButtonAdd.addActionListener(new java.awt.event.ActionListener JavaDoc() {
202             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
203                 jButtonAddActionPerformed(evt);
204             }
205         });
206
207         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
208         gridBagConstraints.gridy = 0;
209         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
210         gridBagConstraints.weightx = 1.0;
211         gridBagConstraints.insets = new java.awt.Insets JavaDoc(4, 0, 0, 4);
212         jPanel1.add(jButtonAdd, gridBagConstraints);
213
214         jButtonModify.setText("Modify");
215         jButtonModify.addActionListener(new java.awt.event.ActionListener JavaDoc() {
216             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
217                 jButtonModifyActionPerformed(evt);
218             }
219         });
220
221         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
222         gridBagConstraints.gridy = 1;
223         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
224         gridBagConstraints.weightx = 1.0;
225         gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 0, 0, 4);
226         jPanel1.add(jButtonModify, gridBagConstraints);
227
228         jButtonRemove.setText("Remove");
229         jButtonRemove.addActionListener(new java.awt.event.ActionListener JavaDoc() {
230             public void actionPerformed(java.awt.event.ActionEvent JavaDoc evt) {
231                 jButtonRemoveActionPerformed(evt);
232             }
233         });
234
235         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
236         gridBagConstraints.gridy = 2;
237         gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
238         gridBagConstraints.weightx = 1.0;
239         gridBagConstraints.insets = new java.awt.Insets JavaDoc(2, 0, 0, 4);
240         jPanel1.add(jButtonRemove, gridBagConstraints);
241
242         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
243         gridBagConstraints.gridy = 99;
244         gridBagConstraints.weighty = 1.0;
245         jPanel1.add(jPanel2, gridBagConstraints);
246
247         gridBagConstraints = new java.awt.GridBagConstraints JavaDoc();
248         gridBagConstraints.gridy = 2;
249         gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
250         add(jPanel1, gridBagConstraints);
251
252     }// </editor-fold>//GEN-END:initComponents
253

254     private void jList1MouseClicked(java.awt.event.MouseEvent JavaDoc evt) {//GEN-FIRST:event_jList1MouseClicked
255
if (evt.getClickCount() == 1 && evt.getButton() == evt.BUTTON3)
256         {
257             jMenuItemCopy.setEnabled(jList1.getSelectedIndex() >= 0);
258             jMenuItemPaste.setEnabled( it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard() != null &&
259                                        it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard().size() > 0);
260             
261             jPopupMenuSeries.show(jList1, evt.getPoint().x, evt.getPoint().y);
262         }
263         else if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1)
264         {
265             jButtonModifyActionPerformed(null);
266         }
267     }//GEN-LAST:event_jList1MouseClicked
268

269     private void jMenuItemPasteActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jMenuItemPasteActionPerformed
270

271         Vector v = it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard();
272         
273         if (v != null && v.size() > 0)
274         {
275             for (int i=0; i<v.size(); ++i)
276             {
277                 if (v.elementAt(i) instanceof TimeSeries)
278                 {
279                     TimeSeries cs = (TimeSeries)v.elementAt(i);
280                     cs = cs.cloneMe();
281                     getTimeSeriesDataset().getTimeSeries().addElement(cs);
282                     ((javax.swing.DefaultListModel JavaDoc)jList1.getModel()).addElement(cs);
283                 }
284             }
285             jList1.updateUI();
286         }
287     }//GEN-LAST:event_jMenuItemPasteActionPerformed
288

289     private void jMenuItemCopyActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jMenuItemCopyActionPerformed
290
Object JavaDoc[] values = jList1.getSelectedValues();
291         Vector copy_c = new Vector();
292         for (int i=0; i<values.length; ++i) copy_c.add( ((TimeSeries)values[i]).cloneMe() );
293         it.businesslogic.ireport.gui.MainFrame.getMainInstance().setChartSeriesClipBoard(copy_c);
294     }//GEN-LAST:event_jMenuItemCopyActionPerformed
295

296     private void jComboBoxPeriodActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jComboBoxPeriodActionPerformed
297

298         if (init || timeSeriesDataset == null) return;
299         timeSeriesDataset.setTimePeriod( ((Tag)jComboBoxPeriod.getSelectedItem()).getValue()+"");
300         
301     }//GEN-LAST:event_jComboBoxPeriodActionPerformed
302

303     private void jButtonModifyActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonModifyActionPerformed
304

305         if (jList1.getSelectedIndex() >= 0)
306         {
307             TimeSeries cs = (TimeSeries)jList1.getSelectedValue();
308             TimeSeriesDialog csd = new TimeSeriesDialog(it.businesslogic.ireport.gui.MainFrame.getMainInstance() ,true);
309             
310             csd.setSeriesExpression( cs.getSeriesExpression() );
311             csd.setTimePeriodExpression( cs.getTimePeriodExpression() );
312             csd.setValueExpression( cs.getValueExpression() );
313             csd.setLabelExpression( cs.getLabelExpression() );
314             csd.setSectionItemHyperlink( cs.getSectionItemHyperlink() );
315             
316             csd.setSubDataset( this.getSubDataset() );
317             csd.setVisible(true);
318             
319             if (csd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION)
320             {
321                 cs.setSeriesExpression( csd.getSeriesExpression() );
322                 cs.setTimePeriodExpression( csd.getTimePeriodExpression() );
323                 cs.setValueExpression( csd.getValueExpression() );
324                 cs.setLabelExpression( csd.getLabelExpression() );
325                 cs.setSectionItemHyperlink( csd.getSectionItemHyperlink() );
326
327                 jList1.updateUI();
328             }
329         
330         }
331     }//GEN-LAST:event_jButtonModifyActionPerformed
332

333     private void jButtonAddActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonAddActionPerformed
334

335         TimeSeriesDialog csd = new TimeSeriesDialog(it.businesslogic.ireport.gui.MainFrame.getMainInstance() ,true);
336         csd.setSubDataset( this.getSubDataset() );
337         csd.setVisible(true);
338         if (csd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION)
339         {
340             TimeSeries cs = new TimeSeries();
341             cs.setSeriesExpression( csd.getSeriesExpression() );
342             cs.setTimePeriodExpression( csd.getTimePeriodExpression() );
343             cs.setValueExpression( csd.getValueExpression() );
344             cs.setLabelExpression( csd.getLabelExpression() );
345             cs.setSectionItemHyperlink( csd.getSectionItemHyperlink() );
346             
347             getTimeSeriesDataset().getTimeSeries().addElement(cs);
348             ((javax.swing.DefaultListModel JavaDoc)jList1.getModel()).addElement(cs);
349         }
350         
351     }//GEN-LAST:event_jButtonAddActionPerformed
352

353     private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent JavaDoc evt) {//GEN-FIRST:event_jButtonRemoveActionPerformed
354

355         while (jList1.getSelectedIndex() >= 0)
356         {
357             getTimeSeriesDataset().getTimeSeries().remove( jList1.getSelectedValue() );
358             ((javax.swing.DefaultListModel JavaDoc)jList1.getModel()).removeElementAt(jList1.getSelectedIndex());
359         }
360         
361     }//GEN-LAST:event_jButtonRemoveActionPerformed
362

363     private void jList1ValueChanged(javax.swing.event.ListSelectionEvent JavaDoc evt) {//GEN-FIRST:event_jList1ValueChanged
364

365         if (jList1.getSelectedIndex() >= 0)
366         {
367             jButtonModify.setEnabled( true );
368             jButtonModify.setEnabled( true );
369         }
370         else
371         {
372             jButtonModify.setEnabled( false );
373             jButtonModify.setEnabled( false );
374         }
375     }//GEN-LAST:event_jList1ValueChanged
376

377     
378     // Variables declaration - do not modify//GEN-BEGIN:variables
379
private javax.swing.JButton JavaDoc jButtonAdd;
380     private javax.swing.JButton JavaDoc jButtonModify;
381     private javax.swing.JButton JavaDoc jButtonRemove;
382     private javax.swing.JComboBox JavaDoc jComboBoxPeriod;
383     private javax.swing.JLabel JavaDoc jLabel1;
384     private javax.swing.JLabel JavaDoc jLabelPeriod;
385     private javax.swing.JList JavaDoc jList1;
386     private javax.swing.JMenuItem JavaDoc jMenuItemCopy;
387     private javax.swing.JMenuItem JavaDoc jMenuItemPaste;
388     private javax.swing.JPanel JavaDoc jPanel1;
389     private javax.swing.JPanel JavaDoc jPanel2;
390     private javax.swing.JPanel JavaDoc jPanelPeriod;
391     private javax.swing.JPopupMenu JavaDoc jPopupMenuSeries;
392     private javax.swing.JScrollPane JavaDoc jScrollPane1;
393     // End of variables declaration//GEN-END:variables
394

395      public void applyI18n()
396     {
397                 // Start autogenerated code ----------------------
398
// End autogenerated code ----------------------
399
// Start autogenerated code ----------------------
400
jLabel1.setText(I18n.getString("timeSeriesDatasetPanel.label1","Time series"));
401                 // End autogenerated code ----------------------
402
jButtonAdd.setText(it.businesslogic.ireport.util.I18n.getString("charts.newseries", "Add series"));
403         jButtonModify.setText(it.businesslogic.ireport.util.I18n.getString("charts.modifyseries", "Modify series"));
404         jButtonRemove.setText(it.businesslogic.ireport.util.I18n.getString("charts.removeseries", "Remove series"));
405         jLabelPeriod.setText(it.businesslogic.ireport.util.I18n.getString("charts.timePeriod", "Time period"));
406         
407         jMenuItemCopy.setText(it.businesslogic.ireport.util.I18n.getString("charts.copyseries", "Copy series"));
408         jMenuItemPaste.setText(it.businesslogic.ireport.util.I18n.getString("charts.pasteseries", "Paste series"));
409         
410         this.updateUI();
411         
412     }
413
414     public SubDataset getSubDataset() {
415         return subDataset;
416     }
417
418     public void setSubDataset(SubDataset subDataset) {
419         this.subDataset = subDataset;
420     }
421
422      
423 }
424
Popular Tags