From 605d37cdd6ddbcdd65521fa4926c609fff4c0fbb Mon Sep 17 00:00:00 2001
From: datagear
Date: Wed, 3 Jun 2020 20:25:36 +0800
Subject: [PATCH] =?UTF-8?q?[analysis]=E9=87=8D=E6=9E=84=E6=A8=A1=E5=9D=97?=
=?UTF-8?q?=EF=BC=8C=E7=A7=BB=E9=99=A4ChartPlugin=E3=80=81DashboardWidget?=
=?UTF-8?q?=E7=AD=89=E7=9A=84RenderContext=E7=B1=BB=E5=9E=8B=E5=8F=82?=
=?UTF-8?q?=E6=95=B0=E8=AE=BE=E8=AE=A1=EF=BC=8C=E7=AE=80=E5=8C=96=E6=A6=82?=
=?UTF-8?q?=E5=BF=B5=E5=92=8C=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/org/datagear/analysis/Chart.java | 11 +-
.../org/datagear/analysis/ChartPlugin.java | 6 +-
.../datagear/analysis/ChartPluginManager.java | 14 +-
.../java/org/datagear/analysis/Dashboard.java | 8 +-
.../datagear/analysis/DashboardWidget.java | 4 +-
.../datagear/analysis/TemplateDashboard.java | 10 +-
.../analysis/TemplateDashboardWidget.java | 13 +-
.../TemplateDashboardWidgetResManager.java | 43 ++-
.../analysis/support/AbstractChartPlugin.java | 4 +-
.../support/AbstractChartPluginManager.java | 121 ++----
...ractTemplateDashboardWidgetResManager.java | 2 +-
.../support/CategorizationResolver.java | 16 +-
.../analysis/support/ChartWidget.java | 18 +-
.../analysis/support/ChartWidgetSource.java | 4 +-
.../support/ConcurrentChartPluginManager.java | 13 +-
...Context.java => DefaultRenderContext.java} | 23 +-
...FileTemplateDashboardWidgetResManager.java | 12 +-
.../JsonChartPluginPropertiesResolver.java | 8 +-
.../support/SimpleChartPluginManager.java | 13 +-
.../support/SimpleChartWidgetSource.java | 19 +-
.../html/AbstractHtmlScriptObjectWriter.java | 27 +-
.../html/DefaultHtmlRenderContext.java | 67 ----
.../html/DirectoryHtmlChartPluginManager.java | 56 ++-
.../analysis/support/html/HtmlChart.java | 29 +-
.../support/html/HtmlChartPlugin.java | 173 +++------
.../support/html/HtmlChartPluginLoader.java | 61 +--
.../html/HtmlChartPluginRenderOption.java | 281 --------------
.../HtmlChartPluginScriptObjectWriter.java | 8 +-
.../support/html/HtmlChartRenderAttr.java | 349 +++++++++++++++++-
.../html/HtmlChartScriptObjectWriter.java | 2 +-
.../support/html/HtmlChartWidget.java | 21 +-
.../analysis/support/html/HtmlRenderAttr.java | 191 ++++++++++
.../support/html/HtmlRenderAttributes.java | 307 ---------------
.../support/html/HtmlRenderContext.java | 139 -------
.../HtmlRenderContextScriptObjectWriter.java | 199 ++++------
.../support/html/HtmlTplDashboard.java | 16 +-
.../html/HtmlTplDashboardRenderAttr.java | 204 +++++++++-
.../HtmlTplDashboardScriptObjectWriter.java | 12 +-
.../support/html/HtmlTplDashboardWidget.java | 28 +-
.../HtmlTplDashboardWidgetHtmlRenderer.java | 156 +++-----
.../html/HtmlTplDashboardWidgetRenderer.java | 292 +++++++--------
.../support/html/LoadHtmlChartPluginBean.java | 6 +-
.../html/ParamValueHtmlChartPlugin.java | 2 +-
...JsonChartPluginPropertiesResolverTest.java | 2 +-
.../DirectoryHtmlChartPluginManagerTest.java | 9 +-
.../html/HtmlChartPluginLoaderTest.java | 16 +-
.../support/html/HtmlChartPluginTest.java | 38 +-
...tmlTplDashboardWidgetHtmlRendererTest.java | 121 +++---
.../HtmlTplDashboardWidgetRendererTest.java | 8 +-
.../domain/HtmlChartWidgetEntity.java | 13 +-
.../domain/HtmlTplDashboardWidgetEntity.java | 7 +-
.../HtmlTplDashboardWidgetEntityService.java | 3 +-
.../HtmlChartWidgetEntityServiceImpl.java | 17 +-
...mlTplDashboardWidgetEntityServiceImpl.java | 21 +-
.../AbstractChartPluginAwareController.java | 52 +--
.../AbstractDataAnalysisController.java | 31 +-
.../web/controller/ChartController.java | 33 +-
.../web/controller/ChartPluginController.java | 35 +-
.../web/controller/DashboardController.java | 62 ++--
...toryHtmlChartPluginManagerInitializer.java | 8 +-
.../static/script/datagear-chartFactory.js | 13 +-
.../script/datagear-dashboardFactory.js | 26 +-
62 files changed, 1581 insertions(+), 1922 deletions(-)
rename datagear-analysis/src/main/java/org/datagear/analysis/support/{AbstractRenderContext.java => DefaultRenderContext.java} (62%)
delete mode 100644 datagear-analysis/src/main/java/org/datagear/analysis/support/html/DefaultHtmlRenderContext.java
delete mode 100644 datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginRenderOption.java
delete mode 100644 datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlRenderAttributes.java
delete mode 100644 datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlRenderContext.java
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/Chart.java b/datagear-analysis/src/main/java/org/datagear/analysis/Chart.java
index 1666e1e4..7a067dad 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/Chart.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/Chart.java
@@ -16,7 +16,7 @@ package org.datagear.analysis;
*/
public class Chart extends ChartDefinition
{
- private ChartPlugin> plugin;
+ private ChartPlugin plugin;
private RenderContext renderContext;
@@ -25,15 +25,14 @@ public class Chart extends ChartDefinition
super();
}
- public Chart(String id, String name, ChartDataSet[] chartDataSets, ChartPlugin> plugin,
- RenderContext renderContext)
+ public Chart(String id, String name, ChartDataSet[] chartDataSets, ChartPlugin plugin, RenderContext renderContext)
{
super(id, name, chartDataSets);
this.plugin = plugin;
this.renderContext = renderContext;
}
- public Chart(ChartDefinition chartDefinition, ChartPlugin> plugin, RenderContext renderContext)
+ public Chart(ChartDefinition chartDefinition, ChartPlugin plugin, RenderContext renderContext)
{
super(chartDefinition.getId(), chartDefinition.getName(), chartDefinition.getChartDataSets());
setParamValues(chartDefinition.getParamValues());
@@ -53,12 +52,12 @@ public class Chart extends ChartDefinition
this.renderContext = renderContext;
}
- public ChartPlugin> getPlugin()
+ public ChartPlugin getPlugin()
{
return plugin;
}
- public void setPlugin(ChartPlugin> plugin)
+ public void setPlugin(ChartPlugin plugin)
{
this.plugin = plugin;
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/ChartPlugin.java b/datagear-analysis/src/main/java/org/datagear/analysis/ChartPlugin.java
index a1021017..aff89ecd 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/ChartPlugin.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/ChartPlugin.java
@@ -19,9 +19,8 @@ import org.datagear.util.i18n.Labeled;
*
* @author datagear@163.com
*
- * @param
*/
-public interface ChartPlugin extends Identifiable, Labeled
+public interface ChartPlugin extends Identifiable, Labeled
{
String PROPERTY_ID = "id";
String PROPERTY_NAME_LABEL = Labeled.PROPERTY_NAME_LABEL;
@@ -117,8 +116,7 @@ public interface ChartPlugin extends Identifiable, Labe
* @return
* @throws RenderException
*/
- Chart renderChart(T renderContext, ChartDefinition chartDefinition)
- throws RenderException;
+ Chart renderChart(RenderContext renderContext, ChartDefinition chartDefinition) throws RenderException;
/**
* 获取版本号。
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/ChartPluginManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/ChartPluginManager.java
index f420efde..d1c9ad73 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/ChartPluginManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/ChartPluginManager.java
@@ -19,7 +19,7 @@ public interface ChartPluginManager
*
* @param chartPlugin
*/
- void register(ChartPlugin> chartPlugin);
+ void register(ChartPlugin chartPlugin);
/**
* 移除指定ID的{@linkplain ChartPlugin}。
@@ -27,7 +27,7 @@ public interface ChartPluginManager
* @param ids
* @return 被移除的{@linkplain ChartPlugin}或者{@code null}。
*/
- ChartPlugin>[] remove(String... ids);
+ ChartPlugin[] remove(String... ids);
/**
* 获取指定ID的{@linkplain ChartPlugin}。
@@ -35,18 +35,18 @@ public interface ChartPluginManager
* @param id
* @return
*/
- ChartPlugin get(String id);
+ ChartPlugin get(String id);
/**
- * 获取支持指定类型{@linkplain RenderContext}的所有{@linkplain ChartPlugin}。
+ * 获取指定类型的所有{@linkplain ChartPlugin}。
*
* 返回结果将根据{@linkplain ChartPlugin#getOrder()}进行排序,越小越靠前。
*
*
- * @param renderContextType
+ * @param chartPluginType
* @return
*/
- List> getAll(Class extends T> renderContextType);
+ List getAll(Class super T> chartPluginType);
/**
* 获取所有{@linkplain ChartPlugin}。
@@ -56,5 +56,5 @@ public interface ChartPluginManager
*
* @return
*/
- List> getAll();
+ List getAll();
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/Dashboard.java b/datagear-analysis/src/main/java/org/datagear/analysis/Dashboard.java
index 4dd9cca8..dd2d767a 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/Dashboard.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/Dashboard.java
@@ -28,7 +28,7 @@ public class Dashboard extends AbstractIdentifiable
private RenderContext renderContext;
- private DashboardWidget> widget;
+ private DashboardWidget widget;
private List charts;
@@ -37,7 +37,7 @@ public class Dashboard extends AbstractIdentifiable
super();
}
- public Dashboard(String id, RenderContext renderContext, DashboardWidget> widget)
+ public Dashboard(String id, RenderContext renderContext, DashboardWidget widget)
{
super(id);
this.renderContext = renderContext;
@@ -54,12 +54,12 @@ public class Dashboard extends AbstractIdentifiable
this.renderContext = renderContext;
}
- public DashboardWidget> getWidget()
+ public DashboardWidget getWidget()
{
return widget;
}
- public void setWidget(DashboardWidget> widget)
+ public void setWidget(DashboardWidget widget)
{
this.widget = widget;
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/DashboardWidget.java b/datagear-analysis/src/main/java/org/datagear/analysis/DashboardWidget.java
index cd065f7a..62dd918a 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/DashboardWidget.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/DashboardWidget.java
@@ -13,7 +13,7 @@ package org.datagear.analysis;
* @author datagear@163.com
*
*/
-public interface DashboardWidget extends Identifiable
+public interface DashboardWidget extends Identifiable
{
/**
* 渲染{@linkplain Dashboard}。
@@ -22,5 +22,5 @@ public interface DashboardWidget extends Identifiable
* @return
* @throws RenderException
*/
- Dashboard render(T renderContext) throws RenderException;
+ Dashboard render(RenderContext renderContext) throws RenderException;
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboard.java b/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboard.java
index 5e0520f2..21cf6627 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboard.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboard.java
@@ -16,7 +16,7 @@ public class TemplateDashboard extends Dashboard
super();
}
- public TemplateDashboard(String id, String template, RenderContext renderContext, TemplateDashboardWidget> widget)
+ public TemplateDashboard(String id, String template, RenderContext renderContext, TemplateDashboardWidget widget)
{
super(id, renderContext, widget);
this.template = template;
@@ -33,15 +33,15 @@ public class TemplateDashboard extends Dashboard
}
@Override
- public TemplateDashboardWidget> getWidget()
+ public TemplateDashboardWidget getWidget()
{
- return (TemplateDashboardWidget>) super.getWidget();
+ return (TemplateDashboardWidget) super.getWidget();
}
@Override
- public void setWidget(DashboardWidget> widget)
+ public void setWidget(DashboardWidget widget)
{
- if (widget != null && !(widget instanceof TemplateDashboardWidget>))
+ if (widget != null && !(widget instanceof TemplateDashboardWidget))
throw new IllegalArgumentException();
super.setWidget(widget);
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidget.java b/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidget.java
index a5cf6129..d2f14317 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidget.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidget.java
@@ -20,8 +20,7 @@ import org.datagear.util.StringUtil;
* @author datagear@163.com
*
*/
-public abstract class TemplateDashboardWidget extends AbstractIdentifiable
- implements DashboardWidget
+public abstract class TemplateDashboardWidget extends AbstractIdentifiable implements DashboardWidget
{
public static final String DEFAULT_TEMPLATE_ENCODING = "UTF-8";
@@ -113,7 +112,7 @@ public abstract class TemplateDashboardWidget extends A
if (this.templates == null || this.templates.length == 0)
return;
- List list = new ArrayList(this.templates.length);
+ List list = new ArrayList<>(this.templates.length);
for (String t : this.templates)
{
@@ -125,7 +124,7 @@ public abstract class TemplateDashboardWidget extends A
}
@Override
- public TemplateDashboard render(T renderContext) throws RenderException
+ public TemplateDashboard render(RenderContext renderContext) throws RenderException
{
String template = getFirstTemplate();
@@ -145,7 +144,8 @@ public abstract class TemplateDashboardWidget extends A
* @throws IllegalArgumentException
* {@code template}不是模板时
*/
- public TemplateDashboard render(T renderContext, String template) throws RenderException, IllegalArgumentException
+ public TemplateDashboard render(RenderContext renderContext, String template)
+ throws RenderException, IllegalArgumentException
{
if (!isTemplate(template))
throw new IllegalArgumentException("[" + template + "] is not template");
@@ -161,5 +161,6 @@ public abstract class TemplateDashboardWidget extends A
* @return
* @throws RenderException
*/
- protected abstract TemplateDashboard renderTemplate(T renderContext, String template) throws RenderException;
+ protected abstract TemplateDashboard renderTemplate(RenderContext renderContext, String template)
+ throws RenderException;
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidgetResManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidgetResManager.java
index d1975341..d2280caf 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidgetResManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/TemplateDashboardWidgetResManager.java
@@ -34,7 +34,7 @@ public interface TemplateDashboardWidgetResManager
* @return
* @throws IOException
*/
- Reader getTemplateReader(TemplateDashboardWidget> widget, String template) throws IOException;
+ Reader getTemplateReader(TemplateDashboardWidget widget, String template) throws IOException;
/**
* 获取指定模板的输出流。
@@ -44,14 +44,17 @@ public interface TemplateDashboardWidgetResManager
* @return
* @throws IOException
*/
- Writer getTemplateWriter(TemplateDashboardWidget> widget, String template) throws IOException;
+ Writer getTemplateWriter(TemplateDashboardWidget widget, String template) throws IOException;
/**
* 获取指定名称资源的输入流。
*
- * @param id {@linkplain TemplateDashboardWidget#getId()}
- * @param name 资源名称
- * @param encoding 资源编码,为{@code null}或空则使用默认编码
+ * @param id
+ * {@linkplain TemplateDashboardWidget#getId()}
+ * @param name
+ * 资源名称
+ * @param encoding
+ * 资源编码,为{@code null}或空则使用默认编码
* @return
* @throws IOException
*/
@@ -60,9 +63,12 @@ public interface TemplateDashboardWidgetResManager
/**
* 获取指定名称资源的输出流。
*
- * @param id {@linkplain TemplateDashboardWidget#getId()}
- * @param name 资源名称
- * @param encoding 资源编码,为{@code null}或空则使用默认编码
+ * @param id
+ * {@linkplain TemplateDashboardWidget#getId()}
+ * @param name
+ * 资源名称
+ * @param encoding
+ * 资源编码,为{@code null}或空则使用默认编码
* @return
* @throws IOException
*/
@@ -71,8 +77,10 @@ public interface TemplateDashboardWidgetResManager
/**
* 获取指定名称资源的输入流。
*
- * @param id {@linkplain TemplateDashboardWidget#getId()}
- * @param name 资源名称
+ * @param id
+ * {@linkplain TemplateDashboardWidget#getId()}
+ * @param name
+ * 资源名称
* @return
* @throws IOException
*/
@@ -81,8 +89,10 @@ public interface TemplateDashboardWidgetResManager
/**
* 获取指定名称资源的输出流。
*
- * @param id {@linkplain TemplateDashboardWidget#getId()}
- * @param name 资源名称
+ * @param id
+ * {@linkplain TemplateDashboardWidget#getId()}
+ * @param name
+ * 资源名称
* @return
* @throws IOException
*/
@@ -94,7 +104,8 @@ public interface TemplateDashboardWidgetResManager
* 拷入后,目录下所有子文件的相对路径名(比如:some-file.txt
、some-directory/some-file.png
),即可作为此类的资源名称使用。
*
*
- * @param id {@linkplain Dashboard#getId()}
+ * @param id
+ * {@linkplain Dashboard#getId()}
* @param directory
* @throws IOException
*/
@@ -103,8 +114,10 @@ public interface TemplateDashboardWidgetResManager
/**
* 是否包含指定名称的资源。
*
- * @param id {@linkplain Dashboard#getId()}
- * @param name 资源名称
+ * @param id
+ * {@linkplain Dashboard#getId()}
+ * @param name
+ * 资源名称
* @return
*/
boolean containsResource(String id, String name);
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPlugin.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPlugin.java
index fd04afe0..df28d51d 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPlugin.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPlugin.java
@@ -16,7 +16,6 @@ import org.datagear.analysis.ChartParam;
import org.datagear.analysis.ChartPlugin;
import org.datagear.analysis.DataSign;
import org.datagear.analysis.Icon;
-import org.datagear.analysis.RenderContext;
import org.datagear.analysis.RenderStyle;
import org.datagear.util.i18n.Label;
@@ -26,8 +25,7 @@ import org.datagear.util.i18n.Label;
* @author datagear@163.com
*
*/
-public abstract class AbstractChartPlugin extends AbstractIdentifiable
- implements ChartPlugin
+public abstract class AbstractChartPlugin extends AbstractIdentifiable implements ChartPlugin
{
private Label nameLabel;
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPluginManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPluginManager.java
index da0d1550..f1be7a15 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPluginManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractChartPluginManager.java
@@ -16,10 +16,8 @@ import java.util.Map;
import org.datagear.analysis.ChartPlugin;
import org.datagear.analysis.ChartPluginManager;
-import org.datagear.analysis.RenderContext;
import org.datagear.util.StringUtil;
import org.datagear.util.version.Version;
-import org.springframework.core.GenericTypeResolver;
/**
* 抽象{@linkplain ChartPluginManager}。
@@ -29,34 +27,21 @@ import org.springframework.core.GenericTypeResolver;
*/
public abstract class AbstractChartPluginManager implements ChartPluginManager
{
- private Map> chartPluginMap = new HashMap>();
-
- private Map> renderContextTypeMap = new HashMap>();
+ private Map chartPluginMap = new HashMap<>();
public AbstractChartPluginManager()
{
super();
}
- protected Map> getChartPluginMap()
+ protected Map getChartPluginMap()
{
return chartPluginMap;
}
- @SuppressWarnings("unchecked")
- protected void setChartPluginMap(Map> chartPluginMap)
+ protected void setChartPluginMap(Map chartPluginMap)
{
- this.chartPluginMap = (Map>) chartPluginMap;
- }
-
- protected Map> getRenderContextTypeMap()
- {
- return renderContextTypeMap;
- }
-
- protected void setRenderContextTypeMap(Map> renderContextTypeMap)
- {
- this.renderContextTypeMap = renderContextTypeMap;
+ this.chartPluginMap = chartPluginMap;
}
/**
@@ -68,22 +53,18 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
* @param chartPlugin
* @return
*/
- protected boolean registerChartPlugin(ChartPlugin> chartPlugin)
+ protected boolean registerChartPlugin(ChartPlugin chartPlugin)
{
checkLegalChartPlugin(chartPlugin);
boolean put = true;
- ChartPlugin> prev = this.chartPluginMap.get(chartPlugin.getId());
+ ChartPlugin prev = this.chartPluginMap.get(chartPlugin.getId());
if (prev != null)
put = canReplaceForSameId(chartPlugin, prev);
if (put)
- {
this.chartPluginMap.put(chartPlugin.getId(), chartPlugin);
- this.renderContextTypeMap.put(chartPlugin.getId(),
- resolveChartPluginRenderContextType(chartPlugin.getClass()));
- }
return put;
}
@@ -93,9 +74,9 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
*
* @param id
*/
- protected ChartPlugin>[] removeChartPlugins(String[] ids)
+ protected ChartPlugin[] removeChartPlugins(String[] ids)
{
- ChartPlugin>[] removed = new ChartPlugin>[ids.length];
+ ChartPlugin[] removed = new ChartPlugin[ids.length];
for (int i = 0; i < ids.length; i++)
removed[i] = removeChartPlugin(ids[i]);
@@ -108,9 +89,8 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
*
* @param id
*/
- protected ChartPlugin> removeChartPlugin(String id)
+ protected ChartPlugin removeChartPlugin(String id)
{
- this.renderContextTypeMap.remove(id);
return this.chartPluginMap.remove(id);
}
@@ -120,7 +100,6 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
protected void removeAllChartPlugins()
{
this.chartPluginMap.clear();
- this.renderContextTypeMap.clear();
}
/**
@@ -129,30 +108,31 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
* @param id
* @return
*/
- @SuppressWarnings("unchecked")
- protected ChartPlugin getChartPlugin(String id)
+ protected ChartPlugin getChartPlugin(String id)
{
- return (ChartPlugin) this.chartPluginMap.get(id);
+ return this.chartPluginMap.get(id);
}
/**
- * 查找支持指定类型{@linkplain RenderContext}的所有{@linkplain ChartPlugin}。
+ * 查找指定类型的所有{@linkplain ChartPlugin}。
*
* 返回列表已使用{@linkplain #sortChartPlugins(List)}排序。
*
*
- * @param renderContextType
+ * @param chartPluginType
* @return
*/
@SuppressWarnings("unchecked")
- protected List> findChartPlugins(Class extends T> renderContextType)
+ protected List findChartPlugins(Class super T> chartPluginType)
{
- List> reChartPlugins = new ArrayList>();
+ List reChartPlugins = new ArrayList<>();
- for (Map.Entry> entry : this.renderContextTypeMap.entrySet())
+ for (Map.Entry entry : this.chartPluginMap.entrySet())
{
- if (entry.getValue().isAssignableFrom(renderContextType))
- reChartPlugins.add((ChartPlugin) this.chartPluginMap.get(entry.getKey()));
+ ChartPlugin plugin = entry.getValue();
+
+ if (chartPluginType.isAssignableFrom(plugin.getClass()))
+ reChartPlugins.add((T) plugin);
}
sortChartPlugins(reChartPlugins);
@@ -168,9 +148,9 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
*
* @return
*/
- protected List> getAllChartPlugins()
+ protected List getAllChartPlugins()
{
- List> reChartPlugins = new ArrayList>();
+ List reChartPlugins = new ArrayList<>();
reChartPlugins.addAll(this.chartPluginMap.values());
@@ -179,48 +159,7 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
return reChartPlugins;
}
- /**
- * 解析{@linkplain ChartPlugin}可支持的{@linkplain RenderContext}类型列表。
- *
- * @param chartPlugins
- * @return
- */
- protected List> resolveChartPluginRenderContextTypes(
- List extends ChartPlugin>> chartPlugins)
- {
- List> renderContextTypes = new ArrayList>(
- chartPlugins.size());
-
- for (ChartPlugin> chartPlugin : chartPlugins)
- {
- Class extends RenderContext> renderContextType = resolveChartPluginRenderContextType(
- chartPlugin.getClass());
-
- renderContextTypes.add(renderContextType);
- }
-
- return renderContextTypes;
- }
-
- /**
- * 解析指定{@linkplain ChartPlugin}类所支持的{@linkplain RenderContext}类型。
- *
- * @param chartPluginType
- * @return
- */
- @SuppressWarnings({ "rawtypes", "unchecked" })
- protected Class extends RenderContext> resolveChartPluginRenderContextType(
- Class extends ChartPlugin> chartPluginType)
- {
- Class> renderContextType = GenericTypeResolver.resolveTypeArgument(chartPluginType, ChartPlugin.class);
-
- if (renderContextType == null)
- renderContextType = RenderContext.class;
-
- return (Class extends RenderContext>) renderContextType;
- }
-
- protected void sortChartPlugins(List extends ChartPlugin>> chartPlugins)
+ protected void sortChartPlugins(List extends ChartPlugin> chartPlugins)
{
sort(chartPlugins);
}
@@ -230,12 +169,12 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
*
* @param chartPlugins
*/
- public static void sort(List extends ChartPlugin>> chartPlugins)
+ public static void sort(List extends ChartPlugin> chartPlugins)
{
- Collections.sort(chartPlugins, new Comparator>()
+ Collections.sort(chartPlugins, new Comparator()
{
@Override
- public int compare(ChartPlugin> o1, ChartPlugin> o2)
+ public int compare(ChartPlugin o1, ChartPlugin o2)
{
return Integer.valueOf(o1.getOrder()).compareTo(o2.getOrder());
}
@@ -250,7 +189,7 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
* 允许为{@code null}
* @return
*/
- protected boolean canReplaceForSameId(ChartPlugin> my, ChartPlugin> old)
+ protected boolean canReplaceForSameId(ChartPlugin my, ChartPlugin old)
{
if (old == null)
return true;
@@ -296,7 +235,7 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
* @param oldVersion
* @return
*/
- protected boolean canReplaceForSameId(ChartPlugin> my, Version myVersion, ChartPlugin> old, Version oldVersion)
+ protected boolean canReplaceForSameId(ChartPlugin my, Version myVersion, ChartPlugin old, Version oldVersion)
{
boolean replace = false;
@@ -319,7 +258,7 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
* @param chartPlugin
* @throws IllegalArgumentException
*/
- protected void checkLegalChartPlugin(ChartPlugin> chartPlugin) throws IllegalArgumentException
+ protected void checkLegalChartPlugin(ChartPlugin chartPlugin) throws IllegalArgumentException
{
if (!isLegalChartPlugin(chartPlugin))
throw new IllegalArgumentException("[" + chartPlugin + "] is illegal");
@@ -331,7 +270,7 @@ public abstract class AbstractChartPluginManager implements ChartPluginManager
* @param chartPlugin
* @return
*/
- protected boolean isLegalChartPlugin(ChartPlugin> chartPlugin)
+ protected boolean isLegalChartPlugin(ChartPlugin chartPlugin)
{
if (chartPlugin == null)
return false;
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractTemplateDashboardWidgetResManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractTemplateDashboardWidgetResManager.java
index 01a2c0bd..7628745d 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractTemplateDashboardWidgetResManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractTemplateDashboardWidgetResManager.java
@@ -49,7 +49,7 @@ public abstract class AbstractTemplateDashboardWidgetResManager implements Templ
return IOUtil.getWriter(out, encoding);
}
- protected String getTemplateEncodingWithDefault(TemplateDashboardWidget> widget)
+ protected String getTemplateEncodingWithDefault(TemplateDashboardWidget widget)
{
String encoding = widget.getTemplateEncoding();
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/CategorizationResolver.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/CategorizationResolver.java
index 9bc1be07..2fe2938a 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/CategorizationResolver.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/CategorizationResolver.java
@@ -35,12 +35,12 @@ public class CategorizationResolver
* @param chartPlugins
* @return 最后一个元素包含所有未分组的{@linkplain ChartPlugin}
*/
- public List resolve(List extends ChartPlugin>> chartPlugins)
+ public List resolve(List extends ChartPlugin> chartPlugins)
{
- List categorizations = new ArrayList();
- List> uncategorizeds = new ArrayList>();
+ List categorizations = new ArrayList<>();
+ List uncategorizeds = new ArrayList<>();
- for (ChartPlugin> chartPlugin : chartPlugins)
+ for (ChartPlugin chartPlugin : chartPlugins)
{
Category category = chartPlugin.getCategory();
@@ -102,7 +102,7 @@ public class CategorizationResolver
{
private Category category;
- private List> chartPlugins = new ArrayList>(5);
+ private List chartPlugins = new ArrayList<>(5);
public Categorization()
{
@@ -125,17 +125,17 @@ public class CategorizationResolver
this.category = category;
}
- public List> getChartPlugins()
+ public List getChartPlugins()
{
return chartPlugins;
}
- public void setChartPlugins(List> chartPlugins)
+ public void setChartPlugins(List chartPlugins)
{
this.chartPlugins = chartPlugins;
}
- public void addChartPlugin(ChartPlugin> chartPlugin)
+ public void addChartPlugin(ChartPlugin chartPlugin)
{
this.chartPlugins.add(chartPlugin);
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidget.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidget.java
index 77b5d550..361c342b 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidget.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidget.java
@@ -22,27 +22,27 @@ import org.datagear.util.IDUtil;
* @author datagear@163.com
*
*/
-public class ChartWidget extends ChartDefinition
+public class ChartWidget extends ChartDefinition
{
- private ChartPlugin plugin;
+ private ChartPlugin plugin;
public ChartWidget()
{
super();
}
- public ChartWidget(String id, String name, ChartDataSet[] chartDataSets, ChartPlugin plugin)
+ public ChartWidget(String id, String name, ChartDataSet[] chartDataSets, ChartPlugin plugin)
{
super(id, name, chartDataSets);
this.plugin = plugin;
}
- public ChartPlugin getPlugin()
+ public ChartPlugin getPlugin()
{
return plugin;
}
- public void setPlugin(ChartPlugin plugin)
+ public void setPlugin(ChartPlugin plugin)
{
this.plugin = plugin;
}
@@ -56,7 +56,7 @@ public class ChartWidget extends ChartDefinition
*/
public void setPlugin(ChartPluginManager chartPluginManager, String chartPluginId)
{
- ChartPlugin chartPlugin = chartPluginManager.get(chartPluginId);
+ ChartPlugin chartPlugin = chartPluginManager.get(chartPluginId);
setPlugin(chartPlugin);
}
@@ -67,12 +67,12 @@ public class ChartWidget extends ChartDefinition
* @return
* @throws RenderException
*/
- public Chart render(T renderContext) throws RenderException
+ public Chart render(RenderContext renderContext) throws RenderException
{
return this.plugin.renderChart(renderContext, buildChartDefinition(renderContext));
}
- protected ChartDefinition buildChartDefinition(T renderContext) throws RenderException
+ protected ChartDefinition buildChartDefinition(RenderContext renderContext) throws RenderException
{
ChartDefinition chartDefinition = new ChartDefinition();
ChartDefinition.copy(this, chartDefinition);
@@ -87,7 +87,7 @@ public class ChartWidget extends ChartDefinition
* @return
* @throws RenderException
*/
- protected String generateChartId(T renderContext) throws RenderException
+ protected String generateChartId(RenderContext renderContext) throws RenderException
{
return IDUtil.uuid();
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidgetSource.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidgetSource.java
index 0ac84ed7..3776d603 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidgetSource.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/ChartWidgetSource.java
@@ -4,8 +4,6 @@
package org.datagear.analysis.support;
-import org.datagear.analysis.RenderContext;
-
/**
* {@linkplain ChartWidget}源。
*
@@ -21,5 +19,5 @@ public interface ChartWidgetSource
* @return
* @throws Throwable
*/
- ChartWidget getChartWidget(String id) throws Throwable;
+ ChartWidget getChartWidget(String id) throws Throwable;
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/ConcurrentChartPluginManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/ConcurrentChartPluginManager.java
index c6550441..36436ea1 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/ConcurrentChartPluginManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/ConcurrentChartPluginManager.java
@@ -14,7 +14,6 @@ import java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock;
import org.datagear.analysis.ChartPlugin;
import org.datagear.analysis.ChartPluginManager;
-import org.datagear.analysis.RenderContext;
/**
* 并发{@linkplain ChartPluginManager}。
@@ -35,7 +34,7 @@ public class ConcurrentChartPluginManager extends AbstractChartPluginManager
}
@Override
- public void register(ChartPlugin> chartPlugin)
+ public void register(ChartPlugin chartPlugin)
{
WriteLock writeLock = this.lock.writeLock();
@@ -52,7 +51,7 @@ public class ConcurrentChartPluginManager extends AbstractChartPluginManager
}
@Override
- public ChartPlugin>[] remove(String... ids)
+ public ChartPlugin[] remove(String... ids)
{
WriteLock writeLock = this.lock.writeLock();
@@ -69,7 +68,7 @@ public class ConcurrentChartPluginManager extends AbstractChartPluginManager
}
@Override
- public ChartPlugin get(String id)
+ public ChartPlugin get(String id)
{
ReadLock readLock = this.lock.readLock();
@@ -86,7 +85,7 @@ public class ConcurrentChartPluginManager extends AbstractChartPluginManager
}
@Override
- public List> getAll(Class extends T> renderContextType)
+ public List getAll(Class super T> chartPluginType)
{
ReadLock readLock = this.lock.readLock();
@@ -94,7 +93,7 @@ public class ConcurrentChartPluginManager extends AbstractChartPluginManager
{
readLock.lock();
- return findChartPlugins(renderContextType);
+ return findChartPlugins(chartPluginType);
}
finally
{
@@ -103,7 +102,7 @@ public class ConcurrentChartPluginManager extends AbstractChartPluginManager
}
@Override
- public List> getAll()
+ public List getAll()
{
ReadLock readLock = this.lock.readLock();
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractRenderContext.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/DefaultRenderContext.java
similarity index 62%
rename from datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractRenderContext.java
rename to datagear-analysis/src/main/java/org/datagear/analysis/support/DefaultRenderContext.java
index 30a6b1b5..c20a87be 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/AbstractRenderContext.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/DefaultRenderContext.java
@@ -15,21 +15,28 @@ import org.datagear.analysis.RenderContext;
* @author datagear@163.com
*
*/
-public abstract class AbstractRenderContext implements RenderContext
+public class DefaultRenderContext implements RenderContext
{
- private Map attributes;
+ private Map attributes = new HashMap<>();
- public AbstractRenderContext()
+ public DefaultRenderContext()
{
super();
- this.attributes = new HashMap();
}
- @SuppressWarnings("unchecked")
- public AbstractRenderContext(Map attributes)
+ public DefaultRenderContext(Map attributes)
{
super();
- this.attributes = (Map) attributes;
+ this.attributes.putAll(attributes);
+ }
+
+ public DefaultRenderContext(RenderContext renderContext)
+ {
+ super();
+
+ Map attributes = renderContext.getAttributes();
+ if (attributes != null)
+ this.attributes.putAll(attributes);
}
public void setAttributes(Map attributes)
@@ -47,7 +54,7 @@ public abstract class AbstractRenderContext implements RenderContext
@Override
public T getAttribute(String name)
{
- return (T) (this.attributes == null ? null : this.attributes.get(name));
+ return (T) this.attributes.get(name);
}
@Override
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/FileTemplateDashboardWidgetResManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/FileTemplateDashboardWidgetResManager.java
index a2744bf2..bef0e56a 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/FileTemplateDashboardWidgetResManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/FileTemplateDashboardWidgetResManager.java
@@ -94,7 +94,7 @@ public class FileTemplateDashboardWidgetResManager extends AbstractTemplateDashb
}
@Override
- public Reader getTemplateReader(TemplateDashboardWidget> widget, String template) throws IOException
+ public Reader getTemplateReader(TemplateDashboardWidget widget, String template) throws IOException
{
if (this.templateAsContent)
{
@@ -112,7 +112,7 @@ public class FileTemplateDashboardWidgetResManager extends AbstractTemplateDashb
}
@Override
- public Writer getTemplateWriter(TemplateDashboardWidget> widget, String template) throws IOException
+ public Writer getTemplateWriter(TemplateDashboardWidget widget, String template) throws IOException
{
if (this.templateAsContent)
throw new UnsupportedOperationException();
@@ -168,12 +168,12 @@ public class FileTemplateDashboardWidgetResManager extends AbstractTemplateDashb
File directory = FileUtil.getDirectory(this.rootDirectory, id, false);
if (!directory.exists())
- return new ArrayList(0);
+ return new ArrayList<>(0);
- List files = new ArrayList();
+ List files = new ArrayList<>();
listAllDescendentFiles(directory, files);
- List resources = new ArrayList(files.size());
+ List resources = new ArrayList<>(files.size());
for (File file : files)
{
@@ -235,7 +235,7 @@ public class FileTemplateDashboardWidgetResManager extends AbstractTemplateDashb
* @param template
* @return
*/
- protected String getResourceNameForTemplate(TemplateDashboardWidget> widget, String template)
+ protected String getResourceNameForTemplate(TemplateDashboardWidget widget, String template)
{
return template;
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonChartPluginPropertiesResolver.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonChartPluginPropertiesResolver.java
index 1db94c09..cd5c2341 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonChartPluginPropertiesResolver.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/JsonChartPluginPropertiesResolver.java
@@ -76,7 +76,7 @@ public class JsonChartPluginPropertiesResolver
* @param chartPlugin
* @param properties
*/
- public void resolveChartPluginProperties(AbstractChartPlugin> chartPlugin, Map properties)
+ public void resolveChartPluginProperties(AbstractChartPlugin chartPlugin, Map properties)
{
chartPlugin.setId((String) properties.get(ChartPlugin.PROPERTY_ID));
chartPlugin.setNameLabel(convertToLabel(properties.get(ChartPlugin.PROPERTY_NAME_LABEL)));
@@ -97,7 +97,7 @@ public class JsonChartPluginPropertiesResolver
* @param json
* @throws IOException
*/
- public void resolveChartPluginProperties(AbstractChartPlugin> chartPlugin, String json) throws IOException
+ public void resolveChartPluginProperties(AbstractChartPlugin chartPlugin, String json) throws IOException
{
@SuppressWarnings("unchecked")
Map properties = JsonSupport.parseNonStardand(json, Map.class);
@@ -111,7 +111,7 @@ public class JsonChartPluginPropertiesResolver
* @param jsonReader
* @throws IOException
*/
- public void resolveChartPluginProperties(AbstractChartPlugin> chartPlugin, Reader jsonReader) throws IOException
+ public void resolveChartPluginProperties(AbstractChartPlugin chartPlugin, Reader jsonReader) throws IOException
{
String json = null;
@@ -139,7 +139,7 @@ public class JsonChartPluginPropertiesResolver
* @param encoding
* @throws IOException
*/
- public void resolveChartPluginProperties(AbstractChartPlugin> chartPlugin, InputStream in, String encoding)
+ public void resolveChartPluginProperties(AbstractChartPlugin chartPlugin, InputStream in, String encoding)
throws IOException
{
Reader reader = IOUtil.getReader(in, encoding);
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartPluginManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartPluginManager.java
index 1445b795..63ad21eb 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartPluginManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartPluginManager.java
@@ -11,7 +11,6 @@ import java.util.List;
import org.datagear.analysis.ChartPlugin;
import org.datagear.analysis.ChartPluginManager;
-import org.datagear.analysis.RenderContext;
/**
* 简单{@linkplain ChartPluginManager}。
@@ -30,31 +29,31 @@ public class SimpleChartPluginManager extends AbstractChartPluginManager
}
@Override
- public void register(ChartPlugin> chartPlugin)
+ public void register(ChartPlugin chartPlugin)
{
registerChartPlugin(chartPlugin);
}
@Override
- public ChartPlugin>[] remove(String... ids)
+ public ChartPlugin[] remove(String... ids)
{
return removeChartPlugins(ids);
}
@Override
- public ChartPlugin get(String id)
+ public ChartPlugin get(String id)
{
return getChartPlugin(id);
}
@Override
- public List> getAll(Class extends T> renderContextType)
+ public List getAll(Class super T> chartPluginType)
{
- return findChartPlugins(renderContextType);
+ return findChartPlugins(chartPluginType);
}
@Override
- public List> getAll()
+ public List getAll()
{
return getAllChartPlugins();
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartWidgetSource.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartWidgetSource.java
index 4a086d09..83de10f4 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartWidgetSource.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/SimpleChartWidgetSource.java
@@ -11,45 +11,44 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
-import org.datagear.analysis.RenderContext;
-
/**
+ * 简单{@linkplain ChartWidgetSource}。
+ *
* @author datagear@163.com
*
*/
public class SimpleChartWidgetSource implements ChartWidgetSource
{
- private Set> chartWidgets = new HashSet>();
+ private Set chartWidgets = new HashSet<>();
public SimpleChartWidgetSource()
{
super();
}
- public SimpleChartWidgetSource(ChartWidget>... chartWidgets)
+ public SimpleChartWidgetSource(ChartWidget... chartWidgets)
{
super();
this.chartWidgets.addAll(Arrays.asList(chartWidgets));
}
- public Set> getChartWidgets()
+ public Set getChartWidgets()
{
return chartWidgets;
}
- public void setChartWidgets(Set> chartWidgets)
+ public void setChartWidgets(Set chartWidgets)
{
this.chartWidgets = chartWidgets;
}
- @SuppressWarnings("unchecked")
@Override
- public ChartWidget getChartWidget(String id)
+ public ChartWidget getChartWidget(String id)
{
- for (ChartWidget> chartWidget : this.chartWidgets)
+ for (ChartWidget chartWidget : this.chartWidgets)
{
if (chartWidget.getId().equals(id))
- return (ChartWidget) chartWidget;
+ return chartWidget;
}
return null;
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/AbstractHtmlScriptObjectWriter.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/AbstractHtmlScriptObjectWriter.java
index 41a88520..9dd107fe 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/AbstractHtmlScriptObjectWriter.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/AbstractHtmlScriptObjectWriter.java
@@ -8,6 +8,7 @@ import java.io.IOException;
import java.io.Writer;
import java.util.Map;
+import org.datagear.analysis.RenderContext;
import org.datagear.analysis.support.JsonSupport;
import com.fasterxml.jackson.core.JsonGenerator;
@@ -38,7 +39,7 @@ public abstract class AbstractHtmlScriptObjectWriter
JsonSupport.disableAutoCloseTargetFeature(objectMapper);
SimpleModule module = new SimpleModule(RefObjectSerializer.class.getSimpleName());
- module.addSerializer(RefHtmlRenderContext.class, new RefObjectSerializer());
+ module.addSerializer(RefRenderContext.class, new RefObjectSerializer());
module.addSerializer(RefHtmlChartPlugin.class, new RefObjectSerializer());
this.objectMapper.registerModule(module);
}
@@ -117,11 +118,11 @@ public abstract class AbstractHtmlScriptObjectWriter
}
}
- protected static class RefHtmlRenderContext implements HtmlRenderContext, JsonRefObject
+ protected static class RefRenderContext implements RenderContext, JsonRefObject
{
private String refName;
- public RefHtmlRenderContext(String refName)
+ public RefRenderContext(String refName)
{
super();
this.refName = refName;
@@ -162,27 +163,9 @@ public abstract class AbstractHtmlScriptObjectWriter
{
return null;
}
-
- @Override
- public WebContext getWebContext()
- {
- return null;
- }
-
- @Override
- public Writer getWriter()
- {
- return null;
- }
-
- @Override
- public int nextSequence()
- {
- return 0;
- }
}
- protected static class RefHtmlChartPlugin extends HtmlChartPlugin implements JsonRefObject
+ protected static class RefHtmlChartPlugin extends HtmlChartPlugin implements JsonRefObject
{
private String refName;
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DefaultHtmlRenderContext.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DefaultHtmlRenderContext.java
deleted file mode 100644
index ef2f9174..00000000
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DefaultHtmlRenderContext.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (c) 2018 datagear.tech. All Rights Reserved.
- */
-
-/**
- *
- */
-package org.datagear.analysis.support.html;
-
-import java.io.Writer;
-
-import org.datagear.analysis.support.AbstractRenderContext;
-
-/**
- * 默认{@linkplain HtmlRenderContext}。
- *
- * @author datagear@163.com
- *
- */
-public class DefaultHtmlRenderContext extends AbstractRenderContext implements HtmlRenderContext
-{
- private WebContext webContext;
-
- private Writer writer;
-
- private int sequence = 1;
-
- public DefaultHtmlRenderContext()
- {
- super();
- }
-
- public DefaultHtmlRenderContext(WebContext webContext, Writer writer)
- {
- super();
- this.webContext = webContext;
- this.writer = writer;
- }
-
- @Override
- public WebContext getWebContext()
- {
- return webContext;
- }
-
- public void setWebContext(WebContext webContext)
- {
- this.webContext = webContext;
- }
-
- @Override
- public Writer getWriter()
- {
- return this.writer;
- }
-
- public void setWriter(Writer writer)
- {
- this.writer = writer;
- }
-
- @Override
- public int nextSequence()
- {
- return this.sequence++;
- }
-}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DirectoryHtmlChartPluginManager.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DirectoryHtmlChartPluginManager.java
index 1bb7c041..c4baad1f 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DirectoryHtmlChartPluginManager.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/DirectoryHtmlChartPluginManager.java
@@ -16,7 +16,6 @@ import java.util.zip.ZipOutputStream;
import org.datagear.analysis.Category;
import org.datagear.analysis.ChartPlugin;
import org.datagear.analysis.ChartPluginManager;
-import org.datagear.analysis.RenderContext;
import org.datagear.analysis.support.ConcurrentChartPluginManager;
import org.datagear.util.FileUtil;
import org.datagear.util.IOUtil;
@@ -46,9 +45,9 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
private long readCheckForReloadTimeThreashold = (LOGGER.isDebugEnabled() ? 0 : 5 * 60 * 1000);
- private Map pluginIdFileNameMap = new HashMap();
+ private Map pluginIdFileNameMap = new HashMap<>();
- private Map fileNameCheckTimeMap = new HashMap();
+ private Map fileNameCheckTimeMap = new HashMap<>();
private volatile long _prevReadCheckForReloadTime = 0;
@@ -141,7 +140,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
@Override
- public ChartPlugin get(String id)
+ public ChartPlugin get(String id)
{
readCheckForReload();
@@ -149,7 +148,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
@Override
- public List> getAll(Class extends T> renderContextType)
+ public List getAll(Class super T> renderContextType)
{
readCheckForReload();
@@ -157,7 +156,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
@Override
- public List> getAll()
+ public List getAll()
{
readCheckForReload();
@@ -175,9 +174,9 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
* @return
* @throws IOException
*/
- public Set> upload(File file) throws IOException
+ public Set upload(File file) throws IOException
{
- Set> ids = new HashSet>();
+ Set ids = new HashSet<>();
WriteLock writeLock = lock.writeLock();
@@ -228,14 +227,14 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
}
- protected void upload(File file, Set> plugins, int depth) throws IOException
+ protected void upload(File file, Set plugins, int depth) throws IOException
{
if (depth > 1 || !file.exists())
return;
if (file.isDirectory())
{
- HtmlChartPlugin> myPlugin = this.htmlChartPluginLoader.load(file);
+ HtmlChartPlugin myPlugin = this.htmlChartPluginLoader.load(file);
inflateCagetory(myPlugin);
if (myPlugin != null)
@@ -256,7 +255,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
else if (this.htmlChartPluginLoader.isHtmlChartPluginZip(file))
{
- HtmlChartPlugin> myPlugin = this.htmlChartPluginLoader.loadZip(file);
+ HtmlChartPlugin myPlugin = this.htmlChartPluginLoader.loadZip(file);
inflateCagetory(myPlugin);
if (myPlugin != null)
@@ -283,8 +282,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
}
- protected HtmlChartPlugin> registerForUpload(HtmlChartPlugin> uploadPlugin, File uploadPluginFile)
- throws IOException
+ protected HtmlChartPlugin registerForUpload(HtmlChartPlugin uploadPlugin, File uploadPluginFile) throws IOException
{
if (!isLegalChartPlugin(uploadPlugin))
return null;
@@ -302,7 +300,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
else
{
String loadedPluginId = getFilePluginId(pluginFileName);
- ChartPlugin> loadedPlugin = (loadedPluginId == null ? null : getChartPlugin(loadedPluginId));
+ ChartPlugin loadedPlugin = (loadedPluginId == null ? null : getChartPlugin(loadedPluginId));
// 同名文件不是插件,则删除它并拷入新文件
if (loadedPlugin == null)
@@ -338,9 +336,9 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
@Override
- protected ChartPlugin> removeChartPlugin(String id)
+ protected ChartPlugin removeChartPlugin(String id)
{
- ChartPlugin> plugin = super.removeChartPlugin(id);
+ ChartPlugin plugin = super.removeChartPlugin(id);
deletePluginFile(id);
return plugin;
@@ -413,7 +411,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
*/
protected void checkForReload()
{
- List reloads = new ArrayList();
+ List reloads = new ArrayList<>();
// 是否有删除插件文件,如果有删除,那么全部重新加载
boolean hasDelete = false;
@@ -503,11 +501,11 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
* {@linkplain #directory}目录下的一个文件
* @return
*/
- protected HtmlChartPlugin> loadAndRegisterHtmlChartPlugin(File file)
+ protected HtmlChartPlugin loadAndRegisterHtmlChartPlugin(File file)
{
try
{
- HtmlChartPlugin> plugin = this.htmlChartPluginLoader.loadFile(file);
+ HtmlChartPlugin plugin = this.htmlChartPluginLoader.loadFile(file);
inflateCagetory(plugin);
return registerHtmlChartPlugin(plugin, file);
}
@@ -530,7 +528,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
* {@linkplain #directory}目录下的一个文件
* @return
*/
- protected HtmlChartPlugin> registerHtmlChartPlugin(HtmlChartPlugin> plugin, File file)
+ protected HtmlChartPlugin registerHtmlChartPlugin(HtmlChartPlugin plugin, File file)
{
String fileName = file.getName();
@@ -550,7 +548,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
@Override
- protected boolean canReplaceForSameId(ChartPlugin> my, Version myVersion, ChartPlugin> old, Version oldVersion)
+ protected boolean canReplaceForSameId(ChartPlugin my, Version myVersion, ChartPlugin old, Version oldVersion)
{
// 调试模式下总替换
if (LOGGER.isDebugEnabled())
@@ -559,7 +557,7 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
return super.canReplaceForSameId(my, myVersion, old, oldVersion);
}
- protected boolean inflateCagetory(HtmlChartPlugin> plugin)
+ protected boolean inflateCagetory(HtmlChartPlugin plugin)
{
if (plugin == null)
return false;
@@ -572,14 +570,14 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
if (category.hasNameLabel())
return false;
- Map> map = getChartPluginMap();
+ Map map = getChartPluginMap();
- for (ChartPlugin> chartPlugin : map.values())
+ for (ChartPlugin chartPlugin : map.values())
{
Category myCategory = chartPlugin.getCategory();
- if (myCategory != null && myCategory.hasNameLabel()
- && myCategory.getName() != null && myCategory.getName().equals(category.getName()))
+ if (myCategory != null && myCategory.hasNameLabel() && myCategory.getName() != null
+ && myCategory.getName().equals(category.getName()))
{
plugin.setCategory(myCategory);
return true;
@@ -626,15 +624,15 @@ public class DirectoryHtmlChartPluginManager extends ConcurrentChartPluginManage
}
@Override
- protected boolean isLegalChartPlugin(ChartPlugin> chartPlugin)
+ protected boolean isLegalChartPlugin(ChartPlugin chartPlugin)
{
boolean legal = super.isLegalChartPlugin(chartPlugin);
if (legal)
{
- if (chartPlugin instanceof HtmlChartPlugin>)
+ if (chartPlugin instanceof HtmlChartPlugin)
{
- HtmlChartPlugin> htmlChartPlugin = (HtmlChartPlugin>) chartPlugin;
+ HtmlChartPlugin htmlChartPlugin = (HtmlChartPlugin) chartPlugin;
if (htmlChartPlugin.getChartRenderer() == null)
legal = false;
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChart.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChart.java
index 69fe3a72..865e86b6 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChart.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChart.java
@@ -30,7 +30,7 @@ public class HtmlChart extends Chart
super();
}
- public HtmlChart(String id, String name, ChartDataSet[] chartDataSets, ChartPlugin> plugin,
+ public HtmlChart(String id, String name, ChartDataSet[] chartDataSets, ChartPlugin plugin,
RenderContext renderContext, String elementId, String varName)
{
super(id, name, chartDataSets, plugin, renderContext);
@@ -38,8 +38,8 @@ public class HtmlChart extends Chart
this.varName = varName;
}
- public HtmlChart(ChartDefinition chartDefinition, ChartPlugin> plugin, RenderContext renderContext,
- String elementId, String varName)
+ public HtmlChart(ChartDefinition chartDefinition, ChartPlugin plugin, RenderContext renderContext, String elementId,
+ String varName)
{
super(chartDefinition, plugin, renderContext);
this.elementId = elementId;
@@ -47,30 +47,15 @@ public class HtmlChart extends Chart
}
@Override
- public HtmlRenderContext getRenderContext()
+ public HtmlChartPlugin getPlugin()
{
- return (HtmlRenderContext) super.getRenderContext();
+ return (HtmlChartPlugin) super.getPlugin();
}
@Override
- public void setRenderContext(RenderContext renderContext)
+ public void setPlugin(ChartPlugin plugin)
{
- if (renderContext != null && !(renderContext instanceof HtmlRenderContext))
- throw new IllegalArgumentException();
-
- super.setRenderContext(renderContext);
- }
-
- @Override
- public HtmlChartPlugin> getPlugin()
- {
- return (HtmlChartPlugin>) super.getPlugin();
- }
-
- @Override
- public void setPlugin(ChartPlugin> plugin)
- {
- if (plugin != null && !(plugin instanceof HtmlChartPlugin>))
+ if (plugin != null && !(plugin instanceof HtmlChartPlugin))
throw new IllegalArgumentException();
super.setPlugin(plugin);
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPlugin.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPlugin.java
index 4f3883e8..be3185af 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPlugin.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPlugin.java
@@ -9,18 +9,20 @@ package org.datagear.analysis.support.html;
import java.io.IOException;
import java.io.Writer;
+import java.util.Arrays;
+import java.util.Collection;
-import org.datagear.analysis.Chart;
import org.datagear.analysis.ChartDefinition;
+import org.datagear.analysis.RenderContext;
import org.datagear.analysis.RenderException;
import org.datagear.analysis.support.AbstractChartPlugin;
-import org.datagear.util.StringUtil;
+import org.datagear.analysis.support.html.HtmlChartRenderAttr.HtmlChartRenderOption;
import org.datagear.util.i18n.Label;
/**
* HTML图表插件。
*
- * 此类将图表代码(HTML、JavaScript)输出至{@linkplain HtmlRenderContext#getWriter()}。
+ * 此类将图表代码(HTML、JavaScript)输出至{@linkplain HtmlRenderAttr#getHtmlWriter(RenderContext)}。
*
*
* 输出格式为:
@@ -45,13 +47,16 @@ import org.datagear.util.i18n.Label;
*
*
*
- * {@linkplain HtmlChartPluginRenderOption}可自定义上述输出内容。
+ * {@linkplain HtmlChartRenderAttr#getRenderOption(RenderContext)}可自定义上述输出内容。
+ *
+ *
+ * 注意:此类{@linkplain #renderChart(RenderContext, ChartDefinition)}的{@linkplain RenderContext}必须符合{@linkplain HtmlChartRenderAttr#inflate(RenderContext, Writer, HtmlChartRenderOption)}规范。
*
*
* @author datagear@163.com
*
*/
-public class HtmlChartPlugin extends AbstractChartPlugin
+public class HtmlChartPlugin extends AbstractChartPlugin
{
public static final String PROPERTY_CHART_RENDERER = "chartRenderer";
@@ -131,16 +136,18 @@ public class HtmlChartPlugin extends AbstractChartP
}
@Override
- public Chart renderChart(T renderContext, ChartDefinition chartDefinition) throws RenderException
+ public HtmlChart renderChart(RenderContext renderContext, ChartDefinition chartDefinition) throws RenderException
{
- HtmlChartPluginRenderOption option = getOptionInitialized(renderContext);
+ HtmlChartRenderAttr renderAttr = getHtmlChartRenderAttrNonNull(renderContext);
+ Writer out = renderAttr.getHtmlWriterNonNull(renderContext);
+ HtmlChartRenderOption option = renderAttr.getRenderOptionNonNull(renderContext);
HtmlChart chart = createHtmlChart(renderContext, chartDefinition, option);
try
{
- writeChartElement(renderContext, option);
- writeScript(renderContext, chart, option);
+ writeChartElement(renderContext, renderAttr, out, option);
+ writeScript(renderContext, renderAttr, out, chart, option);
}
catch (IOException e)
{
@@ -150,80 +157,81 @@ public class HtmlChartPlugin extends AbstractChartP
return chart;
}
- protected HtmlChart createHtmlChart(T renderContext, ChartDefinition chartDefinition,
- HtmlChartPluginRenderOption option)
+ protected HtmlChart createHtmlChart(RenderContext renderContext, ChartDefinition chartDefinition,
+ HtmlChartRenderOption option)
{
- return new HtmlChart(chartDefinition, this, renderContext,
- option.getChartElementId(), option.getChartVarName());
+ return new HtmlChart(chartDefinition, this, renderContext, option.getChartElementId(),
+ option.getChartVarName());
}
- protected boolean writeChartElement(T renderContext, HtmlChartPluginRenderOption option) throws IOException
+ protected boolean writeChartElement(RenderContext renderContext, HtmlChartRenderAttr renderAttr, Writer out,
+ HtmlChartRenderOption option) throws IOException
{
if (option.isNotWriteChartElement())
return false;
- Writer writer = renderContext.getWriter();
-
- writer.write("<" + this.elementTagName + " id=\"" + option.getChartElementId() + "\">");
- writer.write("" + this.elementTagName + ">");
- writeNewLine(writer);
+ out.write("<" + this.elementTagName + " id=\"" + option.getChartElementId() + "\">");
+ out.write("" + this.elementTagName + ">");
+ writeNewLine(out);
return true;
}
- protected void writeScript(T renderContext, HtmlChart chart, HtmlChartPluginRenderOption optionInitialized)
- throws IOException
+ protected void writeScript(RenderContext renderContext, HtmlChartRenderAttr renderAttr, Writer out, HtmlChart chart,
+ HtmlChartRenderOption optionInitialized) throws IOException
{
- Writer out = renderContext.getWriter();
-
if (!optionInitialized.isNotWriteScriptTag())
{
- writeScriptStartTag(renderContext);
+ writeScriptStartTag(renderContext, out);
writeNewLine(out);
}
- writePluginJsObject(renderContext, chart, optionInitialized);
- writeRenderContextJsObject(renderContext, chart, optionInitialized);
- writeChartJsObject(renderContext, chart, optionInitialized);
+ writePluginJsObject(renderContext, renderAttr, out, chart, optionInitialized);
+ writeRenderContextJsObject(renderContext, renderAttr, out, chart, optionInitialized);
+ writeChartJsObject(renderContext, renderAttr, out, chart, optionInitialized);
if (!optionInitialized.isNotWriteScriptTag())
{
- writeScriptEndTag(renderContext);
+ writeScriptEndTag(renderContext, out);
writeNewLine(out);
}
}
- protected boolean writePluginJsObject(T renderContext, HtmlChart chart,
- HtmlChartPluginRenderOption optionInitialized) throws IOException
+ protected boolean writePluginJsObject(RenderContext renderContext, HtmlChartRenderAttr renderAttr, Writer out,
+ HtmlChart chart, HtmlChartRenderOption optionInitialized) throws IOException
{
if (optionInitialized.isNotWritePluginObject())
return false;
- Writer out = renderContext.getWriter();
- HtmlChartPlugin> plugin = chart.getPlugin();
+ HtmlChartPlugin plugin = chart.getPlugin();
getHtmlChartPluginScriptObjectWriter().write(out, plugin, optionInitialized.getPluginVarName());
return true;
}
- protected boolean writeRenderContextJsObject(T renderContext, HtmlChart chart,
- HtmlChartPluginRenderOption optionInitialized) throws IOException
+ protected boolean writeRenderContextJsObject(RenderContext renderContext, HtmlChartRenderAttr renderAttr,
+ Writer out, HtmlChart chart, HtmlChartRenderOption optionInitialized) throws IOException
{
if (optionInitialized.isNotWriteRenderContextObject())
return false;
- Writer out = renderContext.getWriter();
- getHtmlRenderContextScriptObjectWriter().write(out, renderContext, optionInitialized.getRenderContextVarName());
+ getHtmlRenderContextScriptObjectWriter().write(out, renderContext, optionInitialized.getRenderContextVarName(),
+ getHtmlRenderContextIgnoreAttrs(renderContext, renderAttr, out, chart));
return true;
}
- protected void writeChartJsObject(T renderContext, HtmlChart chart, HtmlChartPluginRenderOption optionInitialized)
- throws IOException
+ protected Collection getHtmlRenderContextIgnoreAttrs(RenderContext renderContext,
+ HtmlChartRenderAttr renderAttr, Writer out, HtmlChart chart)
{
- Writer out = renderContext.getWriter();
+ Collection ignores = renderAttr.getIgnoreRenderAttrs(renderContext);
+ return (ignores != null ? ignores : Arrays.asList(renderAttr.getHtmlWriterName()));
+ }
+ protected void writeChartJsObject(RenderContext renderContext, HtmlChartRenderAttr renderAttr, Writer out,
+ HtmlChart chart, HtmlChartRenderOption optionInitialized) throws IOException
+ {
if (optionInitialized.isWriteChartJson())
getHtmlChartScriptObjectWriter().writeJson(out, chart, optionInitialized.getRenderContextVarName(),
optionInitialized.getPluginVarName());
@@ -254,98 +262,23 @@ public class HtmlChartPlugin extends AbstractChartP
return HTML_CHART_SCRIPT_OBJECT_WRITER;
}
- /**
- * 写脚本开始标签。
- *
- * @param renderContext
- * @throws IOException
- */
- protected void writeScriptStartTag(T renderContext) throws IOException
+ protected void writeScriptStartTag(RenderContext renderContext, Writer out) throws IOException
{
- renderContext.getWriter().write("");
+ out.write("");
}
- /**
- * 写换行符。
- *
- * @param out
- * @throws IOException
- */
protected void writeNewLine(Writer out) throws IOException
{
out.write(getNewLine());
}
- /**
- * 获取已初始化的{@linkplain HtmlChartPluginRenderOption}。
- *
- * 它的{@linkplain HtmlChartPluginRenderOption#getChartElementId()}、
- * {@linkplain HtmlChartPluginRenderOption#getPluginVarName()}、
- * {@linkplain HtmlChartPluginRenderOption#getRenderContextVarName()}、
- * {@linkplain HtmlChartPluginRenderOption#getChartVarName()}都是已初始化的。
- *
- *
- * @param renderContext
- * @return
- */
- protected HtmlChartPluginRenderOption getOptionInitialized(T renderContext)
+ protected HtmlChartRenderAttr getHtmlChartRenderAttrNonNull(RenderContext renderContext)
{
- HtmlChartPluginRenderOption option = HtmlChartPluginRenderOption.getOption(renderContext);
- if (option == null)
- {
- option = new HtmlChartPluginRenderOption();
- option.setNotWriteChartElement(false);
- option.setNotWritePluginObject(false);
- option.setNotWriteRenderContextObject(false);
- option.setNotWriteScriptTag(false);
- option.setNotWriteInvoke(false);
- option.setWriteChartJson(false);
- }
-
- String chartElementId = option.getChartElementId();
- String pluginVarName = option.getPluginVarName();
- String renderContextVarName = option.getRenderContextVarName();
- String chartVarName = option.getChartVarName();
-
- if (option.isNotWriteChartElement() && StringUtil.isEmpty(chartElementId))
- throw new RenderException(
- "[" + HtmlChartPluginRenderOption.class.getSimpleName() + ".elementId] must be set");
-
- if (StringUtil.isEmpty(chartElementId))
- {
- chartElementId = HtmlRenderAttributes.generateChartElementId(renderContext);
- option.setChartElementId(chartElementId);
- }
-
- if (StringUtil.isEmpty(pluginVarName))
- {
- pluginVarName = HtmlRenderAttributes.generateChartPluginVarName(renderContext);
- option.setPluginVarName(pluginVarName);
- }
-
- if (StringUtil.isEmpty(renderContextVarName))
- {
- renderContextVarName = HtmlRenderAttributes.generateRenderContextVarName(renderContext);
- option.setRenderContextVarName(renderContextVarName);
- }
-
- if (StringUtil.isEmpty(chartVarName))
- {
- chartVarName = HtmlRenderAttributes.generateChartVarName(renderContext);
- option.setChartVarName(chartVarName);
- }
-
- return option;
+ return HtmlChartRenderAttr.getNonNull(renderContext);
}
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginLoader.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginLoader.java
index dab91704..79406e48 100644
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginLoader.java
+++ b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginLoader.java
@@ -209,7 +209,7 @@ public class HtmlChartPluginLoader
* @return
* @throws HtmlChartPluginLoadException
*/
- public HtmlChartPlugin> load(File directory) throws HtmlChartPluginLoadException
+ public HtmlChartPlugin load(File directory) throws HtmlChartPluginLoadException
{
return loadSingleForDirectory(directory);
}
@@ -221,7 +221,7 @@ public class HtmlChartPluginLoader
* @return
* @throws HtmlChartPluginLoadException
*/
- public HtmlChartPlugin> loadZip(File zip) throws HtmlChartPluginLoadException
+ public HtmlChartPlugin loadZip(File zip) throws HtmlChartPluginLoadException
{
return loadSingleForZip(zip);
}
@@ -233,7 +233,7 @@ public class HtmlChartPluginLoader
* @return
* @throws HtmlChartPluginLoadException
*/
- public HtmlChartPlugin> loadZip(ZipInputStream in) throws HtmlChartPluginLoadException
+ public HtmlChartPlugin loadZip(ZipInputStream in) throws HtmlChartPluginLoadException
{
return loadSingleForZip(in);
}
@@ -245,9 +245,9 @@ public class HtmlChartPluginLoader
* @return
* @throws HtmlChartPluginLoadException
*/
- public HtmlChartPlugin> loadFile(File file) throws HtmlChartPluginLoadException
+ public HtmlChartPlugin loadFile(File file) throws HtmlChartPluginLoadException
{
- HtmlChartPlugin> plugin = null;
+ HtmlChartPlugin plugin = null;
if (file.isDirectory())
plugin = loadSingleForDirectory(file);
@@ -269,15 +269,15 @@ public class HtmlChartPluginLoader
* @return
* @throws HtmlChartPluginLoadException
*/
- public Set> loads(File file) throws HtmlChartPluginLoadException
+ public Set loads(File file) throws HtmlChartPluginLoadException
{
- Set> plugins = new HashSet>();
+ Set plugins = new HashSet<>();
if (file.isDirectory())
{
if (isHtmlChartPluginDirectory(file))
{
- HtmlChartPlugin> plugin = load(file);
+ HtmlChartPlugin plugin = load(file);
if (plugin != null)
plugins.add(plugin);
@@ -288,7 +288,7 @@ public class HtmlChartPluginLoader
for (File child : children)
{
- HtmlChartPlugin> plugin = loadFile(child);
+ HtmlChartPlugin plugin = loadFile(child);
if (plugin != null)
plugins.add(plugin);
@@ -299,7 +299,7 @@ public class HtmlChartPluginLoader
{
if (isHtmlChartPluginZip(file))
{
- HtmlChartPlugin> plugin = loadZip(file);
+ HtmlChartPlugin plugin = loadZip(file);
if (plugin != null)
plugins.add(plugin);
@@ -327,7 +327,7 @@ public class HtmlChartPluginLoader
for (File child : children)
{
- HtmlChartPlugin> plugin = loadFile(child);
+ HtmlChartPlugin plugin = loadFile(child);
if (plugin != null)
plugins.add(plugin);
@@ -340,12 +340,12 @@ public class HtmlChartPluginLoader
return plugins;
}
- protected HtmlChartPlugin> loadFileExt(File file) throws HtmlChartPluginLoadException
+ protected HtmlChartPlugin loadFileExt(File file) throws HtmlChartPluginLoadException
{
return null;
}
- protected HtmlChartPlugin> loadSingleForZip(File zip) throws HtmlChartPluginLoadException
+ protected HtmlChartPlugin loadSingleForZip(File zip) throws HtmlChartPluginLoadException
{
ZipInputStream in = null;
@@ -370,7 +370,7 @@ public class HtmlChartPluginLoader
}
}
- protected HtmlChartPlugin> loadSingleForZip(ZipInputStream in) throws HtmlChartPluginLoadException
+ protected HtmlChartPlugin loadSingleForZip(ZipInputStream in) throws HtmlChartPluginLoadException
{
try
{
@@ -378,7 +378,7 @@ public class HtmlChartPluginLoader
IOUtil.unzip(in, tmpDirectory);
- HtmlChartPlugin> chartPlugin = loadSingleForDirectory(tmpDirectory);
+ HtmlChartPlugin chartPlugin = loadSingleForDirectory(tmpDirectory);
FileUtil.deleteFile(tmpDirectory);
@@ -397,32 +397,33 @@ public class HtmlChartPluginLoader
* @return
* @throws HtmlChartPluginLoadException
*/
- protected HtmlChartPlugin> loadSingleForDirectory(File directory) throws HtmlChartPluginLoadException
+ protected HtmlChartPlugin loadSingleForDirectory(File directory) throws HtmlChartPluginLoadException
{
File chartFile = new File(directory, FILE_NAME_PLUGIN);
-
+
if (!chartFile.exists())
return null;
-
- HtmlChartPlugin> plugin = null;
-
+
+ HtmlChartPlugin plugin = null;
+
Reader chartIn = null;
-
+
try
{
chartIn = IOUtil.getReader(chartFile, this.encoding);
-
+
JsDefContent jsDefContent = this.htmlChartPluginJsDefResolver.resolve(chartIn);
-
+
if (!StringUtil.isEmpty(jsDefContent.getPluginJson())
&& !StringUtil.isEmpty(jsDefContent.getPluginChartRenderer()))
{
plugin = createHtmlChartPlugin();
-
- this.jsonChartPluginPropertiesResolver.resolveChartPluginProperties(plugin, jsDefContent.getPluginJson());
+
+ this.jsonChartPluginPropertiesResolver.resolveChartPluginProperties(plugin,
+ jsDefContent.getPluginJson());
plugin.setChartRenderer(new StringJsChartRenderer(jsDefContent.getPluginChartRenderer()));
plugin.setIcons(toBytesIconsInDirectory(directory, plugin.getIcons()));
-
+
if (StringUtil.isEmpty(plugin.getId()) || StringUtil.isEmpty(plugin.getNameLabel()))
plugin = null;
}
@@ -439,7 +440,7 @@ public class HtmlChartPluginLoader
// 设置为加载时间而不取文件上次修改时间,因为文件上次修改时间可能错乱
if (plugin != null)
plugin.setLastModified(System.currentTimeMillis());
-
+
return plugin;
}
@@ -449,7 +450,7 @@ public class HtmlChartPluginLoader
if (icons == null || icons.isEmpty())
return icons;
- Map bytesIcons = new HashMap();
+ Map bytesIcons = new HashMap<>();
for (Map.Entry entry : icons.entrySet())
{
@@ -521,8 +522,8 @@ public class HtmlChartPluginLoader
return FileUtil.isExtension(file, "zip");
}
- protected HtmlChartPlugin> createHtmlChartPlugin()
+ protected HtmlChartPlugin createHtmlChartPlugin()
{
- return new HtmlChartPlugin();
+ return new HtmlChartPlugin();
}
}
diff --git a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginRenderOption.java b/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginRenderOption.java
deleted file mode 100644
index 5a9acaca..00000000
--- a/datagear-analysis/src/main/java/org/datagear/analysis/support/html/HtmlChartPluginRenderOption.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright (c) 2018 datagear.tech. All Rights Reserved.
- */
-
-/**
- *
- */
-package org.datagear.analysis.support.html;
-
-import java.io.Serializable;
-
-import org.datagear.analysis.RenderContext;
-
-/**
- * {@linkplain HtmlChartPlugin}渲染设置项。
- *
- * @author datagear@163.com
- *
- */
-public class HtmlChartPluginRenderOption implements Serializable
-{
- private static final long serialVersionUID = 1L;
-
- /** 图表的HTML元素ID */
- private String chartElementId;
-
- /** 是否不输出图表HTML元素 */
- private boolean notWriteChartElement = false;
-
- /** 插件变量名 */
- private String pluginVarName;
-
- /** 是否不输出插件JS对象 */
- private boolean notWritePluginObject = false;
-
- /** 图表变量名 */
- private String chartVarName;
-
- /** 渲染上下文变量名 */
- private String renderContextVarName;
-
- /** 是否不输出渲染上下文JS对象 */
- private boolean notWriteRenderContextObject = false;
-
- /** 是否不输出{@code ";
@@ -46,34 +47,36 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
{
super();
- HtmlChartPlugin chartPlugin = HtmlChartPluginTest.createHtmlChartPlugin();
+ HtmlChartPlugin chartPlugin = HtmlChartPluginTest.createHtmlChartPlugin();
- HtmlChartWidget htmlChartWidget = new HtmlChartWidget("chart-widget-01",
- "chart-widget-01", ChartDefinition.EMPTY_CHART_DATA_SET, chartPlugin);
+ HtmlChartWidget htmlChartWidget = new HtmlChartWidget("chart-widget-01", "chart-widget-01",
+ ChartDefinition.EMPTY_CHART_DATA_SET, chartPlugin);
TemplateDashboardWidgetResManager resManager = new FileTemplateDashboardWidgetResManager(
"src/test/resources/org/datagear/analysis/support/html/htmlTplDashboardWidgets/html");
SimpleChartWidgetSource chartWidgetSource = new SimpleChartWidgetSource(htmlChartWidget);
- List dashboardImports = new ArrayList();
+ List dashboardImports = new ArrayList<>();
dashboardImports.add(new HtmlTplDashboardImport("jquery", IMPORT_CONTENT_JQUERY));
dashboardImports.add(new HtmlTplDashboardImport("util", IMPORT_CONTENT_UTIL));
dashboardImports.add(new HtmlTplDashboardImport("theme", IMPORT_CONTENT_THEME));
dashboardImports.add(new HtmlTplDashboardImport("style", IMPORT_CONTENT_STYLE));
- this.renderer = new HtmlTplDashboardWidgetHtmlRenderer(resManager, chartWidgetSource);
+ this.renderer = new HtmlTplDashboardWidgetHtmlRenderer(resManager, chartWidgetSource);
this.renderer.setDashboardImports(dashboardImports);
}
@Test
public void renderTest() throws Exception
{
- HtmlTplDashboardWidget dashboardWidget = createHtmlTplDashboardWidget();
+ HtmlTplDashboardWidget dashboardWidget = createHtmlTplDashboardWidget();
+ RenderContext renderContext = new DefaultRenderContext();
+ HtmlTplDashboardRenderAttr renderAttr = new HtmlTplDashboardRenderAttr();
StringWriter out = new StringWriter();
- DefaultHtmlRenderContext renderContext = new DefaultHtmlRenderContext(new WebContext("", ""), out);
- HtmlRenderAttributes.setRenderStyle(renderContext, RenderStyle.DARK);
+ renderAttr.inflate(renderContext, out, new WebContext("", ""));
+
HtmlTplDashboard dashboard = dashboardWidget.render(renderContext);
getHtmlWithPrint(out);
@@ -84,19 +87,21 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
@Test
public void renderHtmlTplDashboardTest() throws Exception
{
- HtmlTplDashboardWidget dashboardWidget = createHtmlTplDashboardWidget();
+ HtmlTplDashboardWidget dashboardWidget = createHtmlTplDashboardWidget();
// 看板属性,双引号
{
String template = "";
+ RenderContext renderContext = new DefaultRenderContext();
+ HtmlTplDashboardRenderAttr renderAttr = new HtmlTplDashboardRenderAttr();
StringWriter out = new StringWriter();
- DefaultHtmlRenderContext renderContext = new DefaultHtmlRenderContext(new WebContext("", ""), out);
+ renderAttr.inflate(renderContext, out, new WebContext("", ""));
HtmlTplDashboard dashboard = this.renderer.createHtmlTplDashboard(renderContext, dashboardWidget, template);
- DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, dashboard,
+ DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, renderAttr, dashboard,
IOUtil.getReader(template));
String html = getHtmlWithPrint(out);
@@ -108,9 +113,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
- Assert.assertTrue(html.contains("var dataGearDashboard2"));
- Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
- Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
+ Assert.assertTrue(html.contains("var dataGearDashboardTmp"));
+ Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboardTmp);"));
+ Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboardTmp;"));
}
// 看板属性,无引号
@@ -118,12 +123,14 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
String template = "";
+ RenderContext renderContext = new DefaultRenderContext();
+ HtmlTplDashboardRenderAttr renderAttr = new HtmlTplDashboardRenderAttr();
StringWriter out = new StringWriter();
- DefaultHtmlRenderContext renderContext = new DefaultHtmlRenderContext(new WebContext("", ""), out);
+ renderAttr.inflate(renderContext, out, new WebContext("", ""));
HtmlTplDashboard dashboard = this.renderer.createHtmlTplDashboard(renderContext, dashboardWidget, template);
- DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, dashboard,
+ DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, renderAttr, dashboard,
IOUtil.getReader(template));
String html = getHtmlWithPrint(out);
@@ -135,9 +142,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
- Assert.assertTrue(html.contains("var dataGearDashboard2"));
- Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
- Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
+ Assert.assertTrue(html.contains("var dataGearDashboardTmp"));
+ Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboardTmp);"));
+ Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboardTmp;"));
}
// 看板属性,单引号
@@ -145,12 +152,14 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
String template = "";
+ RenderContext renderContext = new DefaultRenderContext();
+ HtmlTplDashboardRenderAttr renderAttr = new HtmlTplDashboardRenderAttr();
StringWriter out = new StringWriter();
- DefaultHtmlRenderContext renderContext = new DefaultHtmlRenderContext(new WebContext("", ""), out);
+ renderAttr.inflate(renderContext, out, new WebContext("", ""));
HtmlTplDashboard dashboard = this.renderer.createHtmlTplDashboard(renderContext, dashboardWidget, template);
- DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, dashboard,
+ DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, renderAttr, dashboard,
IOUtil.getReader(template));
String html = getHtmlWithPrint(out);
@@ -162,9 +171,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
- Assert.assertTrue(html.contains("var dataGearDashboard2"));
- Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
- Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
+ Assert.assertTrue(html.contains("var dataGearDashboardTmp"));
+ Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboardTmp);"));
+ Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboardTmp;"));
}
// 看板属性,多个导入排除值
@@ -172,12 +181,14 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
String template = "";
+ RenderContext renderContext = new DefaultRenderContext();
+ HtmlTplDashboardRenderAttr renderAttr = new HtmlTplDashboardRenderAttr();
StringWriter out = new StringWriter();
- DefaultHtmlRenderContext renderContext = new DefaultHtmlRenderContext(new WebContext("", ""), out);
+ renderAttr.inflate(renderContext, out, new WebContext("", ""));
HtmlTplDashboard dashboard = this.renderer.createHtmlTplDashboard(renderContext, dashboardWidget, template);
- DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, dashboard,
+ DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, renderAttr, dashboard,
IOUtil.getReader(template));
String html = getHtmlWithPrint(out);
@@ -189,21 +200,23 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertFalse(html.contains(IMPORT_CONTENT_THEME));
Assert.assertFalse(html.contains(IMPORT_CONTENT_STYLE));
- Assert.assertTrue(html.contains("var dataGearDashboard2"));
- Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboard2);"));
- Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboard2;"));
+ Assert.assertTrue(html.contains("var dataGearDashboardTmp"));
+ Assert.assertTrue(html.contains("myDashboardFactory.init(dataGearDashboardTmp);"));
+ Assert.assertTrue(html.contains("window.myDashboard=dataGearDashboardTmp;"));
}
// 看板属性,默认
{
String template = "";
+ RenderContext renderContext = new DefaultRenderContext();
+ HtmlTplDashboardRenderAttr renderAttr = new HtmlTplDashboardRenderAttr();
StringWriter out = new StringWriter();
- DefaultHtmlRenderContext renderContext = new DefaultHtmlRenderContext(new WebContext("", ""), out);
+ renderAttr.inflate(renderContext, out, new WebContext("", ""));
HtmlTplDashboard dashboard = this.renderer.createHtmlTplDashboard(renderContext, dashboardWidget, template);
- DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, dashboard,
+ DashboardInfo dashboardInfo = this.renderer.renderHtmlTplDashboard(renderContext, renderAttr, dashboard,
IOUtil.getReader(template));
String html = getHtmlWithPrint(out);
@@ -215,9 +228,9 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
Assert.assertTrue(html.contains(IMPORT_CONTENT_UTIL));
Assert.assertTrue(html.contains(IMPORT_CONTENT_THEME));
Assert.assertTrue(html.contains(IMPORT_CONTENT_STYLE));
- Assert.assertTrue(html.contains("var dataGearDashboard2"));
- Assert.assertTrue(html.contains("dashboardFactory.init(dataGearDashboard2);"));
- Assert.assertTrue(html.contains("window.dashboard=dataGearDashboard2;"));
+ Assert.assertTrue(html.contains("var dataGearDashboardTmp"));
+ Assert.assertTrue(html.contains("dashboardFactory.init(dataGearDashboardTmp);"));
+ Assert.assertTrue(html.contains("window.dashboard=dataGearDashboardTmp;"));
}
// 图表属性
@@ -242,12 +255,14 @@ public class HtmlTplDashboardWidgetHtmlRendererTest
//
+ HtmlChartPlugin.HTML_NEW_LINE + "