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 XYZDatasetPanel extends javax.swing.JPanel implements ChartDatasetPanel { 42 43 private XYZDataset xyzDataset = null; 44 private SubDataset subDataset = null; 45 46 47 public XYZDatasetPanel() { 48 initComponents(); 49 applyI18n(); 50 jList1.setModel( new javax.swing.DefaultListModel ()); 51 } 52 53 public void setXYZDataset(XYZDataset xyzDataset) { 54 this.xyzDataset = xyzDataset; 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 = xyzDataset.getXYZSeries(); 63 64 for (int i=0; i< v.size(); ++i) 65 { 66 lm.addElement(v.elementAt(i) ); 67 } 68 69 } 70 71 public XYZDataset getXYZDataset() { 72 return xyzDataset; 73 } 74 75 76 81 private void initComponents() { 83 java.awt.GridBagConstraints gridBagConstraints; 84 85 jPopupMenuSeries = 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 jPopupMenuSeries.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 jPopupMenuSeries.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 }); 127 128 jScrollPane1.setViewportView(jList1); 129 130 gridBagConstraints = new java.awt.GridBagConstraints (); 131 gridBagConstraints.gridy = 1; 132 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 133 gridBagConstraints.weightx = 1.0; 134 gridBagConstraints.weighty = 1.0; 135 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 136 add(jScrollPane1, gridBagConstraints); 137 138 jPanel1.setLayout(new java.awt.GridBagLayout ()); 139 140 jPanel1.setMinimumSize(new java.awt.Dimension (100, 0)); 141 jPanel1.setPreferredSize(new java.awt.Dimension (100, 0)); 142 jButtonAdd.setText("Add"); 143 jButtonAdd.addActionListener(new java.awt.event.ActionListener () { 144 public void actionPerformed(java.awt.event.ActionEvent evt) { 145 jButtonAddActionPerformed(evt); 146 } 147 }); 148 149 gridBagConstraints = new java.awt.GridBagConstraints (); 150 gridBagConstraints.gridy = 0; 151 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 152 gridBagConstraints.weightx = 1.0; 153 gridBagConstraints.insets = new java.awt.Insets (4, 0, 0, 4); 154 jPanel1.add(jButtonAdd, gridBagConstraints); 155 156 jButtonModify.setText("Modify"); 157 jButtonModify.addActionListener(new java.awt.event.ActionListener () { 158 public void actionPerformed(java.awt.event.ActionEvent evt) { 159 jButtonModifyActionPerformed(evt); 160 } 161 }); 162 163 gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.gridy = 1; 165 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 166 gridBagConstraints.weightx = 1.0; 167 gridBagConstraints.insets = new java.awt.Insets (2, 0, 0, 4); 168 jPanel1.add(jButtonModify, gridBagConstraints); 169 170 jButtonRemove.setText("Remove"); 171 jButtonRemove.addActionListener(new java.awt.event.ActionListener () { 172 public void actionPerformed(java.awt.event.ActionEvent evt) { 173 jButtonRemoveActionPerformed(evt); 174 } 175 }); 176 177 gridBagConstraints = new java.awt.GridBagConstraints (); 178 gridBagConstraints.gridy = 2; 179 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 180 gridBagConstraints.weightx = 1.0; 181 gridBagConstraints.insets = new java.awt.Insets (2, 0, 0, 4); 182 jPanel1.add(jButtonRemove, gridBagConstraints); 183 184 gridBagConstraints = new java.awt.GridBagConstraints (); 185 gridBagConstraints.gridy = 99; 186 gridBagConstraints.weighty = 1.0; 187 jPanel1.add(jPanel2, gridBagConstraints); 188 189 gridBagConstraints = new java.awt.GridBagConstraints (); 190 gridBagConstraints.gridy = 1; 191 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 192 add(jPanel1, gridBagConstraints); 193 194 jLabel1.setText("XYZ series"); 195 gridBagConstraints = new java.awt.GridBagConstraints (); 196 gridBagConstraints.gridwidth = 2; 197 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 198 gridBagConstraints.weightx = 1.0; 199 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 200 add(jLabel1, gridBagConstraints); 201 202 } 204 private void jList1MouseClicked(java.awt.event.MouseEvent evt) { if (evt.getClickCount() == 1 && evt.getButton() == evt.BUTTON3) 206 { 207 jMenuItemCopy.setEnabled(jList1.getSelectedIndex() >= 0); 208 jMenuItemPaste.setEnabled( it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard() != null && 209 it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard().size() > 0); 210 211 jPopupMenuSeries.show(jList1, evt.getPoint().x, evt.getPoint().y); 212 } 213 else if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1) 214 { 215 jButtonModifyActionPerformed(null); 216 } 217 } 219 private void jMenuItemPasteActionPerformed(java.awt.event.ActionEvent evt) { Vector v = it.businesslogic.ireport.gui.MainFrame.getMainInstance().getChartSeriesClipBoard(); 221 222 if (v != null && v.size() > 0) 223 { 224 for (int i=0; i<v.size(); ++i) 225 { 226 if (v.elementAt(i) instanceof XYZSeries) 227 { 228 XYZSeries cs = (XYZSeries)v.elementAt(i); 229 cs = cs.cloneMe(); 230 getXYZDataset().getXYZSeries().addElement(cs); 231 ((javax.swing.DefaultListModel )jList1.getModel()).addElement(cs); 232 } 233 } 234 jList1.updateUI(); 235 } 236 } 238 private void jMenuItemCopyActionPerformed(java.awt.event.ActionEvent evt) { Object [] values = jList1.getSelectedValues(); 240 Vector copy_c = new Vector(); 241 for (int i=0; i<values.length; ++i) copy_c.add( ((XYZSeries)values[i]).cloneMe() ); 242 it.businesslogic.ireport.gui.MainFrame.getMainInstance().setChartSeriesClipBoard(copy_c); 243 } 245 private void jButtonModifyActionPerformed(java.awt.event.ActionEvent evt) { 247 if (jList1.getSelectedIndex() >= 0) 248 { 249 XYZSeries cs = (XYZSeries)jList1.getSelectedValue(); 250 XYZSeriesDialog csd = new XYZSeriesDialog(it.businesslogic.ireport.gui.MainFrame.getMainInstance() ,true); 251 252 csd.setSeriesExpression( cs.getSeriesExpression() ); 253 csd.setXValueExpression( cs.getXValueExpression() ); 254 csd.setYValueExpression( cs.getYValueExpression() ); 255 csd.setZValueExpression( cs.getZValueExpression() ); 256 csd.setSectionItemHyperlink( cs.getSectionItemHyperlink() ); 257 258 csd.setSubDataset( this.getSubDataset() ); 259 csd.setVisible(true); 260 261 if (csd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 262 { 263 cs.setSeriesExpression( csd.getSeriesExpression() ); 264 cs.setXValueExpression( csd.getXValueExpression() ); 265 cs.setYValueExpression( csd.getYValueExpression() ); 266 cs.setZValueExpression( csd.getZValueExpression() ); 267 cs.setSectionItemHyperlink( csd.getSectionItemHyperlink() ); 268 269 jList1.updateUI(); 270 } 271 272 } 273 } 275 private void jButtonAddActionPerformed(java.awt.event.ActionEvent evt) { 277 XYZSeriesDialog csd = new XYZSeriesDialog(it.businesslogic.ireport.gui.MainFrame.getMainInstance() ,true); 278 csd.setSubDataset( this.getSubDataset() ); 279 csd.setVisible(true); 280 281 if (csd.getDialogResult() == javax.swing.JOptionPane.OK_OPTION) 282 { 283 XYZSeries cs = new XYZSeries(); 284 cs.setSeriesExpression( csd.getSeriesExpression() ); 285 cs.setXValueExpression( csd.getXValueExpression() ); 286 cs.setYValueExpression( csd.getYValueExpression() ); 287 cs.setZValueExpression( csd.getZValueExpression() ); 288 cs.setSectionItemHyperlink( csd.getSectionItemHyperlink() ); 289 290 getXYZDataset().getXYZSeries().addElement(cs); 291 ((javax.swing.DefaultListModel )jList1.getModel()).addElement(cs); 292 } 293 294 } 296 private void jButtonRemoveActionPerformed(java.awt.event.ActionEvent evt) { 298 while (jList1.getSelectedIndex() >= 0) 299 { 300 getXYZDataset().getXYZSeries().remove( jList1.getSelectedValue() ); 301 ((javax.swing.DefaultListModel )jList1.getModel()).removeElementAt(jList1.getSelectedIndex()); 302 } 303 304 } 306 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 308 if (jList1.getSelectedIndex() >= 0) 309 { 310 jButtonModify.setEnabled( true ); 311 jButtonModify.setEnabled( true ); 312 } 313 else 314 { 315 jButtonModify.setEnabled( false ); 316 jButtonModify.setEnabled( false ); 317 } 318 } 320 321 private javax.swing.JButton jButtonAdd; 323 private javax.swing.JButton jButtonModify; 324 private javax.swing.JButton jButtonRemove; 325 private javax.swing.JLabel jLabel1; 326 private javax.swing.JList jList1; 327 private javax.swing.JMenuItem jMenuItemCopy; 328 private javax.swing.JMenuItem jMenuItemPaste; 329 private javax.swing.JPanel jPanel1; 330 private javax.swing.JPanel jPanel2; 331 private javax.swing.JPopupMenu jPopupMenuSeries; 332 private javax.swing.JScrollPane jScrollPane1; 333 335 public void applyI18n() 336 { 337 jLabel1.setText(I18n.getString("xYZDatasetPanel.label1","XYZ series")); 341 jButtonAdd.setText(it.businesslogic.ireport.util.I18n.getString("charts.newseries", "Add series")); 343 jButtonModify.setText(it.businesslogic.ireport.util.I18n.getString("charts.modifyseries", "Modify series")); 344 jButtonRemove.setText(it.businesslogic.ireport.util.I18n.getString("charts.removeseries", "Remove series")); 345 346 jMenuItemCopy.setText(it.businesslogic.ireport.util.I18n.getString("charts.copyseries", "Copy series")); 347 jMenuItemPaste.setText(it.businesslogic.ireport.util.I18n.getString("charts.pasteseries", "Paste series")); 348 349 this.updateUI(); 350 } 351 352 public SubDataset getSubDataset() { 353 return subDataset; 354 } 355 356 public void setSubDataset(SubDataset subDataset) { 357 this.subDataset = subDataset; 358 } 359 360 361 } 362 | Popular Tags |