1 32 33 package it.businesslogic.ireport.chart; 34 import it.businesslogic.ireport.SubDataset; 35 import java.util.*; 36 import it.businesslogic.ireport.util.I18n; 37 41 public class CategoryDatasetPanel extends javax.swing.JPanel implements ChartDatasetPanel { 42 43 private CategoryDataset categoryDataset = null; 44 private SubDataset subDataset = null; 45 46 47 public CategoryDatasetPanel() { 48 initComponents(); 49 applyI18n(); 50 jList1.setModel( new javax.swing.DefaultListModel ()); 51 } 52 53 public void setCategoryDataset(CategoryDataset categoryDataset) { 54 this.categoryDataset = categoryDataset; 55 56 jButtonModify.setEnabled( false ); 57 jButtonModify.setEnabled( false ); 58 javax.swing.DefaultListModel lm = (javax.swing.DefaultListModel )jList1.getModel(); 59 60 lm.removeAllElements(); 61 62 Vector v = categoryDataset.getCategorySeries(); 63 64 for (int i=0; i< v.size(); ++i) 65 { 66 lm.addElement(v.elementAt(i) ); 67 } 68 69 } 70 71 public CategoryDataset getCategoryDataset() { 72 return categoryDataset; 73 } 74 75 76 81 private void initComponents() { 83 java.awt.GridBagConstraints gridBagConstraints; 84 85 jPopupMenuCategorySeries = new javax.swing.JPopupMenu (); 86 jMenuItemCopy = new javax.swing.JMenuItem (); 87 jMenuItemPaste = new javax.swing.JMenuItem (); 88 jScrollPane1 = new javax.swing.JScrollPane (); 89 jList1 = new javax.swing.JList (); 90 jPanel1 = new javax.swing.JPanel (); 91 jButtonAdd = new javax.swing.JButton (); 92 jButtonModify = new javax.swing.JButton (); 93 jButtonRemove = new javax.swing.JButton (); 94 jPanel2 = new javax.swing.JPanel (); 95 jLabel1 = new javax.swing.JLabel (); 96 97 jMenuItemCopy.setText("Copy series"); 98 jMenuItemCopy.addActionListener(new java.awt.event.ActionListener () { 99 public void actionPerformed(java.awt.event.ActionEvent evt) { 100 jMenuItemCopyActionPerformed(evt); 101 } 102 }); 103 104 jPopupMenuCategorySeries.add(jMenuItemCopy); 105 106 jMenuItemPaste.setText("Paste series"); 107 jMenuItemPaste.addActionListener(new java.awt.event.ActionListener () { 108 public void actionPerformed(java.awt.event.ActionEvent evt) { 109 jMenuItemPasteActionPerformed(evt); 110 } 111 }); 112 113 jPopupMenuCategorySeries.add(jMenuItemPaste); 114 115 setLayout(new java.awt.GridBagLayout ()); 116 117 jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 118 public void valueChanged(javax.swing.event.ListSelectionEvent evt) { 119 jList1ValueChanged(evt); 120 } 121 }); 122 jList1.addMouseListener(new java.awt.event.MouseAdapter () { 123 public void mouseClicked(java.awt.event.MouseEvent evt) { 124 jList1MouseClicked(evt); 125 } 126 public void mousePressed(java.awt.event.MouseEvent evt) { 127 jList1MousePressed(evt); 128 } 129 }); 130 131 jScrollPane1.setViewportView(jList1); 132 133 gridBagConstraints = new java.awt.GridBagConstraints (); 134 gridBagConstraints.gridy = 1; 135 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 136 gridBagConstraints.weightx = 1.0; 137 gridBagConstraints.weighty = 1.0; 138 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 139 add(jScrollPane1, gridBagConstraints); 140 141 jPanel1.setLayout(new java.awt.GridBagLayout ()); 142 143 jPanel1.setMinimumSize(new java.awt.Dimension (100, 0)); 144 jPanel1.setPreferredSize(new java.awt.Dimension (100, 0)); 145 jButtonAdd.setText("Add"); 146 jButtonAdd.addActionListener(new java.awt.event.ActionListener () { 147 public void actionPerformed(java.awt.event.ActionEvent evt) { 148 jButtonAddActionPerformed(evt); 149 } 150 }); 151 152 gridBagConstraints = new java.awt.GridBagConstraints (); 153 gridBagConstraints.gridy = 0; 154 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 155 gridBagConstraints.weightx = 1.0; 156 gridBagConstraints.insets = new java.awt.Insets (4, 0, 0, 4); 157 jPanel1.add(jButtonAdd, gridBagConstraints); 158 159 jButtonModify.setText("Modify"); 160 jButtonModify.addActionListener(new java.awt.event.ActionListener () { 161 public void actionPerformed(java.awt.event.ActionEvent evt) { 162 jButtonModifyActionPerformed(evt); 163 } 164 }); 165 166 gridBagConstraints = new java.awt.GridBagConstraints (); 167 gridBagConstraints.gridy = 1; 168 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 169 gridBagConstraints.weightx = 1.0; 170 gridBagConstraints.insets = new java.awt.Insets (2, 0, 0, 4); 171 jPanel1.add(jButtonModify, gridBagConstraints); 172 173 jButtonRemove.setText("Remove"); 174 jButtonRemove.addActionListener(new java.awt.event.ActionListener () { 175 public void actionPerformed(java.awt.event.ActionEvent evt) { 176 jButtonRemoveActionPerformed(evt); 177 } 178 }); 179 180 gridBagConstraints = new java.awt.GridBagConstraints (); 181 gridBagConstraints.gridy = 2; 182 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 183 gridBagConstraints.weightx = 1.0; 184 gridBagConstraints.insets = new java.awt.Insets (2, 0, 0, 4); 185 jPanel1.add(jButtonRemove, gridBagConstraints); 186 187 gridBagConstraints = new java.awt.GridBagConstraints (); 188 gridBagConstraints.gridy = 99; 189 gridBagConstraints.weighty = 1.0; 190 jPanel1.add(jPanel2, gridBagConstraints); 191 192 gridBagConstraints = new java.awt.GridBagConstraints (); 193 gridBagConstraints.gridy = 1; 194 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 195 add(jPanel1, gridBagConstraints); 196 197 jLabel1.setText("Category series"); 198 gridBagConstraints = new java.awt.GridBagConstraints (); 199 gridBagConstraints.gridwidth = 2; 200 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 201 gridBagConstraints.weightx = 1.0; 202 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 203 add(jLabel1, gridBagConstraints); 204 205 } 207 private void jList1MouseClicked(java.awt.event.MouseEvent evt) { 209 if (evt.getClickCount() == 1 && evt.getButton() == evt.BUTTON3) 210 { 211 jMenuItemCopy.setEnabled(jList1.getSelectedIndex() >= 0); 212 jMenuItemPaste.setEnabled( it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard() != null && 213 it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard().size() > 0); 214 215 jPopupMenuCategorySeries.show(jList1, evt.getPoint().x, evt.getPoint().y); 216 } 217 else if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1) 218 { 219 jButtonModifyActionPerformed(null); 220 } 221 } 223 private void jList1MousePressed(java.awt.event.MouseEvent evt) { 225 226 227 } 229 private void jMenuItemCopyActionPerformed(java.awt.event.ActionEvent evt) { 231 Object [] values = jList1.getSelectedValues(); 232 Vector copy_c = new Vector(); 233 for (int i=0; i<values.length; ++i) copy_c.add( ((CategorySeries)values[i]).cloneMe() ); 234 it.businesslogic.ireport.gui.MainFrame.getMainInstance().setChartSeriesClipBoard(copy_c); 235 } 237 private void jMenuItemPasteActionPerformed(java.awt.event.ActionEvent evt) { 239 Vector v = it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard(); 240 241 if (v != null && v.size() > 0) 242 { 243 for (int i=0; i<v.size(); ++i) 244 { 245 if (v.elementAt(i) instanceof CategorySeries) 246 { 247 CategorySeries cs = (CategorySeries)v.elementAt(i); 248 cs = cs.cloneMe(); 249 categoryDataset.getCategorySeries().addElement(cs); 250 ((javax.swing.DefaultListModel )jList1.getModel()).addElement(cs); 251 } 252 } 253 } 254 255 256 } 258 private void jButtonModifyActionPerformed(java.awt.event.ActionEvent evt) { 260 if (jList1.getSelectedIndex() >= 0) 261 { 262 CategorySeries cs = (CategorySeries)jList1.getSelectedValue(); 263 CategorySeriesDialog csd = new CategorySeriesDialog(it.businesslogic.ireport.gui.MainFrame.getMainInstance() ,true); 264 265 csd.setSeriesExpression( cs.getSeriesExpression() ); 266 csd.setCategoryExpression( cs.getCategoryExpression() ); 267 csd.setValueExpression( cs.getValueExpression() ); 268 csd.setLabelExpression( cs.getLabelExpression() ); 269 csd.setSectionItemHyperlink( cs.getSectionItemHyperlink() ); 270 csd.setSubDataset( this.getSubDataset() ); 271 csd.setVisible(true); 272 273 274 if (csd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 275 { 276 cs.setSeriesExpression( csd.getSeriesExpression() ); 277 cs.setCategoryExpression( csd.getCategoryExpression() ); 278 cs.setValueExpression( csd.getValueExpression() ); 279 cs.setLabelExpression( csd.getLabelExpression() ); 280 cs.setSectionItemHyperlink( csd.getSectionItemHyperlink() ); 281 282 jList1.updateUI(); 283 } 284 285 } 286 } 288 private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) { 290 CategorySeriesDialog csd = new CategorySeriesDialog(it.businesslogic.ireport.gui.MainFrame.getMainInstance() ,true); 291 csd.setSubDataset( this.getSubDataset() ); 292 csd.setVisible(true); 293 if (csd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 294 { 295 CategorySeries cs = new CategorySeries(); 296 cs.setSeriesExpression( csd.getSeriesExpression() ); 297 cs.setCategoryExpression( csd.getCategoryExpression() ); 298 cs.setValueExpression( csd.getValueExpression() ); 299 cs.setLabelExpression( csd.getLabelExpression() ); 300 cs.setSectionItemHyperlink( csd.getSectionItemHyperlink() ); 301 302 categoryDataset.getCategorySeries().addElement(cs); 303 ((javax.swing.DefaultListModel )jList1.getModel()).addElement(cs); 304 } 305 306 } 308 private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent evt) { 310 while (jList1.getSelectedIndex() >= 0) 311 { 312 categoryDataset.getCategorySeries().remove( jList1.getSelectedValue() ); 313 ((javax.swing.DefaultListModel )jList1.getModel()).removeElementAt(jList1.getSelectedIndex()); 314 } 315 316 } 318 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 320 if (jList1.getSelectedIndex() >= 0) 321 { 322 jButtonModify.setEnabled( true ); 323 jButtonModify.setEnabled( true ); 324 } 325 else 326 { 327 jButtonModify.setEnabled( false ); 328 jButtonModify.setEnabled( false ); 329 } 330 } 332 333 private javax.swing.JButton jButtonAdd; 335 private javax.swing.JButton jButtonModify; 336 private javax.swing.JButton jButtonRemove; 337 private javax.swing.JLabel jLabel1; 338 private javax.swing.JList jList1; 339 private javax.swing.JMenuItem jMenuItemCopy; 340 private javax.swing.JMenuItem jMenuItemPaste; 341 private javax.swing.JPanel jPanel1; 342 private javax.swing.JPanel jPanel2; 343 private javax.swing.JPopupMenu jPopupMenuCategorySeries; 344 private javax.swing.JScrollPane jScrollPane1; 345 347 public void applyI18n() 348 { 349 jLabel1.setText(I18n.getString("categoryDatasetPanel.label1","Category series")); 353 jButtonAdd.setText(it.businesslogic.ireport.util.I18n.getString("charts.newseries", "Add series")); 355 jButtonModify.setText(it.businesslogic.ireport.util.I18n.getString("charts.modifyseries", "Modify series")); 356 jButtonRemove.setText(it.businesslogic.ireport.util.I18n.getString("charts.removeseries", "Remove series")); 357 358 jMenuItemCopy.setText(it.businesslogic.ireport.util.I18n.getString("charts.copyseries", "Copy series")); 359 jMenuItemPaste.setText(it.businesslogic.ireport.util.I18n.getString("charts.pasteseries", "Paste series")); 360 361 this.updateUI(); 362 363 } 364 365 public SubDataset getSubDataset() { 366 return subDataset; 367 } 368 369 public void setSubDataset(SubDataset subDataset) { 370 this.subDataset = subDataset; 371 } 372 373 374 } 375 | Popular Tags |