}
// Create Renderers!
CategoryItemRenderer barRenderer1=new BarRenderer();
CategoryItemRenderer barRenderer2=new BarRenderer();
LineAndShapeRenderer lineRenderer1=(useLinesRenderers==true) ? new LineAndShapeRenderer() : null;
LineAndShapeRenderer lineRenderer2=(useLinesRenderers==true) ? new LineAndShapeRenderer() : null;
subPlot1.setRenderer(0,barRenderer1);
subPlot2.setRenderer(0,barRenderer2);
if(useLinesRenderers==true){
subPlot1.setRenderer(1,lineRenderer1);
subPlot2.setRenderer(1,lineRenderer2);
// no shapes for line_no_shapes series
for (Iterator iterator = lineNoShapeSeries1.iterator(); iterator.hasNext();) {
String ser = (String) iterator.next();
// if there iS a abel associated search for that
String label=null;
if(seriesLabelsMap!=null){
label=(String)seriesLabelsMap.get(ser);
}
if(label==null)label=ser;
int index=datasetLineFirstAxis.getRowIndex(label);
if(index!=-1){
lineRenderer1.setSeriesShapesVisible(index, false);
}
}
for (Iterator iterator = lineNoShapeSeries2.iterator(); iterator.hasNext();) {
String ser = (String) iterator.next();
// if there iS a abel associated search for that
String label=null;
if(seriesLabelsMap!=null){
label=(String)seriesLabelsMap.get(ser);
}
if(label==null)label=ser;
int index=datasetLineSecondAxis.getRowIndex(label);
if(index!=-1){
lineRenderer2.setSeriesShapesVisible(index, false);
}
}
}
// add tooltip if enabled
if(enableToolTips){
MyCategoryToolTipGenerator generatorToolTip=new MyCategoryToolTipGenerator(freeToolTips, seriesTooltip, categoriesTooltip, seriesCaptions);
barRenderer1.setToolTipGenerator(generatorToolTip);
barRenderer2.setToolTipGenerator(generatorToolTip);
if(useLinesRenderers){
lineRenderer1.setToolTipGenerator(generatorToolTip);
lineRenderer2.setToolTipGenerator(generatorToolTip);
}
}
subPlot1.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
subPlot2.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
// COnfigure renderers: I do in extensive way so will be easier to add customization in the future
if(maxBarWidth!=null){
((BarRenderer)barRenderer1).setMaximumBarWidth(maxBarWidth.doubleValue());
((BarRenderer)barRenderer2).setMaximumBarWidth(maxBarWidth.doubleValue());
}
// Values or addition Labels for first BAR Renderer
if(showValueLabels){
barRenderer1.setBaseItemLabelGenerator(new FilterZeroStandardCategoryItemLabelGenerator());
barRenderer1.setBaseItemLabelsVisible(true);
barRenderer1.setBaseItemLabelFont(new Font(styleValueLabels.getFontName(), Font.PLAIN, styleValueLabels.getSize()));
barRenderer1.setBaseItemLabelPaint(styleValueLabels.getColor());
barRenderer1.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
barRenderer1.setBaseNegativeItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
barRenderer2.setBaseItemLabelGenerator(new FilterZeroStandardCategoryItemLabelGenerator());
barRenderer2.setBaseItemLabelsVisible(true);
barRenderer2.setBaseItemLabelFont(new Font(styleValueLabels.getFontName(), Font.PLAIN, styleValueLabels.getSize()));
barRenderer2.setBaseItemLabelPaint(styleValueLabels.getColor());
barRenderer2.setBasePositiveItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
barRenderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(
ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
}
else if(additionalLabels){
barRenderer1.setBaseItemLabelGenerator(generator);
barRenderer2.setBaseItemLabelGenerator(generator);
double orient=(-Math.PI / 2.0);
if(styleValueLabels.getOrientation().equalsIgnoreCase("horizontal")){
orient=0.0;
}
barRenderer1.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
barRenderer1.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
barRenderer2.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
barRenderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
}
// Values or addition Labels for line Renderers if requested
if(useLinesRenderers==true){
if(showValueLabels){
lineRenderer1.setBaseItemLabelGenerator(new FilterZeroStandardCategoryItemLabelGenerator());
lineRenderer1.setBaseItemLabelsVisible(true);
lineRenderer1.setBaseItemLabelFont(new Font(styleValueLabels.getFontName(), Font.PLAIN, styleValueLabels.getSize()));
lineRenderer1.setBaseItemLabelPaint(styleValueLabels.getColor());
lineRenderer1.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
lineRenderer1.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
lineRenderer2.setBaseItemLabelGenerator(new FilterZeroStandardCategoryItemLabelGenerator());
lineRenderer2.setBaseItemLabelsVisible(true);
lineRenderer2.setBaseItemLabelFont(new Font(styleValueLabels.getFontName(), Font.PLAIN, styleValueLabels.getSize()));
lineRenderer2.setBaseItemLabelPaint(styleValueLabels.getColor());
lineRenderer2.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
lineRenderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));
}
else if(additionalLabels){
lineRenderer1.setBaseItemLabelGenerator(generator);
lineRenderer2.setBaseItemLabelGenerator(generator);
double orient=(-Math.PI / 2.0);
if(styleValueLabels.getOrientation().equalsIgnoreCase("horizontal")){
orient=0.0;
}
lineRenderer1.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
lineRenderer1.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
lineRenderer2.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
lineRenderer2.setBaseNegativeItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER, TextAnchor.CENTER, orient));
}
}
// Bar Dataset Colors!
if(colorMap!=null){
int idx = -1;
for (Iterator iterator = datasetBarFirstAxis.getRowKeys().iterator(); iterator.hasNext();) {
idx++;
String serName = (String) iterator.next();
String labelName = "";
int index=-1;
if (seriesCaptions != null && seriesCaptions.size()>0){
labelName = serName;
serName = (String)seriesCaptions.get(serName);
index=datasetBarFirstAxis.getRowIndex(labelName);
}
else
index=datasetBarFirstAxis.getRowIndex(serName);
Color color=(Color)colorMap.get(serName);
if(color!=null){
barRenderer1.setSeriesPaint(index, color);
}
}
for (Iterator iterator = datasetBarSecondAxis.getRowKeys().iterator(); iterator.hasNext();) {
idx++;
String serName = (String) iterator.next();
String labelName = "";
int index=-1;
if (seriesCaptions != null && seriesCaptions.size()>0){
labelName = serName;
serName = (String)seriesCaptions.get(serName);
index=datasetBarSecondAxis.getRowIndex(labelName);
}
else
index=datasetBarSecondAxis.getRowIndex(serName);
Color color=(Color)colorMap.get(serName);
if(color!=null){
barRenderer2.setSeriesPaint(index, color);
}
}
}
// LINE Dataset Colors!
if(useLinesRenderers==true){
if(colorMap!=null){
int idx = -1;
for (Iterator iterator = datasetLineFirstAxis.getRowKeys().iterator(); iterator.hasNext();) {
idx++;
String serName = (String) iterator.next();
String labelName = "";
int index=-1;
if (seriesCaptions != null && seriesCaptions.size()>0){
labelName = serName;
serName = (String)seriesCaptions.get(serName);
index=datasetLineFirstAxis.getRowIndex(labelName);
}
else
index=datasetLineFirstAxis.getRowIndex(serName);
Color color=(Color)colorMap.get(serName);
if(color!=null){
lineRenderer1.setSeriesPaint(index, color);
}
}
for (Iterator iterator = datasetLineSecondAxis.getRowKeys().iterator(); iterator.hasNext();) {
idx++;
String serName = (String) iterator.next();
String labelName = "";
int index=-1;
if (seriesCaptions != null && seriesCaptions.size()>0){
labelName = serName;
serName = (String)seriesCaptions.get(serName);
index=datasetLineSecondAxis.getRowIndex(labelName);
}
else
index=datasetLineSecondAxis.getRowIndex(serName);
Color color=(Color)colorMap.get(serName);
if(color!=null){
lineRenderer2.setSeriesPaint(index, color);
}
}
}
}
//defines url for drill
boolean document_composition=false;
if(mode.equalsIgnoreCase(SpagoBIConstants.DOCUMENT_COMPOSITION))document_composition=true;
logger.debug("Calling Url Generation");
MyCategoryUrlGenerator mycatUrl=null;
if(super.rootUrl!=null){
logger.debug("Set MycatUrl");
mycatUrl=new MyCategoryUrlGenerator(super.rootUrl);
mycatUrl.setDocument_composition(document_composition);
mycatUrl.setCategoryUrlLabel(super.categoryUrlName);
mycatUrl.setSerieUrlLabel(super.serieUrlname);
mycatUrl.setDrillDocTitle(drillDocTitle);
mycatUrl.setTarget(target);
}
if(mycatUrl!=null){
barRenderer1.setItemURLGenerator(mycatUrl);
barRenderer2.setItemURLGenerator(mycatUrl);
if(useLinesRenderers){
lineRenderer1.setItemURLGenerator(mycatUrl);
lineRenderer2.setItemURLGenerator(mycatUrl);
}
}