sim.util.media.chart.PieChartSeriesAttributes Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mason Show documentation
Show all versions of mason Show documentation
MASON is a fast discrete-event multiagent simulation library core in Java, designed to be the foundation for large custom-purpose Java simulations, and also to provide more than enough functionality for many lightweight simulation needs. MASON contains both a model library and an optional suite of visualization tools in 2D and 3D.
The newest version!
/*
Copyright 2013 by Sean Luke and George Mason University
Licensed under the Academic Free License version 3.0
See the file "LICENSE" for more information
*/
package sim.util.media.chart;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
import sim.util.gui.*;
// From JFreeChart
import org.jfree.data.xy.*;
import org.jfree.chart.*;
import org.jfree.chart.event.*;
import org.jfree.chart.plot.*;
import org.jfree.data.general.*;
import org.jfree.chart.renderer.xy.*;
import org.jfree.data.general.*;
/**
A SeriesAttributes used for user control of pie chart series created with PieChartGenerator.
Like HistogramSeriesAttributes, modifying this series is costly because JFreeChart must rebuild everything.
*/
public class PieChartSeriesAttributes extends SeriesAttributes
{
Object[] elements = null;
Collection elements2 = null;
Object[] getElements()
{
if (elements != null) return elements;
else return elements2.toArray();
}
public void setElements(Object[] elts) { if (elts != null) elts = (Object[])(elts.clone()); elements = elts; elements2 = null; values = null; labels = null;}
public void setElements(Collection elts) { if (elts != null) elts = new ArrayList(elts); elements2 = elts; elements = null; values = null; labels = null;}
double[] values;
public double[] getValues() { return values; }
public void setValues(double[] vals) { if (vals != null) vals = (double[])(vals.clone()); values = vals; elements = null; elements2 = null; }
String[] labels;
public String[] getLabels() { return labels; }
public void setLabels(String[] labs) { if (labs != null) labs = (String[])(labs.clone()); labels = labs; }
public PieChartSeriesAttributes(ChartGenerator generator, String name, int index, SeriesChangeListener stoppable) // , boolean includeMargin)
{
super(generator, name, index, stoppable);
super.setSeriesName(name); // just set the name, don't update
}
/** It's very expensive to call this function (O(n)) because JFreeChart has no way of changing the
name of a pie chart dataset series, and so we must rebuild all of it from scratch. */
public void setSeriesName(String val)
{
super.setSeriesName(val); // call this first to set it
((PieChartGenerator)generator).update();
}
public void rebuildGraphicsDefinitions()
{
repaint(); // probably unneeded if we're not changing anything here
}
public void buildAttributes()
{
// No attributes for now
}
public void setPlotVisible(boolean val)
{
plotVisible = val;
generator.update();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy