Browse Source

Merge branch 'release/10.0' of https://code.fineres.com/scm/~qinghui.liu/design into release/10.0

feature/big-screen
Qinghui.Liu 4 years ago
parent
commit
d6c8b1b50b
  1. 66
      designer-chart/src/main/java/com/fr/design/chart/AutoChartIcon.java
  2. 89
      designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java
  3. 22
      designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java
  4. 1
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldValuePane.java
  5. 39
      designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java
  6. 4
      designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java

66
designer-chart/src/main/java/com/fr/design/chart/AutoChartIcon.java

@ -1,85 +1,29 @@
package com.fr.design.chart; package com.fr.design.chart;
import com.fr.base.chart.BaseChartPainter; import com.fr.base.chart.BaseChartPainter;
import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.base.chart.result.WebChartIDInfo; import com.fr.base.chart.result.WebChartIDInfo;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.script.Calculator; import com.fr.script.Calculator;
import javax.swing.Icon;
import java.awt.Color;
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
/** /**
* @author Bjorn * @author Bjorn
* @version 10.0 * @version 10.0
* Created by Bjorn on 2020-05-29 * Created by Bjorn on 2020-05-29
*/ */
public class AutoChartIcon implements Icon { public class AutoChartIcon extends ChartIcon {
private static final int WIDTH = 500; private static final int WIDTH = 500;
private static final int HEIGHT = 281; private static final int HEIGHT = 281;
private ChartCollection chartCollection;
private CallbackEvent callbackEvent;
private String chartName;
public AutoChartIcon(ChartCollection chartCollection) { public AutoChartIcon(ChartCollection chartCollection) {
this.chartCollection = chartCollection; super(chartCollection);
initChartName();
}
public ChartCollection getChartCollection() {
return chartCollection;
} }
public String getChartName() {
return chartName;
}
private void initChartName() {
Chart chart = chartCollection.getSelectedChart(Chart.class);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getPlot().getPlotID());
chartName = subName[0];
}
public void registerCallBackEvent(CallbackEvent callbackEvent) {
this.callbackEvent = callbackEvent;
}
/**
* 画出缩略图Icon
*
* @param g 图形的上下文
* @param c 所在的Component
* @param x 缩略图的起始坐标x
* @param y 缩略图的起始坐标y
*/
@Override @Override
public void paintIcon(Component c, Graphics g, int x, int y) { protected BaseChartPainter getChartPainter() {
BaseChartPainter painter = getChartCollection().createResultChartPainterWithOutDealFormula(Calculator.createCalculator(),
BaseChartPainter painter = chartCollection.createResultChartPainterWithOutDealFormula(Calculator.createCalculator(),
WebChartIDInfo.createAutoTypeInfo(), getIconWidth(), getIconHeight()); WebChartIDInfo.createAutoTypeInfo(), getIconWidth(), getIconHeight());
return painter;
int resolution = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getJTemplateResolution();
Graphics2D g2d = (Graphics2D) g;
Paint oldPaint = g2d.getPaint();
g.translate(x, y);
g2d.setPaint(Color.white);
g2d.fillRect(0, 0, getIconWidth(), getIconHeight());
painter.paint(g2d, getIconWidth(), getIconHeight(), resolution, null, callbackEvent);
g.translate(-x, -y);
g2d.setPaint(oldPaint);
} }
/** /**

89
designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java

@ -1,8 +1,13 @@
package com.fr.design.chart; package com.fr.design.chart;
import com.fr.base.GraphHelper; import com.fr.base.chart.BaseChartPainter;
import com.fr.general.IOUtils; import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.stable.Constants; import com.fr.base.chart.result.WebChartIDInfo;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.script.Calculator;
import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLable; import com.fr.stable.xml.XMLable;
import com.fr.stable.xml.XMLableReader; import com.fr.stable.xml.XMLableReader;
@ -13,7 +18,6 @@ import java.awt.Component;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
import java.awt.Paint; import java.awt.Paint;
import java.awt.image.BufferedImage;
/** /**
* 图表的缩略图Icon, 在选择图表类型界面 用到. * 图表的缩略图Icon, 在选择图表类型界面 用到.
@ -21,21 +25,47 @@ import java.awt.image.BufferedImage;
public class ChartIcon implements Icon, XMLable { public class ChartIcon implements Icon, XMLable {
private static final int WIDTH = 400; private static final int WIDTH = 400;
private static final int HEIGHT = 225; private static final int HEIGHT = 225;
/**
* 缩略图中的图片路径
*/ private ChartCollection chartCollection;
private String imagePath; private CallbackEvent callbackEvent;
private String chartName; private String chartName;
/** /**
* 构造Chart的缩略图Icon * 构造Chart的缩略图Icon
*/ */
public ChartIcon(String imagePath, String chartName) { public ChartIcon(ChartCollection chartCollection) {
this.imagePath = imagePath; this.chartCollection = chartCollection;
initChartName();
}
public ChartCollection getChartCollection() {
return chartCollection;
}
public String getChartName() {
return chartName;
}
public void setChartCollection(ChartCollection chartCollection) {
this.chartCollection = chartCollection;
}
public void setChartName(String chartName) {
this.chartName = chartName; this.chartName = chartName;
} }
private void initChartName() {
Chart chart = chartCollection.getSelectedChart(Chart.class);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getPlot().getPlotID());
chartName = subName[0];
}
public void registerCallBackEvent(CallbackEvent callbackEvent) {
this.callbackEvent = callbackEvent;
}
/** /**
* 画出缩略图Icon * 画出缩略图Icon
* *
@ -47,21 +77,29 @@ public class ChartIcon implements Icon, XMLable {
@Override @Override
public void paintIcon(Component c, Graphics g, int x, int y) { public void paintIcon(Component c, Graphics g, int x, int y) {
Graphics2D g2d = (Graphics2D) g; BaseChartPainter chartPainter = getChartPainter();
Paint oldPaint = g2d.getPaint(); int resolution = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate().getJTemplateResolution();
Graphics2D g2d = (Graphics2D) g;
Paint oldPaint = g2d.getPaint();
g.translate(x, y); g.translate(x, y);
g2d.setPaint(Color.white); g2d.setPaint(Color.white);
g2d.fillRect(0, 0, getIconWidth(), getIconHeight()); g2d.fillRect(0, 0, getIconWidth(), getIconHeight());
BufferedImage demoImage = IOUtils.readImageWithCache(imagePath);
GraphHelper.paintImage(g, getIconWidth(), getIconHeight(), demoImage, Constants.IMAGE_ADJUST, Constants.NULL, Constants.NULL, -1, -1); chartPainter.paint(g2d, getIconWidth(), getIconHeight(), resolution, null, callbackEvent);
g.translate(-x, -y); g.translate(-x, -y);
g2d.setPaint(oldPaint); g2d.setPaint(oldPaint);
} }
protected BaseChartPainter getChartPainter() {
BaseChartPainter painter = chartCollection.createResultChartPainterWithOutDealFormula(Calculator.createCalculator(),
WebChartIDInfo.createEmptyDesignerInfo(), getIconWidth(), getIconHeight());
return painter;
}
/** /**
* 返回缩略图的宽度 * 返回缩略图的宽度
* *
@ -83,20 +121,6 @@ public class ChartIcon implements Icon, XMLable {
} }
/**
* 返回缩略图中的图片路径
*
* @return 缩略图中的图片路径
*/
public String getImagePath() {
return imagePath;
}
public String getChartName() {
return chartName;
}
@Override @Override
public void readXML(XMLableReader reader) { public void readXML(XMLableReader reader) {
//do nothing //do nothing
@ -114,8 +138,11 @@ public class ChartIcon implements Icon, XMLable {
@Override @Override
public Object clone() throws CloneNotSupportedException { public Object clone() throws CloneNotSupportedException {
ChartIcon cloned = (ChartIcon) super.clone(); ChartIcon cloned = (ChartIcon) super.clone();
cloned.imagePath = this.imagePath; if (getChartCollection() != null) {
cloned.chartName = this.chartName; cloned.setChartCollection(this.getChartCollection());
}
cloned.setChartName(this.getChartName());
;
return cloned; return cloned;
} }

22
designer-chart/src/main/java/com/fr/design/chart/ChartTypePane.java

@ -3,6 +3,7 @@ package com.fr.design.chart;
* the Pane of the Chart * the Pane of the Chart
*/ */
import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.charttypes.ChartTypeManager;
import com.fr.chartx.attr.ChartProvider; import com.fr.chartx.attr.ChartProvider;
@ -12,7 +13,6 @@ import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.chart.info.ChartInfoCollector; import com.fr.design.mainframe.chart.info.ChartInfoCollector;
import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.log.FineLoggerFactory; import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.DefaultListCellRenderer; import javax.swing.DefaultListCellRenderer;
@ -26,7 +26,7 @@ import javax.swing.event.ListSelectionListener;
import java.awt.Color; import java.awt.Color;
import java.awt.Component; import java.awt.Component;
public class ChartTypePane extends ChartCommonWizardPane { public class ChartTypePane extends ChartCommonWizardPane implements CallbackEvent {
private static final long serialVersionUID = -1175602484968520546L; private static final long serialVersionUID = -1175602484968520546L;
private String[] chartIDs = ChartTypeManager.getInstanceWithCheck().getAllChartIDs(); private String[] chartIDs = ChartTypeManager.getInstanceWithCheck().getAllChartIDs();
@ -96,14 +96,17 @@ public class ChartTypePane extends ChartCommonWizardPane {
int main_index = mainTypeList.getSelectedIndex(); int main_index = mainTypeList.getSelectedIndex();
String id = ChartTypePane.this.chartIDs[main_index]; String id = ChartTypePane.this.chartIDs[main_index];
String[] demoImagePath = ChartTypeInterfaceManager.getInstance().getDemoImagePath(id); ChartProvider[] charts = ChartTypeManager.getInstance().getCharts(id);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(id); String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(id);
ChartTypePane.this.iconListModel.clear(); ChartTypePane.this.iconListModel.clear();
for (int i = 0, len = subName.length; i < len; i++) { for (int i = 0, len = charts.length; i < len; i++) {
String ImagePath = demoImagePath.length > i ? demoImagePath[i] : StringUtils.EMPTY; ChartProvider chart = charts[i];
String chartName = subName[i]; ChartCollection chartCollection = new ChartCollection(chart);
ChartTypePane.this.iconListModel.addElement(new ChartIcon(ImagePath, chartName)); ChartIcon chartIcon = new ChartIcon(chartCollection);
chartIcon.setChartName(subName[i]);
chartIcon.registerCallBackEvent(ChartTypePane.this);
ChartTypePane.this.iconListModel.addElement(chartIcon);
} }
iconViewList.setSelectedIndex(0); iconViewList.setSelectedIndex(0);
} }
@ -144,4 +147,9 @@ public class ChartTypePane extends ChartCommonWizardPane {
update(chart4Update); update(chart4Update);
} }
@Override
public void callback() {
this.repaint();
}
} }

1
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/table/SeriesNameUseFieldValuePane.java

@ -40,6 +40,7 @@ public class SeriesNameUseFieldValuePane extends FurtherBasicBeanPane<ChartColle
public SeriesNameUseFieldValuePane() { public SeriesNameUseFieldValuePane() {
seriesName = new UIComboBoxWithNone(); seriesName = new UIComboBoxWithNone();
seriesName.getModel().setSelectedItem(null);
seriesValue = new UIComboBox(); seriesValue = new UIComboBox();
calculateCombox = new CalculateComboBox(); calculateCombox = new CalculateComboBox();
calculateCombox.reset(); calculateCombox.reset();

39
designer-form/src/main/java/com/fr/design/form/parameter/FormParaDesigner.java

@ -83,7 +83,6 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
private static final int SUBMIT_BUTTON_H_LOCATION = 270; private static final int SUBMIT_BUTTON_H_LOCATION = 270;
private static final int PARA_IMAGE_SHIFT_X = -4; private static final int PARA_IMAGE_SHIFT_X = -4;
private static final int FORM_AREA_PADDING_LEFT = 13; private static final int FORM_AREA_PADDING_LEFT = 13;
private int addableRegionY;
private static Image paraImage = BaseUtils.readImage("/com/fr/design/images/form/parameter.png"); private static Image paraImage = BaseUtils.readImage("/com/fr/design/images/form/parameter.png");
@ -413,30 +412,10 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
if (layoutContainer == null) { if (layoutContainer == null) {
layoutContainer = new XWParameterLayout(); layoutContainer = new XWParameterLayout();
} }
refreshAddableRegion(layoutContainer);
layoutContainer.setSize(LARGE_PREFERRED_SIZE); layoutContainer.setSize(LARGE_PREFERRED_SIZE);
setRootComponent(layoutContainer); setRootComponent(layoutContainer);
} }
/**
* @param layoutContainer
* @Description: 为了不覆盖以前的组件所以要计算可以添加组件的区域
* @return:
* @Author: Henry.Wang
* @date: 2020/7/15 15:12
*/
public void refreshAddableRegion(XLayoutContainer layoutContainer) {
addableRegionY = 0;
for (int i = 0; i < layoutContainer.getComponentCount(); i++) {
Rectangle rectangle = layoutContainer.getComponent(i).getBounds();
if (addableRegionY < rectangle.y + rectangle.height) {
addableRegionY = rectangle.y + rectangle.height;
}
}
int vGap = V_COMPONENT_GAP - (int) XCreator.SMALL_PREFERRED_SIZE.getHeight();
addableRegionY = Math.max(0, addableRegionY - FIRST_V_LOCATION + (int) (XCreator.SMALL_PREFERRED_SIZE.getHeight() / 2) + vGap);
}
/** /**
* 是否是报表的参数面板 * 是否是报表的参数面板
* *
@ -604,15 +583,14 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
label.setWidgetName("Label" + name); label.setWidgetName("Label" + name);
label.setWidgetValue(new WidgetValue(name + ":")); label.setWidgetValue(new WidgetValue(name + ":"));
XCreator xCreator = XCreatorUtils.createXCreator(label); XCreator xCreator = XCreatorUtils.createXCreator(label);
int x = H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE) + FIRST_H_LOCATION; if (!(this.autoAddComponent(xCreator, H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE)
int y = addableRegionY + FIRST_V_LOCATION + V_COMPONENT_GAP * (currentIndex / NUM_IN_A_LINE); + FIRST_H_LOCATION, FIRST_V_LOCATION + V_COMPONENT_GAP * (currentIndex / NUM_IN_A_LINE)))) {
if (!(this.autoAddComponent(xCreator, x, y))) {
return false; return false;
} }
EditorHolder editor = new EditorHolder(parameter); EditorHolder editor = new EditorHolder(parameter);
xCreator = XCreatorUtils.createXCreator(editor); xCreator = XCreatorUtils.createXCreator(editor);
x = H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE) + SECOND_H_LOCATION; if (!(this.autoAddComponent(xCreator, H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE)
if (!(this.autoAddComponent(xCreator, x, y))) { + SECOND_H_LOCATION, FIRST_V_LOCATION + V_COMPONENT_GAP * (currentIndex / NUM_IN_A_LINE)))) {
return false; return false;
} }
return true; return true;
@ -668,17 +646,16 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP
label.setWidgetValue(new WidgetValue(parameterArray[i].getName() + ":")); label.setWidgetValue(new WidgetValue(parameterArray[i].getName() + ":"));
XCreator xCreator = XCreatorUtils.createXCreator(label); XCreator xCreator = XCreatorUtils.createXCreator(label);
int x = H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE) + FIRST_H_LOCATION; if (!(this.autoAddComponent(xCreator, H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE)
int y = addableRegionY + FIRST_V_LOCATION + V_COMPONENT_GAP * (currentIndex / NUM_IN_A_LINE); + FIRST_H_LOCATION, FIRST_V_LOCATION + V_COMPONENT_GAP * (currentIndex / NUM_IN_A_LINE)))) {
if (!(this.autoAddComponent(xCreator, x, y))) {
break; break;
} }
// 每行显示5组 // 每行显示5组
EditorHolder editor = new EditorHolder(parameterArray[i]); EditorHolder editor = new EditorHolder(parameterArray[i]);
editor.setWidgetName(parameterArray[i].getName()); editor.setWidgetName(parameterArray[i].getName());
xCreator = XCreatorUtils.createXCreator(editor); xCreator = XCreatorUtils.createXCreator(editor);
x = H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE) + SECOND_H_LOCATION; if (!(this.autoAddComponent(xCreator, H_COMPONENT_GAP * (currentIndex % NUM_IN_A_LINE)
if (!(this.autoAddComponent(xCreator, x, y))) { + SECOND_H_LOCATION, FIRST_V_LOCATION + V_COMPONENT_GAP * (currentIndex / NUM_IN_A_LINE)))) {
break; break;
} }
currentIndex++; currentIndex++;

4
designer-realize/src/main/java/com/fr/design/parameter/ParameterDefinitePane.java

@ -218,6 +218,7 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus
/** /**
* 导出菜单项用于图表设计器 * 导出菜单项用于图表设计器
*
* @return 菜单项 * @return 菜单项
*/ */
public ShortCut[] shortcut4ExportMenu() { public ShortCut[] shortcut4ExportMenu() {
@ -267,6 +268,8 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus
bridge.setBackground(reportParameterAttr.getBackground()); bridge.setBackground(reportParameterAttr.getBackground());
bridge.setUseParamsTemplate(reportParameterAttr.isUseParamsTemplate()); bridge.setUseParamsTemplate(reportParameterAttr.isUseParamsTemplate());
} }
currentIndex = reportParameterAttr.getCurrentIndex();
} }
@ -378,6 +381,7 @@ public class ParameterDefinitePane extends JPanel implements ToolBarMenuDockPlus
paraDesignEditor.getParaTarget().setDesignSize(new Dimension(bridge.getDesignWidth(), paraDesignEditor.getParaTarget().setDesignSize(new Dimension(bridge.getDesignWidth(),
(int) paraDesignEditor.getParaTarget().getDesignSize().getHeight())); (int) paraDesignEditor.getParaTarget().getDesignSize().getHeight()));
reportParameterAttr.setParameterUI(parameterUI); reportParameterAttr.setParameterUI(parameterUI);
reportParameterAttr.setCurrentIndex(currentIndex);
return reportParameterAttr; return reportParameterAttr;
} }

Loading…
Cancel
Save