[manage]添加ChartDataSetVO,解决图表编辑和查看功能报错问题

This commit is contained in:
datagear 2020-05-09 20:35:16 +08:00
parent c057324642
commit d9ee08adfc
4 changed files with 90 additions and 13 deletions

View File

@ -0,0 +1,48 @@
/*
* Copyright (c) 2018 datagear.tech. All Rights Reserved.
*/
/**
*
*/
package org.datagear.management.domain;
import org.datagear.analysis.ChartDataSet;
import org.datagear.analysis.DataSet;
import org.datagear.analysis.DataSetResult;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* {@linkplain ChartDataSet}值对象
*
* @author datagear@163.com
*
*/
public class ChartDataSetVO extends ChartDataSet
{
public ChartDataSetVO()
{
super();
}
public ChartDataSetVO(DataSet dataSet)
{
super(dataSet);
}
@JsonIgnore
@Override
public boolean isResultReady()
{
return super.isResultReady();
}
@JsonIgnore
@Override
public DataSetResult getResult()
{
return super.getResult();
}
}

View File

@ -11,12 +11,16 @@ import java.util.Date;
import java.util.Locale;
import org.datagear.analysis.ChartDataSet;
import org.datagear.analysis.DataSetException;
import org.datagear.analysis.DataSetResult;
import org.datagear.analysis.support.ChartWidget;
import org.datagear.analysis.support.html.HtmlChartPlugin;
import org.datagear.analysis.support.html.HtmlChartWidget;
import org.datagear.analysis.support.html.HtmlRenderContext;
import org.datagear.util.i18n.Label;
import com.fasterxml.jackson.annotation.JsonIgnore;
/**
* HTML {@linkplain ChartWidget}实体
*
@ -31,6 +35,8 @@ public class HtmlChartWidgetEntity extends HtmlChartWidget<HtmlRenderContext>
/** 授权资源类型 */
public static final String AUTHORIZATION_RESOURCE_TYPE = "Chart";
protected static final ChartDataSetVO[] EMPTY_CHART_DATA_VO_SET = new ChartDataSetVO[0];
/** 创建用户 */
private User createUser;
@ -46,19 +52,34 @@ public class HtmlChartWidgetEntity extends HtmlChartWidget<HtmlRenderContext>
public HtmlChartWidgetEntity()
{
super();
super.setChartDataSets(new ChartDataSet[0]);
super.setChartDataSets(EMPTY_CHART_DATA_VO_SET);
this.createTime = new Date();
}
public HtmlChartWidgetEntity(String id, String name, ChartDataSet[] chartDataSets,
HtmlChartPlugin<HtmlRenderContext> chartPlugin,
User createUser)
public HtmlChartWidgetEntity(String id, String name, ChartDataSetVO[] chartDataSets,
HtmlChartPlugin<HtmlRenderContext> chartPlugin, User createUser)
{
super(id, name, chartDataSets, chartPlugin);
super.setChartDataSets(EMPTY_CHART_DATA_VO_SET);
this.createUser = createUser;
this.createTime = new Date();
}
@Override
public ChartDataSetVO[] getChartDataSets()
{
return (ChartDataSetVO[]) super.getChartDataSets();
}
@Override
public void setChartDataSets(ChartDataSet[] chartDataSets)
{
if (chartDataSets != null && !(chartDataSets instanceof ChartDataSetVO[]))
throw new IllegalArgumentException();
super.setChartDataSets(chartDataSets);
}
public HtmlChartPlugin<HtmlRenderContext> getHtmlChartPlugin()
{
return getPlugin();
@ -113,6 +134,13 @@ public class HtmlChartWidgetEntity extends HtmlChartWidget<HtmlRenderContext>
this.chartPluginName = chartPluginName;
}
@JsonIgnore
@Override
public DataSetResult[] getDataSetResults() throws DataSetException
{
return super.getDataSetResults();
}
public void updateChartPluginName(Locale locale)
{
String name = null;

View File

@ -25,6 +25,7 @@ import org.datagear.analysis.support.ChartWidget;
import org.datagear.analysis.support.JsonSupport;
import org.datagear.analysis.support.html.HtmlChartPlugin;
import org.datagear.analysis.support.html.HtmlRenderContext;
import org.datagear.management.domain.ChartDataSetVO;
import org.datagear.management.domain.HtmlChartWidgetEntity;
import org.datagear.management.domain.User;
import org.datagear.management.service.AuthorizationService;
@ -247,20 +248,20 @@ public class HtmlChartWidgetEntityServiceImpl
List<WidgetDataSetRelation> relations = selectListMybatis("getDataSetRelations", sqlParams);
List<ChartDataSet> chartDataSets = new ArrayList<>(relations.size());
List<ChartDataSetVO> chartDataSets = new ArrayList<>(relations.size());
for (int i = 0; i < relations.size(); i++)
{
ChartDataSet chartDataSet = toChartDataSet(relations.get(i), forAnalysis);
ChartDataSetVO chartDataSet = toChartDataSet(relations.get(i), forAnalysis);
if (chartDataSet != null)
chartDataSets.add(chartDataSet);
}
widget.setChartDataSets(chartDataSets.toArray(new ChartDataSet[chartDataSets.size()]));
widget.setChartDataSets(chartDataSets.toArray(new ChartDataSetVO[chartDataSets.size()]));
}
protected ChartDataSet toChartDataSet(WidgetDataSetRelation relation, boolean forAnalysis)
protected ChartDataSetVO toChartDataSet(WidgetDataSetRelation relation, boolean forAnalysis)
{
if (relation == null || StringUtil.isEmpty(relation.getDataSetId()))
return null;
@ -275,7 +276,7 @@ public class HtmlChartWidgetEntityServiceImpl
if (dataSet == null)
return null;
ChartDataSet chartDataSet = new ChartDataSet(dataSet);
ChartDataSetVO chartDataSet = new ChartDataSetVO(dataSet);
chartDataSet.setPropertySigns(toPropertySigns(relation.getPropertySignsJson()));
return chartDataSet;

View File

@ -19,7 +19,6 @@ import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.datagear.analysis.ChartDataSet;
import org.datagear.analysis.ChartPlugin;
import org.datagear.analysis.ChartPluginManager;
import org.datagear.analysis.DashboardTheme;
@ -34,6 +33,7 @@ import org.datagear.analysis.support.html.HtmlTplDashboard;
import org.datagear.analysis.support.html.HtmlTplDashboardWidget;
import org.datagear.analysis.support.html.HtmlTplDashboardWidgetHtmlRenderer;
import org.datagear.analysis.support.html.HtmlTplDashboardWidgetRenderer.AddPrefixHtmlTitleHandler;
import org.datagear.management.domain.ChartDataSetVO;
import org.datagear.management.domain.HtmlChartWidgetEntity;
import org.datagear.management.domain.SqlDataSetEntity;
import org.datagear.management.domain.User;
@ -446,7 +446,7 @@ public class ChartController extends AbstractChartPluginAwareController implemen
if (isEmpty(chartDataSetIndexes))
return;
List<ChartDataSet> chartDataSets = new ArrayList<>();
List<ChartDataSetVO> chartDataSets = new ArrayList<>();
for (String chartDataSetIndex : chartDataSetIndexes)
{
@ -487,14 +487,14 @@ public class ChartController extends AbstractChartPluginAwareController implemen
}
}
ChartDataSet chartDataSet = new ChartDataSet();
ChartDataSetVO chartDataSet = new ChartDataSetVO();
chartDataSet.setDataSet(sqlDataSet);
chartDataSet.setPropertySigns(propertySigns);
chartDataSets.add(chartDataSet);
}
entity.setChartDataSets(chartDataSets.toArray(new ChartDataSet[chartDataSets.size()]));
entity.setChartDataSets(chartDataSets.toArray(new ChartDataSetVO[chartDataSets.size()]));
}
protected void checkSaveEntity(HtmlChartWidgetEntity chart)