1 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 43 public class TimeSeriesDatasetPanel extends javax.swing.JPanel implements ChartDatasetPanel { 44 45 private TimeSeriesDataset timeSeriesDataset = null; 46 private boolean init = false; 47 private SubDataset subDataset = null; 48 49 50 public TimeSeriesDatasetPanel() { 51 initComponents(); 52 applyI18n(); 53 54 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 ()); 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 lm = (javax.swing.DefaultListModel )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 100 private void initComponents() { 102 java.awt.GridBagConstraints gridBagConstraints; 103 104 jPopupMenuSeries = new javax.swing.JPopupMenu (); 105 jMenuItemCopy = new javax.swing.JMenuItem (); 106 jMenuItemPaste = new javax.swing.JMenuItem (); 107 jPanelPeriod = new javax.swing.JPanel (); 108 jLabelPeriod = new javax.swing.JLabel (); 109 jComboBoxPeriod = new javax.swing.JComboBox (); 110 jLabel1 = new javax.swing.JLabel (); 111 jScrollPane1 = new javax.swing.JScrollPane (); 112 jList1 = new javax.swing.JList (); 113 jPanel1 = new javax.swing.JPanel (); 114 jButtonAdd = new javax.swing.JButton (); 115 jButtonModify = new javax.swing.JButton (); 116 jButtonRemove = new javax.swing.JButton (); 117 jPanel2 = new javax.swing.JPanel (); 118 119 jMenuItemCopy.setText("Copy series"); 120 jMenuItemCopy.addActionListener(new java.awt.event.ActionListener () { 121 public void actionPerformed(java.awt.event.ActionEvent 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 () { 130 public void actionPerformed(java.awt.event.ActionEvent evt) { 131 jMenuItemPasteActionPerformed(evt); 132 } 133 }); 134 135 jPopupMenuSeries.add(jMenuItemPaste); 136 137 setLayout(new java.awt.GridBagLayout ()); 138 139 jPanelPeriod.setLayout(new java.awt.GridBagLayout ()); 140 141 jLabelPeriod.setText("Time period"); 142 gridBagConstraints = new java.awt.GridBagConstraints (); 143 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 144 jPanelPeriod.add(jLabelPeriod, gridBagConstraints); 145 146 jComboBoxPeriod.addActionListener(new java.awt.event.ActionListener () { 147 public void actionPerformed(java.awt.event.ActionEvent evt) { 148 jComboBoxPeriodActionPerformed(evt); 149 } 150 }); 151 152 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (4, 0, 4, 4); 158 jPanelPeriod.add(jComboBoxPeriod, gridBagConstraints); 159 160 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (); 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 (4, 4, 0, 4); 173 add(jLabel1, gridBagConstraints); 174 175 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 176 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 177 jList1ValueChanged(evt); 178 } 179 }); 180 jList1.addMouseListener(new java.awt.event.MouseAdapter () { 181 public void mouseClicked(java.awt.event.MouseEvent evt) { 182 jList1MouseClicked(evt); 183 } 184 }); 185 186 jScrollPane1.setViewportView(jList1); 187 188 gridBagConstraints = new java.awt.GridBagConstraints (); 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 (4, 4, 4, 4); 194 add(jScrollPane1, gridBagConstraints); 195 196 jPanel1.setLayout(new java.awt.GridBagLayout ()); 197 198 jPanel1.setMinimumSize(new java.awt.Dimension (100, 0)); 199 jPanel1.setPreferredSize(new java.awt.Dimension (100, 0)); 200 jButtonAdd.setText("Add"); 201 jButtonAdd.addActionListener(new java.awt.event.ActionListener () { 202 public void actionPerformed(java.awt.event.ActionEvent evt) { 203 jButtonAddActionPerformed(evt); 204 } 205 }); 206 207 gridBagConstraints = new java.awt.GridBagConstraints (); 208 gridBagConstraints.gridy = 0; 209 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 210 gridBagConstraints.weightx = 1.0; 211 gridBagConstraints.insets = new java.awt.Insets (4, 0, 0, 4); 212 jPanel1.add(jButtonAdd, gridBagConstraints); 213 214 jButtonModify.setText("Modify"); 215 jButtonModify.addActionListener(new java.awt.event.ActionListener () { 216 public void actionPerformed(java.awt.event.ActionEvent evt) { 217 jButtonModifyActionPerformed(evt); 218 } 219 }); 220 221 gridBagConstraints = new java.awt.GridBagConstraints (); 222 gridBagConstraints.gridy = 1; 223 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 224 gridBagConstraints.weightx = 1.0; 225 gridBagConstraints.insets = new java.awt.Insets (2, 0, 0, 4); 226 jPanel1.add(jButtonModify, gridBagConstraints); 227 228 jButtonRemove.setText("Remove"); 229 jButtonRemove.addActionListener(new java.awt.event.ActionListener () { 230 public void actionPerformed(java.awt.event.ActionEvent evt) { 231 jButtonRemoveActionPerformed(evt); 232 } 233 }); 234 235 gridBagConstraints = new java.awt.GridBagConstraints (); 236 gridBagConstraints.gridy = 2; 237 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 238 gridBagConstraints.weightx = 1.0; 239 gridBagConstraints.insets = new java.awt.Insets (2, 0, 0, 4); 240 jPanel1.add(jButtonRemove, gridBagConstraints); 241 242 gridBagConstraints = new java.awt.GridBagConstraints (); 243 gridBagConstraints.gridy = 99; 244 gridBagConstraints.weighty = 1.0; 245 jPanel1.add(jPanel2, gridBagConstraints); 246 247 gridBagConstraints = new java.awt.GridBagConstraints (); 248 gridBagConstraints.gridy = 2; 249 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 250 add(jPanel1, gridBagConstraints); 251 252 } 254 private void jList1MouseClicked(java.awt.event.MouseEvent evt) { 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 } 269 private void jMenuItemPasteActionPerformed(java.awt.event.ActionEvent evt) { 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 )jList1.getModel()).addElement(cs); 283 } 284 } 285 jList1.updateUI(); 286 } 287 } 289 private void jMenuItemCopyActionPerformed(java.awt.event.ActionEvent evt) { Object [] 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 } 296 private void jComboBoxPeriodActionPerformed(java.awt.event.ActionEvent evt) { 298 if (init || timeSeriesDataset == null) return; 299 timeSeriesDataset.setTimePeriod( ((Tag)jComboBoxPeriod.getSelectedItem()).getValue()+""); 300 301 } 303 private void jButtonModifyActionPerformed(java.awt.event.ActionEvent evt) { 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 } 333 private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) { 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 )jList1.getModel()).addElement(cs); 349 } 350 351 } 353 private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent evt) { 355 while (jList1.getSelectedIndex() >= 0) 356 { 357 getTimeSeriesDataset().getTimeSeries().remove( jList1.getSelectedValue() ); 358 ((javax.swing.DefaultListModel )jList1.getModel()).removeElementAt(jList1.getSelectedIndex()); 359 } 360 361 } 363 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 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 } 377 378 private javax.swing.JButton jButtonAdd; 380 private javax.swing.JButton jButtonModify; 381 private javax.swing.JButton jButtonRemove; 382 private javax.swing.JComboBox jComboBoxPeriod; 383 private javax.swing.JLabel jLabel1; 384 private javax.swing.JLabel jLabelPeriod; 385 private javax.swing.JList jList1; 386 private javax.swing.JMenuItem jMenuItemCopy; 387 private javax.swing.JMenuItem jMenuItemPaste; 388 private javax.swing.JPanel jPanel1; 389 private javax.swing.JPanel jPanel2; 390 private javax.swing.JPanel jPanelPeriod; 391 private javax.swing.JPopupMenu jPopupMenuSeries; 392 private javax.swing.JScrollPane jScrollPane1; 393 395 public void applyI18n() 396 { 397 jLabel1.setText(I18n.getString("timeSeriesDatasetPanel.label1","Time series")); 401 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 |