001/* =========================================================== 002 * JFreeChart : a free chart library for the Java(tm) platform 003 * =========================================================== 004 * 005 * (C) Copyright 2000-2013, by Object Refinery Limited and Contributors. 006 * 007 * Project Info: http://www.jfree.org/jfreechart/index.html 008 * 009 * This library is free software; you can redistribute it and/or modify it 010 * under the terms of the GNU Lesser General Public License as published by 011 * the Free Software Foundation; either version 2.1 of the License, or 012 * (at your option) any later version. 013 * 014 * This library is distributed in the hope that it will be useful, but 015 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 016 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 017 * License for more details. 018 * 019 * You should have received a copy of the GNU Lesser General Public 020 * License along with this library; if not, write to the Free Software 021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, 022 * USA. 023 * 024 * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 025 * Other names may be trademarks of their respective owners.] 026 * 027 * ------------------- 028 * XYItemRenderer.java 029 * ------------------- 030 * (C) Copyright 2001-2011, by Object Refinery Limited and Contributors. 031 * 032 * Original Author: David Gilbert (for Object Refinery Limited); 033 * Contributor(s): Mark Watson (www.markwatson.com); 034 * Sylvain Vieujot; 035 * Focus Computer Services Limited; 036 * Richard Atkinson; 037 * 038 * Changes 039 * ------- 040 * 19-Oct-2001 : Version 1, based on code by Mark Watson (DG); 041 * 22-Oct-2001 : Renamed DataSource.java --> Dataset.java etc. (DG); 042 * 13-Dec-2001 : Changed return type of drawItem from void --> Shape. The area 043 * returned can be used as the tooltip region. 044 * 23-Jan-2002 : Added DrawInfo parameter to drawItem() method (DG); 045 * 28-Mar-2002 : Added a property change listener mechanism. Now renderers do 046 * not have to be immutable (DG); 047 * 04-Apr-2002 : Added the initialise() method (DG); 048 * 09-Apr-2002 : Removed the translated zero from the drawItem method, it can 049 * be calculated inside the initialise method if it is required. 050 * Added a new getToolTipGenerator() method. Changed the return 051 * type for drawItem() to void (DG); 052 * 24-May-2002 : Added ChartRenderingInfo the initialise method API (DG); 053 * 25-Jun-2002 : Removed redundant import (DG); 054 * 20-Aug-2002 : Added get/setURLGenerator methods to interface (DG); 055 * 02-Oct-2002 : Fixed errors reported by Checkstyle (DG); 056 * 18-Nov-2002 : Added methods for drawing grid lines (DG); 057 * 17-Jan-2003 : Moved plot classes into a separate package (DG); 058 * 27-Jan-2003 : Added shape lookup table (DG); 059 * 05-Jun-2003 : Added domain and range grid bands (sponsored by Focus Computer 060 * Services Ltd) (DG); 061 * 27-Jul-2003 : Added getRangeType() to support stacked XY area charts (RA); 062 * 16-Sep-2003 : Changed ChartRenderingInfo --> PlotRenderingInfo (DG); 063 * 25-Feb-2004 : Replaced CrosshairInfo with CrosshairState. Renamed 064 * XYToolTipGenerator --> XYItemLabelGenerator (DG); 065 * 26-Feb-2004 : Added lots of new methods (DG); 066 * 30-Apr-2004 : Added getRangeExtent() method (DG); 067 * 06-May-2004 : Added methods for controlling item label visibility (DG); 068 * 13-May-2004 : Removed property change listener mechanism (DG); 069 * 18-May-2004 : Added item label font and paint methods (DG); 070 * 10-Sep-2004 : Removed redundant getRangeType() method (DG); 071 * 06-Oct-2004 : Replaced getRangeExtent() with findRangeBounds() and added 072 * findDomainBounds (DG); 073 * 23-Nov-2004 : Changed drawRangeGridLine() --> drawRangeLine() (DG); 074 * 07-Jan-2005 : Removed deprecated method (DG); 075 * 24-Feb-2005 : Now extends LegendItemSource (DG); 076 * 20-Apr-2005 : Renamed XYLabelGenerator --> XYItemLabelGenerator (DG); 077 * ------------- JFREECHART 1.0.x --------------------------------------------- 078 * 19-Apr-2007 : Deprecated seriesVisible and seriesVisibleInLegend flags (DG); 079 * 20-Apr-2007 : Deprecated paint, fillPaint, outlinePaint, stroke, 080 * outlineStroke, shape, itemLabelsVisible, itemLabelFont, 081 * itemLabelPaint, positiveItemLabelPosition, 082 * negativeItemLabelPosition and createEntities override 083 * fields (DG); 084 * 085 */ 086 087package org.jfree.chart.renderer.xy; 088 089import java.awt.Font; 090import java.awt.Graphics2D; 091import java.awt.Paint; 092import java.awt.Shape; 093import java.awt.Stroke; 094import java.awt.geom.Rectangle2D; 095 096import org.jfree.chart.LegendItem; 097import org.jfree.chart.LegendItemSource; 098import org.jfree.chart.annotations.XYAnnotation; 099import org.jfree.chart.axis.ValueAxis; 100import org.jfree.chart.event.RendererChangeEvent; 101import org.jfree.chart.event.RendererChangeListener; 102import org.jfree.chart.labels.ItemLabelPosition; 103import org.jfree.chart.labels.XYItemLabelGenerator; 104import org.jfree.chart.labels.XYSeriesLabelGenerator; 105import org.jfree.chart.labels.XYToolTipGenerator; 106import org.jfree.chart.plot.CrosshairState; 107import org.jfree.chart.plot.Marker; 108import org.jfree.chart.plot.PlotRenderingInfo; 109import org.jfree.chart.plot.XYPlot; 110import org.jfree.chart.urls.XYURLGenerator; 111import org.jfree.data.Range; 112import org.jfree.data.xy.XYDataset; 113import org.jfree.ui.Layer; 114 115/** 116 * Interface for rendering the visual representation of a single (x, y) item on 117 * an {@link XYPlot}. 118 * <p> 119 * To support cloning charts, it is recommended that renderers implement both 120 * the {@link Cloneable} and <code>PublicCloneable</code> interfaces. 121 */ 122public interface XYItemRenderer extends LegendItemSource { 123 124 /** 125 * Returns the plot that this renderer has been assigned to. 126 * 127 * @return The plot. 128 */ 129 public XYPlot getPlot(); 130 131 /** 132 * Sets the plot that this renderer is assigned to. This method will be 133 * called by the plot class...you do not need to call it yourself. 134 * 135 * @param plot the plot. 136 */ 137 public void setPlot(XYPlot plot); 138 139 /** 140 * Returns the number of passes through the data required by the renderer. 141 * 142 * @return The pass count. 143 */ 144 public int getPassCount(); 145 146 /** 147 * Returns the lower and upper bounds (range) of the x-values in the 148 * specified dataset. 149 * 150 * @param dataset the dataset (<code>null</code> permitted). 151 * 152 * @return The range. 153 */ 154 public Range findDomainBounds(XYDataset dataset); 155 156 /** 157 * Returns the lower and upper bounds (range) of the y-values in the 158 * specified dataset. The implementation of this method will take 159 * into account the presentation used by the renderers (for example, 160 * a renderer that "stacks" values will return a bigger range than 161 * a renderer that doesn't). 162 * 163 * @param dataset the dataset (<code>null</code> permitted). 164 * 165 * @return The range (or <code>null</code> if the dataset is 166 * <code>null</code> or empty). 167 */ 168 public Range findRangeBounds(XYDataset dataset); 169 170 /** 171 * Add a renderer change listener. 172 * 173 * @param listener the listener. 174 * 175 * @see #removeChangeListener(RendererChangeListener) 176 */ 177 public void addChangeListener(RendererChangeListener listener); 178 179 /** 180 * Removes a change listener. 181 * 182 * @param listener the listener. 183 * 184 * @see #addChangeListener(RendererChangeListener) 185 */ 186 public void removeChangeListener(RendererChangeListener listener); 187 188 189 //// VISIBLE ////////////////////////////////////////////////////////////// 190 191 /** 192 * Returns a boolean that indicates whether or not the specified item 193 * should be drawn (this is typically used to hide an entire series). 194 * 195 * @param series the series index. 196 * @param item the item index. 197 * 198 * @return A boolean. 199 */ 200 public boolean getItemVisible(int series, int item); 201 202 /** 203 * Returns a boolean that indicates whether or not the specified series 204 * should be drawn (this is typically used to hide an entire series). 205 * 206 * @param series the series index. 207 * 208 * @return A boolean. 209 */ 210 public boolean isSeriesVisible(int series); 211 212 /** 213 * Returns the flag that controls whether a series is visible. 214 * 215 * @param series the series index (zero-based). 216 * 217 * @return The flag (possibly <code>null</code>). 218 * 219 * @see #setSeriesVisible(int, Boolean) 220 */ 221 public Boolean getSeriesVisible(int series); 222 223 /** 224 * Sets the flag that controls whether a series is visible and sends a 225 * {@link RendererChangeEvent} to all registered listeners. 226 * 227 * @param series the series index (zero-based). 228 * @param visible the flag (<code>null</code> permitted). 229 * 230 * @see #getSeriesVisible(int) 231 */ 232 public void setSeriesVisible(int series, Boolean visible); 233 234 /** 235 * Sets the flag that controls whether a series is visible and, if 236 * requested, sends a {@link RendererChangeEvent} to all registered 237 * listeners. 238 * 239 * @param series the series index. 240 * @param visible the flag (<code>null</code> permitted). 241 * @param notify notify listeners? 242 * 243 * @see #getSeriesVisible(int) 244 */ 245 public void setSeriesVisible(int series, Boolean visible, boolean notify); 246 247 /** 248 * Returns the base visibility for all series. 249 * 250 * @return The base visibility. 251 * 252 * @see #setBaseSeriesVisible(boolean) 253 */ 254 public boolean getBaseSeriesVisible(); 255 256 /** 257 * Sets the base visibility and sends a {@link RendererChangeEvent} to all 258 * registered listeners. 259 * 260 * @param visible the flag. 261 * 262 * @see #getBaseSeriesVisible() 263 */ 264 public void setBaseSeriesVisible(boolean visible); 265 266 /** 267 * Sets the base visibility and, if requested, sends 268 * a {@link RendererChangeEvent} to all registered listeners. 269 * 270 * @param visible the visibility. 271 * @param notify notify listeners? 272 * 273 * @see #getBaseSeriesVisible() 274 */ 275 public void setBaseSeriesVisible(boolean visible, boolean notify); 276 277 // SERIES VISIBLE IN LEGEND (not yet respected by all renderers) 278 279 /** 280 * Returns <code>true</code> if the series should be shown in the legend, 281 * and <code>false</code> otherwise. 282 * 283 * @param series the series index. 284 * 285 * @return A boolean. 286 */ 287 public boolean isSeriesVisibleInLegend(int series); 288 289 /** 290 * Returns the flag that controls whether a series is visible in the 291 * legend. This method returns only the "per series" settings - to 292 * incorporate the override and base settings as well, you need to use the 293 * {@link #isSeriesVisibleInLegend(int)} method. 294 * 295 * @param series the series index (zero-based). 296 * 297 * @return The flag (possibly <code>null</code>). 298 * 299 * @see #setSeriesVisibleInLegend(int, Boolean) 300 */ 301 public Boolean getSeriesVisibleInLegend(int series); 302 303 /** 304 * Sets the flag that controls whether a series is visible in the legend 305 * and sends a {@link RendererChangeEvent} to all registered listeners. 306 * 307 * @param series the series index (zero-based). 308 * @param visible the flag (<code>null</code> permitted). 309 * 310 * @see #getSeriesVisibleInLegend(int) 311 */ 312 public void setSeriesVisibleInLegend(int series, Boolean visible); 313 314 /** 315 * Sets the flag that controls whether a series is visible in the legend 316 * and, if requested, sends a {@link RendererChangeEvent} to all registered 317 * listeners. 318 * 319 * @param series the series index. 320 * @param visible the flag (<code>null</code> permitted). 321 * @param notify notify listeners? 322 * 323 * @see #getSeriesVisibleInLegend(int) 324 */ 325 public void setSeriesVisibleInLegend(int series, Boolean visible, 326 boolean notify); 327 328 /** 329 * Returns the base visibility in the legend for all series. 330 * 331 * @return The base visibility. 332 * 333 * @see #setBaseSeriesVisibleInLegend(boolean) 334 */ 335 public boolean getBaseSeriesVisibleInLegend(); 336 337 /** 338 * Sets the base visibility in the legend and sends a 339 * {@link RendererChangeEvent} to all registered listeners. 340 * 341 * @param visible the flag. 342 * 343 * @see #getBaseSeriesVisibleInLegend() 344 */ 345 public void setBaseSeriesVisibleInLegend(boolean visible); 346 347 /** 348 * Sets the base visibility in the legend and, if requested, sends 349 * a {@link RendererChangeEvent} to all registered listeners. 350 * 351 * @param visible the visibility. 352 * @param notify notify listeners? 353 * 354 * @see #getBaseSeriesVisibleInLegend() 355 */ 356 public void setBaseSeriesVisibleInLegend(boolean visible, boolean notify); 357 358 359 //// PAINT //////////////////////////////////////////////////////////////// 360 361 /** 362 * Returns the paint used to color data items as they are drawn. 363 * 364 * @param row the row (or series) index (zero-based). 365 * @param column the column (or category) index (zero-based). 366 * 367 * @return The paint (never <code>null</code>). 368 */ 369 public Paint getItemPaint(int row, int column); 370 371 /** 372 * Returns the paint used to color an item drawn by the renderer. 373 * 374 * @param series the series index (zero-based). 375 * 376 * @return The paint (possibly <code>null</code>). 377 * 378 * @see #setSeriesPaint(int, Paint) 379 */ 380 public Paint getSeriesPaint(int series); 381 382 /** 383 * Sets the paint used for a series and sends a {@link RendererChangeEvent} 384 * to all registered listeners. 385 * 386 * @param series the series index (zero-based). 387 * @param paint the paint (<code>null</code> permitted). 388 * 389 * @see #getSeriesPaint(int) 390 */ 391 public void setSeriesPaint(int series, Paint paint); 392 393 // FIXME: add setSeriesPaint(int, Paint, boolean)? 394 395 /** 396 * Returns the base (or default) paint. 397 * 398 * @return The base paint (never <code>null</code>). 399 * 400 * @see #setBasePaint(Paint) 401 */ 402 public Paint getBasePaint(); 403 404 /** 405 * Sets the base paint and sends a {@link RendererChangeEvent} to all 406 * registered listeners. 407 * 408 * @param paint the paint (<code>null</code> not permitted). 409 * 410 * @see #getBasePaint() 411 */ 412 public void setBasePaint(Paint paint); 413 414 // FIXME: add setBasePaint(int, Paint, boolean)? 415 416// // FILL PAINT 417// 418// /** 419// * Returns the paint used to fill data items as they are drawn. 420// * 421// * @param row the row (or series) index (zero-based). 422// * @param column the column (or category) index (zero-based). 423// * 424// * @return The paint (never <code>null</code>). 425// */ 426// public Paint getItemFillPaint(int row, int column); 427// 428// /** 429// * Returns the paint used to fill an item drawn by the renderer. 430// * 431// * @param series the series index (zero-based). 432// * 433// * @return The paint (possibly <code>null</code>). 434// */ 435// public Paint getSeriesFillPaint(int series); 436// 437// /** 438// * Sets the paint used for a series and sends a 439// * {@link RendererChangeEvent} to all registered listeners. 440// * 441// * @param series the series index (zero-based). 442// * @param paint the paint (<code>null</code> permitted). 443// */ 444// public void setSeriesFillPaint(int series, Paint paint); 445// 446// // FIXME: add setSeriesFillPaint(int, Paint, boolean)? 447// 448// /** 449// * Returns the base paint. 450// * 451// * @return The base paint (never <code>null</code>). 452// */ 453// public Paint getBaseFillPaint(); 454// 455// /** 456// * Sets the base paint and sends a {@link RendererChangeEvent} to all 457// * registered listeners. 458// * 459// * @param paint the paint (<code>null</code> not permitted). 460// */ 461// public void setBaseFillPaint(Paint paint); 462// 463// // FIXME: add setBaseFillPaint(int, Paint, boolean)? 464 465 //// OUTLINE PAINT //////////////////////////////////////////////////////// 466 467 /** 468 * Returns the paint used to outline data items as they are drawn. 469 * 470 * @param row the row (or series) index (zero-based). 471 * @param column the column (or category) index (zero-based). 472 * 473 * @return The paint (never <code>null</code>). 474 */ 475 public Paint getItemOutlinePaint(int row, int column); 476 477 /** 478 * Returns the paint used to outline an item drawn by the renderer. 479 * 480 * @param series the series (zero-based index). 481 * 482 * @return The paint (possibly <code>null</code>). 483 * 484 * @see #setSeriesOutlinePaint(int, Paint) 485 */ 486 public Paint getSeriesOutlinePaint(int series); 487 488 /** 489 * Sets the paint used for a series outline and sends a 490 * {@link RendererChangeEvent} to all registered listeners. 491 * 492 * @param series the series index (zero-based). 493 * @param paint the paint (<code>null</code> permitted). 494 * 495 * @see #getSeriesOutlinePaint(int) 496 */ 497 public void setSeriesOutlinePaint(int series, Paint paint); 498 499 // FIXME: add setSeriesOutlinePaint(int, Paint, boolean)? 500 501 /** 502 * Returns the base (or default) outline paint. 503 * 504 * @return The paint (never <code>null</code>). 505 * 506 * @see #setBaseOutlinePaint(Paint) 507 */ 508 public Paint getBaseOutlinePaint(); 509 510 /** 511 * Sets the base outline paint and sends a {@link RendererChangeEvent} to 512 * all registered listeners. 513 * 514 * @param paint the paint (<code>null</code> not permitted). 515 * 516 * @see #getBaseOutlinePaint() 517 */ 518 public void setBaseOutlinePaint(Paint paint); 519 520 // FIXME: add setBaseOutlinePaint(Paint, boolean)? 521 522 //// STROKE /////////////////////////////////////////////////////////////// 523 524 /** 525 * Returns the stroke used to draw data items. 526 * 527 * @param row the row (or series) index (zero-based). 528 * @param column the column (or category) index (zero-based). 529 * 530 * @return The stroke (never <code>null</code>). 531 */ 532 public Stroke getItemStroke(int row, int column); 533 534 /** 535 * Returns the stroke used to draw the items in a series. 536 * 537 * @param series the series (zero-based index). 538 * 539 * @return The stroke (possibly <code>null</code>). 540 * 541 * @see #setSeriesStroke(int, Stroke) 542 */ 543 public Stroke getSeriesStroke(int series); 544 545 /** 546 * Sets the stroke used for a series and sends a 547 * {@link RendererChangeEvent} to all registered listeners. 548 * 549 * @param series the series index (zero-based). 550 * @param stroke the stroke (<code>null</code> permitted). 551 * 552 * @see #getSeriesStroke(int) 553 */ 554 public void setSeriesStroke(int series, Stroke stroke); 555 556 // FIXME: add setSeriesStroke(int, Stroke, boolean) ? 557 558 /** 559 * Returns the base (or default) stroke. 560 * 561 * @return The base stroke (never <code>null</code>). 562 * 563 * @see #setBaseStroke(Stroke) 564 */ 565 public Stroke getBaseStroke(); 566 567 /** 568 * Sets the base stroke and sends a {@link RendererChangeEvent} to all 569 * registered listeners. 570 * 571 * @param stroke the stroke (<code>null</code> not permitted). 572 * 573 * @see #getBaseStroke() 574 */ 575 public void setBaseStroke(Stroke stroke); 576 577 // FIXME: add setBaseStroke(Stroke, boolean) ? 578 579 //// OUTLINE STROKE /////////////////////////////////////////////////////// 580 581 /** 582 * Returns the stroke used to outline data items. The default 583 * implementation passes control to the lookupSeriesOutlineStroke method. 584 * You can override this method if you require different behaviour. 585 * 586 * @param row the row (or series) index (zero-based). 587 * @param column the column (or category) index (zero-based). 588 * 589 * @return The stroke (never <code>null</code>). 590 */ 591 public Stroke getItemOutlineStroke(int row, int column); 592 593 /** 594 * Returns the stroke used to outline the items in a series. 595 * 596 * @param series the series (zero-based index). 597 * 598 * @return The stroke (possibly <code>null</code>). 599 * 600 * @see #setSeriesOutlineStroke(int, Stroke) 601 */ 602 public Stroke getSeriesOutlineStroke(int series); 603 604 /** 605 * Sets the outline stroke used for a series and sends a 606 * {@link RendererChangeEvent} to all registered listeners. 607 * 608 * @param series the series index (zero-based). 609 * @param stroke the stroke (<code>null</code> permitted). 610 * 611 * @see #getSeriesOutlineStroke(int) 612 */ 613 public void setSeriesOutlineStroke(int series, Stroke stroke); 614 615 // FIXME: add setSeriesOutlineStroke(int, Stroke, boolean) ? 616 617 /** 618 * Returns the base outline stroke. 619 * 620 * @return The stroke (never <code>null</code>). 621 * 622 * @see #setBaseOutlineStroke(Stroke) 623 */ 624 public Stroke getBaseOutlineStroke(); 625 626 /** 627 * Sets the base outline stroke and sends a {@link RendererChangeEvent} to 628 * all registered listeners. 629 * 630 * @param stroke the stroke (<code>null</code> not permitted). 631 * 632 * @see #getBaseOutlineStroke() 633 */ 634 public void setBaseOutlineStroke(Stroke stroke); 635 636 // FIXME: add setBaseOutlineStroke(Stroke, boolean) ? 637 638 //// SHAPE //////////////////////////////////////////////////////////////// 639 640 /** 641 * Returns a shape used to represent a data item. 642 * 643 * @param row the row (or series) index (zero-based). 644 * @param column the column (or category) index (zero-based). 645 * 646 * @return The shape (never <code>null</code>). 647 */ 648 public Shape getItemShape(int row, int column); 649 650 /** 651 * Returns a shape used to represent the items in a series. 652 * 653 * @param series the series (zero-based index). 654 * 655 * @return The shape (possibly <code>null</code>). 656 * 657 * @see #setSeriesShape(int, Shape) 658 */ 659 public Shape getSeriesShape(int series); 660 661 /** 662 * Sets the shape used for a series and sends a {@link RendererChangeEvent} 663 * to all registered listeners. 664 * 665 * @param series the series index (zero-based). 666 * @param shape the shape (<code>null</code> permitted). 667 * 668 * @see #getSeriesShape(int) 669 */ 670 public void setSeriesShape(int series, Shape shape); 671 672 // FIXME: add setSeriesShape(int, Shape, boolean) ? 673 674 /** 675 * Returns the base shape. 676 * 677 * @return The shape (never <code>null</code>). 678 * 679 * @see #setBaseShape(Shape) 680 */ 681 public Shape getBaseShape(); 682 683 /** 684 * Sets the base shape and sends a {@link RendererChangeEvent} to all 685 * registered listeners. 686 * 687 * @param shape the shape (<code>null</code> not permitted). 688 * 689 * @see #getBaseShape() 690 */ 691 public void setBaseShape(Shape shape); 692 693 // FIXME: add setBaseShape(Shape, boolean) ? 694 695 696 //// LEGEND ITEMS ///////////////////////////////////////////////////////// 697 698 /** 699 * Returns a legend item for a series from a dataset. 700 * 701 * @param datasetIndex the dataset index. 702 * @param series the series (zero-based index). 703 * 704 * @return The legend item (possibly <code>null</code>). 705 */ 706 public LegendItem getLegendItem(int datasetIndex, int series); 707 708 709 //// LEGEND ITEM LABEL GENERATOR ////////////////////////////////////////// 710 711 /** 712 * Returns the legend item label generator. 713 * 714 * @return The legend item label generator (never <code>null</code>). 715 * 716 * @see #setLegendItemLabelGenerator(XYSeriesLabelGenerator) 717 */ 718 public XYSeriesLabelGenerator getLegendItemLabelGenerator(); 719 720 /** 721 * Sets the legend item label generator and sends a 722 * {@link RendererChangeEvent} to all registered listeners. 723 * 724 * @param generator the generator (<code>null</code> not permitted). 725 */ 726 public void setLegendItemLabelGenerator(XYSeriesLabelGenerator generator); 727 728 729 //// TOOL TIP GENERATOR /////////////////////////////////////////////////// 730 731 /** 732 * Returns the tool tip generator for a data item. 733 * 734 * @param row the row index (zero based). 735 * @param column the column index (zero based). 736 * 737 * @return The generator (possibly <code>null</code>). 738 */ 739 public XYToolTipGenerator getToolTipGenerator(int row, int column); 740 741 /** 742 * Returns the tool tip generator for a series. 743 * 744 * @param series the series index (zero based). 745 * 746 * @return The generator (possibly <code>null</code>). 747 * 748 * @see #setSeriesToolTipGenerator(int, XYToolTipGenerator) 749 */ 750 public XYToolTipGenerator getSeriesToolTipGenerator(int series); 751 752 /** 753 * Sets the tool tip generator for a series and sends a 754 * {@link RendererChangeEvent} to all registered listeners. 755 * 756 * @param series the series index (zero based). 757 * @param generator the generator (<code>null</code> permitted). 758 * 759 * @see #getSeriesToolTipGenerator(int) 760 */ 761 public void setSeriesToolTipGenerator(int series, 762 XYToolTipGenerator generator); 763 764 /** 765 * Returns the base tool tip generator. 766 * 767 * @return The generator (possibly <code>null</code>). 768 * 769 * @see #setBaseToolTipGenerator(XYToolTipGenerator) 770 */ 771 public XYToolTipGenerator getBaseToolTipGenerator(); 772 773 /** 774 * Sets the base tool tip generator and sends a {@link RendererChangeEvent} 775 * to all registered listeners. 776 * 777 * @param generator the generator (<code>null</code> permitted). 778 * 779 * @see #getBaseToolTipGenerator() 780 */ 781 public void setBaseToolTipGenerator(XYToolTipGenerator generator); 782 783 //// URL GENERATOR //////////////////////////////////////////////////////// 784 785 786 /** 787 * Returns the URL generator for HTML image maps. 788 * 789 * @return The URL generator (possibly null). 790 */ 791 public XYURLGenerator getURLGenerator(); 792 793 /** 794 * Sets the URL generator for HTML image maps. 795 * 796 * @param urlGenerator the URL generator (null permitted). 797 */ 798 public void setURLGenerator(XYURLGenerator urlGenerator); 799 800 //// ITEM LABELS VISIBLE ////////////////////////////////////////////////// 801 802 /** 803 * Returns <code>true</code> if an item label is visible, and 804 * <code>false</code> otherwise. 805 * 806 * @param row the row index (zero-based). 807 * @param column the column index (zero-based). 808 * 809 * @return A boolean. 810 */ 811 public boolean isItemLabelVisible(int row, int column); 812 813 /** 814 * Returns <code>true</code> if the item labels for a series are visible, 815 * and <code>false</code> otherwise. 816 * 817 * @param series the series index (zero-based). 818 * 819 * @return A boolean. 820 */ 821 public boolean isSeriesItemLabelsVisible(int series); 822 823 /** 824 * Sets a flag that controls the visibility of the item labels for a 825 * series and sends a {@link RendererChangeEvent} to all registered 826 * listeners. 827 * 828 * @param series the series index (zero-based). 829 * @param visible the flag. 830 * 831 * @see #isSeriesItemLabelsVisible(int) 832 */ 833 public void setSeriesItemLabelsVisible(int series, boolean visible); 834 835 /** 836 * Sets a flag that controls the visibility of the item labels for a series. 837 * 838 * @param series the series index (zero-based). 839 * @param visible the flag (<code>null</code> permitted). 840 * 841 * @see #isSeriesItemLabelsVisible(int) 842 */ 843 public void setSeriesItemLabelsVisible(int series, Boolean visible); 844 845 /** 846 * Sets the visibility of item labels for a series and, if requested, 847 * sends a {@link RendererChangeEvent} to all registered listeners. 848 * 849 * @param series the series index (zero-based). 850 * @param visible the visible flag. 851 * @param notify a flag that controls whether or not listeners are 852 * notified. 853 * 854 * @see #isSeriesItemLabelsVisible(int) 855 */ 856 public void setSeriesItemLabelsVisible(int series, Boolean visible, 857 boolean notify); 858 859 /** 860 * Returns the base setting for item label visibility. 861 * 862 * @return A flag (possibly <code>null</code>). 863 * 864 * @see #setBaseItemLabelsVisible(boolean) 865 */ 866 public Boolean getBaseItemLabelsVisible(); 867 868 /** 869 * Sets the base flag that controls whether or not item labels are visible. 870 * 871 * @param visible the flag. 872 * 873 * @see #getBaseItemLabelsVisible() 874 */ 875 public void setBaseItemLabelsVisible(boolean visible); 876 877 /** 878 * Sets the base setting for item label visibility. 879 * 880 * @param visible the flag (<code>null</code> permitted). 881 * 882 * @see #getBaseItemLabelsVisible() 883 */ 884 public void setBaseItemLabelsVisible(Boolean visible); 885 886 /** 887 * Sets the base visibility for item labels and, if requested, sends a 888 * {@link RendererChangeEvent} to all registered listeners. 889 * 890 * @param visible the visibility flag. 891 * @param notify a flag that controls whether or not listeners are 892 * notified. 893 * 894 * @see #getBaseItemLabelsVisible() 895 */ 896 public void setBaseItemLabelsVisible(Boolean visible, boolean notify); 897 898 899 //// ITEM LABEL GENERATOR ///////////////////////////////////////////////// 900 901 /** 902 * Returns the item label generator for a data item. 903 * 904 * @param row the row index (zero based). 905 * @param column the column index (zero based). 906 * 907 * @return The generator (possibly <code>null</code>). 908 */ 909 public XYItemLabelGenerator getItemLabelGenerator(int row, int column); 910 911 /** 912 * Returns the item label generator for a series. 913 * 914 * @param series the series index (zero based). 915 * 916 * @return The generator (possibly <code>null</code>). 917 * 918 * @see #setSeriesItemLabelGenerator(int, XYItemLabelGenerator) 919 */ 920 public XYItemLabelGenerator getSeriesItemLabelGenerator(int series); 921 922 /** 923 * Sets the item label generator for a series and sends a 924 * {@link RendererChangeEvent} to all registered listeners. 925 * 926 * @param series the series index (zero based). 927 * @param generator the generator (<code>null</code> permitted). 928 * 929 * @see #getSeriesItemLabelGenerator(int) 930 */ 931 public void setSeriesItemLabelGenerator(int series, 932 XYItemLabelGenerator generator); 933 934 // FIXME: 935 936 /** 937 * Returns the base item label generator. 938 * 939 * @return The generator (possibly <code>null</code>). 940 * 941 * @see #setBaseItemLabelGenerator(XYItemLabelGenerator) 942 */ 943 public XYItemLabelGenerator getBaseItemLabelGenerator(); 944 945 /** 946 * Sets the base item label generator and sends a 947 * {@link RendererChangeEvent} to all registered listeners. 948 * 949 * @param generator the generator (<code>null</code> permitted). 950 * 951 * @see #getBaseItemLabelGenerator() 952 */ 953 public void setBaseItemLabelGenerator(XYItemLabelGenerator generator); 954 955 //// ITEM LABEL FONT /////////////////////////////////////////////////////// 956 957 /** 958 * Returns the font for an item label. 959 * 960 * @param row the row index (zero-based). 961 * @param column the column index (zero-based). 962 * 963 * @return The font (never <code>null</code>). 964 */ 965 public Font getItemLabelFont(int row, int column); 966 967 /** 968 * Returns the font for all the item labels in a series. 969 * 970 * @param series the series index (zero-based). 971 * 972 * @return The font (possibly <code>null</code>). 973 */ 974 public Font getSeriesItemLabelFont(int series); 975 976 /** 977 * Sets the item label font for a series and sends a 978 * {@link RendererChangeEvent} to all registered listeners. 979 * 980 * @param series the series index (zero-based). 981 * @param font the font (<code>null</code> permitted). 982 * 983 * @see #getSeriesItemLabelFont(int) 984 */ 985 public void setSeriesItemLabelFont(int series, Font font); 986 987 /** 988 * Returns the base item label font (this is used when no other font 989 * setting is available). 990 * 991 * @return The font (<code>never</code> null). 992 * 993 * @see #setBaseItemLabelFont(Font) 994 */ 995 public Font getBaseItemLabelFont(); 996 997 /** 998 * Sets the base item label font and sends a {@link RendererChangeEvent} 999 * to all registered listeners. 1000 * 1001 * @param font the font (<code>null</code> not permitted). 1002 * 1003 * @see #getBaseItemLabelFont() 1004 */ 1005 public void setBaseItemLabelFont(Font font); 1006 1007 //// ITEM LABEL PAINT ///////////////////////////////////////////////////// 1008 1009 /** 1010 * Returns the paint used to draw an item label. 1011 * 1012 * @param row the row index (zero based). 1013 * @param column the column index (zero based). 1014 * 1015 * @return The paint (never <code>null</code>). 1016 */ 1017 public Paint getItemLabelPaint(int row, int column); 1018 1019 /** 1020 * Returns the paint used to draw the item labels for a series. 1021 * 1022 * @param series the series index (zero based). 1023 * 1024 * @return The paint (possibly <code>null</code>). 1025 * 1026 * @see #setSeriesItemLabelPaint(int, Paint) 1027 */ 1028 public Paint getSeriesItemLabelPaint(int series); 1029 1030 /** 1031 * Sets the item label paint for a series and sends a 1032 * {@link RendererChangeEvent} to all registered listeners. 1033 * 1034 * @param series the series (zero based index). 1035 * @param paint the paint (<code>null</code> permitted). 1036 * 1037 * @see #getSeriesItemLabelPaint(int) 1038 */ 1039 public void setSeriesItemLabelPaint(int series, Paint paint); 1040 1041 /** 1042 * Returns the base item label paint. 1043 * 1044 * @return The paint (never <code>null</code>). 1045 */ 1046 public Paint getBaseItemLabelPaint(); 1047 1048 /** 1049 * Sets the base item label paint and sends a {@link RendererChangeEvent} 1050 * to all registered listeners. 1051 * 1052 * @param paint the paint (<code>null</code> not permitted). 1053 */ 1054 public void setBaseItemLabelPaint(Paint paint); 1055 1056 // POSITIVE ITEM LABEL POSITION... 1057 1058 /** 1059 * Returns the item label position for positive values. 1060 * 1061 * @param row the row index (zero-based). 1062 * @param column the column index (zero-based). 1063 * 1064 * @return The item label position (never <code>null</code>). 1065 */ 1066 public ItemLabelPosition getPositiveItemLabelPosition(int row, int column); 1067 1068 /** 1069 * Returns the item label position for all positive values in a series. 1070 * 1071 * @param series the series index (zero-based). 1072 * 1073 * @return The item label position (never <code>null</code>). 1074 */ 1075 public ItemLabelPosition getSeriesPositiveItemLabelPosition(int series); 1076 1077 /** 1078 * Sets the item label position for all positive values in a series and 1079 * sends a {@link RendererChangeEvent} to all registered listeners. 1080 * 1081 * @param series the series index (zero-based). 1082 * @param position the position (<code>null</code> permitted). 1083 */ 1084 public void setSeriesPositiveItemLabelPosition(int series, 1085 ItemLabelPosition position); 1086 1087 /** 1088 * Sets the item label position for all positive values in a series and (if 1089 * requested) sends a {@link RendererChangeEvent} to all registered 1090 * listeners. 1091 * 1092 * @param series the series index (zero-based). 1093 * @param position the position (<code>null</code> permitted). 1094 * @param notify notify registered listeners? 1095 */ 1096 public void setSeriesPositiveItemLabelPosition(int series, 1097 ItemLabelPosition position, 1098 boolean notify); 1099 1100 /** 1101 * Returns the base positive item label position. 1102 * 1103 * @return The position (never <code>null</code>). 1104 */ 1105 public ItemLabelPosition getBasePositiveItemLabelPosition(); 1106 1107 /** 1108 * Sets the base positive item label position. 1109 * 1110 * @param position the position (<code>null</code> not permitted). 1111 */ 1112 public void setBasePositiveItemLabelPosition(ItemLabelPosition position); 1113 1114 /** 1115 * Sets the base positive item label position and, if requested, sends a 1116 * {@link RendererChangeEvent} to all registered listeners. 1117 * 1118 * @param position the position (<code>null</code> not permitted). 1119 * @param notify notify registered listeners? 1120 */ 1121 public void setBasePositiveItemLabelPosition(ItemLabelPosition position, 1122 boolean notify); 1123 1124 1125 // NEGATIVE ITEM LABEL POSITION... 1126 1127 /** 1128 * Returns the item label position for negative values. This method can be 1129 * overridden to provide customisation of the item label position for 1130 * individual data items. 1131 * 1132 * @param row the row index (zero-based). 1133 * @param column the column (zero-based). 1134 * 1135 * @return The item label position (never <code>null</code>). 1136 */ 1137 public ItemLabelPosition getNegativeItemLabelPosition(int row, int column); 1138 1139 /** 1140 * Returns the item label position for all negative values in a series. 1141 * 1142 * @param series the series index (zero-based). 1143 * 1144 * @return The item label position (never <code>null</code>). 1145 */ 1146 public ItemLabelPosition getSeriesNegativeItemLabelPosition(int series); 1147 1148 /** 1149 * Sets the item label position for negative values in a series and sends a 1150 * {@link RendererChangeEvent} to all registered listeners. 1151 * 1152 * @param series the series index (zero-based). 1153 * @param position the position (<code>null</code> permitted). 1154 */ 1155 public void setSeriesNegativeItemLabelPosition(int series, 1156 ItemLabelPosition position); 1157 1158 /** 1159 * Sets the item label position for negative values in a series and (if 1160 * requested) sends a {@link RendererChangeEvent} to all registered 1161 * listeners. 1162 * 1163 * @param series the series index (zero-based). 1164 * @param position the position (<code>null</code> permitted). 1165 * @param notify notify registered listeners? 1166 */ 1167 public void setSeriesNegativeItemLabelPosition(int series, 1168 ItemLabelPosition position, 1169 boolean notify); 1170 1171 /** 1172 * Returns the base item label position for negative values. 1173 * 1174 * @return The position (never <code>null</code>). 1175 */ 1176 public ItemLabelPosition getBaseNegativeItemLabelPosition(); 1177 1178 /** 1179 * Sets the base item label position for negative values and sends a 1180 * {@link RendererChangeEvent} to all registered listeners. 1181 * 1182 * @param position the position (<code>null</code> not permitted). 1183 */ 1184 public void setBaseNegativeItemLabelPosition(ItemLabelPosition position); 1185 1186 /** 1187 * Sets the base negative item label position and, if requested, sends a 1188 * {@link RendererChangeEvent} to all registered listeners. 1189 * 1190 * @param position the position (<code>null</code> not permitted). 1191 * @param notify notify registered listeners? 1192 */ 1193 public void setBaseNegativeItemLabelPosition(ItemLabelPosition position, 1194 boolean notify); 1195 1196 1197 // CREATE ENTITIES 1198 // FIXME: these methods should be defined 1199 1200// public boolean getItemCreateEntity(int series, int item); 1201// 1202// public Boolean getSeriesCreateEntities(int series); 1203// 1204// public void setSeriesCreateEntities(int series, Boolean create); 1205// 1206// public void setSeriesCreateEntities(int series, Boolean create, 1207// boolean notify); 1208// 1209// public boolean getBaseCreateEntities(); 1210// 1211// public void setBaseCreateEntities(boolean create); 1212// 1213// public void setBaseCreateEntities(boolean create, boolean notify); 1214 1215 //// ANNOTATIONS ////////////////////////////////////////////////////////// 1216 1217 /** 1218 * Adds an annotation and sends a {@link RendererChangeEvent} to all 1219 * registered listeners. The annotation is added to the foreground 1220 * layer. 1221 * 1222 * @param annotation the annotation (<code>null</code> not permitted). 1223 */ 1224 public void addAnnotation(XYAnnotation annotation); 1225 1226 /** 1227 * Adds an annotation to the specified layer. 1228 * 1229 * @param annotation the annotation (<code>null</code> not permitted). 1230 * @param layer the layer (<code>null</code> not permitted). 1231 */ 1232 public void addAnnotation(XYAnnotation annotation, Layer layer); 1233 1234 /** 1235 * Removes the specified annotation and sends a {@link RendererChangeEvent} 1236 * to all registered listeners. 1237 * 1238 * @param annotation the annotation to remove (<code>null</code> not 1239 * permitted). 1240 * 1241 * @return A boolean to indicate whether or not the annotation was 1242 * successfully removed. 1243 */ 1244 public boolean removeAnnotation(XYAnnotation annotation); 1245 1246 /** 1247 * Removes all annotations and sends a {@link RendererChangeEvent} 1248 * to all registered listeners. 1249 */ 1250 public void removeAnnotations(); 1251 1252 /** 1253 * Draws all the annotations for the specified layer. 1254 * 1255 * @param g2 the graphics device. 1256 * @param dataArea the data area. 1257 * @param domainAxis the domain axis. 1258 * @param rangeAxis the range axis. 1259 * @param layer the layer. 1260 * @param info the plot rendering info. 1261 */ 1262 public void drawAnnotations(Graphics2D g2, 1263 Rectangle2D dataArea, 1264 ValueAxis domainAxis, 1265 ValueAxis rangeAxis, 1266 Layer layer, 1267 PlotRenderingInfo info); 1268 1269 //// DRAWING ////////////////////////////////////////////////////////////// 1270 1271 /** 1272 * Initialises the renderer then returns the number of 'passes' through the 1273 * data that the renderer will require (usually just one). This method 1274 * will be called before the first item is rendered, giving the renderer 1275 * an opportunity to initialise any state information it wants to maintain. 1276 * The renderer can do nothing if it chooses. 1277 * 1278 * @param g2 the graphics device. 1279 * @param dataArea the area inside the axes. 1280 * @param plot the plot. 1281 * @param dataset the dataset. 1282 * @param info an optional info collection object to return data back to 1283 * the caller. 1284 * 1285 * @return The number of passes the renderer requires. 1286 */ 1287 public XYItemRendererState initialise(Graphics2D g2, 1288 Rectangle2D dataArea, 1289 XYPlot plot, 1290 XYDataset dataset, 1291 PlotRenderingInfo info); 1292 1293 /** 1294 * Called for each item to be plotted. 1295 * <p> 1296 * The {@link XYPlot} can make multiple passes through the dataset, 1297 * depending on the value returned by the renderer's initialise() method. 1298 * 1299 * @param g2 the graphics device. 1300 * @param state the renderer state. 1301 * @param dataArea the area within which the data is being rendered. 1302 * @param info collects drawing info. 1303 * @param plot the plot (can be used to obtain standard color 1304 * information etc). 1305 * @param domainAxis the domain axis. 1306 * @param rangeAxis the range axis. 1307 * @param dataset the dataset. 1308 * @param series the series index (zero-based). 1309 * @param item the item index (zero-based). 1310 * @param crosshairState crosshair information for the plot 1311 * (<code>null</code> permitted). 1312 * @param pass the pass index. 1313 */ 1314 public void drawItem(Graphics2D g2, 1315 XYItemRendererState state, 1316 Rectangle2D dataArea, 1317 PlotRenderingInfo info, 1318 XYPlot plot, 1319 ValueAxis domainAxis, 1320 ValueAxis rangeAxis, 1321 XYDataset dataset, 1322 int series, 1323 int item, 1324 CrosshairState crosshairState, 1325 int pass); 1326 1327 /** 1328 * Fills a band between two values on the axis. This can be used to color 1329 * bands between the grid lines. 1330 * 1331 * @param g2 the graphics device. 1332 * @param plot the plot. 1333 * @param axis the domain axis. 1334 * @param dataArea the data area. 1335 * @param start the start value. 1336 * @param end the end value. 1337 */ 1338 public void fillDomainGridBand(Graphics2D g2, 1339 XYPlot plot, 1340 ValueAxis axis, 1341 Rectangle2D dataArea, 1342 double start, double end); 1343 1344 /** 1345 * Fills a band between two values on the range axis. This can be used to 1346 * color bands between the grid lines. 1347 * 1348 * @param g2 the graphics device. 1349 * @param plot the plot. 1350 * @param axis the range axis. 1351 * @param dataArea the data area. 1352 * @param start the start value. 1353 * @param end the end value. 1354 */ 1355 public void fillRangeGridBand(Graphics2D g2, 1356 XYPlot plot, 1357 ValueAxis axis, 1358 Rectangle2D dataArea, 1359 double start, double end); 1360 1361 /** 1362 * Draws a grid line against the domain axis. 1363 * 1364 * @param g2 the graphics device. 1365 * @param plot the plot. 1366 * @param axis the value axis. 1367 * @param dataArea the area for plotting data (not yet adjusted for any 1368 * 3D effect). 1369 * @param value the value. 1370 */ 1371 public void drawDomainGridLine(Graphics2D g2, 1372 XYPlot plot, 1373 ValueAxis axis, 1374 Rectangle2D dataArea, 1375 double value); 1376 1377 /** 1378 * Draws a line perpendicular to the range axis. 1379 * 1380 * @param g2 the graphics device. 1381 * @param plot the plot. 1382 * @param axis the value axis. 1383 * @param dataArea the area for plotting data. 1384 * @param value the data value. 1385 * @param paint the paint (<code>null</code> not permitted). 1386 * @param stroke the stroke (<code>null</code> not permitted). 1387 */ 1388 public void drawRangeLine(Graphics2D g2, XYPlot plot, ValueAxis axis, 1389 Rectangle2D dataArea, double value, Paint paint, Stroke stroke); 1390 1391 /** 1392 * Draws the specified <code>marker</code> against the domain axis. 1393 * 1394 * @param g2 the graphics device. 1395 * @param plot the plot. 1396 * @param axis the value axis. 1397 * @param marker the marker. 1398 * @param dataArea the axis data area. 1399 */ 1400 public void drawDomainMarker(Graphics2D g2, XYPlot plot, ValueAxis axis, 1401 Marker marker, Rectangle2D dataArea); 1402 1403 /** 1404 * Draws a horizontal line across the chart to represent a 'range marker'. 1405 * 1406 * @param g2 the graphics device. 1407 * @param plot the plot. 1408 * @param axis the value axis. 1409 * @param marker the marker line. 1410 * @param dataArea the axis data area. 1411 */ 1412 public void drawRangeMarker(Graphics2D g2, XYPlot plot, ValueAxis axis, 1413 Marker marker, Rectangle2D dataArea); 1414 1415 // DEPRECATED METHODS 1416 1417 /** 1418 * Returns the flag that controls the visibility of ALL series. This flag 1419 * overrides the per series and default settings - you must set it to 1420 * <code>null</code> if you want the other settings to apply. 1421 * 1422 * @return The flag (possibly <code>null</code>). 1423 * 1424 * @deprecated This method should no longer be used (as of version 1.0.6). 1425 * It is sufficient to rely on {@link #getSeriesVisible(int)} and 1426 * {@link #getBaseSeriesVisible()}. 1427 */ 1428 public Boolean getSeriesVisible(); 1429 1430 /** 1431 * Sets the flag that controls the visibility of ALL series and sends a 1432 * {@link RendererChangeEvent} to all registered listeners. This flag 1433 * overrides the per series and default settings - you must set it to 1434 * <code>null</code> if you want the other settings to apply. 1435 * 1436 * @param visible the flag (<code>null</code> permitted). 1437 * 1438 * @deprecated This method should no longer be used (as of version 1.0.6). 1439 * It is sufficient to rely on {@link #setSeriesVisible(int, Boolean)} 1440 * and {@link #setBaseSeriesVisible(boolean)}. 1441 */ 1442 public void setSeriesVisible(Boolean visible); 1443 1444 /** 1445 * Sets the flag that controls the visibility of ALL series and sends a 1446 * {@link RendererChangeEvent} to all registered listeners. This flag 1447 * overrides the per series and default settings - you must set it to 1448 * <code>null</code> if you want the other settings to apply. 1449 * 1450 * @param visible the flag (<code>null</code> permitted). 1451 * @param notify notify listeners? 1452 * 1453 * @deprecated This method should no longer be used (as of version 1.0.6). 1454 * It is sufficient to rely on {@link #setSeriesVisible(int, Boolean, 1455 * boolean)} and {@link #setBaseSeriesVisible(boolean, boolean)}. 1456 */ 1457 public void setSeriesVisible(Boolean visible, boolean notify); 1458 1459 /** 1460 * Returns the flag that controls the visibility of ALL series in the 1461 * legend. This flag overrides the per series and default settings - you 1462 * must set it to <code>null</code> if you want the other settings to 1463 * apply. 1464 * 1465 * @return The flag (possibly <code>null</code>). 1466 * 1467 * @deprecated This method should no longer be used (as of version 1.0.6). 1468 * It is sufficient to rely on {@link #getSeriesVisibleInLegend(int)} 1469 * and {@link #getBaseSeriesVisibleInLegend()}. 1470 */ 1471 public Boolean getSeriesVisibleInLegend(); 1472 1473 /** 1474 * Sets the flag that controls the visibility of ALL series in the legend 1475 * and sends a {@link RendererChangeEvent} to all registered listeners. 1476 * This flag overrides the per series and default settings - you must set 1477 * it to <code>null</code> if you want the other settings to apply. 1478 * 1479 * @param visible the flag (<code>null</code> permitted). 1480 * 1481 * @deprecated This method should no longer be used (as of version 1.0.6). 1482 * It is sufficient to rely on {@link #setSeriesVisibleInLegend(int, 1483 * Boolean)} and {@link #setBaseSeriesVisibleInLegend(boolean)}. 1484 */ 1485 public void setSeriesVisibleInLegend(Boolean visible); 1486 1487 /** 1488 * Sets the flag that controls the visibility of ALL series in the legend 1489 * and sends a {@link RendererChangeEvent} to all registered listeners. 1490 * This flag overrides the per series and default settings - you must set 1491 * it to <code>null</code> if you want the other settings to apply. 1492 * 1493 * @param visible the flag (<code>null</code> permitted). 1494 * @param notify notify listeners? 1495 * 1496 * @deprecated This method should no longer be used (as of version 1.0.6). 1497 * It is sufficient to rely on {@link #setSeriesVisibleInLegend(int, 1498 * Boolean, boolean)} and {@link #setBaseSeriesVisibleInLegend(boolean, 1499 * boolean)}. 1500 */ 1501 public void setSeriesVisibleInLegend(Boolean visible, boolean notify); 1502 1503 /** 1504 * Sets the paint to be used for ALL series, and sends a 1505 * {@link RendererChangeEvent} to all registered listeners. If this is 1506 * <code>null</code>, the renderer will use the paint for the series. 1507 * 1508 * @param paint the paint (<code>null</code> permitted). 1509 * 1510 * @deprecated This method should no longer be used (as of version 1.0.6). 1511 * It is sufficient to rely on {@link #setSeriesPaint(int, Paint)} and 1512 * {@link #setBasePaint(Paint)}. 1513 */ 1514 public void setPaint(Paint paint); 1515 1516 /** 1517 * Sets the outline paint for ALL series (optional). 1518 * 1519 * @param paint the paint (<code>null</code> permitted). 1520 * 1521 * @deprecated This method should no longer be used (as of version 1.0.6). 1522 * It is sufficient to rely on {@link #setSeriesOutlinePaint(int, 1523 * Paint)} and {@link #setBaseOutlinePaint(Paint)}. 1524 */ 1525 public void setOutlinePaint(Paint paint); 1526 1527 /** 1528 * Sets the stroke for ALL series and sends a {@link RendererChangeEvent} 1529 * to all registered listeners. 1530 * 1531 * @param stroke the stroke (<code>null</code> permitted). 1532 * 1533 * @deprecated This method should no longer be used (as of version 1.0.6). 1534 * It is sufficient to rely on {@link #setSeriesStroke(int, Stroke)} 1535 * and {@link #setBaseStroke(Stroke)}. 1536 */ 1537 public void setStroke(Stroke stroke); 1538 1539 /** 1540 * Sets the outline stroke for ALL series and sends a 1541 * {@link RendererChangeEvent} to all registered listeners. 1542 * 1543 * @param stroke the stroke (<code>null</code> permitted). 1544 * 1545 * @deprecated This method should no longer be used (as of version 1.0.6). 1546 * It is sufficient to rely on {@link #setSeriesOutlineStroke(int, 1547 * Stroke)} and {@link #setBaseOutlineStroke(Stroke)}. 1548 */ 1549 public void setOutlineStroke(Stroke stroke); 1550 1551 /** 1552 * Sets the shape for ALL series (optional) and sends a 1553 * {@link RendererChangeEvent} to all registered listeners. 1554 * 1555 * @param shape the shape (<code>null</code> permitted). 1556 * 1557 * @deprecated This method should no longer be used (as of version 1.0.6). 1558 * It is sufficient to rely on {@link #setSeriesShape(int, Shape)} and 1559 * {@link #setBaseShape(Shape)}. 1560 */ 1561 public void setShape(Shape shape); 1562 1563 /** 1564 * Sets a flag that controls whether or not the item labels for ALL series 1565 * are visible. 1566 * 1567 * @param visible the flag. 1568 * 1569 * @deprecated This method should no longer be used (as of version 1.0.6). 1570 * It is sufficient to rely on {@link #setSeriesItemLabelsVisible(int, 1571 * Boolean)} and {@link #setBaseItemLabelsVisible(boolean)}. 1572 */ 1573 public void setItemLabelsVisible(boolean visible); 1574 1575 /** 1576 * Sets a flag that controls whether or not the item labels for ALL series 1577 * are visible. 1578 * 1579 * @param visible the flag (<code>null</code> permitted). 1580 * 1581 * @deprecated This method should no longer be used (as of version 1.0.6). 1582 * It is sufficient to rely on {@link #setSeriesItemLabelsVisible(int, 1583 * Boolean)} and {@link #setBaseItemLabelsVisible(boolean)}. 1584 */ 1585 public void setItemLabelsVisible(Boolean visible); 1586 1587 /** 1588 * Sets the visibility of item labels for ALL series and, if requested, 1589 * sends a {@link RendererChangeEvent} to all registered listeners. 1590 * 1591 * @param visible a flag that controls whether or not the item labels are 1592 * visible (<code>null</code> permitted). 1593 * @param notify a flag that controls whether or not listeners are 1594 * notified. 1595 * 1596 * @deprecated This method should no longer be used (as of version 1.0.6). 1597 * It is sufficient to rely on {@link #setSeriesItemLabelsVisible(int, 1598 * Boolean, boolean)} and {@link #setBaseItemLabelsVisible(Boolean, 1599 * boolean)}. 1600 */ 1601 public void setItemLabelsVisible(Boolean visible, boolean notify); 1602 1603 /** 1604 * Sets the item label generator for ALL series and sends a 1605 * {@link RendererChangeEvent} to all registered listeners. 1606 * 1607 * @param generator the generator (<code>null</code> permitted). 1608 * 1609 * @deprecated As of version 1.0.6, this override setting should not be 1610 * used. You can use the base setting instead 1611 * ({@link #setBaseItemLabelGenerator(XYItemLabelGenerator)}). 1612 */ 1613 public void setItemLabelGenerator(XYItemLabelGenerator generator); 1614 1615 /** 1616 * Sets the tool tip generator for ALL series and sends a 1617 * {@link RendererChangeEvent} to all registered listeners. 1618 * 1619 * @param generator the generator (<code>null</code> permitted). 1620 * 1621 * @deprecated As of version 1.0.6, this override setting should not be 1622 * used. You can use the base setting instead 1623 * ({@link #setBaseToolTipGenerator(XYToolTipGenerator)}). 1624 */ 1625 public void setToolTipGenerator(XYToolTipGenerator generator); 1626 1627 /** 1628 * Returns the font used for all item labels. This may be 1629 * <code>null</code>, in which case the per series font settings will apply. 1630 * 1631 * @return The font (possibly <code>null</code>). 1632 * 1633 * @deprecated This method should no longer be used (as of version 1.0.6). 1634 * It is sufficient to rely on {@link #getSeriesItemLabelFont(int)} and 1635 * {@link #getBaseItemLabelFont()}. 1636 */ 1637 public Font getItemLabelFont(); 1638 1639 /** 1640 * Sets the item label font for ALL series and sends a 1641 * {@link RendererChangeEvent} to all registered listeners. You can set 1642 * this to <code>null</code> if you prefer to set the font on a per series 1643 * basis. 1644 * 1645 * @param font the font (<code>null</code> permitted). 1646 * 1647 * @deprecated This method should no longer be used (as of version 1.0.6). 1648 * It is sufficient to rely on {@link #setSeriesItemLabelFont(int, 1649 * Font)} and {@link #setBaseItemLabelFont(Font)}. 1650 */ 1651 public void setItemLabelFont(Font font); 1652 1653 /** 1654 * Returns the paint used for all item labels. This may be 1655 * <code>null</code>, in which case the per series paint settings will 1656 * apply. 1657 * 1658 * @return The paint (possibly <code>null</code>). 1659 * 1660 * @deprecated This method should no longer be used (as of version 1.0.6). 1661 * It is sufficient to rely on {@link #getSeriesItemLabelPaint(int)} 1662 * and {@link #getBaseItemLabelPaint()}. 1663 */ 1664 public Paint getItemLabelPaint(); 1665 1666 /** 1667 * Sets the item label paint for ALL series and sends a 1668 * {@link RendererChangeEvent} to all registered listeners. 1669 * 1670 * @param paint the paint (<code>null</code> permitted). 1671 * 1672 * @deprecated This method should no longer be used (as of version 1.0.6). 1673 * It is sufficient to rely on {@link #setSeriesItemLabelPaint(int, 1674 * Paint)} and {@link #setBaseItemLabelPaint(Paint)}. 1675 */ 1676 public void setItemLabelPaint(Paint paint); 1677 1678 /** 1679 * Returns the item label position for positive values in ALL series. 1680 * 1681 * @return The item label position (possibly <code>null</code>). 1682 * 1683 * @deprecated This method should no longer be used (as of version 1.0.6). 1684 * It is sufficient to rely on 1685 * {@link #getSeriesPositiveItemLabelPosition(int)} 1686 * and {@link #getBasePositiveItemLabelPosition()}. 1687 */ 1688 public ItemLabelPosition getPositiveItemLabelPosition(); 1689 1690 /** 1691 * Sets the item label position for positive values in ALL series, and 1692 * sends a {@link RendererChangeEvent} to all registered listeners. You 1693 * need to set this to <code>null</code> to expose the settings for 1694 * individual series. 1695 * 1696 * @param position the position (<code>null</code> permitted). 1697 * 1698 * @deprecated This method should no longer be used (as of version 1.0.6). 1699 * It is sufficient to rely on 1700 * {@link #setSeriesPositiveItemLabelPosition(int, ItemLabelPosition)} 1701 * and {@link #setBasePositiveItemLabelPosition(ItemLabelPosition)}. 1702 */ 1703 public void setPositiveItemLabelPosition(ItemLabelPosition position); 1704 1705 /** 1706 * Sets the positive item label position for ALL series and (if requested) 1707 * sends a {@link RendererChangeEvent} to all registered listeners. 1708 * 1709 * @param position the position (<code>null</code> permitted). 1710 * @param notify notify registered listeners? 1711 * 1712 * @deprecated This method should no longer be used (as of version 1.0.6). 1713 * It is sufficient to rely on 1714 * {@link #setSeriesPositiveItemLabelPosition(int, ItemLabelPosition, 1715 * boolean)} and {@link #setBasePositiveItemLabelPosition( 1716 * ItemLabelPosition, boolean)}. 1717 */ 1718 public void setPositiveItemLabelPosition(ItemLabelPosition position, 1719 boolean notify); 1720 1721 /** 1722 * Returns the item label position for negative values in ALL series. 1723 * 1724 * @return The item label position (possibly <code>null</code>). 1725 * 1726 * @deprecated This method should no longer be used (as of version 1.0.6). 1727 * It is sufficient to rely on 1728 * {@link #getSeriesNegativeItemLabelPosition(int)} 1729 * and {@link #getBaseNegativeItemLabelPosition()}. 1730 */ 1731 public ItemLabelPosition getNegativeItemLabelPosition(); 1732 1733 /** 1734 * Sets the item label position for negative values in ALL series, and 1735 * sends a {@link RendererChangeEvent} to all registered listeners. You 1736 * need to set this to <code>null</code> to expose the settings for 1737 * individual series. 1738 * 1739 * @param position the position (<code>null</code> permitted). 1740 * 1741 * @deprecated This method should no longer be used (as of version 1.0.6). 1742 * It is sufficient to rely on 1743 * {@link #setSeriesNegativeItemLabelPosition(int, ItemLabelPosition)} 1744 * and {@link #setBaseNegativeItemLabelPosition(ItemLabelPosition)}. 1745 */ 1746 public void setNegativeItemLabelPosition(ItemLabelPosition position); 1747 1748 /** 1749 * Sets the item label position for negative values in ALL series and (if 1750 * requested) sends a {@link RendererChangeEvent} to all registered 1751 * listeners. 1752 * 1753 * @param position the position (<code>null</code> permitted). 1754 * @param notify notify registered listeners? 1755 * 1756 * @deprecated This method should no longer be used (as of version 1.0.6). 1757 * It is sufficient to rely on 1758 * {@link #setSeriesNegativeItemLabelPosition(int, ItemLabelPosition, 1759 * boolean)} and {@link #setBaseNegativeItemLabelPosition( 1760 * ItemLabelPosition, boolean)}. 1761 */ 1762 public void setNegativeItemLabelPosition(ItemLabelPosition position, 1763 boolean notify); 1764 1765}