All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ro.nextreports.engine.chart.NextChart Maven / Gradle / Ivy

Go to download

NextReports Engine is a lightweight Java platform development library which can be used to run NextReports inside your applications.

There is a newer version: 9.2
Show newest version
/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package ro.nextreports.engine.chart;

import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.databind.ObjectMapper;

/* 
 * @author Mihai Dinca-Panaitescu 
 */
public class NextChart {
	
	public static enum Type { bar, stackedbar, hbar, hstackedbar, line, area, pie, barcombo, stackedbarcombo, bubble };
	public static enum Style { normal, glass, cylinder, dome, parallelepiped, soliddot, hollowdot, anchordot, bowdot, stardot };
	public static enum Orientation { horizontal, vertical, diagonal, halfdiagonal };
	public static enum Alignment { left, center, right };
	
	private List> data = new ArrayList>();
	private List> lineData = new ArrayList>();
	private Type type;
	private Style style;
	private String background;	
	private List labels = new ArrayList();
	private List categories = new ArrayList();
	private Orientation labelOrientation;
	private List color = new ArrayList();
	private List lineColor = new ArrayList();
	private List legend = new ArrayList();
	private List lineLegend = new ArrayList();
	private Number alpha;
	private String colorXaxis;
	private String colorYaxis;
	private boolean showGridX;
	private boolean showGridY;
	private boolean showLabels;
	private String colorGridX;
	private String colorGridY;
	private String message;
	private int tickCount;
	private boolean showTicks = true;
	private NextChartTitle title;
	private NextChartAxis xData;
	private NextChartAxis yData;	
	private NextChartLegend xLegend;
	private NextChartLegend yLegend;
	private NextNumberFormat tooltipPattern;
	private boolean dualYaxis;
	private NextChartLegend y2Legend;
	private int y2Count;
		
	// function doClick(value){ console.log('Call from function : ' + value);}
	private String onClick;
	
	public NextChart() {	
	}
		
	public Type getType() {
		return type;
	}

	public void setType(Type type) {
		this.type = type;
	}

	public Style getStyle() {
		return style;
	}

	public void setStyle(Style style) {
		this.style = style;
	}

	public List> getData() {
		return data;
	}

	public void setData(List> data) {
		this.data = data;
	}
	
	public String getBackground() {
		return background;
	}

	public void setBackground(String background) {
		this.background = background;
	}

	public List getLabels() {
		return labels;
	}

	public void setLabels(List labels) {
		this.labels = labels;
	}
		
	public List getCategories() {
		return categories;
	}

	public void setCategories(List categories) {
		this.categories = categories;
	}

	public Orientation getLabelOrientation() {
		return labelOrientation;
	}

	public void setLabelOrientation(Orientation labelOrientation) {
		this.labelOrientation = labelOrientation;
	}

	public List getColor() {
		return color;
	}

	public void setColor(List color) {
		this.color = color;
	}

	public List getLegend() {
		return legend;
	}

	public void setLegend(List legend) {
		this.legend = legend;
	}

	public Number getAlpha() {
		return alpha;
	}

	public void setAlpha(Number alpha) {
		this.alpha = alpha;
	}

	public String getColorXaxis() {
		return colorXaxis;
	}

	public void setColorXaxis(String colorXaxis) {
		this.colorXaxis = colorXaxis;
	}

	public String getColorYaxis() {
		return colorYaxis;
	}

	public void setColorYaxis(String colorYaxis) {
		this.colorYaxis = colorYaxis;
	}

	public boolean isShowGridX() {
		return showGridX;
	}

	public void setShowGridX(boolean showGridX) {
		this.showGridX = showGridX;
	}

	public boolean isShowGridY() {
		return showGridY;
	}

	public void setShowGridY(boolean showGridY) {
		this.showGridY = showGridY;
	}
		
	public boolean isShowLabels() {
		return showLabels;
	}

	public void setShowLabels(boolean showLabels) {
		this.showLabels = showLabels;
	}

	public String getColorGridX() {
		return colorGridX;
	}

	public void setColorGridX(String colorGridX) {
		this.colorGridX = colorGridX;
	}

	public String getColorGridY() {
		return colorGridY;
	}

	public void setColorGridY(String colorGridY) {
		this.colorGridY = colorGridY;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public int getTickCount() {
		return tickCount;
	}

	public void setTickCount(int tickCount) {
		this.tickCount = tickCount;
	}

	public NextChartTitle getTitle() {
		return title;
	}

	public void setTitle(NextChartTitle title) {
		this.title = title;
	}
	
	public NextChartAxis getxData() {
		return xData;
	}

	public void setxData(NextChartAxis xData) {
		this.xData = xData;
	}

	public NextChartAxis getyData() {
		return yData;
	}

	public void setyData(NextChartAxis yData) {
		this.yData = yData;
	}

	public NextChartLegend getxLegend() {
		return xLegend;
	}

	public void setxLegend(NextChartLegend xLegend) {
		this.xLegend = xLegend;
	}

	public NextChartLegend getyLegend() {
		return yLegend;
	}

	public void setyLegend(NextChartLegend yLegend) {
		this.yLegend = yLegend;
	}				

	public boolean isDualYaxis() {
		return dualYaxis;
	}

	public void setDualYaxis(boolean dualYaxis) {
		this.dualYaxis = dualYaxis;
	}

	public NextChartLegend getY2Legend() {
		return y2Legend;
	}

	public void setY2Legend(NextChartLegend y2Legend) {
		this.y2Legend = y2Legend;
	}
		
	public int getY2Count() {
		return y2Count;
	}

	public void setY2Count(int y2Count) {
		this.y2Count = y2Count;
	}

	public boolean isShowTicks() {
		return showTicks;
	}

	public void setShowTicks(boolean showTicks) {
		this.showTicks = showTicks;
	}
	
	public NextNumberFormat getTooltipPattern() {
		return tooltipPattern;
	}

	public void setTooltipPattern(NextNumberFormat tooltipPattern) {
		this.tooltipPattern = tooltipPattern;
	}
		
	public List> getLineData() {
		return lineData;
	}

	public void setLineData(List> lineData) {
		this.lineData = lineData;
	}

	public List getLineColor() {
		return lineColor;
	}

	public void setLineColor(List lineColor) {
		this.lineColor = lineColor;
	}

	public List getLineLegend() {
		return lineLegend;
	}

	public void setLineLegend(List lineLegend) {
		this.lineLegend = lineLegend;
	}
		
	public String getOnClick() {
		return onClick;
	}

	public void setOnClick(String onClick) {
		this.onClick = onClick;
	}

	public String toJson() {
		ObjectMapper mapper = new ObjectMapper();		
		mapper.setSerializationInclusion(Include.NON_NULL);
		mapper.setSerializationInclusion(Include.NON_EMPTY);
		StringWriter writer = new StringWriter();
		try {
			mapper.writeValue(writer, this);
			return writer.toString();
		} catch (Exception ex) {
			ex.printStackTrace();
			return "Error : " + ex.getMessage();
		}
	}		

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy