first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import org.jfree.chart.entity.CategoryItemEntity;
import org.jfree.chart.entity.ChartEntity;
public class CategoryChartHyperlinkProvider implements ChartHyperlinkProvider {
private static final long serialVersionUID = 10200L;
private Map itemHyperlinks;
public CategoryChartHyperlinkProvider(Map itemHyperlinks) {
this.itemHyperlinks = itemHyperlinks;
}
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
JRPrintHyperlink printHyperlink = null;
if (hasHyperlinks() && entity instanceof CategoryItemEntity) {
CategoryItemEntity itemEntity = (CategoryItemEntity)entity;
Comparable serie = itemEntity.getDataset().getRowKey(itemEntity.getSeries());
Map serieHyperlinks = (Map)this.itemHyperlinks.get(serie);
if (serieHyperlinks != null) {
Object category = itemEntity.getCategory();
printHyperlink = (JRPrintHyperlink)serieHyperlinks.get(category);
}
}
return printHyperlink;
}
public boolean hasHyperlinks() {
return (this.itemHyperlinks != null && this.itemHyperlinks.size() > 0);
}
}

View File

@@ -0,0 +1,23 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
import org.jfree.data.category.CategoryDataset;
public class CategoryLabelGenerator extends StandardCategoryItemLabelGenerator {
private static final long serialVersionUID = 10200L;
private Map labelsMap = null;
public CategoryLabelGenerator(Map labelsMap) {
this.labelsMap = labelsMap;
}
public String generateLabel(CategoryDataset dataset, int series, int category) {
Comparable seriesName = dataset.getRowKey(series);
Map labels = (Map)this.labelsMap.get(seriesName);
if (labels != null)
return (String)labels.get(dataset.getColumnKey(category));
return super.generateLabel(dataset, series, category);
}
}

View File

@@ -0,0 +1,11 @@
package net.sf.jasperreports.charts.util;
import java.io.Serializable;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import org.jfree.chart.entity.ChartEntity;
public interface ChartHyperlinkProvider extends Serializable {
JRPrintHyperlink getEntityHyperlink(ChartEntity paramChartEntity);
boolean hasHyperlinks();
}

View File

@@ -0,0 +1,11 @@
package net.sf.jasperreports.charts.util;
import java.awt.geom.Rectangle2D;
import net.sf.jasperreports.engine.JRRenderable;
import org.jfree.chart.JFreeChart;
public interface ChartRendererFactory {
public static final String PROPERTY_CHART_RENDERER_FACTORY_PREFIX = "net.sf.jasperreports.chart.renderer.factory.";
JRRenderable getRenderer(JFreeChart paramJFreeChart, ChartHyperlinkProvider paramChartHyperlinkProvider, Rectangle2D paramRectangle2D);
}

View File

@@ -0,0 +1,91 @@
package net.sf.jasperreports.charts.util;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.jfree.data.xy.AbstractXYZDataset;
import org.jfree.data.xy.XYZDataset;
public class DefaultXYZDataset extends AbstractXYZDataset implements XYZDataset {
private static final long serialVersionUID = 10200L;
List dataset = null;
public DefaultXYZDataset() {
this.dataset = new ArrayList();
}
public void addValue(Comparable series, Number xValue, Number yValue, Number zValue) {
boolean found = false;
for (Iterator it = this.dataset.iterator(); it.hasNext(); ) {
XYZElement element = it.next();
if (element.getSeries().equals(series)) {
element.addElement(xValue, yValue, zValue);
found = true;
}
}
if (!found) {
XYZElement element = new XYZElement();
element.setSeries(series);
element.addElement(xValue, yValue, zValue);
this.dataset.add(element);
}
}
public int getSeriesCount() {
int retVal = 0;
if (this.dataset != null)
retVal = this.dataset.size();
return retVal;
}
public Number getZ(int series, int index) {
Number retVal = null;
if (this.dataset != null &&
series < getSeriesCount()) {
XYZElement element = this.dataset.get(series);
retVal = element.getZElement(index);
}
return retVal;
}
public int getItemCount(int series) {
int retVal = 0;
if (this.dataset != null &&
series < getSeriesCount()) {
XYZElement element = this.dataset.get(series);
retVal = element.getCount();
}
return retVal;
}
public Number getX(int series, int index) {
Number retVal = null;
if (this.dataset != null &&
series < getSeriesCount()) {
XYZElement element = this.dataset.get(series);
retVal = element.getXElement(index);
}
return retVal;
}
public Number getY(int series, int index) {
Number retVal = null;
if (this.dataset != null &&
series < getSeriesCount()) {
XYZElement element = this.dataset.get(series);
retVal = element.getYElement(index);
}
return retVal;
}
public Comparable getSeriesKey(int index) {
String retVal = null;
if (this.dataset != null &&
index < getSeriesCount()) {
XYZElement element = this.dataset.get(index);
retVal = element.getSeries().toString();
}
return retVal;
}
}

View File

@@ -0,0 +1,31 @@
package net.sf.jasperreports.charts.util;
import java.util.List;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.XYItemEntity;
public class HighLowChartHyperlinkProvider implements ChartHyperlinkProvider {
private static final long serialVersionUID = 10200L;
private List itemHyperlinks;
public HighLowChartHyperlinkProvider(List itemHyperlinks) {
this.itemHyperlinks = itemHyperlinks;
}
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
JRPrintHyperlink printHyperlink = null;
if (hasHyperlinks() && entity instanceof XYItemEntity) {
XYItemEntity itemEntity = (XYItemEntity)entity;
int item = itemEntity.getItem();
if (item >= 0 && item < this.itemHyperlinks.size())
printHyperlink = this.itemHyperlinks.get(item);
}
return printHyperlink;
}
public boolean hasHyperlinks() {
return (this.itemHyperlinks != null && this.itemHyperlinks.size() > 0);
}
}

View File

@@ -0,0 +1,69 @@
package net.sf.jasperreports.charts.util;
import java.awt.Color;
import java.io.Serializable;
import net.sf.jasperreports.engine.JRFont;
public class JRAxisFormat implements Serializable {
private static final long serialVersionUID = 10200L;
protected Color labelColor = null;
protected JRFont labelFont = null;
protected Color tickLabelColor = null;
protected JRFont tickLabelFont = null;
protected String tickLabelMask = null;
protected Color lineColor = null;
public Color getLabelColor() {
return this.labelColor;
}
public void setLabelColor(Color labelColor) {
this.labelColor = labelColor;
}
public JRFont getLabelFont() {
return this.labelFont;
}
public void setLabelFont(JRFont labelFont) {
this.labelFont = labelFont;
}
public Color getLineColor() {
return this.lineColor;
}
public void setLineColor(Color lineColor) {
this.lineColor = lineColor;
}
public Color getTickLabelColor() {
return this.tickLabelColor;
}
public void setTickLabelColor(Color tickLabelColor) {
this.tickLabelColor = tickLabelColor;
}
public JRFont getTickLabelFont() {
return this.tickLabelFont;
}
public void setTickLabelFont(JRFont tickLabelFont) {
this.tickLabelFont = tickLabelFont;
}
public String getTickLabelMask() {
return this.tickLabelMask;
}
public void setTickLabelMask(String mask) {
this.tickLabelMask = mask;
}
}

View File

@@ -0,0 +1,74 @@
package net.sf.jasperreports.charts.util;
import java.awt.Color;
import java.io.Serializable;
import net.sf.jasperreports.charts.JRDataRange;
import net.sf.jasperreports.charts.base.JRBaseDataRange;
import net.sf.jasperreports.engine.JRCloneable;
import net.sf.jasperreports.engine.JRRuntimeException;
import net.sf.jasperreports.engine.base.JRBaseObjectFactory;
public class JRMeterInterval implements JRCloneable, Serializable {
protected JRDataRange dataRange = null;
protected String label = null;
protected Color backgroundColor = null;
protected double alpha = 1.0D;
private static final long serialVersionUID = 10200L;
public JRMeterInterval() {}
public JRMeterInterval(JRMeterInterval meterInterval, JRBaseObjectFactory factory) {
this.dataRange = (JRDataRange)new JRBaseDataRange(meterInterval.getDataRange(), factory);
this.label = meterInterval.getLabel();
this.backgroundColor = meterInterval.getBackgroundColor();
this.alpha = meterInterval.getAlpha();
}
public JRDataRange getDataRange() {
return this.dataRange;
}
public void setDataRange(JRDataRange dataRange) {
this.dataRange = dataRange;
}
public String getLabel() {
return this.label;
}
public void setLabel(String label) {
this.label = label;
}
public Color getBackgroundColor() {
return this.backgroundColor;
}
public void setBackgroundColor(Color backgroundColor) {
this.backgroundColor = backgroundColor;
}
public double getAlpha() {
return this.alpha;
}
public void setAlpha(double alpha) {
this.alpha = alpha;
}
public Object clone() {
JRMeterInterval clone = null;
try {
clone = (JRMeterInterval)super.clone();
} catch (CloneNotSupportedException e) {
throw new JRRuntimeException(e);
}
if (this.dataRange != null)
clone.dataRange = (JRDataRange)this.dataRange.clone();
return clone;
}
}

View File

@@ -0,0 +1,29 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.PieSectionEntity;
public class PieChartHyperlinkProvider implements ChartHyperlinkProvider {
private static final long serialVersionUID = 10200L;
private Map sectionHyperlinks;
public PieChartHyperlinkProvider(Map sectionHyperlinks) {
this.sectionHyperlinks = sectionHyperlinks;
}
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
JRPrintHyperlink printHyperlink = null;
if (hasHyperlinks() && entity instanceof PieSectionEntity) {
PieSectionEntity pieEntity = (PieSectionEntity)entity;
printHyperlink = (JRPrintHyperlink)this.sectionHyperlinks.get(pieEntity.getSectionKey());
}
return printHyperlink;
}
public boolean hasHyperlinks() {
return (this.sectionHyperlinks != null && this.sectionHyperlinks.size() > 0);
}
}

View File

@@ -0,0 +1,25 @@
package net.sf.jasperreports.charts.util;
import java.io.Serializable;
import java.text.AttributedString;
import java.util.Map;
import org.jfree.chart.labels.PieSectionLabelGenerator;
import org.jfree.data.general.PieDataset;
public class PieLabelGenerator implements PieSectionLabelGenerator, Serializable {
private static final long serialVersionUID = 10200L;
private Map labels = null;
public PieLabelGenerator(Map labels) {
this.labels = labels;
}
public String generateSectionLabel(PieDataset arg0, Comparable arg1) {
return (String)this.labels.get(arg1);
}
public AttributedString generateAttributedSectionLabel(PieDataset arg0, Comparable arg1) {
return new AttributedString(generateSectionLabel(arg0, arg1));
}
}

View File

@@ -0,0 +1,38 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.XYItemEntity;
import org.jfree.data.time.TimePeriod;
import org.jfree.data.time.TimePeriodValues;
import org.jfree.data.time.TimePeriodValuesCollection;
public class TimePeriodChartHyperlinkProvider implements ChartHyperlinkProvider {
private static final long serialVersionUID = 10200L;
private Map itemHyperlinks;
public TimePeriodChartHyperlinkProvider(Map itemHyperlinks) {
this.itemHyperlinks = itemHyperlinks;
}
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
JRPrintHyperlink printHyperlink = null;
if (hasHyperlinks() && entity instanceof XYItemEntity) {
XYItemEntity itemEntity = (XYItemEntity)entity;
TimePeriodValuesCollection dataset = (TimePeriodValuesCollection)itemEntity.getDataset();
TimePeriodValues series = dataset.getSeries(itemEntity.getSeriesIndex());
Map serieHyperlinks = (Map)this.itemHyperlinks.get(series.getKey());
if (serieHyperlinks != null) {
TimePeriod timePeriod = series.getTimePeriod(itemEntity.getItem());
printHyperlink = (JRPrintHyperlink)serieHyperlinks.get(timePeriod);
}
}
return printHyperlink;
}
public boolean hasHyperlinks() {
return (this.itemHyperlinks != null && this.itemHyperlinks.size() > 0);
}
}

View File

@@ -0,0 +1,24 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.data.time.TimePeriodValuesCollection;
import org.jfree.data.xy.XYDataset;
public class TimePeriodDatasetLabelGenerator extends StandardXYItemLabelGenerator {
private static final long serialVersionUID = 10200L;
private Map labelsMap = null;
public TimePeriodDatasetLabelGenerator(Map labelsMap) {
this.labelsMap = labelsMap;
}
public String generateLabel(XYDataset dataset, int series, int item) {
Comparable seriesName = dataset.getSeriesKey(series);
Map labels = (Map)this.labelsMap.get(seriesName);
if (labels != null)
return (String)labels.get(((TimePeriodValuesCollection)dataset).getSeries(series).getTimePeriod(item));
return super.generateLabel(dataset, series, item);
}
}

View File

@@ -0,0 +1,38 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.XYItemEntity;
import org.jfree.data.time.RegularTimePeriod;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
public class TimeSeriesChartHyperlinkProvider implements ChartHyperlinkProvider {
private static final long serialVersionUID = 10200L;
private Map itemHyperlinks;
public TimeSeriesChartHyperlinkProvider(Map itemHyperlinks) {
this.itemHyperlinks = itemHyperlinks;
}
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
JRPrintHyperlink printHyperlink = null;
if (hasHyperlinks() && entity instanceof XYItemEntity) {
XYItemEntity itemEntity = (XYItemEntity)entity;
TimeSeriesCollection dataset = (TimeSeriesCollection)itemEntity.getDataset();
TimeSeries series = dataset.getSeries(itemEntity.getSeriesIndex());
Map serieHyperlinks = (Map)this.itemHyperlinks.get(series.getKey());
if (serieHyperlinks != null) {
RegularTimePeriod timePeriod = series.getTimePeriod(itemEntity.getItem());
printHyperlink = (JRPrintHyperlink)serieHyperlinks.get(timePeriod);
}
}
return printHyperlink;
}
public boolean hasHyperlinks() {
return (this.itemHyperlinks != null && this.itemHyperlinks.size() > 0);
}
}

View File

@@ -0,0 +1,24 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
public class TimeSeriesLabelGenerator extends StandardXYItemLabelGenerator {
private static final long serialVersionUID = 10200L;
private Map labelsMap = null;
public TimeSeriesLabelGenerator(Map labelsMap) {
this.labelsMap = labelsMap;
}
public String generateLabel(XYDataset dataset, int series, int item) {
Comparable seriesName = dataset.getSeriesKey(series);
Map labels = (Map)this.labelsMap.get(seriesName);
if (labels != null)
return (String)labels.get(((TimeSeriesCollection)dataset).getSeries(series).getTimePeriod(item));
return super.generateLabel(dataset, series, item);
}
}

View File

@@ -0,0 +1,39 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import net.sf.jasperreports.engine.JRPrintHyperlink;
import net.sf.jasperreports.engine.util.Pair;
import org.jfree.chart.entity.ChartEntity;
import org.jfree.chart.entity.XYItemEntity;
import org.jfree.data.xy.XYDataset;
public class XYChartHyperlinkProvider implements ChartHyperlinkProvider {
private static final long serialVersionUID = 10200L;
private Map itemHyperlinks;
public XYChartHyperlinkProvider(Map itemHyperlinks) {
this.itemHyperlinks = itemHyperlinks;
}
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
JRPrintHyperlink printHyperlink = null;
if (hasHyperlinks() && entity instanceof XYItemEntity) {
XYItemEntity itemEntity = (XYItemEntity)entity;
XYDataset dataset = itemEntity.getDataset();
Comparable serie = dataset.getSeriesKey(itemEntity.getSeriesIndex());
Map serieHyperlinks = (Map)this.itemHyperlinks.get(serie);
if (serieHyperlinks != null) {
Number x = dataset.getX(itemEntity.getSeriesIndex(), itemEntity.getItem());
Number y = dataset.getY(itemEntity.getSeriesIndex(), itemEntity.getItem());
Object xyKey = new Pair(x, y);
printHyperlink = (JRPrintHyperlink)serieHyperlinks.get(xyKey);
}
}
return printHyperlink;
}
public boolean hasHyperlinks() {
return (this.itemHyperlinks != null && this.itemHyperlinks.size() > 0);
}
}

View File

@@ -0,0 +1,24 @@
package net.sf.jasperreports.charts.util;
import java.util.Map;
import org.jfree.chart.labels.StandardXYItemLabelGenerator;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeriesCollection;
public class XYDatasetLabelGenerator extends StandardXYItemLabelGenerator {
private static final long serialVersionUID = 10200L;
private Map labelsMap = null;
public XYDatasetLabelGenerator(Map labelsMap) {
this.labelsMap = labelsMap;
}
public String generateLabel(XYDataset dataset, int series, int item) {
Comparable seriesName = dataset.getSeriesKey(series);
Map labels = (Map)this.labelsMap.get(seriesName);
if (labels != null)
return (String)labels.get(((XYSeriesCollection)dataset).getX(series, item));
return super.generateLabel(dataset, series, item);
}
}

View File

@@ -0,0 +1,56 @@
package net.sf.jasperreports.charts.util;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class XYZElement implements Serializable {
private static final long serialVersionUID = 10200L;
private Comparable series = null;
private List xElements = null;
private List yElements = null;
private List zElements = null;
public XYZElement() {
this.xElements = new ArrayList();
this.yElements = new ArrayList();
this.zElements = new ArrayList();
}
public void setSeries(Comparable series) {
this.series = series;
}
public Comparable getSeries() {
return this.series;
}
public void addElement(Number xElement, Number yElement, Number zElement) {
this.xElements.add(xElement);
this.yElements.add(yElement);
this.zElements.add(zElement);
}
public Number getXElement(int index) {
return this.xElements.get(index);
}
public Number getYElement(int index) {
return this.yElements.get(index);
}
public Number getZElement(int index) {
return this.zElements.get(index);
}
public int getCount() {
int retVal = 0;
if (this.xElements != null)
retVal = this.xElements.size();
return retVal;
}
}