From 96854b618530042e1b8ca9dbd9c12d608d25bb0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Mon, 24 Feb 2020 17:14:02 +0800 Subject: [PATCH] =?UTF-8?q?CHART-12814=20=E6=82=AC=E6=B5=AE=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E5=8E=BB=E6=8E=89clone?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/insert/flot/ChartFloatAction.java | 79 ++++++++----------- 1 file changed, 32 insertions(+), 47 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java index 4fb950c6e..39b11d4c2 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/insert/flot/ChartFloatAction.java @@ -7,7 +7,6 @@ import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.base.Style; import com.fr.base.chart.BaseChartCollection; -import com.fr.chart.chartattr.ChartCollection; import com.fr.design.actions.ElementCaseAction; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.file.HistoryTemplateListPane; @@ -18,8 +17,6 @@ import com.fr.design.menu.MenuKeySet; import com.fr.design.module.DesignModuleFactory; import com.fr.grid.Grid; import com.fr.grid.selection.FloatSelection; -import com.fr.log.FineLoggerFactory; -import com.fr.plugin.chart.vanchart.VanChart; import com.fr.report.ReportHelper; import com.fr.report.cell.FloatElement; import com.fr.report.elementcase.TemplateElementCase; @@ -88,51 +85,39 @@ public class ChartFloatAction extends ElementCaseAction { public void doOk() { isRecordNeeded = true; FloatElement newFloatElement; - try { - //TODO @Bjorn 这里不知道为什么要把ChartCollection克隆一下,会导致chart的ID发生变化,影响记录埋点的功能。 - //TODO 不知道去掉clone之后会有什么影响,下个版本的迭代中优化试着去掉clone方法,测试看看会不会有问题。 - ChartCollection chartCollection = (ChartCollection) chartDialog.getChartCollection().clone(); - VanChart vanChart = ((ChartCollection) chartDialog.getChartCollection()).getSelectedChartProvider(VanChart.class); - if (vanChart != null) { - chartCollection.getSelectedChartProvider(VanChart.class).setUuid(vanChart.getUuid()); - } - newFloatElement = new FloatElement(chartCollection); - - newFloatElement.setWidth(new OLDPIX(BaseChartCollection.CHART_DEFAULT_WIDTH)); - newFloatElement.setHeight(new OLDPIX(BaseChartCollection.CHART_DEFAULT_HEIGHT)); - - Grid grid = reportPane.getGrid(); - TemplateElementCase report = reportPane.getEditingElementCase(); - DynamicUnitList columnWidthList = ReportHelper.getColumnWidthList(report); - DynamicUnitList rowHeightList = ReportHelper.getRowHeightList(report); - int horizentalScrollValue = grid.getHorizontalValue(); - int verticalScrollValue = grid.getVerticalValue(); - - int resolution = grid.getResolution(); - int floatWdith = newFloatElement.getWidth().toPixI(resolution); - int floatHeight = newFloatElement.getWidth().toPixI(resolution); - - int leftDifference = (grid.getWidth() - floatWdith) > 0 ? (grid.getWidth() - floatWdith) : 0; - int topDifference = (grid.getHeight() - floatHeight) > 0 ? (grid.getHeight() - floatHeight) : 0; - FU evtX_fu = FU.valueOfPix((leftDifference) / 2, resolution); - FU evtY_fu = FU.valueOfPix((topDifference) / 2, resolution); - - FU leftDistance = FU.getInstance(evtX_fu.toFU() + columnWidthList.getRangeValue(0, horizentalScrollValue).toFU()); - FU topDistance = FU.getInstance(evtY_fu.toFU() + rowHeightList.getRangeValue(0, verticalScrollValue).toFU()); - - newFloatElement.setLeftDistance(leftDistance); - newFloatElement.setTopDistance(topDistance); - - Style style = newFloatElement.getStyle(); - if (style != null) { - newFloatElement.setStyle(style.deriveBorder(Constants.LINE_NONE, Color.black, Constants.LINE_NONE, Color.black, Constants.LINE_NONE, Color.black, Constants.LINE_NONE, Color.black)); - } - reportPane.getEditingElementCase().addFloatElement(newFloatElement); - reportPane.setSelection(new FloatSelection(newFloatElement.getName())); - reportPane.fireSelectionChangeListener(); - } catch (CloneNotSupportedException e) { - FineLoggerFactory.getLogger().error("Error in Float"); + newFloatElement = new FloatElement(chartDialog.getChartCollection()); + newFloatElement.setWidth(new OLDPIX(BaseChartCollection.CHART_DEFAULT_WIDTH)); + newFloatElement.setHeight(new OLDPIX(BaseChartCollection.CHART_DEFAULT_HEIGHT)); + + Grid grid = reportPane.getGrid(); + TemplateElementCase report = reportPane.getEditingElementCase(); + DynamicUnitList columnWidthList = ReportHelper.getColumnWidthList(report); + DynamicUnitList rowHeightList = ReportHelper.getRowHeightList(report); + int horizentalScrollValue = grid.getHorizontalValue(); + int verticalScrollValue = grid.getVerticalValue(); + + int resolution = grid.getResolution(); + int floatWdith = newFloatElement.getWidth().toPixI(resolution); + int floatHeight = newFloatElement.getWidth().toPixI(resolution); + + int leftDifference = (grid.getWidth() - floatWdith) > 0 ? (grid.getWidth() - floatWdith) : 0; + int topDifference = (grid.getHeight() - floatHeight) > 0 ? (grid.getHeight() - floatHeight) : 0; + FU evtX_fu = FU.valueOfPix((leftDifference) / 2, resolution); + FU evtY_fu = FU.valueOfPix((topDifference) / 2, resolution); + + FU leftDistance = FU.getInstance(evtX_fu.toFU() + columnWidthList.getRangeValue(0, horizentalScrollValue).toFU()); + FU topDistance = FU.getInstance(evtY_fu.toFU() + rowHeightList.getRangeValue(0, verticalScrollValue).toFU()); + + newFloatElement.setLeftDistance(leftDistance); + newFloatElement.setTopDistance(topDistance); + + Style style = newFloatElement.getStyle(); + if (style != null) { + newFloatElement.setStyle(style.deriveBorder(Constants.LINE_NONE, Color.black, Constants.LINE_NONE, Color.black, Constants.LINE_NONE, Color.black, Constants.LINE_NONE, Color.black)); } + reportPane.getEditingElementCase().addFloatElement(newFloatElement); + reportPane.setSelection(new FloatSelection(newFloatElement.getName())); + reportPane.fireSelectionChangeListener(); } });