1 32 33 package it.businesslogic.ireport.gui.sheet; 34 35 import it.businesslogic.ireport.chart.SeriesColor; 36 import it.businesslogic.ireport.util.Misc; 37 import java.awt.Color ; 38 import javax.swing.DefaultListModel ; 39 import javax.swing.JColorChooser ; 40 import javax.swing.JOptionPane ; 41 import it.businesslogic.ireport.util.I18n; 42 43 47 public class SeriesColorsDialog extends javax.swing.JDialog { 48 49 private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 50 private java.util.List seriescolors = null; 51 52 public static java.util.List clipboard = new java.util.ArrayList (); 53 public static java.util.List lastSeries = new java.util.ArrayList (); 54 55 56 public SeriesColorsDialog(java.awt.Frame parent, boolean modal) { 57 super(parent, modal); 58 initAll(); 59 60 61 } 62 63 64 public SeriesColorsDialog(java.awt.Dialog parent, boolean modal) { 65 super(parent, modal); 66 initAll(); 67 } 68 69 public void initAll() 70 { 71 initComponents(); 72 73 jList1.setModel(new DefaultListModel ()); 74 jList1.setCellRenderer(new ColorsListCellRenderer()); 75 76 jList1ValueChanged(null); 77 78 jButtonPasteSeries.setEnabled( clipboard.size() > 0 ); 79 jButtonUseLast.setEnabled( lastSeries.size() > 0 ); 80 applyI18n(); 81 this.pack(); 82 Misc.centerFrame(this); 83 } 84 85 86 87 88 93 private void initComponents() { 95 java.awt.GridBagConstraints gridBagConstraints; 96 97 jScrollPane1 = new javax.swing.JScrollPane (); 98 jList1 = new javax.swing.JList (); 99 jPanel2 = new javax.swing.JPanel (); 100 jButtonAddColor = new javax.swing.JButton (); 101 jButtonModify = new javax.swing.JButton (); 102 jButtonDelete = new javax.swing.JButton (); 103 jButtonMoveUp = new javax.swing.JButton (); 104 jButtonMoveDown = new javax.swing.JButton (); 105 jButtonCopySeries = new javax.swing.JButton (); 106 jButtonPasteSeries = new javax.swing.JButton (); 107 jButtonUseLast = new javax.swing.JButton (); 108 jButtonRandomColor = new javax.swing.JButton (); 109 jSeparator1 = new javax.swing.JSeparator (); 110 jPanel1 = new javax.swing.JPanel (); 111 jButtonOk = new javax.swing.JButton (); 112 jButtonCancel = new javax.swing.JButton (); 113 114 getContentPane().setLayout(new java.awt.GridBagLayout ()); 115 116 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 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.fill = java.awt.GridBagConstraints.BOTH; 132 gridBagConstraints.weightx = 1.0; 133 gridBagConstraints.weighty = 1.0; 134 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 135 getContentPane().add(jScrollPane1, gridBagConstraints); 136 137 jPanel2.setLayout(new java.awt.GridBagLayout ()); 138 139 jPanel2.setMinimumSize(new java.awt.Dimension (150, 150)); 140 jPanel2.setPreferredSize(new java.awt.Dimension (100, 283)); 141 jButtonAddColor.setText("Add"); 142 jButtonAddColor.setMargin(new java.awt.Insets (2, 8, 2, 8)); 143 jButtonAddColor.addActionListener(new java.awt.event.ActionListener () { 144 public void actionPerformed(java.awt.event.ActionEvent evt) { 145 jButtonAddColorActionPerformed(evt); 146 } 147 }); 148 149 gridBagConstraints = new java.awt.GridBagConstraints (); 150 gridBagConstraints.gridx = 0; 151 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 152 gridBagConstraints.weightx = 1.0; 153 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 154 jPanel2.add(jButtonAddColor, gridBagConstraints); 155 156 jButtonModify.setText("Modify"); 157 jButtonModify.setEnabled(false); 158 jButtonModify.setMargin(new java.awt.Insets (2, 8, 2, 8)); 159 jButtonModify.addActionListener(new java.awt.event.ActionListener () { 160 public void actionPerformed(java.awt.event.ActionEvent evt) { 161 jButtonModifyActionPerformed(evt); 162 } 163 }); 164 165 gridBagConstraints = new java.awt.GridBagConstraints (); 166 gridBagConstraints.gridx = 0; 167 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 168 gridBagConstraints.weightx = 1.0; 169 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 170 jPanel2.add(jButtonModify, gridBagConstraints); 171 172 jButtonDelete.setText("Delete"); 173 jButtonDelete.setEnabled(false); 174 jButtonDelete.setMargin(new java.awt.Insets (2, 8, 2, 8)); 175 jButtonDelete.addActionListener(new java.awt.event.ActionListener () { 176 public void actionPerformed(java.awt.event.ActionEvent evt) { 177 jButtonDeleteActionPerformed(evt); 178 } 179 }); 180 181 gridBagConstraints = new java.awt.GridBagConstraints (); 182 gridBagConstraints.gridx = 0; 183 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 184 gridBagConstraints.weightx = 1.0; 185 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 186 jPanel2.add(jButtonDelete, gridBagConstraints); 187 188 jButtonMoveUp.setText("Move up"); 189 jButtonMoveUp.setEnabled(false); 190 jButtonMoveUp.setMargin(new java.awt.Insets (2, 8, 2, 8)); 191 jButtonMoveUp.addActionListener(new java.awt.event.ActionListener () { 192 public void actionPerformed(java.awt.event.ActionEvent evt) { 193 jButtonMoveUpActionPerformed(evt); 194 } 195 }); 196 197 gridBagConstraints = new java.awt.GridBagConstraints (); 198 gridBagConstraints.gridx = 0; 199 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 200 gridBagConstraints.weightx = 1.0; 201 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 202 jPanel2.add(jButtonMoveUp, gridBagConstraints); 203 204 jButtonMoveDown.setText("Move down"); 205 jButtonMoveDown.setEnabled(false); 206 jButtonMoveDown.setMargin(new java.awt.Insets (2, 8, 2, 8)); 207 jButtonMoveDown.addActionListener(new java.awt.event.ActionListener () { 208 public void actionPerformed(java.awt.event.ActionEvent evt) { 209 jButtonMoveDownActionPerformed(evt); 210 } 211 }); 212 213 gridBagConstraints = new java.awt.GridBagConstraints (); 214 gridBagConstraints.gridx = 0; 215 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 216 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 217 gridBagConstraints.weightx = 1.0; 218 gridBagConstraints.insets = new java.awt.Insets (0, 4, 14, 4); 219 jPanel2.add(jButtonMoveDown, gridBagConstraints); 220 221 jButtonCopySeries.setText("Copy series"); 222 jButtonCopySeries.setMargin(new java.awt.Insets (2, 8, 2, 8)); 223 jButtonCopySeries.addActionListener(new java.awt.event.ActionListener () { 224 public void actionPerformed(java.awt.event.ActionEvent evt) { 225 jButtonCopySeriesActionPerformed(evt); 226 } 227 }); 228 229 gridBagConstraints = new java.awt.GridBagConstraints (); 230 gridBagConstraints.gridx = 0; 231 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 232 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 233 gridBagConstraints.weightx = 1.0; 234 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 235 jPanel2.add(jButtonCopySeries, gridBagConstraints); 236 237 jButtonPasteSeries.setText("Paste series"); 238 jButtonPasteSeries.setEnabled(false); 239 jButtonPasteSeries.setMargin(new java.awt.Insets (2, 8, 2, 8)); 240 jButtonPasteSeries.addActionListener(new java.awt.event.ActionListener () { 241 public void actionPerformed(java.awt.event.ActionEvent evt) { 242 jButtonPasteSeriesActionPerformed(evt); 243 } 244 }); 245 246 gridBagConstraints = new java.awt.GridBagConstraints (); 247 gridBagConstraints.gridx = 0; 248 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 249 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 250 gridBagConstraints.weightx = 1.0; 251 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 252 jPanel2.add(jButtonPasteSeries, gridBagConstraints); 253 254 jButtonUseLast.setText("Use the last"); 255 jButtonUseLast.setEnabled(false); 256 jButtonUseLast.setMargin(new java.awt.Insets (2, 8, 2, 8)); 257 jButtonUseLast.addActionListener(new java.awt.event.ActionListener () { 258 public void actionPerformed(java.awt.event.ActionEvent evt) { 259 jButtonUseLastActionPerformed(evt); 260 } 261 }); 262 263 gridBagConstraints = new java.awt.GridBagConstraints (); 264 gridBagConstraints.gridx = 0; 265 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 266 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 267 gridBagConstraints.weightx = 1.0; 268 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 269 jPanel2.add(jButtonUseLast, gridBagConstraints); 270 271 jButtonRandomColor.setText("Random color"); 272 jButtonRandomColor.setMargin(new java.awt.Insets (2, 8, 2, 8)); 273 jButtonRandomColor.addActionListener(new java.awt.event.ActionListener () { 274 public void actionPerformed(java.awt.event.ActionEvent evt) { 275 jButtonRandomColorActionPerformed(evt); 276 } 277 }); 278 279 gridBagConstraints = new java.awt.GridBagConstraints (); 280 gridBagConstraints.gridx = 0; 281 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 282 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; 283 gridBagConstraints.weightx = 1.0; 284 gridBagConstraints.weighty = 1.0; 285 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 286 jPanel2.add(jButtonRandomColor, gridBagConstraints); 287 288 gridBagConstraints = new java.awt.GridBagConstraints (); 289 gridBagConstraints.gridx = 1; 290 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 291 gridBagConstraints.insets = new java.awt.Insets (4, 0, 4, 4); 292 getContentPane().add(jPanel2, gridBagConstraints); 293 294 jSeparator1.setMinimumSize(new java.awt.Dimension (0, 2)); 295 jSeparator1.setPreferredSize(new java.awt.Dimension (3, 2)); 296 gridBagConstraints = new java.awt.GridBagConstraints (); 297 gridBagConstraints.gridx = 0; 298 gridBagConstraints.gridwidth = 2; 299 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 300 getContentPane().add(jSeparator1, gridBagConstraints); 301 302 jPanel1.setLayout(new java.awt.GridBagLayout ()); 303 304 jPanel1.setPreferredSize(new java.awt.Dimension (320, 23)); 305 jButtonOk.setText("OK"); 306 jButtonOk.addActionListener(new java.awt.event.ActionListener () { 307 public void actionPerformed(java.awt.event.ActionEvent evt) { 308 jButtonOkActionPerformed(evt); 309 } 310 }); 311 312 gridBagConstraints = new java.awt.GridBagConstraints (); 313 gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; 314 gridBagConstraints.weightx = 1.0; 315 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 316 jPanel1.add(jButtonOk, gridBagConstraints); 317 318 jButtonCancel.setText("Cancel"); 319 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 320 public void actionPerformed(java.awt.event.ActionEvent evt) { 321 jButtonCancelActionPerformed(evt); 322 } 323 }); 324 325 jPanel1.add(jButtonCancel, new java.awt.GridBagConstraints ()); 326 327 gridBagConstraints = new java.awt.GridBagConstraints (); 328 gridBagConstraints.gridx = 0; 329 gridBagConstraints.gridwidth = 2; 330 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 331 gridBagConstraints.weightx = 1.0; 332 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 333 getContentPane().add(jPanel1, gridBagConstraints); 334 335 pack(); 336 } 338 private void jButtonUseLastActionPerformed(java.awt.event.ActionEvent evt) { 340 DefaultListModel dtm = ((DefaultListModel )jList1.getModel()); 341 if (lastSeries.size() > 0) 342 { 343 for (int i=0; i<lastSeries.size(); ++i) 344 { 345 dtm.addElement( new Color( ((Color)lastSeries.get(i)).getRGB() )); 346 } 347 } 348 349 } 351 private void jButtonPasteSeriesActionPerformed(java.awt.event.ActionEvent evt) { 353 DefaultListModel dtm = ((DefaultListModel )jList1.getModel()); 354 if (clipboard.size() > 0) 355 { 356 for (int i=0; i<clipboard.size(); ++i) 357 { 358 dtm.addElement( new Color( ((Color)clipboard.get(i)).getRGB() )); 359 } 360 } 361 362 363 } 365 private void jButtonCopySeriesActionPerformed(java.awt.event.ActionEvent evt) { 367 DefaultListModel dtm = ((DefaultListModel )jList1.getModel()); 368 if (dtm.size() > 0) 369 { 370 clipboard.clear(); 371 for (int i=0; i<dtm.size(); ++i) 372 { 373 clipboard.add( new Color( ((Color)dtm.get(i)).getRGB() )); 374 } 375 } 376 377 jButtonPasteSeries.setEnabled(true); 378 } 380 private void jButtonRandomColorActionPerformed(java.awt.event.ActionEvent evt) { 382 Color c = new Color((int)(Math.random() * 255), (int)(Math.random() * 255), (int)(Math.random() * 255) ); 383 DefaultListModel dtm = ((DefaultListModel )jList1.getModel()); 384 dtm.addElement(c); 385 386 } 388 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { 390 setDialogResult( JOptionPane.CANCEL_OPTION); 391 setVisible(false); 392 dispose(); 393 394 } 396 private void jButtonOkActionPerformed(java.awt.event.ActionEvent evt) { 398 399 java.util.List temp_list = new java.util.ArrayList (); 400 401 DefaultListModel dtm = ((DefaultListModel )jList1.getModel()); 402 403 lastSeries.clear(); 404 405 for (int i=0; i<dtm.size(); ++i) 406 { 407 SeriesColor sc = new SeriesColor(); 408 sc.setSeriesOrder(i); 409 sc.setColor( (java.awt.Color )dtm.get(i) ); 410 411 temp_list.add(sc); 412 lastSeries.add( (java.awt.Color )dtm.get(i) ); 413 } 414 415 416 setSeriescolors(temp_list); 417 setDialogResult(JOptionPane.OK_OPTION); 418 this.setVisible(false); 419 this.dispose(); 420 421 } 423 private void jButtonMoveDownActionPerformed(java.awt.event.ActionEvent evt) { if (jList1.getSelectedValues() != null) 425 { 426 int[] indices = jList1.getSelectedIndices(); 427 for (int i=indices.length-1; i>=0; --i) 428 { 429 if (indices[i] >= ((DefaultListModel )jList1.getModel()).size() -1 ) continue; 430 431 Object val = ((DefaultListModel )jList1.getModel()).remove( indices[i] ); 432 ((DefaultListModel )jList1.getModel()).insertElementAt(val, indices[i]+1); 433 indices[i]++; 434 } 435 jList1.setSelectedIndices(indices); 436 437 } 438 } 440 private void jButtonMoveUpActionPerformed(java.awt.event.ActionEvent evt) { if (jList1.getSelectedValues() != null) 442 { 443 int[] indices = jList1.getSelectedIndices(); 444 for (int i=0; i<indices.length; ++i) 445 { 446 if (indices[i] == 0) continue; 447 Object val = ((DefaultListModel )jList1.getModel()).remove( indices[i] ); 448 ((DefaultListModel )jList1.getModel()).insertElementAt(val, indices[i]-1); 449 indices[i]--; 450 } 451 jList1.setSelectedIndices(indices); 452 } 453 } 455 private void jList1ValueChanged(javax.swing.event.ListSelectionEvent evt) { 457 458 if (jList1.getSelectedIndex() >= 0) 459 { 460 jButtonDelete.setEnabled(true); 461 jButtonModify.setEnabled(true); 462 jButtonMoveUp.setEnabled(jList1.getSelectedIndex() > 0); 463 jButtonMoveDown.setEnabled(jList1.getSelectedIndex() < ((DefaultListModel )jList1.getModel()).size()-1); 464 } 465 else 466 { 467 jButtonModify.setEnabled(false); 468 jButtonDelete.setEnabled(false); 469 jButtonMoveUp.setEnabled(false); 470 jButtonMoveDown.setEnabled(false); 471 } 472 473 } 475 private void jList1MouseClicked(java.awt.event.MouseEvent evt) { 477 if (evt.getButton() == evt.BUTTON1 && evt.getClickCount() == 2) 478 { 479 jButtonModifyActionPerformed(null); 480 } 481 482 } 484 private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent evt) { 486 487 int[] indexes = jList1.getSelectedIndices(); 488 489 for (int i=indexes.length-1; i>=0; --i) 490 { 491 ((DefaultListModel )jList1.getModel()).removeElementAt(indexes[i]); 492 } 493 494 495 } 497 private void jButtonModifyActionPerformed(java.awt.event.ActionEvent evt) { 499 int index = jList1.getSelectedIndex(); 500 if (index >=0) 501 { 502 java.awt.Color c = (java.awt.Color )jList1.getSelectedValue(); 503 JColorChooser cc = new JColorChooser (); 504 c = cc.showDialog(this,"Pick a color",c); 505 if (c != null) 506 { 507 ((DefaultListModel )jList1.getModel()).setElementAt(c, index); 508 } 509 } 510 511 } 513 private void jButtonAddColorActionPerformed(java.awt.event.ActionEvent evt) { 515 JColorChooser cc = new JColorChooser (); 516 java.awt.Color c = cc.showDialog(this,"Pick a color",null); 517 if (c != null) 518 { 519 ((DefaultListModel )jList1.getModel()).addElement(c); 520 } 521 522 523 524 525 526 } 528 531 public static void main(String args[]) { 532 java.awt.EventQueue.invokeLater(new Runnable () { 533 public void run() { 534 new SeriesColorsDialog(new javax.swing.JFrame (), true).setVisible(true); 535 } 536 }); 537 } 538 539 public int getDialogResult() { 540 return dialogResult; 541 } 542 543 public void setDialogResult(int dialogResult) { 544 this.dialogResult = dialogResult; 545 } 546 547 public java.util.List getSeriescolors() { 548 return seriescolors; 549 } 550 551 public void setSeriescolors(java.util.List seriescolors) { 552 this.seriescolors = seriescolors; 553 554 DefaultListModel dlm = (DefaultListModel )jList1.getModel(); 555 dlm.removeAllElements(); 556 557 for (int i=0; i<seriescolors.size(); ++i) 558 { 559 SeriesColor c = (SeriesColor)seriescolors.get(i); 560 dlm.addElement(c.getColor()); 561 } 562 } 563 564 private javax.swing.JButton jButtonAddColor; 566 private javax.swing.JButton jButtonCancel; 567 private javax.swing.JButton jButtonCopySeries; 568 private javax.swing.JButton jButtonDelete; 569 private javax.swing.JButton jButtonModify; 570 private javax.swing.JButton jButtonMoveDown; 571 private javax.swing.JButton jButtonMoveUp; 572 private javax.swing.JButton jButtonOk; 573 private javax.swing.JButton jButtonPasteSeries; 574 private javax.swing.JButton jButtonRandomColor; 575 private javax.swing.JButton jButtonUseLast; 576 private javax.swing.JList jList1; 577 private javax.swing.JPanel jPanel1; 578 private javax.swing.JPanel jPanel2; 579 private javax.swing.JScrollPane jScrollPane1; 580 private javax.swing.JSeparator jSeparator1; 581 583 public void applyI18n(){ 584 jButtonAddColor.setText(I18n.getString("seriesColorsDialog.buttonAddColor","Add")); 586 jButtonCancel.setText(I18n.getString("seriesColorsDialog.buttonCancel","Cancel")); 587 jButtonCopySeries.setText(I18n.getString("seriesColorsDialog.buttonCopySeries","Copy series")); 588 jButtonDelete.setText(I18n.getString("seriesColorsDialog.buttonDelete","Delete")); 589 jButtonModify.setText(I18n.getString("seriesColorsDialog.buttonModify","Modify")); 590 jButtonMoveDown.setText(I18n.getString("seriesColorsDialog.buttonMoveDown","Move down")); 591 jButtonMoveUp.setText(I18n.getString("seriesColorsDialog.buttonMoveUp","Move up")); 592 jButtonOk.setText(I18n.getString("seriesColorsDialog.buttonOk","OK")); 593 jButtonPasteSeries.setText(I18n.getString("seriesColorsDialog.buttonPasteSeries","Paste series")); 594 jButtonRandomColor.setText(I18n.getString("seriesColorsDialog.buttonRandomColor","Random color")); 595 jButtonUseLast.setText(I18n.getString("seriesColorsDialog.buttonUseLast","Use the last")); 596 } 598 } 599 | Popular Tags |