Browse Source

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

* commit 'f433cb5d15eeae290681c3e342c9789e16a563cc':
  REPORT-37473 多层嵌套的tab模板,如果进行增加删除tab,无法点击删除
  REPORT-37487 数据列右侧属性面板高级部分功能出现问题 右侧面板,显示值为空时,重置为 =$$$ 双击数据源高级中,不会重置。
  REPORT-37473 多层嵌套的tab模板,如果进行增加删除tab,无法点击删除
  CHART-14983 根据数据类型调整箱型图数据点提示面板内容
  REPORT-37289  处理下npe
  CHART-15112 刻度单位调整
  CHART-15056 使用LinkedHashMap保证条件属性顺序
  REPORT-37289 【10.0.9冒烟】frm模板tab,在设计器内进行多次来回点击切换,发现会偶然的点击失效或卡顿
bugfix/10.0
superman 4 years ago
parent
commit
ec07015d67
  1. 5
      designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java
  2. 11
      designer-base/src/main/java/com/fr/design/formula/FormulaTextField.java
  3. 8
      designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java
  4. 89
      designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java
  5. 18
      designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java
  6. 16
      designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java
  7. 6
      designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartTimeAxisPane.java
  8. 12
      designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartTooltipPane.java
  9. 21
      designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java
  10. 12
      designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java
  11. 4
      designer-form/src/main/java/com/fr/design/parameter/ParameterPropertyPane.java
  12. 6
      designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnAdvancedPane.java
  13. 16
      designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

5
designer-base/src/main/java/com/fr/design/condition/ConditionAttributesPane.java

@ -15,8 +15,9 @@ import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane; import javax.swing.JScrollPane;
import java.awt.Dimension; import java.awt.Dimension;
import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map;
import java.util.LinkedHashMap;
@Open @Open
public abstract class ConditionAttributesPane<T> extends BasicBeanPane<T> { public abstract class ConditionAttributesPane<T> extends BasicBeanPane<T> {
@ -27,7 +28,7 @@ public abstract class ConditionAttributesPane<T> extends BasicBeanPane<T> {
protected LiteConditionPane liteConditionPane; protected LiteConditionPane liteConditionPane;
protected java.util.Map<Class, ConditionAttrSingleConditionPane> classPaneMap = new HashMap<Class, ConditionAttrSingleConditionPane>(); protected Map<Class, ConditionAttrSingleConditionPane> classPaneMap = new LinkedHashMap<>();
//可用的Actions. //可用的Actions.
protected java.util.List<UpdateAction> useAbleActionList = new java.util.ArrayList<UpdateAction>(); protected java.util.List<UpdateAction> useAbleActionList = new java.util.ArrayList<UpdateAction>();

11
designer-base/src/main/java/com/fr/design/formula/FormulaTextField.java

@ -18,8 +18,6 @@ public class FormulaTextField extends DictionaryTextField<BaseFormula> {
private static final String EMPTY_STRING = "="; private static final String EMPTY_STRING = "=";
private static final BaseFormula EMPTY_FORMULA = BaseFormula.createFormulaBuilder().build(EMPTY_STRING);
public FormulaTextField() { public FormulaTextField() {
} }
@ -64,10 +62,10 @@ public class FormulaTextField extends DictionaryTextField<BaseFormula> {
@Override @Override
public void setValue(BaseFormula value) { public void setValue(BaseFormula value) {
this.value = value; if (value == null) {
if (this.value == null) { value = createDefault();
this.value = createDefault();
} }
this.value = value;
} }
/** /**
@ -94,7 +92,8 @@ public class FormulaTextField extends DictionaryTextField<BaseFormula> {
if (StringUtils.isNotEmpty(text)) { if (StringUtils.isNotEmpty(text)) {
return BaseFormula.createFormulaBuilder().build(text); return BaseFormula.createFormulaBuilder().build(text);
} else { } else {
return EMPTY_FORMULA; //防止默认值被修改, 每一次创建都是不一样的。
return BaseFormula.createFormulaBuilder().build(EMPTY_STRING);
} }
} }
} }

8
designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxPlotTooltipPane.java

@ -2,6 +2,7 @@ package com.fr.van.chart.box;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.plugin.chart.base.AttrTooltip; import com.fr.plugin.chart.base.AttrTooltip;
import com.fr.plugin.chart.box.VanChartBoxPlot;
import com.fr.plugin.chart.box.attr.AttrBoxTooltip; import com.fr.plugin.chart.box.attr.AttrBoxTooltip;
import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.VanChartStylePane;
import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane;
@ -13,7 +14,8 @@ public class VanChartBoxPlotTooltipPane extends VanChartPlotTooltipPane {
} }
protected void initTooltipContentPane(Plot plot) { protected void initTooltipContentPane(Plot plot) {
tooltipContentPane = new VanChartBoxTooltipContentPane(parent, VanChartBoxPlotTooltipPane.this); boolean isDetailed = ((VanChartBoxPlot) plot).isDetailed();
tooltipContentPane = new VanChartBoxTooltipContentPane(parent, VanChartBoxPlotTooltipPane.this, isDetailed);
} }
protected AttrTooltip getAttrTooltip() { protected AttrTooltip getAttrTooltip() {
@ -23,4 +25,8 @@ public class VanChartBoxPlotTooltipPane extends VanChartPlotTooltipPane {
protected boolean hasTooltipSeriesType() { protected boolean hasTooltipSeriesType() {
return false; return false;
} }
public void checkContentVisible(boolean isDetailed) {
((VanChartBoxTooltipContentPane) tooltipContentPane).checkFormatVisible(isDetailed);
}
} }

89
designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipContentPane.java

@ -1,6 +1,8 @@
package com.fr.van.chart.box; package com.fr.van.chart.box;
import com.fr.design.i18n.Toolkit; import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.plugin.chart.base.AttrTooltipContent; import com.fr.plugin.chart.base.AttrTooltipContent;
import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent; import com.fr.plugin.chart.box.attr.AttrBoxTooltipContent;
import com.fr.van.chart.designer.component.VanChartTooltipContentPane; import com.fr.van.chart.designer.component.VanChartTooltipContentPane;
@ -10,10 +12,13 @@ import com.fr.van.chart.designer.component.format.VanChartFormatPaneWithCheckBox
import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.VanChartStylePane;
import javax.swing.JPanel; import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane { public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
private boolean detailed;
private VanChartFormatPaneWithCheckBox number; private VanChartFormatPaneWithCheckBox number;
private VanChartFormatPaneWithCheckBox max; private VanChartFormatPaneWithCheckBox max;
private VanChartFormatPaneWithCheckBox q3; private VanChartFormatPaneWithCheckBox q3;
@ -22,8 +27,12 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
private VanChartFormatPaneWithCheckBox min; private VanChartFormatPaneWithCheckBox min;
private VanChartFormatPaneWithCheckBox outlier; private VanChartFormatPaneWithCheckBox outlier;
public VanChartBoxTooltipContentPane(VanChartStylePane parent, JPanel showOnPane) { private JPanel dataNumberPane;
private JPanel dataOutlierPane;
public VanChartBoxTooltipContentPane(VanChartStylePane parent, JPanel showOnPane, boolean isDetailed) {
super(parent, showOnPane); super(parent, showOnPane);
this.detailed = isDetailed;
} }
protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) { protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane) {
@ -67,22 +76,81 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
}; };
} }
protected JPanel createCommonPanel() {
JPanel commonPanel = new JPanel(new BorderLayout());
commonPanel.add(createCateAndSeriesPane(), BorderLayout.NORTH);
commonPanel.add(createDataNumberPane(), BorderLayout.CENTER);
commonPanel.add(createDataDetailPane(), BorderLayout.SOUTH);
checkFormatVisible(detailed);
return commonPanel;
}
protected double[] getRowSize(double p) { protected double[] getRowSize(double p) {
return new double[]{p, p, p, p, p, p, p, p, p}; return new double[]{p, p, p, p, p, p, p, p, p, p, p, p};
} }
protected Component[][] getPaneComponents() { private JPanel createCateAndSeriesPane() {
return new Component[][]{ double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
double[] rowSize = {p, p};
Component[][] cateAndSeries = new Component[][]{
new Component[]{categoryNameFormatPane, null}, new Component[]{categoryNameFormatPane, null},
new Component[]{seriesNameFormatPane, null}, new Component[]{seriesNameFormatPane, null}
};
return TableLayoutHelper.createTableLayoutPane(cateAndSeries, rowSize, columnSize);
}
private JPanel createDataNumberPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
double[] rowSize = {p, p};
Component[][] dataNumber = new Component[][]{
new Component[]{null, null},
new Component[]{number, null}, new Component[]{number, null},
};
dataNumberPane = TableLayoutHelper.createTableLayoutPane(dataNumber, rowSize, columnSize);
return dataNumberPane;
}
private JPanel createDataDetailPane() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
JPanel detailPane = new JPanel(new BorderLayout());
Component[][] dataDetail = new Component[][]{
new Component[]{null, null},
new Component[]{max, null}, new Component[]{max, null},
new Component[]{q3, null}, new Component[]{q3, null},
new Component[]{median, null}, new Component[]{median, null},
new Component[]{q1, null}, new Component[]{q1, null},
new Component[]{min, null}, new Component[]{min, null}
new Component[]{outlier, null}
}; };
Component[][] dataOutlier = new Component[][]{
new Component[]{null, null},
new Component[]{outlier, null},
};
dataOutlierPane = TableLayoutHelper.createTableLayoutPane(dataOutlier, new double[]{p, p}, columnSize);
detailPane.add(TableLayoutHelper.createTableLayoutPane(dataDetail, new double[]{p, p, p, p, p, p}, columnSize), BorderLayout.NORTH);
detailPane.add(dataOutlierPane, BorderLayout.CENTER);
return detailPane;
} }
public boolean isDirty() { public boolean isDirty() {
@ -146,4 +214,11 @@ public class VanChartBoxTooltipContentPane extends VanChartTooltipContentPane {
outlier.update(boxTooltipContent.getOutlier()); outlier.update(boxTooltipContent.getOutlier());
} }
} }
public void checkFormatVisible(boolean detailed) {
this.detailed = detailed;
dataNumberPane.setVisible(detailed);
dataOutlierPane.setVisible(detailed);
}
} }

18
designer-chart/src/main/java/com/fr/van/chart/box/VanChartBoxTooltipPane.java

@ -1,6 +1,10 @@
package com.fr.van.chart.box; package com.fr.van.chart.box;
import com.fr.chart.base.DataSeriesCondition;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.plugin.chart.attr.plot.VanChartPlot;
import com.fr.plugin.chart.base.AttrTooltip;
import com.fr.plugin.chart.box.VanChartBoxPlot;
import com.fr.van.chart.designer.style.VanChartStylePane; import com.fr.van.chart.designer.style.VanChartStylePane;
import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartPlotTooltipPane;
import com.fr.van.chart.designer.style.tooltip.VanChartTooltipPane; import com.fr.van.chart.designer.style.tooltip.VanChartTooltipPane;
@ -14,4 +18,18 @@ public class VanChartBoxTooltipPane extends VanChartTooltipPane {
protected VanChartPlotTooltipPane getTooltipPane(Plot plot) { protected VanChartPlotTooltipPane getTooltipPane(Plot plot) {
return new VanChartBoxPlotTooltipPane(plot, parent); return new VanChartBoxPlotTooltipPane(plot, parent);
} }
public void populateTooltipPane(Plot plot) {
DataSeriesCondition attr = ((VanChartPlot) plot).getAttrTooltipFromConditionCollection();
VanChartPlotTooltipPane tooltipPane = getPlotTooltipPane();
if (tooltipPane instanceof VanChartBoxPlotTooltipPane) {
tooltipPane.populate((AttrTooltip) attr);
VanChartBoxPlotTooltipPane boxPlotTooltipPane = (VanChartBoxPlotTooltipPane) tooltipPane;
VanChartBoxPlot boxPlot = (VanChartBoxPlot) plot;
boxPlotTooltipPane.checkContentVisible(boxPlot.isDetailed());
}
}
} }

16
designer-chart/src/main/java/com/fr/van/chart/designer/component/VanChartTooltipContentPane.java

@ -42,6 +42,7 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
protected ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane; protected ChangedPercentFormatPaneWithCheckBox changedPercentFormatPane;
private JPanel centerPane; private JPanel centerPane;
private JPanel commonPanel;
private VanChartHtmlLabelPane htmlLabelPane; private VanChartHtmlLabelPane htmlLabelPane;
private VanChartStylePane parent; private VanChartStylePane parent;
@ -64,11 +65,8 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
double p = TableLayout.PREFERRED; double p = TableLayout.PREFERRED;
double f = TableLayout.FILL; double f = TableLayout.FILL;
double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH;
double[] columnSize = {f, p};
double[] rowSize = getRowSize(p);
final JPanel commonPanel = TableLayoutHelper.createTableLayoutPane(getPaneComponents(), rowSize, columnSize);
commonPanel = createCommonPanel();
htmlLabelPane = createHtmlLabelPane(); htmlLabelPane = createHtmlLabelPane();
htmlLabelPane.setParent(parent); htmlLabelPane.setParent(parent);
@ -109,6 +107,16 @@ public class VanChartTooltipContentPane extends BasicBeanPane<AttrTooltipContent
return new VanChartHtmlLabelPaneWithOutWidthAndHeight(); return new VanChartHtmlLabelPaneWithOutWidthAndHeight();
} }
protected JPanel createCommonPanel() {
double p = TableLayout.PREFERRED;
double f = TableLayout.FILL;
double[] columnSize = {f, p};
double[] rowSize = getRowSize(p);
return TableLayoutHelper.createTableLayoutPane(getPaneComponents(), rowSize, columnSize);
}
protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane){ protected void initFormatPane(VanChartStylePane parent, JPanel showOnPane){
categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane); categoryNameFormatPane = new CategoryNameFormatPaneWithCheckBox(parent, showOnPane);
seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane); seriesNameFormatPane = new SeriesNameFormatPaneWithCheckBox(parent, showOnPane);

6
designer-chart/src/main/java/com/fr/van/chart/designer/style/axis/VanChartTimeAxisPane.java

@ -162,8 +162,10 @@ public class VanChartTimeAxisPane extends VanChartBaseAxisPane {
JPanel mainTickPane = new JPanel(); JPanel mainTickPane = new JPanel();
mainTickPane.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0)); mainTickPane.setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
mainUnitField.setPreferredSize(new Dimension(80,20));
secondUnitField.setPreferredSize(new Dimension(80,20)); int width = TableLayout4VanChartHelper.SECOND_EDIT_AREA_WIDTH - (int) Math.ceil(mainType.getPreferredSize().getWidth());
mainUnitField.setPreferredSize(new Dimension(width,20));
secondUnitField.setPreferredSize(new Dimension(width,20));
mainTickPane.add(mainUnitField); mainTickPane.add(mainUnitField);
mainTickPane.add(mainType); mainTickPane.add(mainType);

12
designer-chart/src/main/java/com/fr/van/chart/designer/style/tooltip/VanChartTooltipPane.java

@ -5,6 +5,7 @@ import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.Plot; import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartglyph.ConditionAttr; import com.fr.chart.chartglyph.ConditionAttr;
import com.fr.chartx.config.info.constant.ConfigType; import com.fr.chartx.config.info.constant.ConfigType;
import com.fr.design.i18n.Toolkit;
import com.fr.design.mainframe.chart.info.ChartInfoCollector; import com.fr.design.mainframe.chart.info.ChartInfoCollector;
import com.fr.plugin.chart.attr.plot.VanChartPlot; import com.fr.plugin.chart.attr.plot.VanChartPlot;
import com.fr.plugin.chart.base.AttrTooltip; import com.fr.plugin.chart.base.AttrTooltip;
@ -27,6 +28,10 @@ public class VanChartTooltipPane extends AbstractVanChartScrollPane<Chart> {
this.parent = parent; this.parent = parent;
} }
public VanChartPlotTooltipPane getPlotTooltipPane() {
return tooltipPane;
}
@Override @Override
protected JPanel createContentPane() { protected JPanel createContentPane() {
JPanel contentPane = new JPanel(new BorderLayout()); JPanel contentPane = new JPanel(new BorderLayout());
@ -48,7 +53,10 @@ public class VanChartTooltipPane extends AbstractVanChartScrollPane<Chart> {
parent.initAllListeners(); parent.initAllListeners();
} }
Plot plot = this.chart.getPlot(); populateTooltipPane(this.chart.getPlot());
}
public void populateTooltipPane(Plot plot) {
DataSeriesCondition attr = ((VanChartPlot)plot).getAttrTooltipFromConditionCollection(); DataSeriesCondition attr = ((VanChartPlot)plot).getAttrTooltipFromConditionCollection();
if(tooltipPane != null) { if(tooltipPane != null) {
tooltipPane.populate((AttrTooltip)attr); tooltipPane.populate((AttrTooltip)attr);
@ -74,7 +82,7 @@ public class VanChartTooltipPane extends AbstractVanChartScrollPane<Chart> {
@Override @Override
public String title4PopupWindow() { public String title4PopupWindow() {
return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Tooltip"); return Toolkit.i18nText("Fine-Design_Chart_Tooltip");
} }
protected VanChartPlotTooltipPane getTooltipPane(Plot plot) { protected VanChartPlotTooltipPane getTooltipPane(Plot plot) {

21
designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java

@ -258,10 +258,25 @@ public class XCardSwitchButton extends XButton {
int ey = e.getY(); int ey = e.getY();
//获取tab布局的位置,鼠标相对于tab按钮的位置 //获取tab布局的位置,鼠标相对于tab按钮的位置
XLayoutContainer mainLayout = cardLayout.getBackupParent(); Container mainLayout = cardLayout.getBackupParent();
Point point = mainLayout.getLocation(); Point point = mainLayout.getLocation();
double mainX = point.getX(); int y = 0;
double mainY = point.getY(); int x = 0;
//遍历一下,不然是相对位置,嵌套后位置不对
while (mainLayout.getParent() != null){
if(mainLayout instanceof XWCardLayout){
y += mainLayout.getY();
}
mainLayout = mainLayout.getParent();
if(mainLayout instanceof XWCardMainBorderLayout){
x += mainLayout.getX();
y += mainLayout.getY();
}
}
double mainX = point.getX() + x;
double mainY = point.getY() + y;
// 参数界面对坐标的影响 // 参数界面对坐标的影响
JForm jform = (JForm) HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); JForm jform = (JForm) HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();

12
designer-form/src/main/java/com/fr/design/mainframe/EditingMouseListener.java

@ -79,6 +79,9 @@ public class EditingMouseListener extends MouseInputAdapter {
//备份开始拖动的位置和大小 //备份开始拖动的位置和大小
private Rectangle dragBackupBounds; private Rectangle dragBackupBounds;
private int pressX;
private int pressY;
/** /**
* 获取最小移动距离 * 获取最小移动距离
* *
@ -141,6 +144,8 @@ public class EditingMouseListener extends MouseInputAdapter {
public void mousePressed(MouseEvent e) { public void mousePressed(MouseEvent e) {
int oldX = e.getX(); int oldX = e.getX();
int oldY = e.getY(); int oldY = e.getY();
pressX = oldX;
pressY = oldY;
offsetEventPoint(e); offsetEventPoint(e);
if (!stopEditing()) { if (!stopEditing()) {
return; return;
@ -189,6 +194,7 @@ public class EditingMouseListener extends MouseInputAdapter {
* @param e 鼠标事件 * @param e 鼠标事件
*/ */
public void mouseReleased(MouseEvent e) { public void mouseReleased(MouseEvent e) {
MouseEvent transEvent = new MouseEvent(e.getComponent(), MouseEvent.MOUSE_CLICKED, e.getWhen(), e.getModifiers(), e.getX(), e.getY(), e.getXOnScreen(), e.getYOnScreen(), e.getClickCount(), e.isPopupTrigger(), e.getButton());
int oldX = e.getX(); int oldX = e.getX();
int oldY = e.getY(); int oldY = e.getY();
offsetEventPoint(e); offsetEventPoint(e);
@ -213,6 +219,12 @@ public class EditingMouseListener extends MouseInputAdapter {
lastPressEvent = null; lastPressEvent = null;
lastXCreator = null; lastXCreator = null;
e.translatePoint(oldX - e.getX(), oldY - e.getY()); e.translatePoint(oldX - e.getX(), oldY - e.getY());
if (pressX != oldX || pressY != oldY) {
// click只有在mouseReleased和mousePressed前后x/y坐标相等时才会被触发在mouseReleased之后
// 但是当使用者来回点击切换时 存在mouseReleased和mousePressed前后x/y坐标不相等的情况 即鼠标按下去的位置和鼠标释放的位置不相等 存在偏移
// 当这种偏移很小时 看起来就好像是点击了 实际上是手抖了或者鼠标轻微滑动了 所以这里对这种情况要有容错处理
mouseClicked(transEvent);
}
} }
private void mouseDraggingRelease(MouseEvent e) { private void mouseDraggingRelease(MouseEvent e) {

4
designer-form/src/main/java/com/fr/design/parameter/ParameterPropertyPane.java

@ -1,5 +1,6 @@
package com.fr.design.parameter; package com.fr.design.parameter;
import com.fr.base.Parameter;
import com.fr.design.constants.UIConstants; import com.fr.design.constants.UIConstants;
import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.creator.XWParameterLayout;
@ -124,7 +125,8 @@ public class ParameterPropertyPane extends JPanel{
hideInJForm = jt instanceof JForm && hideInJForm = jt instanceof JForm &&
!(creator instanceof XWParameterLayout || creator.getParent() instanceof XWParameterLayout); !(creator instanceof XWParameterLayout || creator.getParent() instanceof XWParameterLayout);
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
hideInJForm = toolbarPane.updateBean().length <= 0; Parameter[] parameters = toolbarPane.updateBean();
hideInJForm = parameters == null || parameters.length <= 0;
} }
if (isVisible && toolbarPane.hasSelectedLabelItem() && !hideInJForm) { if (isVisible && toolbarPane.hasSelectedLabelItem() && !hideInJForm) {
addParaPane.setVisible(true); addParaPane.setVisible(true);

6
designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnAdvancedPane.java

@ -410,10 +410,10 @@ public class DSColumnAdvancedPane extends BasicPane {
private static class JFormulaField extends JPanel { private static class JFormulaField extends JPanel {
private CellElement cellElement; private CellElement cellElement;
private FormulaTextField formulaTextField; private FormulaTextField formulaTextField;
private BaseFormula defaultFormula; private String defaultValue;
public JFormulaField(String defaultValue) { public JFormulaField(String defaultValue) {
this.defaultFormula = BaseFormula.createFormulaBuilder().build(defaultValue); this.defaultValue = defaultValue;
this.setLayout(FRGUIPaneFactory.createBoxFlowLayout()); this.setLayout(FRGUIPaneFactory.createBoxFlowLayout());
UILabel bottomLabel = new UILabel("="); UILabel bottomLabel = new UILabel("=");
@ -421,6 +421,7 @@ public class DSColumnAdvancedPane extends BasicPane {
this.add(bottomLabel); this.add(bottomLabel);
formulaTextField = new FormulaTextField(24); formulaTextField = new FormulaTextField(24);
this.add(formulaTextField); this.add(formulaTextField);
BaseFormula defaultFormula = BaseFormula.createFormulaBuilder().build(this.defaultValue);
formulaTextField.setValueAndText(defaultFormula, true); formulaTextField.setValueAndText(defaultFormula, true);
UIButton bottomFrmulaButton = new UIButton("..."); UIButton bottomFrmulaButton = new UIButton("...");
@ -480,6 +481,7 @@ public class DSColumnAdvancedPane extends BasicPane {
public void doOk() { public void doOk() {
BaseFormula valueFormula = formulaPane.update(); BaseFormula valueFormula = formulaPane.update();
if (valueFormula.getContent().length() <= 1) { if (valueFormula.getContent().length() <= 1) {
BaseFormula defaultFormula = BaseFormula.createFormulaBuilder().build(defaultValue);
formulaTextField.setValueAndText(defaultFormula, true); formulaTextField.setValueAndText(defaultFormula, true);
} else { } else {
formulaTextField.setValueAndText(valueFormula, true); formulaTextField.setValueAndText(valueFormula, true);

16
designer-realize/src/main/java/com/fr/quickeditor/cellquick/CellDSColumnEditor.java

@ -646,7 +646,6 @@ public class CellDSColumnEditor extends CellQuickEditor {
*/ */
public class ResultSetSortConfigPane extends JPanel { public class ResultSetSortConfigPane extends JPanel {
private static final String DEFAULT_VALUE = "="; private static final String DEFAULT_VALUE = "=";
private final BaseFormula DEFAULT_FORMULA = BaseFormula.createFormulaBuilder().build();
private JPanel contentPane; private JPanel contentPane;
private UIButtonGroup sortTypePane; private UIButtonGroup sortTypePane;
private JFormulaField formulaField; private JFormulaField formulaField;
@ -723,7 +722,8 @@ public class CellDSColumnEditor extends CellQuickEditor {
} }
BaseFormula baseFormula = dSColumn.getSortFormulaObject(); BaseFormula baseFormula = dSColumn.getSortFormulaObject();
if (baseFormula == null) { if (baseFormula == null) {
this.formulaField.populateFormula(DEFAULT_FORMULA); BaseFormula defaultFormula = BaseFormula.createFormulaBuilder().build();
this.formulaField.populateFormula(defaultFormula);
} else { } else {
this.formulaField.populateFormula(baseFormula); this.formulaField.populateFormula(baseFormula);
} }
@ -1064,11 +1064,12 @@ public class CellDSColumnEditor extends CellQuickEditor {
public class JFormulaField extends JPanel { public class JFormulaField extends JPanel {
private CellElement cellElement; private CellElement cellElement;
private FormulaTextField formulaTextField; private FormulaTextField formulaTextField;
private BaseFormula defaultFormula; private String defaultValue;
public JFormulaField(String defaultValue) { public JFormulaField(String defaultValue) {
this.defaultFormula = BaseFormula.createFormulaBuilder().build(defaultValue); this.defaultValue = defaultValue;
BaseFormula defaultFormula = BaseFormula.createFormulaBuilder().build(this.defaultValue);
formulaTextField = new FormulaTextField(); formulaTextField = new FormulaTextField();
formulaTextField.setValueAndText(defaultFormula, false); formulaTextField.setValueAndText(defaultFormula, false);
@ -1145,6 +1146,7 @@ public class CellDSColumnEditor extends CellQuickEditor {
public void doOk() { public void doOk() {
BaseFormula valueFormula = formulaPane.update(); BaseFormula valueFormula = formulaPane.update();
if (valueFormula.getContent().length() <= 1) { if (valueFormula.getContent().length() <= 1) {
BaseFormula defaultFormula = BaseFormula.createFormulaBuilder().build(defaultValue);
formulaTextField.setValueAndText(defaultFormula, false); formulaTextField.setValueAndText(defaultFormula, false);
} else { } else {
formulaTextField.setValueAndText(valueFormula, false); formulaTextField.setValueAndText(valueFormula, false);
@ -1164,7 +1166,6 @@ public class CellDSColumnEditor extends CellQuickEditor {
*/ */
public class CustomValuePane extends JPanel { public class CustomValuePane extends JPanel {
private static final String DEFAULT_VALUE = "=$$$"; private static final String DEFAULT_VALUE = "=$$$";
private final BaseFormula DEFAULT_FORMULA = BaseFormula.createFormulaBuilder().build(DEFAULT_VALUE);
private JFormulaField formulaField; private JFormulaField formulaField;
@ -1188,7 +1189,8 @@ public class CellDSColumnEditor extends CellQuickEditor {
if (valueFormula != null) { if (valueFormula != null) {
formulaField.populateFormula(valueFormula); formulaField.populateFormula(valueFormula);
} else { } else {
formulaField.populateFormula(DEFAULT_FORMULA); BaseFormula defaultFormula = BaseFormula.createFormulaBuilder().build(DEFAULT_VALUE);
formulaField.populateFormula(defaultFormula);
} }
formulaField.populateElement(cellElement); formulaField.populateElement(cellElement);
@ -1201,7 +1203,7 @@ public class CellDSColumnEditor extends CellQuickEditor {
Object value = cellElement.getValue(); Object value = cellElement.getValue();
if (value instanceof DSColumn) { if (value instanceof DSColumn) {
DSColumn dSColumn = (DSColumn) (cellElement.getValue()); DSColumn dSColumn = (DSColumn) (cellElement.getValue());
dSColumn.setResultObject(this.formulaField.getFormula()); dSColumn.setResultObject(StringUtils.isEmpty(this.formulaField.getFormulaText()) ? null : this.formulaField.getFormula());
} }
} }
} }

Loading…
Cancel
Save