📄 abstractrenderer.java
字号:
private ItemLabelPosition negativeItemLabelPosition;
/** The negative item label position (per series). */
private ObjectList negativeItemLabelPositionList;
/** The fallback negative item label position. */
private ItemLabelPosition baseNegativeItemLabelPosition;
/** The item label anchor offset. */
private double itemLabelAnchorOffset = 2.0;
/**
* A flag that controls whether or not entities are generated for
* ALL series (optional).
*
* @deprecated This field is redundant, you can rely on the
* createEntitiesList and baseCreateEntities fields. Deprecated from
* version 1.0.6 onwards.
*/
private Boolean createEntities;
/**
* Flags that control whether or not entities are generated for each
* series. This will be overridden by 'createEntities'.
*/
private BooleanList createEntitiesList;
/**
* The default flag that controls whether or not entities are generated.
* This flag is used when both the above flags return null.
*/
private boolean baseCreateEntities;
/** Storage for registered change listeners. */
private transient EventListenerList listenerList;
/** An event for re-use. */
private transient RendererChangeEvent event;
/**
* Default constructor.
*/
public AbstractRenderer() {
this.seriesVisible = null;
this.seriesVisibleList = new BooleanList();
this.baseSeriesVisible = true;
this.seriesVisibleInLegend = null;
this.seriesVisibleInLegendList = new BooleanList();
this.baseSeriesVisibleInLegend = true;
this.paint = null;
this.paintList = new PaintList();
this.basePaint = DEFAULT_PAINT;
this.autoPopulateSeriesPaint = true;
this.fillPaint = null;
this.fillPaintList = new PaintList();
this.baseFillPaint = Color.white;
this.autoPopulateSeriesFillPaint = false;
this.outlinePaint = null;
this.outlinePaintList = new PaintList();
this.baseOutlinePaint = DEFAULT_OUTLINE_PAINT;
this.autoPopulateSeriesOutlinePaint = false;
this.stroke = null;
this.strokeList = new StrokeList();
this.baseStroke = DEFAULT_STROKE;
this.autoPopulateSeriesStroke = false;
this.outlineStroke = null;
this.outlineStrokeList = new StrokeList();
this.baseOutlineStroke = DEFAULT_OUTLINE_STROKE;
this.autoPopulateSeriesOutlineStroke = false;
this.shape = null;
this.shapeList = new ShapeList();
this.baseShape = DEFAULT_SHAPE;
this.autoPopulateSeriesShape = true;
this.itemLabelsVisible = null;
this.itemLabelsVisibleList = new BooleanList();
this.baseItemLabelsVisible = Boolean.FALSE;
this.itemLabelFont = null;
this.itemLabelFontList = new ObjectList();
this.baseItemLabelFont = new Font("SansSerif", Font.PLAIN, 10);
this.itemLabelPaint = null;
this.itemLabelPaintList = new PaintList();
this.baseItemLabelPaint = Color.black;
this.positiveItemLabelPosition = null;
this.positiveItemLabelPositionList = new ObjectList();
this.basePositiveItemLabelPosition = new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BOTTOM_CENTER);
this.negativeItemLabelPosition = null;
this.negativeItemLabelPositionList = new ObjectList();
this.baseNegativeItemLabelPosition = new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE6, TextAnchor.TOP_CENTER);
this.createEntities = null;
this.createEntitiesList = new BooleanList();
this.baseCreateEntities = true;
this.listenerList = new EventListenerList();
}
/**
* Returns the drawing supplier from the plot.
*
* @return The drawing supplier.
*/
public abstract DrawingSupplier getDrawingSupplier();
// SERIES VISIBLE (not yet respected by all renderers)
/**
* Returns a boolean that indicates whether or not the specified item
* should be drawn (this is typically used to hide an entire series).
*
* @param series the series index.
* @param item the item index.
*
* @return A boolean.
*/
public boolean getItemVisible(int series, int item) {
return isSeriesVisible(series);
}
/**
* Returns a boolean that indicates whether or not the specified series
* should be drawn.
*
* @param series the series index.
*
* @return A boolean.
*/
public boolean isSeriesVisible(int series) {
boolean result = this.baseSeriesVisible;
if (this.seriesVisible != null) {
result = this.seriesVisible.booleanValue();
}
else {
Boolean b = this.seriesVisibleList.getBoolean(series);
if (b != null) {
result = b.booleanValue();
}
}
return result;
}
/**
* Returns the flag that controls the visibility of ALL series. This flag
* overrides the per series and default settings - you must set it to
* <code>null</code> if you want the other settings to apply.
*
* @return The flag (possibly <code>null</code>).
*
* @see #setSeriesVisible(Boolean)
*
* @deprecated This method should no longer be used (as of version 1.0.6).
* It is sufficient to rely on {@link #getSeriesVisible(int)} and
* {@link #getBaseSeriesVisible()}.
*/
public Boolean getSeriesVisible() {
return this.seriesVisible;
}
/**
* Sets the flag that controls the visibility of ALL series and sends a
* {@link RendererChangeEvent} to all registered listeners. This flag
* overrides the per series and default settings - you must set it to
* <code>null</code> if you want the other settings to apply.
*
* @param visible the flag (<code>null</code> permitted).
*
* @see #getSeriesVisible()
*
* @deprecated This method should no longer be used (as of version 1.0.6).
* It is sufficient to rely on {@link #setSeriesVisible(int, Boolean)}
* and {@link #setBaseSeriesVisible(boolean)}.
*/
public void setSeriesVisible(Boolean visible) {
setSeriesVisible(visible, true);
}
/**
* Sets the flag that controls the visibility of ALL series and sends a
* {@link RendererChangeEvent} to all registered listeners. This flag
* overrides the per series and default settings - you must set it to
* <code>null</code> if you want the other settings to apply.
*
* @param visible the flag (<code>null</code> permitted).
* @param notify notify listeners?
*
* @see #getSeriesVisible()
*
* @deprecated This method should no longer be used (as of version 1.0.6).
* It is sufficient to rely on {@link #setSeriesVisible(int, Boolean)}
* and {@link #setBaseSeriesVisible(boolean)}.
*/
public void setSeriesVisible(Boolean visible, boolean notify) {
this.seriesVisible = visible;
if (notify) {
fireChangeEvent();
}
}
/**
* Returns the flag that controls whether a series is visible.
*
* @param series the series index (zero-based).
*
* @return The flag (possibly <code>null</code>).
*
* @see #setSeriesVisible(int, Boolean)
*/
public Boolean getSeriesVisible(int series) {
return this.seriesVisibleList.getBoolean(series);
}
/**
* Sets the flag that controls whether a series is visible and sends a
* {@link RendererChangeEvent} to all registered listeners.
*
* @param series the series index (zero-based).
* @param visible the flag (<code>null</code> permitted).
*
* @see #getSeriesVisible(int)
*/
public void setSeriesVisible(int series, Boolean visible) {
setSeriesVisible(series, visible, true);
}
/**
* Sets the flag that controls whether a series is visible and, if
* requested, sends a {@link RendererChangeEvent} to all registered
* listeners.
*
* @param series the series index.
* @param visible the flag (<code>null</code> permitted).
* @param notify notify listeners?
*
* @see #getSeriesVisible(int)
*/
public void setSeriesVisible(int series, Boolean visible, boolean notify) {
this.seriesVisibleList.setBoolean(series, visible);
if (notify) {
fireChangeEvent();
}
}
/**
* Returns the base visibility for all series.
*
* @return The base visibility.
*
* @see #setBaseSeriesVisible(boolean)
*/
public boolean getBaseSeriesVisible() {
return this.baseSeriesVisible;
}
/**
* Sets the base visibility and sends a {@link RendererChangeEvent}
* to all registered listeners.
*
* @param visible the flag.
*
* @see #getBaseSeriesVisible()
*/
public void setBaseSeriesVisible(boolean visible) {
// defer argument checking...
setBaseSeriesVisible(visible, true);
}
/**
* Sets the base visibility and, if requested, sends
* a {@link RendererChangeEvent} to all registered listeners.
*
* @param visible the visibility.
* @param notify notify listeners?
*
* @see #getBaseSeriesVisible()
*/
public void setBaseSeriesVisible(boolean visible, boolean notify) {
this.baseSeriesVisible = visible;
if (notify) {
fireChangeEvent();
}
}
// SERIES VISIBLE IN LEGEND (not yet respected by all renderers)
/**
* Returns <code>true</code> if the series should be shown in the legend,
* and <code>false</code> otherwise.
*
* @param series the series index.
*
* @return A boolean.
*/
public boolean isSeriesVisibleInLegend(int series) {
boolean result = this.baseSeriesVisibleInLegend;
if (this.seriesVisibleInLegend != null) {
result = this.seriesVisibleInLegend.booleanValue();
}
else {
Boolean b = this.seriesVisibleInLegendList.getBoolean(series);
if (b != null) {
result = b.booleanValue();
}
}
return result;
}
/**
* Returns the flag that controls the visibility of ALL series in the
* legend. This flag overrides the per series and default settings - you
* must set it to <code>null</code> if you want the other settings to
* apply.
*
* @return The flag (possibly <code>null</code>).
*
* @see #setSeriesVisibleInLegend(Boolean)
*
* @deprecated This method should no longer be used (as of version 1.0.6).
* It is sufficient to rely on {@link #getSeriesVisibleInLegend(int)}
* and {@link #getBaseSeriesVisibleInLegend()}.
*/
public Boolean getSeriesVisibleInLegend() {
return this.seriesVisibleInLegend;
}
/**
* Sets the flag that controls the visibility of ALL series in the legend
* and sends a {@link RendererChangeEvent} to all registered listeners.
* This flag overrides the per series and default settings - you must set
* it to <code>null</code> if you want the other settings to apply.
*
* @param visible the flag (<code>null</code> permitted).
*
* @see #getSeriesVisibleInLegend()
*
* @deprecated This method should no longer be used (as of version 1.0.6).
* It is sufficient to rely on {@link #setSeriesVisibleInLegend(int,
* Boolean)} and {@link #setBaseSeriesVisibleInLegend(boolean)}.
*/
public void setSeriesVisibleInLegend(Boolean visible) {
setSeriesVisibleInLegend(visible, true);
}
/**
* Sets the flag that controls the visibility of ALL series in the legend
* and sends a {@link RendererChangeEvent} to all registered listeners.
* This flag overrides the per series and default settings - you must set
* it to <code>null</code> if you want the other settings to apply.
*
* @param visible the flag (<code>null</code> permitted).
* @param notify notify listeners?
*
* @see #getSeriesVisibleInLegend()
*
* @deprecated This method should no longer be used (as of version 1.0.6).
* It is sufficient to rely on {@link #setSeriesVisibleInLegend(int,
* Boolean, boolean)} and {@link #setBaseSeriesVisibleInLegend(boolean,
* boolean)}.
*/
public void setSeriesVisibleInLegend(Boolean visible, boolean notify) {
this.seriesVisibleInLegend = visible;
if (notify) {
fireChangeEvent();
}
}
/**
* Returns the flag that controls whether a series is visible in the
* legend. This method returns only the "per series" settings - to
* incorporate the override and base settings as well, you need to use the
* {@link #isSeriesVisibleInLegend(int)} method.
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -