|
|
|
@ -4,6 +4,7 @@
|
|
|
|
|
package com.fr.design.actions.insert.flot; |
|
|
|
|
|
|
|
|
|
import com.fr.base.BaseUtils; |
|
|
|
|
import com.fr.base.DynamicUnitList; |
|
|
|
|
import com.fr.base.Style; |
|
|
|
|
import com.fr.base.chart.BaseChartCollection; |
|
|
|
|
import com.fr.design.actions.ElementCaseAction; |
|
|
|
@ -16,10 +17,14 @@ import com.fr.design.menu.MenuKeySet;
|
|
|
|
|
import com.fr.design.module.DesignModuleFactory; |
|
|
|
|
import com.fr.general.FRLogger; |
|
|
|
|
import com.fr.general.Inter; |
|
|
|
|
import com.fr.grid.Grid; |
|
|
|
|
import com.fr.grid.selection.FloatSelection; |
|
|
|
|
import com.fr.report.ReportHelper; |
|
|
|
|
import com.fr.report.cell.FloatElement; |
|
|
|
|
import com.fr.report.elementcase.TemplateElementCase; |
|
|
|
|
import com.fr.stable.Constants; |
|
|
|
|
import com.fr.stable.bridge.StableFactory; |
|
|
|
|
import com.fr.stable.unit.FU; |
|
|
|
|
import com.fr.stable.unit.OLDPIX; |
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
@ -85,11 +90,31 @@ public class ChartFloatAction extends ElementCaseAction {
|
|
|
|
|
FloatElement newFloatElement; |
|
|
|
|
try { |
|
|
|
|
newFloatElement = new FloatElement(chartDialog.getChartCollection().clone()); |
|
|
|
|
newFloatElement.setLeftDistance(new OLDPIX(20)); |
|
|
|
|
newFloatElement.setTopDistance(new OLDPIX(20)); |
|
|
|
|
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)); |
|
|
|
|