You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
4.8 KiB
125 lines
4.8 KiB
package com.fr.widgettheme.theme.panel; |
|
|
|
import com.fr.base.background.ColorBackground; |
|
import com.fr.base.theme.ReportTheme; |
|
import com.fr.chart.chartattr.ChartCollection; |
|
import com.fr.chart.chartdata.NormalChartData; |
|
import com.fr.chart.charttypes.ChartTypeManager; |
|
import com.fr.design.i18n.Toolkit; |
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
import com.fr.design.mainframe.theme.TemplateThemePreviewPane; |
|
import com.fr.design.mainframe.theme.preview.ChartPreviewPane; |
|
import com.fr.general.Background; |
|
import com.fr.log.FineLoggerFactory; |
|
import com.fr.plugin.chart.column.VanChartColumnPlot; |
|
import com.fr.plugin.chart.vanchart.VanChart; |
|
import com.fr.widgettheme.ThemePreviewTerminal; |
|
|
|
import java.awt.BorderLayout; |
|
import java.awt.Color; |
|
import java.awt.Dimension; |
|
import java.awt.Graphics2D; |
|
import java.awt.geom.Rectangle2D; |
|
|
|
import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initColumnPlot; |
|
import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initVanChartYAxis; |
|
import static com.fr.widgettheme.util.ThemePreviewPaneInitHelper.initVanChartsTools; |
|
|
|
/** |
|
* 主题界面预览控cpt界面,就是主jar里的那个界面,做了简单的修改 |
|
* |
|
* @author John.Ying |
|
* @since 11.0 |
|
* Created on 2023/3/18 |
|
*/ |
|
public class WidgetDisplayReportThemePreviewPane extends TemplateThemePreviewPane<ReportTheme> { |
|
private Background background; |
|
|
|
private final WidgetThemeECReportPreviewPane reportPreviewPane; |
|
|
|
private final ChartPreviewPane chartPreviewPane; |
|
|
|
private final ControlPreviewPane controlPreviewPane; |
|
|
|
public WidgetDisplayReportThemePreviewPane() { |
|
setLayout(FRGUIPaneFactory.createBorderLayout()); |
|
chartPreviewPane = new ChartPreviewPane(); |
|
chartPreviewPane.setPreferredSize(new Dimension(615, 207)); |
|
chartPreviewPane.populate(initColumnChart()); |
|
chartPreviewPane.setCallbackEvent(this); |
|
reportPreviewPane = new WidgetThemeECReportPreviewPane(); |
|
reportPreviewPane.setPreferredSize(new Dimension(615, 257)); |
|
controlPreviewPane = new ControlPreviewPane(); |
|
controlPreviewPane.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); |
|
controlPreviewPane.setPreferredSize(new Dimension(615, 40)); |
|
controlPreviewPane.initControlPreviewPane(); |
|
this.add(reportPreviewPane, BorderLayout.CENTER); |
|
this.add(chartPreviewPane, BorderLayout.SOUTH); |
|
this.add(controlPreviewPane, BorderLayout.NORTH); |
|
} |
|
|
|
@Override |
|
public void refresh(ReportTheme theme) { |
|
refresh(theme, ThemePreviewTerminal.PC); |
|
} |
|
|
|
@Override |
|
public void refresh(ReportTheme theme, ThemePreviewTerminal terminal) { |
|
background = theme.getBodyStyle().getBackground(); |
|
reportPreviewPane.refresh(theme); |
|
chartPreviewPane.refresh(theme); |
|
controlPreviewPane.refresh(theme, terminal); |
|
repaint(); |
|
} |
|
|
|
|
|
protected void paintBackground(Graphics2D g2d) { |
|
if (background == null) { |
|
background = ColorBackground.getInstance(Color.WHITE); |
|
} |
|
background.paint(g2d, new Rectangle2D.Double(0, 0, PREVIEW_WIDTH, PREVIEW_HEIGHT)); |
|
} |
|
|
|
|
|
/** |
|
* 初始化柱形图 |
|
* |
|
* @return chartCollection |
|
*/ |
|
private ChartCollection initColumnChart() { |
|
try { |
|
VanChart chart = (VanChart) ChartTypeManager.getInstance().getCharts(VanChartColumnPlot.VAN_CHART_COLUMN_PLOT_ID)[0].clone(); |
|
initColumnChartDetail(chart); |
|
Object[] category = { |
|
Toolkit.i18nText("Fine-Design_Chart_Category") + "1", |
|
Toolkit.i18nText("Fine-Design_Chart_Category") + "2", |
|
Toolkit.i18nText("Fine-Design_Chart_Category") + "3", |
|
Toolkit.i18nText("Fine-Design_Chart_Category") + "4" |
|
}; |
|
Object[] series = { |
|
Toolkit.i18nText("Fine-Design_Chart_Series") + "1", |
|
Toolkit.i18nText("Fine-Design_Chart_Series") + "2", |
|
Toolkit.i18nText("Fine-Design_Chart_Series") + "3" |
|
}; |
|
Object[][] value = { |
|
{"340", "510", "300", "250"}, |
|
{"180", "360", "170", "100"}, |
|
{"210", "205", "405", "190"} |
|
}; |
|
NormalChartData normalChartData = new NormalChartData(category, series, value); |
|
chart.setPreViewChartData(normalChartData); |
|
ChartCollection chartCollection = new ChartCollection(chart); |
|
return chartCollection; |
|
} catch (Exception ex) { |
|
FineLoggerFactory.getLogger().error(ex.getMessage(), ex); |
|
} |
|
return null; |
|
} |
|
|
|
private void initColumnChartDetail(VanChart chart) { |
|
initVanChartsTools(chart.getVanChartTools()); |
|
VanChartColumnPlot plot = chart.getPlot(); |
|
initColumnPlot(plot); |
|
initVanChartYAxis(plot.getDefaultYAxis()); |
|
} |
|
}
|
|
|