Browse Source

Merge pull request #2051 in DESIGN/design from release/10.0 to bugfix/10.0

* commit '71850d30a2ccf032ef5470e4e2c6e834bef3cb86':
  REPORT-37097 远程设计-设计器打开的两个模板数据集显示混乱
  CHART-15034 && CHART-14688 && CHART-15019	bugfix
  REPORT-36612 && REPORT-37010 && REPORT-37062 缩放验收bug修复
bugfix/10.0
superman 4 years ago
parent
commit
5983883ee1
  1. 9
      designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java
  2. 6
      designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java
  3. 8
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java
  4. 63
      designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java
  5. 2
      designer-form/src/main/java/com/fr/design/mainframe/FormArea.java
  6. 19
      designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java
  7. 7
      designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java
  8. 16
      designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java
  9. 17
      designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java
  10. 2
      designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java
  11. 2
      designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java

9
designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java

@ -370,6 +370,7 @@ public class HistoryTemplateListCache implements CallbackEvent {
*/
public void load() {
FineLoggerFactory.getLogger().info("Env Change Template Loading...");
JTemplate currentTemplate = null;
if (stashFILEMap != null && stashFILEMap.size() != 0) {
int size = historyList.size();
for (int i = 0; i < size; i++) {
@ -385,20 +386,24 @@ public class HistoryTemplateListCache implements CallbackEvent {
historyList.set(i, template);
// 替换当前正在编辑的模板,使用添加并激活的方式,以便使用统一的入口来处理监听事件
if (isCurrentEditingFile(template.getPath())) {
loadCurrentTemplate(template);
currentTemplate = template;
}
} else {
// 当模板为空时 说明是一个新建的未保存模板 但是内存中保存了该模板 可以从中获取
JTemplate jt = historyList.get(i);
// 另外如果该模板是正在编辑的模板,需要要激活
if (jt != null && isCurrentEditingFile(jt.getPath())) {
loadCurrentTemplate(jt);
currentTemplate = jt;
}
}
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
// 最后加载当前正在编辑的模板 以保证数据集刷新正常
if (currentTemplate != null) {
loadCurrentTemplate(currentTemplate);
}
stashFILEMap.clear();
MutilTempalteTabPane.getInstance().refreshOpenedTemplate(historyList);
MutilTempalteTabPane.getInstance().repaint();

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

@ -3,8 +3,8 @@ package com.fr.design.chart;
import com.fr.base.chart.BaseChartPainter;
import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.base.chart.result.WebChartIDInfo;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.script.Calculator;
@ -57,8 +57,8 @@ public class ChartIcon implements Icon, XMLable {
}
private void initChartName() {
Chart chart = chartCollection.getSelectedChart(Chart.class);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getPlot().getPlotID());
ChartProvider chart = chartCollection.getSelectedChartProvider(ChartProvider.class);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getID());
chartName = subName[0];
}

8
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java

@ -7,9 +7,9 @@ import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartdata.TopDefinition;
import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.i18n.Toolkit;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.style.AbstractChartTabPane;
@ -21,12 +21,12 @@ import javax.swing.BorderFactory;
import javax.swing.JPanel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.util.ArrayList;
import java.util.List;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.List;
/**
* 图表数据 分类 系列 过滤界面.
@ -37,7 +37,7 @@ import java.util.List;
public class ChartDataFilterPane extends ThirdTabPane<ChartCollection> {
private static final long serialVersionUID = 3650522989381790194L;
private static final int PAN_WIDTH = 246;
private static final int FIL_HEIGHT = 150;
private static final int FIL_HEIGHT = 200;
private CategoryFilterPane categoryPane;
private SeriesFilterPane seriesPane;

63
designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java

@ -7,7 +7,6 @@ import com.fr.design.event.UIObserverListener;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.style.background.gradient.SelectColorPointBtn;
import com.fr.design.style.color.ColorCell;
import com.fr.design.style.color.ColorSelectConfigManager;
import com.fr.design.style.color.ColorSelectDetailPane;
import com.fr.design.style.color.ColorSelectDialog;
import com.fr.design.style.color.ColorSelectable;
@ -18,6 +17,9 @@ import com.fr.stable.AssistUtils;
import javax.swing.JComponent;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Dimension;
@ -27,9 +29,6 @@ import java.awt.LinearGradientPaint;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class LegendGradientBar extends JComponent implements ColorSelectable, UIObserver {
@ -168,12 +167,14 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
SelectColorPointBtn pi = new SelectColorPointBtn(((startPos + endPos) / (pColors.length + 1)) * (i + 1), REC_HEIGHT, pColors[i]);
selectColorPointBtnList.add(pi);
}
refreshColorsAndDist(selectColorPointBtnList);
this.repaint();
}
/**
* 添加事件
*
* @param changeListener 事件
*/
public void addChangeListener(ChangeListener changeListener) {
@ -216,7 +217,7 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
//如果该位置已经有滑块占领,则做跨越偏移
selectColorPointBtnList.get(index).setX(LegendGradientBar.this.setOffset(e.getX(), index, OFFSETSTEP));
}
refreshColorsAndDist(selectColorPointBtnList);
LegendGradientBar.this.repaint();
}
});
@ -229,8 +230,7 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
if (x >= (min + max) / 2) {
x -= offset;
x = setOffset(x, index, offset + OFFSETSTEP);
}
else{
} else {
x += offset;
x = setOffset(x, index, offset + OFFSETSTEP);
}
@ -240,8 +240,7 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
//边界情况
if (x <= min) {
x = min + (index + 1) * OFFSETSTEP;
}
else if (x >= max){
} else if (x >= max) {
x = max - (index + 1) * OFFSETSTEP;
}
return x;
@ -259,48 +258,31 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
break;
}
}
if (select >= 0) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE);
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this);
Color color = LegendGradientBar.this.getColor();
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorPointBtnList.get(select).setColorInner(color);
LegendGradientBar.this.repaint();
dealClick(selectColorPointBtnList.get(select));
} else if (selectColorSlotBtnStart.contains(e.getX(), e.getY())) {
dealClick(selectColorSlotBtnStart);
} else if (selectColorSlotBtnEnd.contains(e.getX(), e.getY())) {
dealClick(selectColorSlotBtnEnd);
}
}
}
});
//是否选中颜色编辑槽
else if (selectColorSlotBtnStart.contains(e.getX(), e.getY())) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE);
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this);
Color color = LegendGradientBar.this.getColor();
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorSlotBtnStart.setColorInner(color);
//stateChanged();
LegendGradientBar.this.repaint();
}
} else if (selectColorSlotBtnEnd.contains(e.getX(), e.getY())) {
private void dealClick(SelectColorPointBtn selectColorPointBtn) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE);
this.setColor(selectColorPointBtn.getColorInner());
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this);
Color color = LegendGradientBar.this.getColor();
Color color = this.getColor();
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorSlotBtnEnd.setColorInner(color);
//stateChanged();
LegendGradientBar.this.repaint();
}
}
selectColorPointBtn.setColorInner(color);
refreshColorsAndDist(selectColorPointBtnList);
LegendGradientBar.this.repaint();
}
}
});
}
private void addMouseReleasedListener() {
this.addMouseListener(new MouseAdapter() {
@ -318,9 +300,6 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
Point2D start = new Point2D.Float(4, 0);
Point2D end = new Point2D.Float(max, 0);
//获取排序后的颜色数组和位置数组
refreshColorsAndDist(selectColorPointBtnList);
LinearGradientPaint paint = new LinearGradientPaint(start, end, dist, colors);
g2.setPaint(paint);

2
designer-form/src/main/java/com/fr/design/mainframe/FormArea.java

@ -117,7 +117,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
addFormRuler();
}
this.setFocusTraversalKeysEnabled(false);
this.addMouseWheelListener(showValSpinnerMouseWheelListener);
this.designer.addMouseWheelListener(showValSpinnerMouseWheelListener);
registerShortCutKey();
}

19
designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java

@ -83,10 +83,12 @@ import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
@ -993,7 +995,7 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
@Nullable
public XCreator getComponentAt(int x, int y, XCreator[] except) {
XLayoutContainer container = y + this.getPaintY() < paraHeight - formArea.getVerticalValue() ? paraComponent : rootComponent;
XLayoutContainer container = y < paraHeight - formArea.getVerticalValue() ? paraComponent : rootComponent;
if (container == null) {
container = rootComponent;
}
@ -1281,6 +1283,21 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
this.formArea = formArea;
}
public void paint(Graphics g){
//重新设置下绘制的起点和缩放幅度
AffineTransform at = new AffineTransform();
if (rootComponent.getParent() != null) {
at.translate(this.getPaintX(), this.getPaintY());
at.scale(this.getScale(), this.getScale());
Graphics2D g2 = (Graphics2D) g;
g2.transform(at);
}
super.paint(g);
}
/**
* 绘制组件根节点
*

7
designer-form/src/main/java/com/fr/design/mainframe/FormDesignerUI.java

@ -68,13 +68,6 @@ public class FormDesignerUI extends ComponentUI {
public void paint(final Graphics g, JComponent c) {
XCreator rootComponent = designer.getRootComponent();
this.time = (float) designer.getResolution() / ScreenResolution.getScreenResolution();
AffineTransform at = new AffineTransform();
if (rootComponent.getParent() != null) {
at.translate(designer.getPaintX(), designer.getPaintY());
at.scale(designer.getScale(), designer.getScale());
Graphics2D g2 = (Graphics2D) g;
g2.transform(at);
}
if (rootComponent != null) {
// 设计自适应界面
repaintFit(g, rootComponent, c);

16
designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java

@ -10,7 +10,6 @@ import com.fr.grid.Grid;
import com.fr.report.cell.TemplateCellElement;
import com.fr.report.elementcase.TemplateElementCase;
import com.fr.stable.bridge.StableFactory;
import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.SwingUtilities;
import java.awt.Component;
@ -52,20 +51,7 @@ public class ChartCellEditor extends AbstractCellEditor implements DialogActionL
public Component getCellEditorComponent(final Grid grid, TemplateCellElement cellElement, int resolution) {
Object valueCell = cellElement.getValue();
if (valueCell instanceof BaseChartCollection) {
if (glyphComponent == null) {
glyphComponent = DesignModuleFactory.getChartComponent((BaseChartCollection)valueCell);
glyphComponent.addStopEditingListener(new PropertyChangeAdapter() {
@Override
public void propertyChange() {
stopCellEditing();
grid.requestFocus();// kunsnat: 补充, 编辑图表reset之后, Grid也算停止编辑 重获焦点 bug20443SS
}
});
} else {
glyphComponent.populate((BaseChartCollection) valueCell);
}
this.chartCellEditorDialog = null;
return glyphComponent;
return null;
}
this.chartCellEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid));
this.chartCellEditorDialog.addDialogActionListener(this);

17
designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java

@ -9,7 +9,6 @@ import com.fr.grid.Grid;
import com.fr.report.cell.FloatElement;
import com.fr.stable.StringUtils;
import com.fr.stable.bridge.StableFactory;
import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.SwingUtilities;
import java.awt.Component;
@ -49,21 +48,7 @@ public class ChartFloatEditor extends AbstractFloatEditor implements DialogActio
public Component getFloatEditorComponent(final Grid grid, FloatElement floatElement, int resolution) {
Object valueCell = floatElement.getValue();
if (valueCell instanceof BaseChartCollection) {
this.chartFloatEditorDialog = null;
if (glyphComponent == null) {
glyphComponent = DesignModuleFactory.getChartComponent((BaseChartCollection)valueCell);
glyphComponent.addStopEditingListener(new PropertyChangeAdapter() {
@Override
public void propertyChange() {
stopFloatEditing();
grid.requestFocus();// kunsnat: 补充, 编辑图表reset之后, Grid也算停止编辑 重获焦点 bug20443
}
});
} else {
glyphComponent.populate((BaseChartCollection) valueCell);
}
return glyphComponent;
return null;
}
this.chartFloatEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid));
this.chartFloatEditorDialog.addDialogActionListener(this);

2
designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java

@ -35,7 +35,7 @@ public class ReportComponentComposite extends JComponent implements RemoveListen
private static final int MAX = 400;
private static final int HUND = 100;
private static final int MIN = 10;
private static final int DIR = 15;
private static final int DIR = 10;
private JWorkBook parent;
private UIModeControlContainer parentContainer = null;

2
designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java

@ -35,7 +35,7 @@ public class FormReportComponentComposite extends JComponent implements TargetMo
private static final int MAX = 400;
private static final int HUND = 100;
private static final int MIN = 10;
private static final int DIR = 15;
private static final int DIR = 10;
private static final double MIN_TIME = 0.4;
public FormElementCaseDesigner elementCaseDesigner;
private BaseJForm jForm;

Loading…
Cancel
Save