📄 categoryplot.java
字号:
CategoryDataset result = null;
if (this.datasets.size() > index) {
result = (CategoryDataset) this.datasets.get(index);
}
return result;
}
/**
* Sets the dataset for the plot, replacing the existing dataset, if there
* is one. This method also calls the
* {@link #datasetChanged(DatasetChangeEvent)} method, which adjusts the
* axis ranges if necessary and sends a {@link PlotChangeEvent} to all
* registered listeners.
*
* @param dataset the dataset (<code>null</code> permitted).
*
* @see #getDataset()
*/
public void setDataset(CategoryDataset dataset) {
setDataset(0, dataset);
}
/**
* Sets a dataset for the plot.
*
* @param index the dataset index.
* @param dataset the dataset (<code>null</code> permitted).
*
* @see #getDataset(int)
*/
public void setDataset(int index, CategoryDataset dataset) {
CategoryDataset existing = (CategoryDataset) this.datasets.get(index);
if (existing != null) {
existing.removeChangeListener(this);
}
this.datasets.set(index, dataset);
if (dataset != null) {
dataset.addChangeListener(this);
}
// send a dataset change event to self...
DatasetChangeEvent event = new DatasetChangeEvent(this, dataset);
datasetChanged(event);
}
/**
* Returns the number of datasets.
*
* @return The number of datasets.
*
* @since 1.0.2
*/
public int getDatasetCount() {
return this.datasets.size();
}
/**
* Maps a dataset to a particular domain axis.
*
* @param index the dataset index (zero-based).
* @param axisIndex the axis index (zero-based).
*
* @see #getDomainAxisForDataset(int)
*/
public void mapDatasetToDomainAxis(int index, int axisIndex) {
this.datasetToDomainAxisMap.set(index, new Integer(axisIndex));
// fake a dataset change event to update axes...
datasetChanged(new DatasetChangeEvent(this, getDataset(index)));
}
/**
* Returns the domain axis for a dataset. You can change the axis for a
* dataset using the {@link #mapDatasetToDomainAxis(int, int)} method.
*
* @param index the dataset index.
*
* @return The domain axis.
*
* @see #mapDatasetToDomainAxis(int, int)
*/
public CategoryAxis getDomainAxisForDataset(int index) {
CategoryAxis result = getDomainAxis();
Integer axisIndex = (Integer) this.datasetToDomainAxisMap.get(index);
if (axisIndex != null) {
result = getDomainAxis(axisIndex.intValue());
}
return result;
}
/**
* Maps a dataset to a particular range axis.
*
* @param index the dataset index (zero-based).
* @param axisIndex the axis index (zero-based).
*
* @see #getRangeAxisForDataset(int)
*/
public void mapDatasetToRangeAxis(int index, int axisIndex) {
this.datasetToRangeAxisMap.set(index, new Integer(axisIndex));
// fake a dataset change event to update axes...
datasetChanged(new DatasetChangeEvent(this, getDataset(index)));
}
/**
* Returns the range axis for a dataset. You can change the axis for a
* dataset using the {@link #mapDatasetToRangeAxis(int, int)} method.
*
* @param index the dataset index.
*
* @return The range axis.
*
* @see #mapDatasetToRangeAxis(int, int)
*/
public ValueAxis getRangeAxisForDataset(int index) {
ValueAxis result = getRangeAxis();
Integer axisIndex = (Integer) this.datasetToRangeAxisMap.get(index);
if (axisIndex != null) {
result = getRangeAxis(axisIndex.intValue());
}
return result;
}
/**
* Returns a reference to the renderer for the plot.
*
* @return The renderer.
*
* @see #setRenderer(CategoryItemRenderer)
*/
public CategoryItemRenderer getRenderer() {
return getRenderer(0);
}
/**
* Returns the renderer at the given index.
*
* @param index the renderer index.
*
* @return The renderer (possibly <code>null</code>).
*
* @see #setRenderer(int, CategoryItemRenderer)
*/
public CategoryItemRenderer getRenderer(int index) {
CategoryItemRenderer result = null;
if (this.renderers.size() > index) {
result = (CategoryItemRenderer) this.renderers.get(index);
}
return result;
}
/**
* Sets the renderer at index 0 (sometimes referred to as the "primary"
* renderer) and sends a {@link PlotChangeEvent} to all registered
* listeners.
*
* @param renderer the renderer (<code>null</code> permitted.
*
* @see #getRenderer()
*/
public void setRenderer(CategoryItemRenderer renderer) {
setRenderer(0, renderer, true);
}
/**
* Sets the renderer at index 0 (sometimes referred to as the "primary"
* renderer) and, if requested, sends a {@link PlotChangeEvent} to all
* registered listeners.
* <p>
* You can set the renderer to <code>null</code>, but this is not
* recommended because:
* <ul>
* <li>no data will be displayed;</li>
* <li>the plot background will not be painted;</li>
* </ul>
*
* @param renderer the renderer (<code>null</code> permitted).
* @param notify notify listeners?
*
* @see #getRenderer()
*/
public void setRenderer(CategoryItemRenderer renderer, boolean notify) {
setRenderer(0, renderer, notify);
}
/**
* Sets the renderer at the specified index and sends a
* {@link PlotChangeEvent} to all registered listeners.
*
* @param index the index.
* @param renderer the renderer (<code>null</code> permitted).
*
* @see #getRenderer(int)
* @see #setRenderer(int, CategoryItemRenderer, boolean)
*/
public void setRenderer(int index, CategoryItemRenderer renderer) {
setRenderer(index, renderer, true);
}
/**
* Sets a renderer. A {@link PlotChangeEvent} is sent to all registered
* listeners.
*
* @param index the index.
* @param renderer the renderer (<code>null</code> permitted).
* @param notify notify listeners?
*
* @see #getRenderer(int)
*/
public void setRenderer(int index, CategoryItemRenderer renderer,
boolean notify) {
// stop listening to the existing renderer...
CategoryItemRenderer existing
= (CategoryItemRenderer) this.renderers.get(index);
if (existing != null) {
existing.removeChangeListener(this);
}
// register the new renderer...
this.renderers.set(index, renderer);
if (renderer != null) {
renderer.setPlot(this);
renderer.addChangeListener(this);
}
configureDomainAxes();
configureRangeAxes();
if (notify) {
notifyListeners(new PlotChangeEvent(this));
}
}
/**
* Sets the renderers for this plot and sends a {@link PlotChangeEvent}
* to all registered listeners.
*
* @param renderers the renderers.
*/
public void setRenderers(CategoryItemRenderer[] renderers) {
for (int i = 0; i < renderers.length; i++) {
setRenderer(i, renderers[i], false);
}
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the renderer for the specified dataset. If the dataset doesn't
* belong to the plot, this method will return <code>null</code>.
*
* @param dataset the dataset (<code>null</code> permitted).
*
* @return The renderer (possibly <code>null</code>).
*/
public CategoryItemRenderer getRendererForDataset(CategoryDataset dataset) {
CategoryItemRenderer result = null;
for (int i = 0; i < this.datasets.size(); i++) {
if (this.datasets.get(i) == dataset) {
result = (CategoryItemRenderer) this.renderers.get(i);
break;
}
}
return result;
}
/**
* Returns the index of the specified renderer, or <code>-1</code> if the
* renderer is not assigned to this plot.
*
* @param renderer the renderer (<code>null</code> permitted).
*
* @return The renderer index.
*/
public int getIndexOf(CategoryItemRenderer renderer) {
return this.renderers.indexOf(renderer);
}
/**
* Returns the dataset rendering order.
*
* @return The order (never <code>null</code>).
*
* @see #setDatasetRenderingOrder(DatasetRenderingOrder)
*/
public DatasetRenderingOrder getDatasetRenderingOrder() {
return this.renderingOrder;
}
/**
* Sets the rendering order and sends a {@link PlotChangeEvent} to all
* registered listeners. By default, the plot renders the primary dataset
* last (so that the primary dataset overlays the secondary datasets). You
* can reverse this if you want to.
*
* @param order the rendering order (<code>null</code> not permitted).
*
* @see #getDatasetRenderingOrder()
*/
public void setDatasetRenderingOrder(DatasetRenderingOrder order) {
if (order == null) {
throw new IllegalArgumentException("Null 'order' argument.");
}
this.renderingOrder = order;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the order in which the columns are rendered. The default value
* is <code>SortOrder.ASCENDING</code>.
*
* @return The column rendering order (never <code>null</code).
*
* @see #setColumnRenderingOrder(SortOrder)
*/
public SortOrder getColumnRenderingOrder() {
return this.columnRenderingOrder;
}
/**
* Sets the column order in which the items in each dataset should be
* rendered and sends a {@link PlotChangeEvent} to all registered
* listeners. Note that this affects the order in which items are drawn,
* NOT their position in the chart.
*
* @param order the order (<code>null</code> not permitted).
*
* @see #getColumnRenderingOrder()
* @see #setRowRenderingOrder(SortOrder)
*/
public void setColumnRenderingOrder(SortOrder order) {
if (order == null) {
throw new IllegalArgumentException("Null 'order' argument.");
}
this.columnRenderingOrder = order;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the order in which the rows should be rendered. The default
* value is <code>SortOrder.ASCENDING</code>.
*
* @return The order (never <code>null</code>).
*
* @see #setRowRenderingOrder(SortOrder)
*/
public SortOrder getRowRenderingOrder() {
return this.rowRenderingOrder;
}
/**
* Sets the row order in which the items in each dataset should be
* rendered and sends a {@link PlotChangeEvent} to all registered
* listeners. Note that this affects the order in which items are drawn,
* NOT their position in the chart.
*
* @param order the order (<code>null</code> not permitted).
*
* @see #getRowRenderingOrder()
* @see #setColumnRenderingOrder(SortOrder)
*/
public void setRowRenderingOrder(SortOrder order) {
if (order == null) {
throw new IllegalArgumentException("Null 'order' argument.");
}
this.rowRenderingOrder = order;
notifyListeners(new PlotChangeEvent(this));
}
/**
* Returns the flag that controls whether the domain grid-lines are visible.
*
* @return The <code>true</code> or <code>false</code>.
*
* @see #setDomainGridlinesVisible(boolean)
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -