/*
* 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.server.web.dashboard.chart;
import java.util.Map;
import ro.nextreports.server.domain.Chart;
import ro.nextreports.server.report.next.NextUtil;
import ro.nextreports.server.service.StorageService;
import ro.nextreports.server.util.ChartUtil;
import ro.nextreports.server.web.dashboard.EntityWidget;
import ro.nextreports.server.web.dashboard.WidgetView;
import ro.nextreports.server.web.dashboard.model.WidgetModel;
/**
* @author Decebal Suiu
*/
public class ChartWidget extends EntityWidget {
private static final long serialVersionUID = 1L;
public static final String DEFAULT_TITLE = "Chart";
public static final String CHART_TYPE = "chartType";
public ChartWidget() {
title = DEFAULT_TITLE;
}
public WidgetView createView(String viewId, boolean zoom) {
if (entity == null) {
return new WidgetView(viewId, new WidgetModel(getId()), false); // dynamic
}
return new ChartWidgetView(viewId, new WidgetModel(getId()), zoom); // dynamic
}
public WidgetView createView(String viewId, String width, String height) {
if (entity == null) {
return new WidgetView(viewId, new WidgetModel(getId()), false); // dynamic
}
return new ChartWidgetView(viewId, new WidgetModel(getId()), false, width, height); // dynamic
}
public WidgetView createView(String viewId, boolean zoom, Map<String, Object> urlQueryParameters) {
if (entity == null) {
return new WidgetView(viewId, new WidgetModel(getId()), false); // dynamic
}
return new ChartWidgetView(viewId, new WidgetModel(getId()), zoom, urlQueryParameters); // dynamic
}
public WidgetView createView(String viewId, String width, String height, Map<String,Object> urlQueryParameters) {
if (entity == null) {
return new WidgetView(viewId, new WidgetModel(getId()), false); // dynamic
}
return new ChartWidgetView(viewId, new WidgetModel(getId()), false, width, height, urlQueryParameters); // dynamic
}
public boolean saveToExcel() {
return true;
}
@Override
public void afterCreate(StorageService storageService) {
super.afterCreate(storageService);
if (getChartType() == null) {
if ((entity == null) || ( ((Chart)entity).getContent() == null)) {
return;
}
ro.nextreports.engine.chart.Chart c= NextUtil.getChart(((Chart)entity).getContent());
if (c == null) {
return;
}
String chartType = ChartUtil.getChartType(c.getType().getType());
setChartType(chartType);
}
}
public void setChartType(String chartType) {
settings.put(CHART_TYPE, chartType);
}
public String getChartType() {
return settings.get(CHART_TYPE);
}
@Override
public String toString() {
StringBuffer buffer = new StringBuffer();
buffer.append("ChartWidget[");
buffer.append("id = ").append(getId());
buffer.append(" title = ").append(getTitle());
buffer.append(" entityId = ").append(getInternalSettings().get(ENTITY_ID));
buffer.append("]");
return buffer.toString();
}
}