From 10dd3858cdde8e28497d0926f380212c43dcbaef Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 14 Apr 2020 20:01:39 +0800 Subject: [PATCH 01/28] =?UTF-8?q?KERNEL-3501=20=E5=86=B3=E7=AD=96=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E8=87=AA=E9=80=82=E5=BA=94=E5=90=8E=E7=AB=AF=E9=87=8D?= =?UTF-8?q?=E6=9E=84=EF=BC=8C=E6=95=B4=E7=90=86=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E5=8D=95=E5=85=83=E6=A0=BC=E5=8D=95=E4=BD=8D?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/unit/ReportLengthUNIT.java | 21 ++++++++ .../unit/ReportLengthUnitProcessor.java | 14 +++++ .../com/fr/design/unit/UnitConvertUtil.java | 42 +++++++++++++++ .../AbstracReportLengthUnitProcessor.java | 19 +++++++ .../unit/impl/AbstractReportLengthUNIT.java | 22 ++++++++ .../design/unit/impl/CMReportLengthUNIT.java | 32 +++++++++++ .../unit/impl/INCHReportLengthUNIT.java | 31 +++++++++++ .../design/unit/impl/MMReportLengthUNIT.java | 31 +++++++++++ .../design/unit/impl/PTReportLengthUNIT.java | 30 +++++++++++ .../FormWidgetDefinePaneFactoryBase.java | 7 ++- .../columnrow/ColumnRowSizingAction.java | 49 +++++------------ .../java/com/fr/design/condition/WHPane.java | 53 +++++-------------- .../grid/AbstractGridHeaderMouseHandler.java | 26 +++------ 13 files changed, 280 insertions(+), 97 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java create mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java diff --git a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java new file mode 100644 index 0000000000..513232d951 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java @@ -0,0 +1,21 @@ +package com.fr.design.unit; + +import com.fr.stable.fun.mark.Mutable; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public interface ReportLengthUNIT extends Mutable { + String MARK_STRING = "ReportLengthUNIT"; + + int CURRENT_LEVEL = 1; + + String unitText(); + + int unitType(); + + float unit2Value4Scale(UNIT value); + + UNIT float2UNIT(float value); +} diff --git a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java new file mode 100644 index 0000000000..f496d69dba --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java @@ -0,0 +1,14 @@ +package com.fr.design.unit; + +import com.fr.stable.fun.mark.Immutable; + +/** + * Created by kerry on 2020-04-09 + */ +public interface ReportLengthUnitProcessor extends Immutable { + String MARK_STRING = "ReportLengthUnitProcessor"; + int CURRENT_LEVEL = 1; + + ReportLengthUNIT getReportLengthUNIT(); + +} diff --git a/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java b/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java new file mode 100644 index 0000000000..80d35d83b4 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java @@ -0,0 +1,42 @@ +package com.fr.design.unit; + +import com.fr.design.ExtraDesignClassManager; +import com.fr.design.unit.impl.CMReportLengthUNIT; +import com.fr.design.unit.impl.INCHReportLengthUNIT; +import com.fr.design.unit.impl.MMReportLengthUNIT; +import com.fr.design.unit.impl.PTReportLengthUNIT; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by kerry on 2020-04-09 + */ +public class UnitConvertUtil { + private static List lengthUNITList = new ArrayList(); + + static { + lengthUNITList.add(new CMReportLengthUNIT()); + lengthUNITList.add(new INCHReportLengthUNIT()); + lengthUNITList.add(new PTReportLengthUNIT()); + lengthUNITList.add(new MMReportLengthUNIT()); + } + + private UnitConvertUtil() { + + } + + + public static ReportLengthUNIT parseLengthUNIT(int unitType) { + ReportLengthUnitProcessor lengthUnitProcessor = ExtraDesignClassManager.getInstance().getSingle(ReportLengthUnitProcessor.MARK_STRING); + if (lengthUnitProcessor != null) { + return lengthUnitProcessor.getReportLengthUNIT(); + } + for (ReportLengthUNIT lengthUNIT : lengthUNITList) { + if (unitType == lengthUNIT.unitType()) { + return lengthUNIT; + } + } + return new MMReportLengthUNIT(); + } +} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java b/designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java new file mode 100644 index 0000000000..64242b3b3c --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java @@ -0,0 +1,19 @@ +package com.fr.design.unit.impl; + +import com.fr.design.unit.ReportLengthUnitProcessor; + +/** + * Created by kerry on 2020-04-09 + */ +public abstract class AbstracReportLengthUnitProcessor implements ReportLengthUnitProcessor { + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } +} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java new file mode 100644 index 0000000000..d1947b8f4e --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java @@ -0,0 +1,22 @@ +package com.fr.design.unit.impl; + + +import com.fr.design.unit.ReportLengthUNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public abstract class AbstractReportLengthUNIT implements ReportLengthUNIT { + + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public String mark4Provider() { + return getClass().getName(); + } + +} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java new file mode 100644 index 0000000000..e3b550d018 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java @@ -0,0 +1,32 @@ +package com.fr.design.unit.impl; + +import com.fr.design.unit.impl.AbstractReportLengthUNIT; +import com.fr.stable.Constants; +import com.fr.stable.unit.CM; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public class CMReportLengthUNIT extends AbstractReportLengthUNIT { + @Override + public String unitText() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_CM"); + } + + @Override + public int unitType() { + return Constants.UNIT_CM; + } + + @Override + public float unit2Value4Scale(UNIT value) { + return value.toCMValue4Scale2(); + } + + @Override + public UNIT float2UNIT(float value) { + return new CM(value); + } + +} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java new file mode 100644 index 0000000000..c919e14e14 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java @@ -0,0 +1,31 @@ +package com.fr.design.unit.impl; + +import com.fr.design.unit.impl.AbstractReportLengthUNIT; +import com.fr.stable.Constants; +import com.fr.stable.unit.INCH; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public class INCHReportLengthUNIT extends AbstractReportLengthUNIT { + @Override + public String unitText() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_INCH"); + } + + @Override + public int unitType() { + return Constants.UNIT_INCH; + } + + @Override + public float unit2Value4Scale(UNIT value) { + return value.toINCHValue4Scale3(); + } + + @Override + public UNIT float2UNIT(float value) { + return new INCH(value); + } +} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java new file mode 100644 index 0000000000..e6f3523ecc --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java @@ -0,0 +1,31 @@ +package com.fr.design.unit.impl; + +import com.fr.design.unit.impl.AbstractReportLengthUNIT; +import com.fr.stable.Constants; +import com.fr.stable.unit.MM; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public class MMReportLengthUNIT extends AbstractReportLengthUNIT { + @Override + public String unitText() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_MM"); + } + + @Override + public int unitType() { + return Constants.UNIT_MM; + } + + @Override + public float unit2Value4Scale(UNIT value) { + return value.toMMValue4Scale2(); + } + + @Override + public UNIT float2UNIT(float value) { + return new MM(value); + } +} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java new file mode 100644 index 0000000000..1ab5bbedfb --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java @@ -0,0 +1,30 @@ +package com.fr.design.unit.impl; + +import com.fr.stable.Constants; +import com.fr.stable.unit.PT; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public class PTReportLengthUNIT extends AbstractReportLengthUNIT { + @Override + public String unitText() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_PT_Duplicate"); + } + + @Override + public int unitType() { + return Constants.UNIT_PT; + } + + @Override + public float unit2Value4Scale(UNIT value) { + return value.toPTValue4Scale2(); + } + + @Override + public UNIT float2UNIT(float value) { + return new PT(value); + } +} diff --git a/designer-form/src/main/java/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java b/designer-form/src/main/java/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java index 9df0a32012..1947e9ec4e 100644 --- a/designer-form/src/main/java/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java +++ b/designer-form/src/main/java/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java @@ -127,6 +127,11 @@ public class FormWidgetDefinePaneFactoryBase { } + + public static void registerDefinePane(Class widget, Appearance appearance) { + defineMap.put(widget, appearance); + } + public static RN createWidgetDefinePane(XCreator creator, FormDesigner designer, Widget widget, Operator operator) { if (isExtraXWidget(widget)) { WidgetDefinePane widgetDefinePane = new WidgetDefinePane(creator, designer); @@ -165,4 +170,4 @@ public class FormWidgetDefinePaneFactoryBase { } } -} \ No newline at end of file +} diff --git a/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java b/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java index c9cc9e1b59..b14d1945b7 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java @@ -10,14 +10,11 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.ElementCasePane; +import com.fr.design.unit.ReportLengthUNIT; +import com.fr.design.unit.UnitConvertUtil; import com.fr.grid.selection.CellSelection; import com.fr.report.elementcase.ElementCase; import com.fr.stable.ArrayUtils; -import com.fr.stable.Constants; -import com.fr.stable.unit.CM; -import com.fr.stable.unit.INCH; -import com.fr.stable.unit.MM; -import com.fr.stable.unit.PT; import com.fr.stable.unit.UNIT; /** @@ -28,7 +25,7 @@ public abstract class ColumnRowSizingAction extends AbstractColumnRowIndexAction protected ColumnRowSizingAction(ElementCasePane t, int indexOfColumnOrRow) { super(t, indexOfColumnOrRow); } - + @Override protected boolean executeActionReturnUndoRecordNeededWithCellSelection( CellSelection cs) { @@ -43,7 +40,7 @@ public abstract class ColumnRowSizingAction extends AbstractColumnRowIndexAction }; UNIT len = getShowLen(report, cs); populateNumberDialog(uPane, len); - + final CellSelection finalCS = cs; uPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { @@ -52,21 +49,13 @@ public abstract class ColumnRowSizingAction extends AbstractColumnRowIndexAction try { float newHeight = (float) uPane.update(); int unitType = DesignerEnvManager.getEnvManager().getReportLengthUnit(); - UNIT len; - if (unitType == Constants.UNIT_CM) { - len = new CM(newHeight); - } else if (unitType == Constants.UNIT_INCH) { - len = new INCH(newHeight); - } else if (unitType == Constants.UNIT_PT) { - len = new PT(newHeight); - } else { - len = new MM(newHeight); - } + ReportLengthUNIT lengthUNIT = UnitConvertUtil.parseLengthUNIT(unitType); + UNIT len = lengthUNIT.float2UNIT(newHeight); updateAction(report, len, finalCS); } catch (ValueNotChangeException e) { // nothing } - + ePane.fireTargetModified(); } }).setVisible(true); @@ -75,28 +64,16 @@ public abstract class ColumnRowSizingAction extends AbstractColumnRowIndexAction protected void populateNumberDialog(final UnitInputPane uPane, UNIT unit) { int unitType = DesignerEnvManager.getEnvManager().getReportLengthUnit(); - float va; - if (unitType == Constants.UNIT_CM) { - va = unit.toCMValue4Scale2(); - uPane.setUnitText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_CM")); - } else if (unitType == Constants.UNIT_INCH) { - va = unit.toINCHValue4Scale3(); - uPane.setUnitText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_INCH")); - } else if (unitType == Constants.UNIT_PT) { - va = unit.toPTValue4Scale2(); - uPane.setUnitText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_PT")); - } else { - va = unit.toMMValue4Scale2(); - uPane.setUnitText(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_MM")); - } - + ReportLengthUNIT lengthUNIT = UnitConvertUtil.parseLengthUNIT(unitType); + float va = lengthUNIT.unit2Value4Scale(unit); + uPane.setUnitText(lengthUNIT.unitText()); uPane.populate(va); } - + protected abstract String title4UnitInputPane(); - + protected abstract void updateAction(ElementCase report, UNIT len, CellSelection cs); - + protected abstract UNIT getShowLen(ElementCase report, CellSelection cs); protected abstract UNIT getIndexLen(int index, ElementCase report); diff --git a/designer-realize/src/main/java/com/fr/design/condition/WHPane.java b/designer-realize/src/main/java/com/fr/design/condition/WHPane.java index dce2d466ad..ed8eea8541 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/WHPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/WHPane.java @@ -3,17 +3,16 @@ package com.fr.design.condition; import com.fr.design.DesignerEnvManager; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UIBasicSpinner; +import com.fr.design.unit.ReportLengthUNIT; +import com.fr.design.unit.UnitConvertUtil; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.report.cell.cellattr.highlight.HighlightAction; -import com.fr.stable.Constants; -import com.fr.stable.unit.*; +import com.fr.stable.unit.UNIT; -import javax.swing.*; -import java.awt.event.FocusAdapter; -import java.awt.event.FocusEvent; +import javax.swing.JSpinner; +import javax.swing.SpinnerNumberModel; import java.math.BigDecimal; -import java.text.ParseException; /** * @author richie @@ -45,23 +44,12 @@ public abstract class WHPane extends ConditionAttrSingleConditionPane Date: Wed, 15 Apr 2020 11:45:12 +0800 Subject: [PATCH 02/28] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractFormAdaptiveConfigUI.java | 18 +++++++++++++ .../fit/menupane/FormAdaptiveConfigUI.java | 26 +++++++++++++++++++ .../fit/menupane/ReportFitAttrAction.java | 15 +++++++++-- .../unit/ReportLengthUnitProcessor.java | 2 +- .../com/fr/design/unit/UnitConvertUtil.java | 2 +- .../form/FormElementCaseDesigner.java | 8 +++++- 6 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java create mode 100644 designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java new file mode 100644 index 0000000000..bf0822104e --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java @@ -0,0 +1,18 @@ +package com.fr.design.report.fit.menupane; + + +/** + * Created by kerry on 2020-04-09 + */ +public abstract class AbstractFormAdaptiveConfigUI implements FormAdaptiveConfigUI { + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } +} diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java new file mode 100644 index 0000000000..cd88ec4ece --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java @@ -0,0 +1,26 @@ +package com.fr.design.report.fit.menupane; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.stable.fun.mark.Immutable; + +import javax.swing.JComponent; +import java.awt.Dimension; +import java.awt.image.BufferedImage; + + +/** + * Created by kerry on 2020-04-09 + */ +public interface FormAdaptiveConfigUI extends Immutable { + + String MARK_STRING = "FormAdaptiveConfigUI"; + int CURRENT_LEVEL = 1; + + + BasicBeanPane getConfigPane(); + + BufferedImage getElementCaseImage(Dimension size, JComponent elementCasePane); + + +} + diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java index 29a8a7deb6..ebffc98095 100644 --- a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java +++ b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java @@ -1,5 +1,6 @@ package com.fr.design.report.fit.menupane; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.JTemplateAction; import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.DialogActionAdapter; @@ -42,6 +43,10 @@ public class ReportFitAttrAction extends JTemplateAction { @Override public String getMenuName() { + FormAdaptiveConfigUI configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUI.MARK_STRING); + if (configPane != null) { + return configPane.getConfigPane().getTitle(); + } return com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Fit-Elementcase"); } @@ -85,7 +90,13 @@ public class ReportFitAttrAction extends JTemplateAction { final TemplateFitAttrPane attrPane = new TemplateFitAttrPane(); showReportFitDialog(fitAttr, jwb, wbTpl, attrPane); } else { - final ReportFitAttrPane attrPane = new ReportFitAttrPane(); + BasicBeanPane attrPane = null; + FormAdaptiveConfigUI configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUI.MARK_STRING); + if (configPane != null) { + attrPane = configPane.getConfigPane(); + }else{ + attrPane = new ReportFitAttrPane(); + } showReportFitDialog(fitAttr, jwb, wbTpl, attrPane); } } @@ -102,4 +113,4 @@ public class ReportFitAttrAction extends JTemplateAction { dialog.setVisible(true); } -} \ No newline at end of file +} diff --git a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java index f496d69dba..4adffd28c9 100644 --- a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java +++ b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java @@ -9,6 +9,6 @@ public interface ReportLengthUnitProcessor extends Immutable { String MARK_STRING = "ReportLengthUnitProcessor"; int CURRENT_LEVEL = 1; - ReportLengthUNIT getReportLengthUNIT(); + ReportLengthUNIT getReportLengthUNIT(int unitType); } diff --git a/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java b/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java index 80d35d83b4..fee1cccd78 100644 --- a/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java +++ b/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java @@ -30,7 +30,7 @@ public class UnitConvertUtil { public static ReportLengthUNIT parseLengthUNIT(int unitType) { ReportLengthUnitProcessor lengthUnitProcessor = ExtraDesignClassManager.getInstance().getSingle(ReportLengthUnitProcessor.MARK_STRING); if (lengthUnitProcessor != null) { - return lengthUnitProcessor.getReportLengthUNIT(); + return lengthUnitProcessor.getReportLengthUNIT(unitType); } for (ReportLengthUNIT lengthUNIT : lengthUNITList) { if (unitType == lengthUNIT.unitType()) { diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCaseDesigner.java b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCaseDesigner.java index 07954c796e..ae4221dcec 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCaseDesigner.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/form/FormElementCaseDesigner.java @@ -5,6 +5,7 @@ package com.fr.design.mainframe.form; import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.AllowAuthorityEditAction; import com.fr.design.actions.ExitAuthorityEditAction; import com.fr.design.base.mode.DesignModeContext; @@ -25,6 +26,7 @@ import com.fr.design.menu.NameSeparator; import com.fr.design.menu.ShortCut; import com.fr.design.menu.ToolBarDef; import com.fr.design.present.ConditionAttributesGroupPane; +import com.fr.design.report.fit.menupane.FormAdaptiveConfigUI; import com.fr.design.selection.SelectableElement; import com.fr.design.selection.Selectedable; import com.fr.design.selection.SelectionListener; @@ -123,6 +125,10 @@ public class FormElementCaseDesigner */ @Override public BufferedImage getElementCaseImage(Dimension size) { + FormAdaptiveConfigUI adaptiveConfigUI = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUI.MARK_STRING); + if (adaptiveConfigUI != null) { + return adaptiveConfigUI.getElementCaseImage(size, this.elementCasePane); + } BufferedImage image = null; try { image = new java.awt.image.BufferedImage(size.width, size.height, @@ -351,4 +357,4 @@ public class FormElementCaseDesigner public FormElementCaseProvider getEditingElementCase() { return this.getEditingElementCasePane().getTarget(); } -} \ No newline at end of file +} From 30c9304b7044e0688192c1a42fc07e7e9c4dfbb6 Mon Sep 17 00:00:00 2001 From: Lanlan Date: Thu, 16 Apr 2020 11:55:29 +0800 Subject: [PATCH 03/28] =?UTF-8?q?REPORT-29985=20=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E7=BD=91=E5=9D=80=E7=AE=A1=E7=90=86=E4=B8=AD=E5=BF=83=E5=BC=80?= =?UTF-8?q?=E5=85=B3-=E5=9B=BA=E5=8C=96=E5=9F=8B=E7=82=B9-=E5=9B=9E?= =?UTF-8?q?=E4=BC=A0=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/messagecollect/solid/SolidCollector.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/solid/SolidCollector.java b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/solid/SolidCollector.java index d090b9e8f1..194ca75d93 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/solid/SolidCollector.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/messagecollect/solid/SolidCollector.java @@ -22,7 +22,6 @@ import java.util.Map; public class SolidCollector { private static final String ATTR_CIPHER_TEXT = "cipherText"; private static final String ATTR_SIGNATURE = "signature"; - private static final String SOLID_UPLOAD_URL = CloudCenter.getInstance().acquireUrlByKind("design.solid"); private static volatile SolidCollector instance; @@ -44,6 +43,11 @@ public class SolidCollector { if (WorkContext.getCurrent().isLocal()) { return; } + String url = CloudCenter.getInstance().acquireConf("design.solid", "https://cloud.fanruan.com/api/solid/upload"); + if (StringUtils.isEmpty(url)) { + FineLoggerFactory.getLogger().info("failed to get solid content upload url..."); + return; + } FineLoggerFactory.getLogger().info("start to get solid content from server..."); try { String cipherText = requestContent(); @@ -51,7 +55,7 @@ public class SolidCollector { Map params = new HashMap<>(); params.put(ATTR_CIPHER_TEXT, cipherText); params.put(ATTR_SIGNATURE, String.valueOf(CommonUtils.signature())); - HttpToolbox.post(SOLID_UPLOAD_URL, params); + HttpToolbox.post(url, params); deleteSolidFile(); } From cf6471ba0469543c4e756ef32eb8a72670cbe60a Mon Sep 17 00:00:00 2001 From: "Hugh.C" Date: Thu, 16 Apr 2020 12:30:16 +0800 Subject: [PATCH 04/28] =?UTF-8?q?REPORT-29416=20=E5=8A=A9=E8=AE=B0?= =?UTF-8?q?=E7=AC=A6=E6=98=AF=E5=90=A6=E5=9C=A8=E6=96=87=E6=9C=AC=E4=B8=AD?= =?UTF-8?q?=E6=A0=87=E8=AE=B0=EF=BC=8C=E6=94=B9=E4=B8=BA=E5=8F=AF=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=EF=BC=88=E9=85=8D=E7=BD=AE=E9=9D=A2=E6=9D=BF=E4=B8=AD?= =?UTF-8?q?=E4=B8=8D=E9=9C=80=E8=A6=81=E6=A0=87=E8=AE=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/ibutton/UIRadioButton.java | 16 +++ .../design/gui/ibutton/UIRadioButtonUI.java | 121 ++++++++++++++++++ .../fr/design/gui/icheckbox/UICheckBox.java | 18 ++- .../com/fr/design/report/PageSetupPane.java | 8 +- 4 files changed, 156 insertions(+), 7 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButton.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButton.java index 1c2aef38a7..7112e5d657 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButton.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButton.java @@ -22,6 +22,8 @@ public class UIRadioButton extends JRadioButton implements UIObserver, GlobalNam private GlobalNameListener globalNameListener = null; private String radioButtonName = StringUtils.EMPTY; + private boolean markMnemonic = true; + public UIRadioButton() { super(); initListener(); @@ -58,6 +60,13 @@ public class UIRadioButton extends JRadioButton implements UIObserver, GlobalNam initComponent(); } + public UIRadioButton(String text, boolean selected, boolean markMnemonic) { + super(text, selected); + initListener(); + initComponent(); + this.markMnemonic = markMnemonic; + } + public UIRadioButton(String text, Icon icon) { super(text, icon); initListener(); @@ -70,6 +79,13 @@ public class UIRadioButton extends JRadioButton implements UIObserver, GlobalNam initListener(); } + public void setMnemonic(char mnemonic) { + super.setMnemonic(mnemonic); + if (!markMnemonic) { + setDisplayedMnemonicIndex(-1); + } + } + private void initListener() { if (shouldResponseChangeListener()) { this.addItemListener(new ItemListener() { diff --git a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButtonUI.java b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButtonUI.java index 0e054b6938..811c1c2bdf 100644 --- a/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButtonUI.java +++ b/designer-base/src/main/java/com/fr/design/gui/ibutton/UIRadioButtonUI.java @@ -5,9 +5,12 @@ import com.fr.design.utils.ThemeUtils; import javax.swing.*; import javax.swing.plaf.ComponentUI; +import javax.swing.plaf.basic.BasicHTML; import javax.swing.plaf.metal.MetalRadioButtonUI; import java.awt.*; import java.awt.event.KeyEvent; +import javax.swing.text.View; +import sun.swing.SwingUtilities2; /** * Created by IntelliJ IDEA. @@ -84,6 +87,124 @@ public class UIRadioButtonUI extends MetalRadioButtonUI { return radioButton; } + // ******************************** + // Paint Methods + // ******************************** + public synchronized void paint(Graphics g, JComponent c) { + + AbstractButton b = (AbstractButton) c; + ButtonModel model = b.getModel(); + + Dimension size = c.getSize(); + + int w = size.width; + int h = size.height; + + Font f = c.getFont(); + g.setFont(f); + FontMetrics fm = SwingUtilities2.getFontMetrics(c, g, f); + + Rectangle viewRect = new Rectangle(size); + Rectangle iconRect = new Rectangle(); + Rectangle textRect = new Rectangle(); + + Insets i = c.getInsets(); + viewRect.x += i.left; + viewRect.y += i.top; + viewRect.width -= (i.right + viewRect.x); + viewRect.height -= (i.bottom + viewRect.y); + + Icon altIcon = b.getIcon(); + Icon selectedIcon = null; + Icon disabledIcon = null; + + String text = SwingUtilities.layoutCompoundLabel( + c, fm, b.getText(), altIcon != null ? altIcon : getDefaultIcon(), + b.getVerticalAlignment(), b.getHorizontalAlignment(), + b.getVerticalTextPosition(), b.getHorizontalTextPosition(), + viewRect, iconRect, textRect, b.getIconTextGap()); + + // fill background + if (c.isOpaque()) { + g.setColor(b.getBackground()); + g.fillRect(0, 0, size.width, size.height); + } + + + // Paint the radio button + if (altIcon != null) { + + if (!model.isEnabled()) { + if (model.isSelected()) { + altIcon = b.getDisabledSelectedIcon(); + } else { + altIcon = b.getDisabledIcon(); + } + } else if (model.isPressed() && model.isArmed()) { + altIcon = b.getPressedIcon(); + if (altIcon == null) { + // Use selected icon + altIcon = b.getSelectedIcon(); + } + } else if (model.isSelected()) { + if (b.isRolloverEnabled() && model.isRollover()) { + altIcon = b.getRolloverSelectedIcon(); + if (altIcon == null) { + altIcon = b.getSelectedIcon(); + } + } else { + altIcon = b.getSelectedIcon(); + } + } else if (b.isRolloverEnabled() && model.isRollover()) { + altIcon = b.getRolloverIcon(); + } + + if (altIcon == null) { + altIcon = b.getIcon(); + } + + altIcon.paintIcon(c, g, iconRect.x, iconRect.y); + + } else { + getDefaultIcon().paintIcon(c, g, iconRect.x, iconRect.y); + } + + // Draw the Text + if (text != null) { + View v = (View) c.getClientProperty(BasicHTML.propertyKey); + if (v != null) { + v.paint(g, textRect); + } else { + int mnemIndex = b.getDisplayedMnemonicIndex(); + if (model.isEnabled()) { + // *** paint the text normally + g.setColor(b.getForeground()); + } else { + // *** paint the text disabled + g.setColor(getDisabledTextColor()); + } + if (markMnemonic(text, mnemIndex)) { + SwingUtilities2.drawStringUnderlineCharAt(c, g, text, + mnemIndex, textRect.x, textRect.y + fm.getAscent()); + } else { + SwingUtilities2.drawString(c, g, text, textRect.x, textRect.y + fm.getAscent()); + } + } + if (b.hasFocus() && b.isFocusPainted() && + textRect.width > 0 && textRect.height > 0) { + paintFocus(g, textRect, size); + } + } + } + + /** + * @param text + * @param mnemIndex 助记符在text中的索引 + * @return true:需要给助记符画一个下划线 + */ + private boolean markMnemonic(String text, int mnemIndex) { + return mnemIndex > 0 && text != null && text.length() > 0 && text.length() > mnemIndex; + } /** * Paints the focus for the radiobutton diff --git a/designer-base/src/main/java/com/fr/design/gui/icheckbox/UICheckBox.java b/designer-base/src/main/java/com/fr/design/gui/icheckbox/UICheckBox.java index 379274b90b..e294d80220 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icheckbox/UICheckBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icheckbox/UICheckBox.java @@ -34,6 +34,7 @@ public class UICheckBox extends JCheckBox implements UIObserver, GlobalNameObser private UIObserverListener uiObserverListener; private GlobalNameListener globalNameListener = null; private String checkboxName = ""; + private boolean markMnemonic = true; public UICheckBox(String string) { super(string); @@ -53,6 +54,13 @@ public class UICheckBox extends JCheckBox implements UIObserver, GlobalNameObser initListener(); } + public UICheckBox(String locText, boolean b, boolean markMnemonic) { + super(locText, b); + setUI(new UICheckBoxUI()); + initListener(); + this.markMnemonic=markMnemonic; + } + public UICheckBox(String text, Icon icon) { super(text, icon); setUI(new UICheckBoxUI()); @@ -189,14 +197,18 @@ public class UICheckBox extends JCheckBox implements UIObserver, GlobalNameObser if (v != null) { v.paint(g, textRect); } else { - int mnemIndex = b.getDisplayedMnemonicIndex(); + if (model.isEnabled()) { g.setColor(b.getForeground()); } else { g.setColor(getDisabledTextColor()); } - SwingUtilities2.drawStringUnderlineCharAt(c, g, text, - mnemIndex, textRect.x, textRect.y + fm.getAscent()); + if (markMnemonic) { + SwingUtilities2.drawStringUnderlineCharAt(c, g, text, + b.getDisplayedMnemonicIndex(), textRect.x, textRect.y + fm.getAscent()); + } else { + SwingUtilities2.drawString(c, g, text, textRect.x, textRect.y + fm.getAscent()); + } } } } diff --git a/designer-realize/src/main/java/com/fr/design/report/PageSetupPane.java b/designer-realize/src/main/java/com/fr/design/report/PageSetupPane.java index db9234925e..20beaa5643 100644 --- a/designer-realize/src/main/java/com/fr/design/report/PageSetupPane.java +++ b/designer-realize/src/main/java/com/fr/design/report/PageSetupPane.java @@ -885,12 +885,12 @@ public class PageSetupPane extends BasicPane { Icon topBottomIcon = BaseUtils.readIcon("/com/fr/base/images/dialog/pagesetup/down.png"); - topBottomRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Top_To_Bottom")); + topBottomRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Top_To_Bottom"),false,false); pageOrderPane.add(FRGUIPaneFactory.createIconRadio_S_Pane(topBottomIcon, topBottomRadioButton)); topBottomRadioButton.setMnemonic('B'); Icon leftRightIcon = BaseUtils.readIcon("/com/fr/base/images/dialog/pagesetup/over.png"); - leftRightRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Left_To_Right")); + leftRightRadioButton = new UIRadioButton(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Left_To_Right"), false, false); pageOrderPane.add(FRGUIPaneFactory.createIconRadio_S_Pane(leftRightIcon, leftRightRadioButton)); leftRightRadioButton.setMnemonic('R'); @@ -907,9 +907,9 @@ public class PageSetupPane extends BasicPane { defaultPane.add(outcenterOnPagePane); - this.horizonalCenterCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Horizontally")); + this.horizonalCenterCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Horizontally"), false, false); this.horizonalCenterCheckBox.setMnemonic('H'); - this.verticalCenterCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Vertically")); + this.verticalCenterCheckBox = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_Vertically"), false, false); this.verticalCenterCheckBox.setMnemonic('V'); centerOnPagePane.add(GUICoreUtils.createFlowPane(horizonalCenterCheckBox, FlowLayout.CENTER)); From 1122c29fdb225d00701b40fe97665354def7e10c Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 16 Apr 2020 16:48:44 +0800 Subject: [PATCH 05/28] =?UTF-8?q?REPORT-29732=20&&=20REPORT-29432=20?= =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/gui/itableeditorpane/UITableModelAdapter.java | 2 +- .../com/fr/design/javascript/JavaScriptImplPane.java | 3 ++- .../widget/accessibles/BaseAccessibleEditor.java | 3 ++- .../java/com/fr/design/parameter/ParameterArrayPane.java | 5 +++-- .../java/com/fr/design/present/dict/FormulaDictPane.java | 7 ++++--- .../src/main/java/com/fr/design/upm/UpmFinder.java | 2 +- .../adapters/layout/FRCardMainBorderLayoutAdapter.java | 5 +++-- .../widget/ui/designer/component/WidgetBoundPane.java | 9 +++++---- .../ui/designer/component/WidgetCardTagBoundPane.java | 5 +++-- .../com/fr/design/cell/editor/DSColumnCellEditor.java | 2 +- .../main/java/com/fr/design/dscolumn/DSColumnPane.java | 2 ++ .../src/main/java/com/fr/design/webattr/WebJsPane.java | 4 ++-- 12 files changed, 29 insertions(+), 20 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableModelAdapter.java b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableModelAdapter.java index fc219a30bc..7d04113078 100644 --- a/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableModelAdapter.java +++ b/designer-base/src/main/java/com/fr/design/gui/itableeditorpane/UITableModelAdapter.java @@ -235,7 +235,7 @@ public abstract class UITableModelAdapter extends AbstractTabl public void actionPerformed(ActionEvent e) { int[] selectedRow = table.getSelectedRows(); if (ismultiSelected()) { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(),com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Multiple_Select_Warn_Text")); + FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(),com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Multiple_Select_Warn_Text")); return; } if (table.getCellEditor() != null) { diff --git a/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java b/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java index 8806d6853c..158c05d1e1 100644 --- a/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java +++ b/designer-base/src/main/java/com/fr/design/javascript/JavaScriptImplPane.java @@ -2,6 +2,7 @@ package com.fr.design.javascript; import com.fr.base.Parameter; import com.fr.design.data.tabledata.tabledatapane.OneListTableModel; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.frpane.ReportletParameterViewPane; import com.fr.design.gui.itableeditorpane.ParameterTableModel; import com.fr.design.gui.itableeditorpane.UITableEditAction; @@ -62,7 +63,7 @@ public class JavaScriptImplPane extends AbstractHyperLinkPane { } if (tempSet.contains(list.get(i).toString())) { list.remove(i); - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parameter_Duplicate_Name") + "!"); + FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Parameter_Duplicate_Name") + "!"); parameterChanger(list); return; } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/widget/accessibles/BaseAccessibleEditor.java b/designer-base/src/main/java/com/fr/design/mainframe/widget/accessibles/BaseAccessibleEditor.java index 9f73a06d34..e6ddd8138c 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/widget/accessibles/BaseAccessibleEditor.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/widget/accessibles/BaseAccessibleEditor.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import javax.swing.*; import com.fr.design.constants.UIConstants; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.event.UIObserverListener; import com.fr.design.gui.ibutton.UIButton; @@ -222,7 +223,7 @@ public class BaseAccessibleEditor extends BasicPane implements AccessibleEditor } public static void showMessage(String message, Component editorComponent) { - JOptionPane.showMessageDialog(editorComponent, message, "Validation Error", JOptionPane.ERROR_MESSAGE); + FineJOptionPane.showMessageDialog(editorComponent, message, "Validation Error", JOptionPane.ERROR_MESSAGE); } diff --git a/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java b/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java index 30cac90eb2..d3efcae4aa 100644 --- a/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java +++ b/designer-base/src/main/java/com/fr/design/parameter/ParameterArrayPane.java @@ -2,6 +2,7 @@ package com.fr.design.parameter; import com.fr.base.Parameter; import com.fr.base.ParameterConfig; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.controlpane.JListControlPane; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.design.gui.controlpane.NameableSelfCreator; @@ -36,14 +37,14 @@ public class ParameterArrayPane extends JListControlPane { String tempName = getEditingName(); if (StringUtils.isEmpty(tempName)) { nameableList.stopEditing(); - JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Empty_Parameter_Name")); + FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Empty_Parameter_Name")); setIllegalIndex(editingIndex); return; } if (!ComparatorUtils.equals(tempName, selectedName) && isNameRepeated(new List[]{Arrays.asList(parameters), Arrays.asList(allListNames)}, tempName)) { nameableList.stopEditing(); - JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this), + FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(ParameterArrayPane.this), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Duplicate_Parameter_Name")); setIllegalIndex(editingIndex); } diff --git a/designer-base/src/main/java/com/fr/design/present/dict/FormulaDictPane.java b/designer-base/src/main/java/com/fr/design/present/dict/FormulaDictPane.java index ff13846208..2eca81466b 100644 --- a/designer-base/src/main/java/com/fr/design/present/dict/FormulaDictPane.java +++ b/designer-base/src/main/java/com/fr/design/present/dict/FormulaDictPane.java @@ -10,6 +10,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.widget.FRWidgetFactory; import com.fr.stable.StringUtils; import javax.swing.*; @@ -20,6 +21,7 @@ public class FormulaDictPane extends FurtherBasicBeanPane { private static final int EDITOR_COLUMN = 15; private static final int LEFT_BORDER = 5; + private static final int MAX_WIDTH = 30; private FormulaEditor keyFormulaEditor; private FormulaEditor valueFormulaEditor; @@ -61,10 +63,9 @@ public class FormulaDictPane extends FurtherBasicBeanPane { valueFormulaContainer.add(new JLabel(icon)); valueFormulaContainer.add(valueFormulaEditor); - Component[][] components = new Component[][]{ - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Actual_Value"), UILabel.LEFT), keyFormulaContainer}, - new Component[]{new UILabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Display_Value"), UILabel.LEFT), valueFormulaContainer}, + new Component[]{FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Actual_Value"), MAX_WIDTH, UILabel.LEFT), keyFormulaContainer}, + new Component[]{FRWidgetFactory.createLineWrapLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Display_Value"), MAX_WIDTH, UILabel.LEFT), valueFormulaContainer}, new Component[]{tag, null} }; JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_LARGE, LayoutConstants.VGAP_LARGE); diff --git a/designer-base/src/main/java/com/fr/design/upm/UpmFinder.java b/designer-base/src/main/java/com/fr/design/upm/UpmFinder.java index 4febad3a99..9a6205cf4a 100644 --- a/designer-base/src/main/java/com/fr/design/upm/UpmFinder.java +++ b/designer-base/src/main/java/com/fr/design/upm/UpmFinder.java @@ -88,7 +88,7 @@ public class UpmFinder { dialog.setVisible(true); } } else { - JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Update_Info_Plugin_Message")); + FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Update_Info_Plugin_Message")); UpdateMainDialog dialog = new UpdateMainDialog(DesignerContext.getDesignerFrame()); dialog.setAutoUpdateAfterInit(); dialog.showDialog(); diff --git a/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java b/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java index 1d529743a2..9718d4a6fd 100644 --- a/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java +++ b/designer-form/src/main/java/com/fr/design/designer/beans/adapters/layout/FRCardMainBorderLayoutAdapter.java @@ -3,6 +3,7 @@ package com.fr.design.designer.beans.adapters.layout; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.form.layout.FRBorderLayout; import com.fr.general.ComparatorUtils; @@ -47,13 +48,13 @@ public class FRCardMainBorderLayoutAdapter extends FRBorderLayoutAdapter { if (ComparatorUtils.equals(constraints, BorderLayout.NORTH) || ComparatorUtils.equals(constraints, BorderLayout.SOUTH)) { int containerHeight = container.getHeight(); if (rectangle.height > containerHeight) { - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); return true; } } else if (ComparatorUtils.equals(constraints, BorderLayout.EAST) || ComparatorUtils.equals(constraints, BorderLayout.WEST)) { int containerWidth = container.getWidth(); if (rectangle.width > containerWidth) { - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); return true; } } diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java index c9928759bf..ab148f2ae6 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetBoundPane.java @@ -10,6 +10,7 @@ import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.creator.cardlayout.XWCardLayout; import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; @@ -115,11 +116,11 @@ public class WidgetBoundPane extends BasicPane { PaddingMargin margin = wabs.getMargin(); if (bounds.width != w) { if (bounds.width == rec.width - margin.getLeft() - margin.getRight()) { - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Bounds")); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Bounds")); width.setValue(bounds.width); return; } else if (w < minWidth) { - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Min_Width") + Integer.toString(minWidth)); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Min_Width") + Integer.toString(minWidth)); width.setValue(bounds.width); return; } @@ -136,11 +137,11 @@ public class WidgetBoundPane extends BasicPane { int minHeight = (int) (MINHEIGHT * ((WFitLayout) wabs).getResolutionScaling()); if (bounds.height != h) { if (bounds.height == rec.height - margin.getTop() - margin.getBottom()) { - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Bounds")); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Bounds")); height.setValue(bounds.height); return; } else if (h < minHeight) { - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Min_Height") + Integer.toString(minHeight)); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Min_Height") + Integer.toString(minHeight)); height.setValue(bounds.height); return; } diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java index 97bc5aaa3b..22d544c1a6 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java @@ -4,6 +4,7 @@ import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; @@ -48,13 +49,13 @@ public class WidgetCardTagBoundPane extends WidgetBoundPane { Rectangle rectangle = tabLayout.getBounds(); if(ComparatorUtils.equals(displayPosition, WTabDisplayPosition.TOP_POSITION) || ComparatorUtils.equals(displayPosition, WTabDisplayPosition.BOTTOM_POSITION)){ if(rectangle.height < size){ - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); return; } parentBounds.height = size; }else{ if(rectangle.width < size){ - JOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); + FineJOptionPane.showMessageDialog(null, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Beyond_Tablayout_Bounds")); return; } parentBounds.width = size; diff --git a/designer-realize/src/main/java/com/fr/design/cell/editor/DSColumnCellEditor.java b/designer-realize/src/main/java/com/fr/design/cell/editor/DSColumnCellEditor.java index a7fb154e05..97efbda442 100644 --- a/designer-realize/src/main/java/com/fr/design/cell/editor/DSColumnCellEditor.java +++ b/designer-realize/src/main/java/com/fr/design/cell/editor/DSColumnCellEditor.java @@ -65,7 +65,7 @@ public class DSColumnCellEditor extends AbstractCellEditor implements DialogActi this.dsColumnPane = new DSColumnPane(); dsColumnPane.putElementcase(grid.getElementCasePane()); dsColumnPane.putCellElement(cellElement); - BasicDialog dsColumnDialog = this.dsColumnPane.showWindow(SwingUtilities.getWindowAncestor(grid)); + BasicDialog dsColumnDialog = this.dsColumnPane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(grid), null, DSColumnPane.DEFAULT_DIMENSION); dsColumnDialog.addDialogActionListener(this); diff --git a/designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnPane.java b/designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnPane.java index 4b33304cd1..afade5626c 100644 --- a/designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnPane.java +++ b/designer-realize/src/main/java/com/fr/design/dscolumn/DSColumnPane.java @@ -26,6 +26,8 @@ import java.beans.PropertyChangeListener; */ public class DSColumnPane extends BasicPane { + public static final Dimension DEFAULT_DIMENSION = new Dimension(700, 600); + private TableDataSource tplEC; private UITabbedPane tabbedPane; private DSColumnBasicPane basicPane = null; diff --git a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java index 7c5c2e6b9a..b2934b10e3 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/WebJsPane.java @@ -129,7 +129,7 @@ public class WebJsPane extends BasicPane { if (url.matches("^[a-zA-z]+://.+js")) { return url; } else { - JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(WebJsPane.this), com.fr.design.i18n.Toolkit.i18nText("Add_JS_warning")); + FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(WebJsPane.this), com.fr.design.i18n.Toolkit.i18nText("Add_JS_warning")); return ""; } } @@ -190,7 +190,7 @@ public class WebJsPane extends BasicPane { public void actionPerformed(ActionEvent arg0) { String uri = urlText.getText(); if (!uri.matches("^[a-zA-z]+://.+js")) { - JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(WebJsPane.this), com.fr.design.i18n.Toolkit.i18nText("Add_JS_warning")); + FineJOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(WebJsPane.this), com.fr.design.i18n.Toolkit.i18nText("Add_JS_warning")); return; } InputStream in = null; From 20dc52dc6f6cd18104ad97ef1283b7dffcc865b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Thu, 16 Apr 2020 16:52:04 +0800 Subject: [PATCH 06/28] =?UTF-8?q?CHART-13473=20=20=20=E7=94=BB=E5=9B=BE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=BC=82=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/chart/ChartDesignerActivator.java | 2 ++ .../java/com/fr/design/chart/gui/ChartComponent.java | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java index 8ad2e6198f..65d6abd640 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java +++ b/designer-chart/src/main/java/com/fr/design/chart/ChartDesignerActivator.java @@ -4,6 +4,7 @@ import com.fr.chart.chartattr.ChartCollection; import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.actions.core.ActionFactory; import com.fr.design.chart.gui.ChartComponent; +import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.mainframe.ChartPropertyPane; import com.fr.design.module.ChartEmptyDataStyleAction; import com.fr.design.module.ChartHyperlinkGroup; @@ -50,6 +51,7 @@ public class ChartDesignerActivator extends Activator implements Prepare { DesignModuleFactory.registerExtraWidgetOptions(ChartTypeInterfaceManager.initWidgetOption()); ImagePainter.registerDownloadSourcesEvent(new DownloadOnlineSourcesHelper()); + ImagePainter.registerDefaultCallbackEvent(HistoryTemplateListCache.getInstance()); ChartTypeInterfaceManager.addPluginChangedListener(); } diff --git a/designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java b/designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java index c8fafe9cdb..aa7f9107b2 100644 --- a/designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java +++ b/designer-chart/src/main/java/com/fr/design/chart/gui/ChartComponent.java @@ -31,7 +31,7 @@ import java.awt.event.MouseMotionListener; * 类说明: 事件说明: 工具栏编辑--> 是刷新ChartComponent 然后响应整个设计块的改变事件 右键编辑 ---> 刷新ChartCompment 刷新对应的工具栏(加入事件) 然后响应整个设计块的改变事件 */ -public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener{ +public class ChartComponent extends MiddleChartComponent implements MouseListener, MouseMotionListener, CallbackEvent{ private static final long serialVersionUID = 744164838619052097L; private final List listeners = new ArrayList(); private ChartCollection chartCollection4Design; @@ -257,7 +257,12 @@ public class ChartComponent extends MiddleChartComponent implements MouseListene if (resolution == 0){ resolution = ScreenResolution.getScreenResolution(); } - painter.paint(g2d, chartWidth, chartHeight, resolution, null); + painter.paint(g2d, chartWidth, chartHeight, resolution, null,this); } } + + @Override + public void callback() { + this.repaint(); + } } \ No newline at end of file From 2aae7b867dd86a786fbc0f1014de00c3ef06a0d7 Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 16 Apr 2020 16:56:46 +0800 Subject: [PATCH 07/28] =?UTF-8?q?=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/socketio/DesignerSocketIO.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java index 63bc3d999b..79061dbab2 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/socketio/DesignerSocketIO.java @@ -3,6 +3,7 @@ package com.fr.design.mainframe.socketio; import com.fr.config.RemoteConfigEvent; import com.fr.decision.webservice.utils.DecisionServiceConstants; import com.fr.design.EnvChangeEntrance; +import com.fr.design.dialog.FineJOptionPane; import com.fr.design.i18n.Toolkit; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.loghandler.DesignerLogger; @@ -146,7 +147,7 @@ public class DesignerSocketIO { UIUtil.invokeAndWaitIfNeeded(new Runnable() { @Override public void run() { - JOptionPane.showMessageDialog( + FineJOptionPane.showMessageDialog( DesignerContext.getDesignerFrame(), Toolkit.i18nText("Fine-Design_Basic_Remote_Disconnected"), UIManager.getString("OptionPane.messageDialogTitle"), From 430b3f4706b4ed9fafbcd0655914e4b8c37f089e Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 16 Apr 2020 17:59:40 +0800 Subject: [PATCH 08/28] =?UTF-8?q?REPORT-29576=20=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/start/BaseDesigner.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/designer-base/src/main/java/com/fr/start/BaseDesigner.java b/designer-base/src/main/java/com/fr/start/BaseDesigner.java index 90ac634ce0..1469dd32ec 100644 --- a/designer-base/src/main/java/com/fr/start/BaseDesigner.java +++ b/designer-base/src/main/java/com/fr/start/BaseDesigner.java @@ -3,6 +3,7 @@ */ package com.fr.start; +import com.fr.common.report.ReportState; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.constants.DesignerLaunchStatus; @@ -24,6 +25,9 @@ import com.fr.file.FILEFactory; import com.fr.file.FileFILE; import com.fr.general.ComparatorUtils; import com.fr.log.FineLoggerFactory; +import com.fr.process.ProcessEventPipe; +import com.fr.process.engine.core.CarryMessageEvent; +import com.fr.process.engine.core.FineProcessContext; import com.fr.stable.OperatingSystem; import java.awt.Window; @@ -75,6 +79,11 @@ public abstract class BaseDesigner extends ToolBarMenuDock { @Override public void on(Event event, Null param) { EventDispatcher.stopListen(this); + // 启动完成 停止监听 + ProcessEventPipe eventPipe = FineProcessContext.getParentPipe(); + if (eventPipe != null) { + eventPipe.fire(new CarryMessageEvent(ReportState.STOP.getValue())); + } collectUserInformation(); } }); From d0e9ebe0c8d8e9c50db50402f5aacb81a85fe162 Mon Sep 17 00:00:00 2001 From: vito Date: Thu, 16 Apr 2020 19:21:10 +0800 Subject: [PATCH 09/28] =?UTF-8?q?REPORT-29536=E3=80=90=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E6=9C=AC=E5=9C=B0=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=BA=B8=E5=BC=A0=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E7=9A=84custom=E6=AF=94=E5=85=B6=E4=BB=96=E9=80=89=E9=A1=B9?= =?UTF-8?q?=E5=A4=9A=E5=87=BA=E9=A6=96=E8=A1=8C=E7=A9=BA=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractNativePrintSettingPane.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/design/webattr/printsettings/AbstractNativePrintSettingPane.java b/designer-realize/src/main/java/com/fr/design/webattr/printsettings/AbstractNativePrintSettingPane.java index 2b22297837..2ff9d41800 100644 --- a/designer-realize/src/main/java/com/fr/design/webattr/printsettings/AbstractNativePrintSettingPane.java +++ b/designer-realize/src/main/java/com/fr/design/webattr/printsettings/AbstractNativePrintSettingPane.java @@ -103,14 +103,14 @@ public abstract class AbstractNativePrintSettingPane extends JPanel { showDialogCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Show_Print_Setting_Window_When_Printing")); showDialogCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20)); UILabel showDialogCheckTip = GUICoreUtils.createTipLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tip_Use_Default_Settings")); - JPanel showDialogCheckPane = GUICoreUtils.createFlowPane(new Component[] { + JPanel showDialogCheckPane = GUICoreUtils.createFlowPane(new Component[]{ showDialogCheck, showDialogCheckTip}, FlowLayout.LEFT); // 打印需要指定 sheet needSelectSheetCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Engine_Need_Select_Sheet_When_Printing")); needSelectSheetCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 20)); UILabel needSelectSheetCheckTip = GUICoreUtils.createTipLabel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Tip_Invalid_In_Page_View")); - JPanel needSelectSheetCheckPane = GUICoreUtils.createFlowPane(new Component[] { + JPanel needSelectSheetCheckPane = GUICoreUtils.createFlowPane(new Component[]{ needSelectSheetCheck, needSelectSheetCheckTip}, FlowLayout.LEFT); return createHeaderPane(tipDownload, showDialogCheckPane, needSelectSheetCheckPane); @@ -263,7 +263,7 @@ public abstract class AbstractNativePrintSettingPane extends JPanel { ' ' + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_PageSetup_mm") + ']'; - this.setText(sbuf); + this.setText(" " + sbuf); break; } } @@ -461,8 +461,8 @@ public abstract class AbstractNativePrintSettingPane extends JPanel { extraUpdate(nativePrintAttr); nativePrintAttr.setShowDialog(showDialogCheck.isSelected()); nativePrintAttr.setNeedSelectSheet(needSelectSheetCheck.isSelected()); - nativePrintAttr.setPrinterName((String)printerComboBox.getSelectedItem()); - nativePrintAttr.setCopy((int)copySpinner.getValue()); + nativePrintAttr.setPrinterName((String) printerComboBox.getSelectedItem()); + nativePrintAttr.setCopy((int) copySpinner.getValue()); // 页码 if (allPageRadioButton.isSelected()) { @@ -472,7 +472,7 @@ public abstract class AbstractNativePrintSettingPane extends JPanel { } else if (customPageRadioButton.isSelected()) { nativePrintAttr.setPageType(NativePrintAttr.PageType.SPECIFIED_PAGES); nativePrintAttr.setArea(specifiedAreaField.getText()); - } else if (doublePrintComboBox.getSelectedIndex() == ODD_INDEX){ + } else if (doublePrintComboBox.getSelectedIndex() == ODD_INDEX) { nativePrintAttr.setPageType(NativePrintAttr.PageType.ODD_PAGES); } else { nativePrintAttr.setPageType(NativePrintAttr.PageType.EVEN_PAGES); @@ -494,7 +494,7 @@ public abstract class AbstractNativePrintSettingPane extends JPanel { nativePrintAttr.setInheritPageMarginSetting(inheritPageMarginSettingCheck.isSelected()); nativePrintAttr.setMargin(pageMarginSettingPane.updateBean()); nativePrintAttr.setFitPaperSize(fitPaperSizeCheck.isSelected()); - nativePrintAttr.setScalePercent((int)scalePercentField.getValue()); + nativePrintAttr.setScalePercent((int) scalePercentField.getValue()); } protected void extraUpdate(NativePrintAttr nativePrintAttr) { From 06e18697dc73e6e2c59453e90166693cb334909c Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 16 Apr 2020 19:49:24 +0800 Subject: [PATCH 10/28] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferencePane.java | 3 +- .../fun/FormAdaptiveConfigUIProcessor.java | 35 ++++++++++++++++ .../design/fun/ReportLengthUNITProvider.java | 39 ++++++++++++++++++ ...AbstractFormAdaptiveConfigUIProcessor.java | 38 +++++++++++++++++ .../AbstractReportLengthUNITProvider.java | 41 +++++++++++++++++++ .../AbstractFormAdaptiveConfigUI.java | 18 -------- .../fit/menupane/FormAdaptiveConfigUI.java | 26 ------------ .../fit/menupane/ReportFitAttrAction.java | 5 ++- .../com/fr/design/unit/ReportLengthUNIT.java | 21 ---------- .../unit/ReportLengthUnitProcessor.java | 14 ------- .../com/fr/design/unit/UnitConvertUtil.java | 26 ++++++++---- .../AbstracReportLengthUnitProcessor.java | 19 --------- .../unit/impl/AbstractReportLengthUNIT.java | 22 ---------- .../design/unit/impl/CMReportLengthUNIT.java | 4 +- .../unit/impl/INCHReportLengthUNIT.java | 4 +- .../design/unit/impl/MMReportLengthUNIT.java | 4 +- .../design/unit/impl/PTReportLengthUNIT.java | 3 +- .../columnrow/ColumnRowSizingAction.java | 7 ++-- .../java/com/fr/design/condition/WHPane.java | 8 ++-- .../form/FormElementCaseDesigner.java | 7 ++-- .../grid/AbstractGridHeaderMouseHandler.java | 4 +- 21 files changed, 198 insertions(+), 150 deletions(-) create mode 100644 designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java create mode 100644 designer-base/src/main/java/com/fr/design/fun/ReportLengthUNITProvider.java create mode 100644 designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java create mode 100644 designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java delete mode 100644 designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java delete mode 100644 designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java delete mode 100644 designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java delete mode 100644 designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java delete mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java delete mode 100644 designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index 8f88cdeff0..387082ed05 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -28,6 +28,7 @@ import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.vcs.VcsConfigManager; import com.fr.design.mainframe.vcs.common.VcsHelper; import com.fr.design.os.impl.SupportOSImpl; +import com.fr.design.unit.UnitConvertUtil; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.design.widget.FRWidgetFactory; import com.fr.general.ComparatorUtils; @@ -575,7 +576,7 @@ public class PreferencePane extends BasicPane { pageLengthComboBox = new UIComboBox(new String[]{i18nText("Fine-Design_Basic_Page_Setup_MM"), i18nText("Fine-Design_Report_Unit_CM"), i18nText("Fine-Design_Report_Unit_INCH")}); pageLengthComboBox.setPreferredSize(new Dimension(80, 20)); pageLengthComboBox.setMinimumSize(new Dimension(80, 20)); - reportLengthComboBox = new UIComboBox(new String[]{i18nText("Fine-Design_Basic_Page_Setup_MM"), i18nText("Fine-Design_Report_Unit_CM"), i18nText("Fine-Design_Report_Unit_INCH"), i18nText("Fine-Design_Report_Unit_PT_Duplicate")}); + reportLengthComboBox = new UIComboBox(UnitConvertUtil.getUnitItems()); reportLengthComboBox.setPreferredSize(new Dimension(80, 20)); reportLengthComboBox.setMinimumSize(new Dimension(80, 20)); UILabel pagelengthLabel = new UILabel(i18nText("Fine-Design_Basic_Page_Setup_Scale_Units") + ":"); diff --git a/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java b/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java new file mode 100644 index 0000000000..a91e202c9f --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java @@ -0,0 +1,35 @@ +package com.fr.design.fun; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.stable.fun.mark.Immutable; + +import javax.swing.JComponent; +import java.awt.Dimension; +import java.awt.image.BufferedImage; + + +/** + * Created by kerry on 2020-04-09 + * 临时接口,后续自适应内置后删除 + */ +public interface FormAdaptiveConfigUIProcessor extends Immutable { + + String MARK_STRING = "FormAdaptiveConfigUI"; + int CURRENT_LEVEL = 1; + + /** + * 获取表单自适应配置界面 + * @return 表单自适应配置界面 + */ + BasicBeanPane getConfigPane(); + + /** + * 绘制自适应下报表块在表单界面中显示图片 + * @param size 绘制尺寸 + * @param elementCasePane 报表块内容对象 + * @return 自适应下报表块在表单界面中显示的图片 + */ + BufferedImage paintFormElementCaseImage(Dimension size, JComponent elementCasePane); + +} + diff --git a/designer-base/src/main/java/com/fr/design/fun/ReportLengthUNITProvider.java b/designer-base/src/main/java/com/fr/design/fun/ReportLengthUNITProvider.java new file mode 100644 index 0000000000..af97950cf8 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/ReportLengthUNITProvider.java @@ -0,0 +1,39 @@ +package com.fr.design.fun; + +import com.fr.stable.fun.mark.Mutable; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +public interface ReportLengthUNITProvider extends Mutable { + String MARK_STRING = "ReportLengthUNITProvider"; + + int CURRENT_LEVEL = 1; + + /** + * 标尺单位显示字符 + * @return 标尺单位字符 + */ + String unitText(); + + /** + * 标尺单位类型(之前是将int类型的值直接保存在数据库里面的) + * @return 返回标尺单位类型 + */ + int unitType(); + + /** + * UNIT转标尺单位值 + * @param value UNIT + * @return 标尺单位值 + */ + float unit2Value4Scale(UNIT value); + + /** + * 标尺单位值转UNIT + * @param value 标尺单位值 + * @return UNIT + */ + UNIT float2UNIT(float value); +} diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java new file mode 100644 index 0000000000..e573339875 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java @@ -0,0 +1,38 @@ +package com.fr.design.fun.impl; + + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.fun.FormAdaptiveConfigUIProcessor; +import com.fr.stable.fun.impl.AbstractProvider; +import com.fr.stable.fun.mark.API; + +import javax.swing.JComponent; +import java.awt.Dimension; +import java.awt.image.BufferedImage; + +/** + * Created by kerry on 2020-04-09 + */ +@API(level = FormAdaptiveConfigUIProcessor.CURRENT_LEVEL) +public abstract class AbstractFormAdaptiveConfigUIProcessor extends AbstractProvider implements FormAdaptiveConfigUIProcessor { + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } + + @Override + public BasicBeanPane getConfigPane() { + return null; + } + + @Override + public BufferedImage paintFormElementCaseImage(Dimension size, JComponent elementCasePane) { + return null; + } +} diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java new file mode 100644 index 0000000000..b550b07c1e --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java @@ -0,0 +1,41 @@ +package com.fr.design.fun.impl; + + +import com.fr.design.fun.ReportLengthUNITProvider; +import com.fr.stable.StringUtils; +import com.fr.stable.fun.impl.AbstractProvider; +import com.fr.stable.fun.mark.API; +import com.fr.stable.unit.UNIT; + +/** + * Created by kerry on 2020-04-09 + */ +@API(level = ReportLengthUNITProvider.CURRENT_LEVEL) +public abstract class AbstractReportLengthUNITProvider extends AbstractProvider implements ReportLengthUNITProvider { + + + @Override + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + @Override + public String unitText() { + return StringUtils.EMPTY; + } + + @Override + public int unitType() { + return 0; + } + + @Override + public float unit2Value4Scale(UNIT value) { + return 0; + } + + @Override + public UNIT float2UNIT(float value) { + return null; + } +} diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java deleted file mode 100644 index bf0822104e..0000000000 --- a/designer-base/src/main/java/com/fr/design/report/fit/menupane/AbstractFormAdaptiveConfigUI.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.fr.design.report.fit.menupane; - - -/** - * Created by kerry on 2020-04-09 - */ -public abstract class AbstractFormAdaptiveConfigUI implements FormAdaptiveConfigUI { - - @Override - public int currentAPILevel() { - return CURRENT_LEVEL; - } - - @Override - public int layerIndex() { - return DEFAULT_LAYER_INDEX; - } -} diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java deleted file mode 100644 index cd88ec4ece..0000000000 --- a/designer-base/src/main/java/com/fr/design/report/fit/menupane/FormAdaptiveConfigUI.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.fr.design.report.fit.menupane; - -import com.fr.design.beans.BasicBeanPane; -import com.fr.stable.fun.mark.Immutable; - -import javax.swing.JComponent; -import java.awt.Dimension; -import java.awt.image.BufferedImage; - - -/** - * Created by kerry on 2020-04-09 - */ -public interface FormAdaptiveConfigUI extends Immutable { - - String MARK_STRING = "FormAdaptiveConfigUI"; - int CURRENT_LEVEL = 1; - - - BasicBeanPane getConfigPane(); - - BufferedImage getElementCaseImage(Dimension size, JComponent elementCasePane); - - -} - diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java index ebffc98095..bbf5106c35 100644 --- a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java +++ b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java @@ -5,6 +5,7 @@ import com.fr.design.actions.JTemplateAction; import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.UIDialog; +import com.fr.design.fun.FormAdaptiveConfigUIProcessor; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.MenuKeySet; @@ -43,7 +44,7 @@ public class ReportFitAttrAction extends JTemplateAction { @Override public String getMenuName() { - FormAdaptiveConfigUI configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUI.MARK_STRING); + FormAdaptiveConfigUIProcessor configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUIProcessor.MARK_STRING); if (configPane != null) { return configPane.getConfigPane().getTitle(); } @@ -91,7 +92,7 @@ public class ReportFitAttrAction extends JTemplateAction { showReportFitDialog(fitAttr, jwb, wbTpl, attrPane); } else { BasicBeanPane attrPane = null; - FormAdaptiveConfigUI configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUI.MARK_STRING); + FormAdaptiveConfigUIProcessor configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUIProcessor.MARK_STRING); if (configPane != null) { attrPane = configPane.getConfigPane(); }else{ diff --git a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java deleted file mode 100644 index 513232d951..0000000000 --- a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUNIT.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.fr.design.unit; - -import com.fr.stable.fun.mark.Mutable; -import com.fr.stable.unit.UNIT; - -/** - * Created by kerry on 2020-04-09 - */ -public interface ReportLengthUNIT extends Mutable { - String MARK_STRING = "ReportLengthUNIT"; - - int CURRENT_LEVEL = 1; - - String unitText(); - - int unitType(); - - float unit2Value4Scale(UNIT value); - - UNIT float2UNIT(float value); -} diff --git a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java b/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java deleted file mode 100644 index 4adffd28c9..0000000000 --- a/designer-base/src/main/java/com/fr/design/unit/ReportLengthUnitProcessor.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.fr.design.unit; - -import com.fr.stable.fun.mark.Immutable; - -/** - * Created by kerry on 2020-04-09 - */ -public interface ReportLengthUnitProcessor extends Immutable { - String MARK_STRING = "ReportLengthUnitProcessor"; - int CURRENT_LEVEL = 1; - - ReportLengthUNIT getReportLengthUNIT(int unitType); - -} diff --git a/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java b/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java index fee1cccd78..406ddcfdde 100644 --- a/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java +++ b/designer-base/src/main/java/com/fr/design/unit/UnitConvertUtil.java @@ -1,6 +1,7 @@ package com.fr.design.unit; import com.fr.design.ExtraDesignClassManager; +import com.fr.design.fun.ReportLengthUNITProvider; import com.fr.design.unit.impl.CMReportLengthUNIT; import com.fr.design.unit.impl.INCHReportLengthUNIT; import com.fr.design.unit.impl.MMReportLengthUNIT; @@ -8,18 +9,23 @@ import com.fr.design.unit.impl.PTReportLengthUNIT; import java.util.ArrayList; import java.util.List; +import java.util.Set; /** * Created by kerry on 2020-04-09 */ public class UnitConvertUtil { - private static List lengthUNITList = new ArrayList(); + private static List lengthUNITList = new ArrayList(); static { + lengthUNITList.add(new MMReportLengthUNIT()); lengthUNITList.add(new CMReportLengthUNIT()); lengthUNITList.add(new INCHReportLengthUNIT()); lengthUNITList.add(new PTReportLengthUNIT()); - lengthUNITList.add(new MMReportLengthUNIT()); + Set providers = ExtraDesignClassManager.getInstance().getArray(ReportLengthUNITProvider.MARK_STRING); + for (ReportLengthUNITProvider provider : providers) { + lengthUNITList.add(provider); + } } private UnitConvertUtil() { @@ -27,16 +33,20 @@ public class UnitConvertUtil { } - public static ReportLengthUNIT parseLengthUNIT(int unitType) { - ReportLengthUnitProcessor lengthUnitProcessor = ExtraDesignClassManager.getInstance().getSingle(ReportLengthUnitProcessor.MARK_STRING); - if (lengthUnitProcessor != null) { - return lengthUnitProcessor.getReportLengthUNIT(unitType); - } - for (ReportLengthUNIT lengthUNIT : lengthUNITList) { + public static ReportLengthUNITProvider parseLengthUNIT(int unitType) { + for (ReportLengthUNITProvider lengthUNIT : lengthUNITList) { if (unitType == lengthUNIT.unitType()) { return lengthUNIT; } } return new MMReportLengthUNIT(); } + + public static String[] getUnitItems() { + String[] unitItems = new String[lengthUNITList.size()]; + for (int i = 0; i < lengthUNITList.size(); i++) { + unitItems[i] = lengthUNITList.get(i).unitText(); + } + return unitItems; + } } diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java b/designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java deleted file mode 100644 index 64242b3b3c..0000000000 --- a/designer-base/src/main/java/com/fr/design/unit/impl/AbstracReportLengthUnitProcessor.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.fr.design.unit.impl; - -import com.fr.design.unit.ReportLengthUnitProcessor; - -/** - * Created by kerry on 2020-04-09 - */ -public abstract class AbstracReportLengthUnitProcessor implements ReportLengthUnitProcessor { - - @Override - public int currentAPILevel() { - return CURRENT_LEVEL; - } - - @Override - public int layerIndex() { - return DEFAULT_LAYER_INDEX; - } -} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java deleted file mode 100644 index d1947b8f4e..0000000000 --- a/designer-base/src/main/java/com/fr/design/unit/impl/AbstractReportLengthUNIT.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.fr.design.unit.impl; - - -import com.fr.design.unit.ReportLengthUNIT; - -/** - * Created by kerry on 2020-04-09 - */ -public abstract class AbstractReportLengthUNIT implements ReportLengthUNIT { - - - @Override - public int currentAPILevel() { - return CURRENT_LEVEL; - } - - @Override - public String mark4Provider() { - return getClass().getName(); - } - -} diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java index e3b550d018..ef4dcb64af 100644 --- a/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java +++ b/designer-base/src/main/java/com/fr/design/unit/impl/CMReportLengthUNIT.java @@ -1,6 +1,6 @@ package com.fr.design.unit.impl; -import com.fr.design.unit.impl.AbstractReportLengthUNIT; +import com.fr.design.fun.impl.AbstractReportLengthUNITProvider; import com.fr.stable.Constants; import com.fr.stable.unit.CM; import com.fr.stable.unit.UNIT; @@ -8,7 +8,7 @@ import com.fr.stable.unit.UNIT; /** * Created by kerry on 2020-04-09 */ -public class CMReportLengthUNIT extends AbstractReportLengthUNIT { +public class CMReportLengthUNIT extends AbstractReportLengthUNITProvider { @Override public String unitText() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_CM"); diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java index c919e14e14..5cfcb6920f 100644 --- a/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java +++ b/designer-base/src/main/java/com/fr/design/unit/impl/INCHReportLengthUNIT.java @@ -1,6 +1,6 @@ package com.fr.design.unit.impl; -import com.fr.design.unit.impl.AbstractReportLengthUNIT; +import com.fr.design.fun.impl.AbstractReportLengthUNITProvider; import com.fr.stable.Constants; import com.fr.stable.unit.INCH; import com.fr.stable.unit.UNIT; @@ -8,7 +8,7 @@ import com.fr.stable.unit.UNIT; /** * Created by kerry on 2020-04-09 */ -public class INCHReportLengthUNIT extends AbstractReportLengthUNIT { +public class INCHReportLengthUNIT extends AbstractReportLengthUNITProvider { @Override public String unitText() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_INCH"); diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java index e6f3523ecc..a4bc2bacaa 100644 --- a/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java +++ b/designer-base/src/main/java/com/fr/design/unit/impl/MMReportLengthUNIT.java @@ -1,6 +1,6 @@ package com.fr.design.unit.impl; -import com.fr.design.unit.impl.AbstractReportLengthUNIT; +import com.fr.design.fun.impl.AbstractReportLengthUNITProvider; import com.fr.stable.Constants; import com.fr.stable.unit.MM; import com.fr.stable.unit.UNIT; @@ -8,7 +8,7 @@ import com.fr.stable.unit.UNIT; /** * Created by kerry on 2020-04-09 */ -public class MMReportLengthUNIT extends AbstractReportLengthUNIT { +public class MMReportLengthUNIT extends AbstractReportLengthUNITProvider { @Override public String unitText() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_MM"); diff --git a/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java b/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java index 1ab5bbedfb..9be7a8778a 100644 --- a/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java +++ b/designer-base/src/main/java/com/fr/design/unit/impl/PTReportLengthUNIT.java @@ -1,5 +1,6 @@ package com.fr.design.unit.impl; +import com.fr.design.fun.impl.AbstractReportLengthUNITProvider; import com.fr.stable.Constants; import com.fr.stable.unit.PT; import com.fr.stable.unit.UNIT; @@ -7,7 +8,7 @@ import com.fr.stable.unit.UNIT; /** * Created by kerry on 2020-04-09 */ -public class PTReportLengthUNIT extends AbstractReportLengthUNIT { +public class PTReportLengthUNIT extends AbstractReportLengthUNITProvider { @Override public String unitText() { return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Unit_PT_Duplicate"); diff --git a/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java b/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java index b14d1945b7..f7e86d2c03 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/columnrow/ColumnRowSizingAction.java @@ -4,13 +4,14 @@ package com.fr.design.actions.columnrow; import com.fr.design.DesignerEnvManager; +import com.fr.design.fun.ReportLengthUNITProvider; import com.fr.design.gui.frpane.UnitInputPane; import com.fr.design.gui.frpane.UnitInputPane.ValueNotChangeException; import com.fr.design.mainframe.DesignerContext; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.mainframe.ElementCasePane; -import com.fr.design.unit.ReportLengthUNIT; +import com.fr.design.fun.ReportLengthUNITProvider; import com.fr.design.unit.UnitConvertUtil; import com.fr.grid.selection.CellSelection; import com.fr.report.elementcase.ElementCase; @@ -49,7 +50,7 @@ public abstract class ColumnRowSizingAction extends AbstractColumnRowIndexAction try { float newHeight = (float) uPane.update(); int unitType = DesignerEnvManager.getEnvManager().getReportLengthUnit(); - ReportLengthUNIT lengthUNIT = UnitConvertUtil.parseLengthUNIT(unitType); + ReportLengthUNITProvider lengthUNIT = UnitConvertUtil.parseLengthUNIT(unitType); UNIT len = lengthUNIT.float2UNIT(newHeight); updateAction(report, len, finalCS); } catch (ValueNotChangeException e) { @@ -64,7 +65,7 @@ public abstract class ColumnRowSizingAction extends AbstractColumnRowIndexAction protected void populateNumberDialog(final UnitInputPane uPane, UNIT unit) { int unitType = DesignerEnvManager.getEnvManager().getReportLengthUnit(); - ReportLengthUNIT lengthUNIT = UnitConvertUtil.parseLengthUNIT(unitType); + ReportLengthUNITProvider lengthUNIT = UnitConvertUtil.parseLengthUNIT(unitType); float va = lengthUNIT.unit2Value4Scale(unit); uPane.setUnitText(lengthUNIT.unitText()); uPane.populate(va); diff --git a/designer-realize/src/main/java/com/fr/design/condition/WHPane.java b/designer-realize/src/main/java/com/fr/design/condition/WHPane.java index ed8eea8541..7b4f636a64 100644 --- a/designer-realize/src/main/java/com/fr/design/condition/WHPane.java +++ b/designer-realize/src/main/java/com/fr/design/condition/WHPane.java @@ -3,7 +3,7 @@ package com.fr.design.condition; import com.fr.design.DesignerEnvManager; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UIBasicSpinner; -import com.fr.design.unit.ReportLengthUNIT; +import com.fr.design.fun.ReportLengthUNITProvider; import com.fr.design.unit.UnitConvertUtil; import com.fr.design.utils.gui.GUICoreUtils; @@ -47,7 +47,7 @@ public abstract class WHPane extends ConditionAttrSingleConditionPane Date: Fri, 17 Apr 2020 09:40:18 +0800 Subject: [PATCH 11/28] =?UTF-8?q?REPORT-29882=208.0=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E5=8D=87=E7=BA=A710.0=E5=90=8E=EF=BC=8C=E6=A8=A1=E6=9D=BFweb?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E6=89=93=E4=B8=8D=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/design/style/background/BackgroundPane.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java b/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java index 66fa06c9e0..593250ca8c 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java +++ b/designer-base/src/main/java/com/fr/design/style/background/BackgroundPane.java @@ -118,6 +118,9 @@ public class BackgroundPane extends BasicPane { */ public void populate(Background background) { BackgroundUIWrapper wrapper = getBackgroundUIWrapper(background); + if (wrapper == null) { + return; + } int index = wrapper.getIndex(); BackgroundDetailPane quickPane = getTabItemPane(background, index); quickPane.populate(background); From bbc19821876d36fc943ca7d6be25fa8d05996874 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 17 Apr 2020 10:28:17 +0800 Subject: [PATCH 12/28] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/fun/impl/AbstractReportLengthUNITProvider.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java index b550b07c1e..da77c947f9 100644 --- a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractReportLengthUNITProvider.java @@ -36,6 +36,7 @@ public abstract class AbstractReportLengthUNITProvider extends AbstractProvider @Override public UNIT float2UNIT(float value) { - return null; + return UNIT.ZERO; } } + From 434692b6801f997b5867ea5a9341c82bb95565c5 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 17 Apr 2020 10:54:24 +0800 Subject: [PATCH 13/28] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fun/FormAdaptiveConfigUIProcessor.java | 11 +++--- ...AbstractFormAdaptiveConfigUIProcessor.java | 17 +--------- .../fit/menupane/ReportFitAttrAction.java | 14 +------- .../java/com/fr/design/mainframe/JForm.java | 34 ++++++++++++------- 4 files changed, 30 insertions(+), 46 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java b/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java index a91e202c9f..1f2853b91d 100644 --- a/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java +++ b/designer-base/src/main/java/com/fr/design/fun/FormAdaptiveConfigUIProcessor.java @@ -1,6 +1,7 @@ package com.fr.design.fun; -import com.fr.design.beans.BasicBeanPane; +import com.fr.design.mainframe.JTemplate; +import com.fr.design.menu.ShortCut; import com.fr.stable.fun.mark.Immutable; import javax.swing.JComponent; @@ -14,14 +15,14 @@ import java.awt.image.BufferedImage; */ public interface FormAdaptiveConfigUIProcessor extends Immutable { - String MARK_STRING = "FormAdaptiveConfigUI"; + String MARK_STRING = "FormAdaptiveConfigUIProcessor"; int CURRENT_LEVEL = 1; /** - * 获取表单自适应配置界面 - * @return 表单自适应配置界面 + * 获取表单自适应配置菜单 + * @return 表单自适应配置菜单 */ - BasicBeanPane getConfigPane(); + ShortCut getConfigShortCut(JTemplate jTemplate); /** * 绘制自适应下报表块在表单界面中显示图片 diff --git a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java index e573339875..1fc76077c1 100644 --- a/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java +++ b/designer-base/src/main/java/com/fr/design/fun/impl/AbstractFormAdaptiveConfigUIProcessor.java @@ -1,20 +1,14 @@ package com.fr.design.fun.impl; -import com.fr.design.beans.BasicBeanPane; import com.fr.design.fun.FormAdaptiveConfigUIProcessor; -import com.fr.stable.fun.impl.AbstractProvider; import com.fr.stable.fun.mark.API; -import javax.swing.JComponent; -import java.awt.Dimension; -import java.awt.image.BufferedImage; - /** * Created by kerry on 2020-04-09 */ @API(level = FormAdaptiveConfigUIProcessor.CURRENT_LEVEL) -public abstract class AbstractFormAdaptiveConfigUIProcessor extends AbstractProvider implements FormAdaptiveConfigUIProcessor { +public abstract class AbstractFormAdaptiveConfigUIProcessor implements FormAdaptiveConfigUIProcessor { @Override public int currentAPILevel() { @@ -26,13 +20,4 @@ public abstract class AbstractFormAdaptiveConfigUIProcessor extends AbstractProv return DEFAULT_LAYER_INDEX; } - @Override - public BasicBeanPane getConfigPane() { - return null; - } - - @Override - public BufferedImage paintFormElementCaseImage(Dimension size, JComponent elementCasePane) { - return null; - } } diff --git a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java index bbf5106c35..c24125059c 100644 --- a/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java +++ b/designer-base/src/main/java/com/fr/design/report/fit/menupane/ReportFitAttrAction.java @@ -1,11 +1,9 @@ package com.fr.design.report.fit.menupane; -import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.JTemplateAction; import com.fr.design.beans.BasicBeanPane; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.dialog.UIDialog; -import com.fr.design.fun.FormAdaptiveConfigUIProcessor; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.JTemplate; import com.fr.design.menu.MenuKeySet; @@ -44,10 +42,6 @@ public class ReportFitAttrAction extends JTemplateAction { @Override public String getMenuName() { - FormAdaptiveConfigUIProcessor configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUIProcessor.MARK_STRING); - if (configPane != null) { - return configPane.getConfigPane().getTitle(); - } return com.fr.design.i18n.Toolkit.i18nText("Fine-Designer_Fit-Elementcase"); } @@ -91,13 +85,7 @@ public class ReportFitAttrAction extends JTemplateAction { final TemplateFitAttrPane attrPane = new TemplateFitAttrPane(); showReportFitDialog(fitAttr, jwb, wbTpl, attrPane); } else { - BasicBeanPane attrPane = null; - FormAdaptiveConfigUIProcessor configPane = ExtraDesignClassManager.getInstance().getSingle(FormAdaptiveConfigUIProcessor.MARK_STRING); - if (configPane != null) { - attrPane = configPane.getConfigPane(); - }else{ - attrPane = new ReportFitAttrPane(); - } + final ReportFitAttrPane attrPane = new ReportFitAttrPane(); showReportFitDialog(fitAttr, jwb, wbTpl, attrPane); } } diff --git a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java index e95a7962c2..5502274bcd 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/JForm.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/JForm.java @@ -31,6 +31,7 @@ import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.designer.properties.FormWidgetAuthorityEditPane; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; +import com.fr.design.fun.FormAdaptiveConfigUIProcessor; import com.fr.design.fun.PreviewProvider; import com.fr.design.fun.PropertyItemPaneProvider; import com.fr.design.gui.frpane.HyperlinkGroupPane; @@ -129,20 +130,20 @@ public class JForm extends JTemplate implements BaseJForm implements BaseJForm providers = classManager.getArray(PropertyItemPaneProvider.XML_TAG); for (PropertyItemPaneProvider provider : providers) { addPane(provider); } } - + private void addPane(PropertyItemPaneProvider provider) { - + PaneHolder holder = provider.getPaneHolder(FormDesigner.class); if (holder != null) { JPanel panel = holder.getInstance(formDesign); EastRegionContainerPane.getInstance().replaceKeyPane(provider.key(), panel); } } - + @Override public void refreshEastPropertiesPane() { // 暂时用不到,遇到的时候再加刷新右侧tab面板的代码 @@ -561,12 +562,21 @@ public class JForm extends JTemplate implements BaseJForm implements BaseJForm Date: Fri, 17 Apr 2020 13:20:15 +0800 Subject: [PATCH 14/28] =?UTF-8?q?REPORT-29462=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E8=8F=9C=E5=8D=95=E6=A0=8F-=E6=A8=A1=E6=9D=BF-?= =?UTF-8?q?=E7=BA=B8=E5=BC=A0=E8=83=8C=E6=99=AF-=E6=B8=90=E5=8F=98?= =?UTF-8?q?=E8=89=B2=EF=BC=8C=E6=BB=91=E5=8A=A8=E5=8F=B3=E8=BE=B9=E6=B8=B8?= =?UTF-8?q?=E6=A0=87=EF=BC=8C=E7=A1=AE=E5=AE=9A=E5=90=8E=E5=86=8D=E6=AC=A1?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=EF=BC=8C=E4=BD=8D=E7=BD=AE=E5=9B=9E=E5=88=B0?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/style/background/gradient/GradientBar.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java b/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java index dcb381e819..efeffa4e49 100644 --- a/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java +++ b/designer-base/src/main/java/com/fr/design/style/background/gradient/GradientBar.java @@ -244,6 +244,7 @@ public class GradientBar extends JComponent implements UIObserver, ColorSelectab */ public void setStartValue(double startValue) { startLabel.setValue(startValue); + p1.setX(startValue); } /** @@ -251,6 +252,7 @@ public class GradientBar extends JComponent implements UIObserver, ColorSelectab */ public void setEndValue(double endValue) { endLabel.setValue(endValue); + p2.setX(endValue); } /** From 7df8d3748619a7395bb95cfd1d6fd9e3cbcb9e92 Mon Sep 17 00:00:00 2001 From: hades Date: Fri, 17 Apr 2020 16:27:53 +0800 Subject: [PATCH 15/28] MOBILE-26174 && MOBILE-25651 --- .../fr/design/actions/FormMobileAttrAction.java | 4 ++-- .../actions/report/ReportMobileAttrAction.java | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/actions/FormMobileAttrAction.java b/designer-form/src/main/java/com/fr/design/actions/FormMobileAttrAction.java index b387cbc703..deec25c0b1 100644 --- a/designer-form/src/main/java/com/fr/design/actions/FormMobileAttrAction.java +++ b/designer-form/src/main/java/com/fr/design/actions/FormMobileAttrAction.java @@ -82,13 +82,13 @@ public class FormMobileAttrAction extends JTemplateAction { if (changeSize) { ((FormArea)jf.getFormDesign().getParent()).onMobileAttrModified(); } - jf.getFormDesign().getSelectionModel().setSelectedCreator(jf.getFormDesign().getRootComponent()); //改变布局为自适应布局,只在移动端属性设置保存后改变一次 boolean changeLayout = !oldAdaptive && formMobileAttr.isAdaptivePropertyAutoMatch(); if (changeLayout) { + jf.getFormDesign().getSelectionModel().setSelectedCreator(jf.getFormDesign().getRootComponent()); doChangeBodyLayout(); + WidgetPropertyPane.getInstance().refreshDockingView(); } - WidgetPropertyPane.getInstance().refreshDockingView(); jf.fireTargetModified(); } }); diff --git a/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java b/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java index a31108f2c4..a002f56e8a 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java +++ b/designer-realize/src/main/java/com/fr/design/actions/report/ReportMobileAttrAction.java @@ -1,5 +1,6 @@ package com.fr.design.actions.report; +import com.fr.base.PaperSize; import com.fr.base.iofile.attr.MobileOnlyTemplateAttrMark; import com.fr.design.actions.JWorkBookAction; import com.fr.design.dialog.BasicDialog; @@ -13,8 +14,10 @@ import com.fr.general.IOUtils; import com.fr.intelli.record.Focus; import com.fr.main.TemplateWorkBook; +import com.fr.page.PaperSettingProvider; import com.fr.record.analyzer.EnableMetrics; import com.fr.report.mobile.ElementCaseMobileAttr; +import com.fr.report.report.Report; import javax.swing.*; import java.awt.event.ActionEvent; @@ -51,6 +54,7 @@ public class ReportMobileAttrAction extends JWorkBookAction{ final ReportMobileAttrPane mobileAttrPane = new ReportMobileAttrPane(); mobileAttrPane.populateBean(mobileAttr); + final boolean oldMobileCanvasSize = mobileAttr.isMobileCanvasSize(); BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { @Override public void doOk() { @@ -69,7 +73,16 @@ public class ReportMobileAttrAction extends JWorkBookAction{ } recordFunction(); // 设置移动端属性并刷新界面 - wbTpl.setReportMobileAttr(elementCaseMobileAttr); // 会同时修改页面设置,放到最后 + wbTpl.setReportMobileAttr(elementCaseMobileAttr); + boolean change = !oldMobileCanvasSize && elementCaseMobileAttr.isMobileCanvasSize(); + if (change) { + // 当相关属性从未勾选到勾选状态时 设置成移动端标准页面大小 + for (int i = 0; i < wbTpl.getReportCount(); i++) { + Report report = wbTpl.getReport(i); + PaperSettingProvider paperSetting = report.getReportSettings().getPaperSetting(); + paperSetting.setPaperSize(PaperSize.PAPERSIZE_MOBILE); + } + } jwb.fireTargetModified(); } }); From 0a530fdd684101bf0054bb7e99f0ba64abba90aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E5=B2=B3?= <445798420@qq.com> Date: Fri, 17 Apr 2020 17:14:07 +0800 Subject: [PATCH 16/28] =?UTF-8?q?CHART-13559=20=E5=A4=A7=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=B8=8B=E5=8A=A8=E7=94=BB=E7=89=B9=E6=95=88=E5=92=8C=E9=AB=98?= =?UTF-8?q?=E4=BA=AE=E7=9A=84label=E4=B9=9F=E8=A6=81=E5=8F=98=E7=81=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../other/VanChartInteractivePane.java | 18 ++++++++++++++++-- .../designer/style/VanChartPlotLegendPane.java | 9 ++++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java index f25cbe9923..f402418d7d 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/other/VanChartInteractivePane.java @@ -14,6 +14,7 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.i18n.Toolkit; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; import com.fr.plugin.chart.attr.axis.VanChartAxis; @@ -60,6 +61,7 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { private UIComboBox largeDataMode; private UISpinner largeModeThresholdNumber; + protected UILabel chartAnimationLabel; protected UIButtonGroup isChartAnimation; //坐标轴翻转属性 @@ -371,7 +373,17 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { protected JPanel createAnimationPane() { isChartAnimation = new UIButtonGroup(new String[]{com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Open"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Close")}); - JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Animation_Effects"), isChartAnimation); + chartAnimationLabel = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Animation_Effects")); + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; + double[] columnSize = {f, e}; + double[] rowSize = {p,p}; + Component[][] components = new Component[][]{ + new Component[]{null,null}, + new Component[]{chartAnimationLabel,isChartAnimation} + }; + JPanel panel = TableLayout4VanChartHelper.createGapTableLayoutPane(components,rowSize,columnSize); return TableLayout4VanChartHelper.createExpandablePaneWithTitle(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Chart_Animation"), panel); } @@ -499,7 +511,9 @@ public class VanChartInteractivePane extends AbstractVanChartScrollPane { private void populateChartAnimate(Chart chart, Plot plot) { if (plot.isSupportAnimate()) { isChartAnimation.setSelectedIndex(chart.isJSDraw() ? 0 : 1); - isChartAnimation.setEnabled(!largeModel(plot)); + boolean largeModel = largeModel(plot); + isChartAnimation.setEnabled(!largeModel); + chartAnimationLabel.setEnabled(!largeModel); } } diff --git a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java index 4ab88f6167..7e597bd5d9 100644 --- a/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java +++ b/designer-chart/src/main/java/com/fr/van/chart/designer/style/VanChartPlotLegendPane.java @@ -70,6 +70,7 @@ public class VanChartPlotLegendPane extends BasicPane { //private LimitPane limitPane; //高亮显示的按钮 + private UILabel highlightLabel; private UIButtonGroup highlightButton; private JPanel highlightPane; @@ -318,7 +319,7 @@ public class VanChartPlotLegendPane extends BasicPane { private JPanel createHighlightPane(){ highlightButton = new UIButtonGroup<>(new String[]{Toolkit.i18nText("Fine-Design_Chart_On"), Toolkit.i18nText("Fine-Design_Chart_Off")}, new Boolean[]{true, false}); - + highlightLabel = new UILabel(Toolkit.i18nText("Fine-Design_Chart_Highlight")); double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double e = TableLayout4VanChartHelper.EDIT_AREA_WIDTH; @@ -326,7 +327,7 @@ public class VanChartPlotLegendPane extends BasicPane { double[] rowSize = {p,p}; Component[][] components = new Component[][]{ new Component[]{null,null}, - new Component[]{new UILabel(Toolkit.i18nText("Fine-Design_Chart_Highlight")),highlightButton} + new Component[]{highlightLabel, highlightButton} }; return TableLayout4VanChartHelper.createGapTableLayoutPane(components,rowSize,columnSize); } @@ -429,7 +430,9 @@ public class VanChartPlotLegendPane extends BasicPane { //limitPane.populateBean(legend.getLimitAttribute()); if(highlightButton != null){ highlightButton.setSelectedItem(legend.isHighlight()); - highlightButton.setEnabled(!PlotFactory.largeDataModel(plot)); + boolean largeDataModel = PlotFactory.largeDataModel(plot); + highlightButton.setEnabled(!largeDataModel); + highlightLabel.setEnabled(!largeDataModel); } } From 6963b99daec0f7368a0ad859772f76f1fd95ad9f Mon Sep 17 00:00:00 2001 From: hades Date: Fri, 17 Apr 2020 18:11:36 +0800 Subject: [PATCH 17/28] REPORT-29118 && REPORT-29117 --- .../os/impl/MacOsAddListenerAction.java | 67 ++++++++++++++----- .../com/fr/start/module/DesignerStartup.java | 8 +-- 2 files changed, 54 insertions(+), 21 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java b/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java index bc09dbf6a1..f33527ccbb 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java @@ -1,7 +1,10 @@ package com.fr.design.os.impl; +import com.fr.design.actions.help.AboutDialog; +import com.fr.design.actions.help.AboutPane; import com.fr.design.mainframe.DesignerContext; import com.fr.exit.DesignerExiter; +import com.fr.general.ComparatorUtils; import com.fr.invoke.Reflect; import com.fr.log.FineLoggerFactory; import com.fr.stable.os.support.OSBasedAction; @@ -21,25 +24,55 @@ public class MacOsAddListenerAction implements OSBasedAction { public void execute(final Object... objects) { try { Class app = Class.forName("com.apple.eawt.Application"); - Class handler = Class.forName("com.apple.eawt.QuitHandler"); - Object instance = Proxy.newProxyInstance(handler.getClassLoader(), new Class[]{handler}, - new InvocationHandler() { - @Override - public Object invoke(Object proxy, Method method, - Object[] args) throws Throwable { - if ("handleQuitRequestWith".equals(method.getName())) { - if (DesignerContext.getDesignerFrame() != null && DesignerContext.getDesignerFrame().isShowing()) { - DesignerContext.getDesignerFrame().exit(); - } else { - DesignerExiter.getInstance().execute(); - } - } - return null; - } - }); - Reflect.on(Reflect.on(app).call("getApplication").get()).call("setQuitHandler", instance); + Class quitHandler = Class.forName("com.apple.eawt.QuitHandler"); + Object quitInstance = getProxy(quitHandler, "handleQuitRequestWith", new QuitAction()); + Class aboutHandler = Class.forName("com.apple.eawt.AboutHandler"); + Object aboutInstance = getProxy(aboutHandler, "", new AboutAction()); + Reflect.on(Reflect.on(app).call("getApplication").get()).call("setQuitHandler", quitInstance) + .call("setAboutHandler", aboutInstance); } catch (ClassNotFoundException e) { FineLoggerFactory.getLogger().error(e.getMessage(), e); } } + + + private Object getProxy(Class clazz, final String methodName, final Action action) { + return Proxy.newProxyInstance(clazz.getClassLoader(), new Class[]{clazz}, + new InvocationHandler() { + @Override + public Object invoke(Object proxy, Method method, + Object[] args) throws Throwable { + if (ComparatorUtils.equals(methodName, method.getName())) { + action.execute(); + } + return null; + } + }); + } + + interface Action { + void execute(); + } + + private class QuitAction implements Action { + + @Override + public void execute() { + if (DesignerContext.getDesignerFrame() != null && DesignerContext.getDesignerFrame().isShowing()) { + DesignerContext.getDesignerFrame().exit(); + } else { + DesignerExiter.getInstance().execute(); + } + } + } + + private class AboutAction implements Action { + + @Override + public void execute() { + AboutPane aboutPane = new AboutPane(); + AboutDialog aboutDialog = new AboutDialog(DesignerContext.getDesignerFrame(), aboutPane); + aboutDialog.setVisible(true); + } + } } diff --git a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java index 60de86543a..56af5583f5 100644 --- a/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java +++ b/designer-realize/src/main/java/com/fr/start/module/DesignerStartup.java @@ -16,11 +16,11 @@ import com.fr.design.utils.DesignUtils; import com.fr.design.utils.DesignerPort; import com.fr.exit.DesignerExiter; import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; import com.fr.log.FineLoggerFactory; import com.fr.module.Activator; import com.fr.record.analyzer.EnableMetrics; import com.fr.record.analyzer.Metrics; +import com.fr.stable.ArrayUtils; import com.fr.stable.BuildContext; import com.fr.stable.ProductConstants; import com.fr.stable.StableUtils; @@ -35,8 +35,6 @@ import com.fr.start.server.FineEmbedServer; import com.fr.value.NotNullLazyValue; import org.jetbrains.annotations.NotNull; -import javax.swing.JFrame; -import javax.swing.JOptionPane; import java.io.File; import java.util.concurrent.ExecutorService; @@ -71,7 +69,9 @@ public class DesignerStartup extends Activator { if (DesignUtils.isStarted()) { // 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了 final String[] args = startupArgsValue.getValue().get(); - DesignUtils.clientSend(args); + if (ArrayUtils.isNotEmpty(args)) { + DesignUtils.clientSend(args); + } FineLoggerFactory.getLogger().info("The Designer Has Been Started"); if (args.length == 0) { TipDialog dialog = new TipDialog(null, From 8c88dc76c08eed102b14ae907439d6ee2313847d Mon Sep 17 00:00:00 2001 From: hades Date: Fri, 17 Apr 2020 20:29:50 +0800 Subject: [PATCH 18/28] MOBILE-26198 && MOBILE-26189 --- .../design/mainframe/WidgetPropertyPane.java | 3 +- .../mobile/MobileAdvanceDefinePane.java | 137 +------------- .../mobile/TabMobileWidgetDefinePane.java | 15 +- .../component/MobileAdvanceInnerPane.java | 169 ++++++++++++++++++ .../component/MobileComponentFrozenPane.java | 19 ++ 5 files changed, 209 insertions(+), 134 deletions(-) create mode 100644 designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileAdvanceInnerPane.java diff --git a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java index f7668b30a1..93533b7728 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java @@ -6,6 +6,7 @@ import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.*; +import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.designer.properties.EventPropertyTable; import com.fr.design.designer.properties.mobile.MobileBookMarkPropertyUI; import com.fr.design.designer.properties.mobile.MobileStylePropertyUI; @@ -179,7 +180,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper if (selection != null && xCreator != null) { embeddedPropertyUIProviders = selection.getSelectedCreator().getWidgetPropertyUIProviders(); if(!designer.getDesignerMode().isFormParameterEditor()) { - if (!xCreator.acceptType(XWAbsoluteLayout.class, XWFitLayout.class) && FormDesignerUtils.isAppRelayout(designer)) { + if (!xCreator.acceptType(XWAbsoluteLayout.class, XWFitLayout.class, XWCardTagLayout.class) && FormDesignerUtils.isAppRelayout(designer)) { embeddedPropertyUIProviders = ArrayUtils.insert(0, embeddedPropertyUIProviders, new MobileBookMarkPropertyUI(xCreator)); } if (xCreator.supportMobileStyle()) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileAdvanceDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileAdvanceDefinePane.java index 34f6a7adf5..542641c248 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileAdvanceDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileAdvanceDefinePane.java @@ -1,40 +1,14 @@ package com.fr.design.widget.ui.designer.mobile; -import com.fr.design.constants.LayoutConstants; -import com.fr.design.designer.IntervalConstants; import com.fr.design.designer.creator.XCreator; -import com.fr.design.dialog.FineJOptionPane; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.design.gui.icheckbox.UICheckBox; -import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; -import com.fr.design.mainframe.WidgetPropertyPane; -import com.fr.form.main.Form; -import com.fr.form.ui.FormWidgetHelper; -import com.fr.form.ui.Widget; -import com.fr.form.ui.container.WLayout; -import com.fr.form.ui.container.WSortLayout; -import com.fr.form.ui.mobile.MobileBookMark; -import com.fr.form.ui.widget.CRBoundsWidget; -import com.fr.general.ComparatorUtils; -import com.fr.general.IOUtils; -import com.fr.stable.StringUtils; +import com.fr.design.widget.ui.designer.mobile.component.MobileAdvanceInnerPane; import javax.swing.*; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import java.awt.*; -import java.awt.event.FocusAdapter; -import java.awt.event.FocusEvent; -import java.awt.event.KeyAdapter; -import java.awt.event.KeyEvent; -import java.util.Iterator; -import java.util.List; /** * @author hades @@ -44,8 +18,7 @@ import java.util.List; public class MobileAdvanceDefinePane extends MobileWidgetDefinePane { private XCreator xCreator; - private UICheckBox useBookMarkCheck; - private UITextField bookMarkNameField; + private MobileAdvanceInnerPane innerPane; public MobileAdvanceDefinePane(XCreator xCreator) { this.xCreator = xCreator; @@ -54,71 +27,13 @@ public class MobileAdvanceDefinePane extends MobileWidgetDefinePane { @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - JPanel contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - this.useBookMarkCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Use_BookMark"), false); - this.bookMarkNameField = new UITextField() { - @Override - protected void initListener() { - if (shouldResponseChangeListener()) { - addFocusListener(new FocusAdapter() { - @Override - public void focusLost(FocusEvent e) { - attributeChange(); - } - }); - addKeyListener(new KeyAdapter() { - @Override - public void keyTyped(KeyEvent e) { - if (e.getKeyCode() == KeyEvent.VK_ENTER) { - attributeChange(); - } - } - }); - } - } - }; - JPanel useBookMarkPane = TableLayoutHelper.createGapTableLayoutPane( - new Component[][]{new Component[]{useBookMarkCheck}}, - TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.HGAP_LARGE); - final JPanel bookMarkNamePane = TableLayoutHelper.createGapTableLayoutPane( - new Component[][]{new Component[]{new UILabel( - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_BookMark_Name")), bookMarkNameField}}, - TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.HGAP_LARGE); - this.useBookMarkCheck.addChangeListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - boolean selected = MobileAdvanceDefinePane.this.useBookMarkCheck.isSelected(); - Widget widget = MobileAdvanceDefinePane.this.xCreator.toData(); - MobileBookMark bookMark = widget.getMobileBookMark(); - bookMarkNamePane.setVisible(selected); - if (selected && StringUtils.isEmpty(bookMark.getBookMarkName())) { - String name = widget.getWidgetName(); - MobileAdvanceDefinePane.this.bookMarkNameField.setText(name); - bookMark.setBookMarkName(name); - } - } - }); - bookMarkNamePane.setVisible(xCreator.toData().getMobileBookMark().isUseBookMark()); - contentPane.add(useBookMarkPane, BorderLayout.NORTH); - contentPane.add(bookMarkNamePane, BorderLayout.CENTER); - UIExpandablePane uiExpandablePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_BookMark"), 280, 20, contentPane); + this.innerPane = new MobileAdvanceInnerPane(xCreator); + UIExpandablePane uiExpandablePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_BookMark"), 280, 20, innerPane); JPanel wrapPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); wrapPane.add(uiExpandablePane, BorderLayout.NORTH); this.add(wrapPane, BorderLayout.NORTH); - initData(); } - private void initData() { - MobileBookMark bookMark = xCreator.toData().getMobileBookMark(); - String bookMarkName = bookMark.getBookMarkName(); - if (StringUtils.isEmpty(bookMarkName)) { - String widgetName = xCreator.toData().getWidgetName(); - this.bookMarkNameField.setText(widgetName); - bookMark.setBookMarkName(widgetName); - } else { - this.bookMarkNameField.setText(bookMarkName); - } - } private void bindListeners2Widgets() { reInitAllListeners(); @@ -147,53 +62,13 @@ public class MobileAdvanceDefinePane extends MobileWidgetDefinePane { @Override public void populate(FormDesigner designer) { - MobileBookMark bookMark = xCreator.toData().getMobileBookMark(); - this.bookMarkNameField.setText(bookMark.getBookMarkName()); - if (bookMark.isFrozen()) { - this.useBookMarkCheck.setSelected(false); - this.useBookMarkCheck.setEnabled(false); - } else { - this.useBookMarkCheck.setSelected(bookMark.isUseBookMark()); - } + this.innerPane.populate(); this.bindListeners2Widgets(); } @Override public void update() { - MobileBookMark bookMark = xCreator.toData().getMobileBookMark(); - bookMark.setUseBookMark(this.useBookMarkCheck.isSelected()); - String newBookMarkName = this.bookMarkNameField.getText(); - DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); - if (ComparatorUtils.equals(newBookMarkName, bookMark.getBookMarkName())) { - return; - } - if (!isExist(newBookMarkName)) { - bookMark.setBookMarkName(newBookMarkName); - } else { - FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_BookMark_Rename_Failure"), - com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), - JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); - this.bookMarkNameField.setText(bookMark.getBookMarkName()); - } - } - - private boolean isExist(String name) { - Form form = WidgetPropertyPane.getInstance().getEditingFormDesigner().getTarget(); - WLayout container = form.getContainer(); - WSortLayout wSortLayout = (WSortLayout) container.getWidget(container.getWidgetCount() - 1); - List list = wSortLayout.getOrderedMobileWidgetList(); - for (String value : list) { - Widget widget = form.getWidgetByName(value); - if (widget != null && ComparatorUtils.equals(widget.getMobileBookMark().getBookMarkName(), name)) { - return true; - } - CRBoundsWidget boundsWidget = (CRBoundsWidget) wSortLayout.getWidget(value); - if (boundsWidget != null && ComparatorUtils.equals(boundsWidget.getWidget().getMobileBookMark().getBookMarkName(), name)) { - return true; - } - } - return false; + this.innerPane.update(); } } diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java index 3f3d34eaf7..d4f1c0a114 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java @@ -15,6 +15,7 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.mainframe.widget.accessibles.AccessibleTemplateStyleEditor; import com.fr.design.mainframe.widget.accessibles.MobileTemplateStylePane; +import com.fr.design.widget.ui.designer.mobile.component.MobileAdvanceInnerPane; import com.fr.design.widget.ui.designer.mobile.component.MobileBookMarkUsePane; import com.fr.design.widget.ui.designer.mobile.component.MobileComponentMarginPane; import com.fr.design.widget.ui.designer.mobile.component.MobileComponentLayoutIntervalPane; @@ -33,6 +34,7 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { private MobileComponentMarginPane marginPane; private MobileComponentLayoutIntervalPane intervalPane; private MobileBookMarkUsePane mobileBookMarkUsePane; + private MobileAdvanceInnerPane mobileAdvanceInnerPane; public TabMobileWidgetDefinePane(XCreator xCreator) { this.xCreator = xCreator; @@ -70,9 +72,12 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { intervalPane = new MobileComponentLayoutIntervalPane(FormTabPaddingAttrMark.XML_TAG); if (FormDesignerUtils.isAppRelayout(designer)) { mobileBookMarkUsePane = new MobileBookMarkUsePane(); - innerAdvancePane.add(mobileBookMarkUsePane, BorderLayout.SOUTH); + mobileAdvanceInnerPane = new MobileAdvanceInnerPane(xCreator); + innerAdvancePane.add(mobileBookMarkUsePane, BorderLayout.CENTER); + innerAdvancePane.add(mobileAdvanceInnerPane, BorderLayout.SOUTH); + } - innerAdvancePane.add(marginPane, BorderLayout.CENTER); + innerAdvancePane.add(marginPane, BorderLayout.NORTH); UIExpandablePane advancePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 20, innerAdvancePane); UIExpandablePane layoutPane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Layout"), 280, 20, intervalPane); //高级 @@ -100,6 +105,9 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { if (mobileBookMarkUsePane != null) { mobileBookMarkUsePane.populate(xCreator); } + if (mobileAdvanceInnerPane != null) { + mobileAdvanceInnerPane.populate(); + } } @Override @@ -116,5 +124,8 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { if (mobileBookMarkUsePane != null) { mobileBookMarkUsePane.update(xCreator); } + if (mobileAdvanceInnerPane != null) { + this.mobileAdvanceInnerPane.update(); + } } } diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileAdvanceInnerPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileAdvanceInnerPane.java new file mode 100644 index 0000000000..33a957479b --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileAdvanceInnerPane.java @@ -0,0 +1,169 @@ +package com.fr.design.widget.ui.designer.mobile.component; + +import com.fr.design.constants.LayoutConstants; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.FineJOptionPane; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.itextfield.UITextField; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.main.Form; +import com.fr.form.ui.Widget; +import com.fr.form.ui.container.WLayout; +import com.fr.form.ui.container.WSortLayout; +import com.fr.form.ui.mobile.MobileBookMark; +import com.fr.form.ui.widget.CRBoundsWidget; +import com.fr.general.ComparatorUtils; +import com.fr.general.IOUtils; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.*; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import java.util.List; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/4/17 + */ +public class MobileAdvanceInnerPane extends BasicPane { + + private XCreator xCreator; + private UICheckBox useBookMarkCheck; + private UITextField bookMarkNameField; + + + public MobileAdvanceInnerPane(XCreator xCreator) { + this.xCreator = xCreator; + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + initComponent(); + } + + private void initComponent() { + JPanel contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + this.useBookMarkCheck = new UICheckBox(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_Use_BookMark"), false); + this.bookMarkNameField = new UITextField() { + @Override + protected void initListener() { + if (shouldResponseChangeListener()) { + addFocusListener(new FocusAdapter() { + @Override + public void focusLost(FocusEvent e) { + attributeChange(); + } + }); + addKeyListener(new KeyAdapter() { + @Override + public void keyTyped(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + attributeChange(); + } + } + }); + } + } + }; + JPanel useBookMarkPane = TableLayoutHelper.createGapTableLayoutPane( + new Component[][]{new Component[]{useBookMarkCheck}}, + TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.HGAP_LARGE); + final JPanel bookMarkNamePane = TableLayoutHelper.createGapTableLayoutPane( + new Component[][]{new Component[]{new UILabel( + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_BookMark_Name")), bookMarkNameField}}, + TableLayoutHelper.FILL_LASTCOLUMN, IntervalConstants.INTERVAL_L1, LayoutConstants.HGAP_LARGE); + this.useBookMarkCheck.addChangeListener(new ChangeListener() { + @Override + public void stateChanged(ChangeEvent e) { + boolean selected = MobileAdvanceInnerPane.this.useBookMarkCheck.isSelected(); + Widget widget = MobileAdvanceInnerPane.this.xCreator.toData(); + MobileBookMark bookMark = widget.getMobileBookMark(); + bookMarkNamePane.setVisible(selected); + if (selected && StringUtils.isEmpty(bookMark.getBookMarkName())) { + String name = widget.getWidgetName(); + MobileAdvanceInnerPane.this.bookMarkNameField.setText(name); + bookMark.setBookMarkName(name); + } + } + }); + bookMarkNamePane.setVisible(xCreator.toData().getMobileBookMark().isUseBookMark()); + contentPane.add(useBookMarkPane, BorderLayout.NORTH); + contentPane.add(bookMarkNamePane, BorderLayout.CENTER); + this.add(contentPane); + initData(); + } + + private void initData() { + MobileBookMark bookMark = xCreator.toData().getMobileBookMark(); + String bookMarkName = bookMark.getBookMarkName(); + if (StringUtils.isEmpty(bookMarkName)) { + String widgetName = xCreator.toData().getWidgetName(); + this.bookMarkNameField.setText(widgetName); + bookMark.setBookMarkName(widgetName); + } else { + this.bookMarkNameField.setText(bookMarkName); + } + } + + public void populate() { + MobileBookMark bookMark = xCreator.toData().getMobileBookMark(); + this.bookMarkNameField.setText(bookMark.getBookMarkName()); + if (bookMark.isFrozen()) { + this.useBookMarkCheck.setSelected(false); + this.useBookMarkCheck.setEnabled(false); + } else { + this.useBookMarkCheck.setSelected(bookMark.isUseBookMark()); + } + } + + public void update() { + MobileBookMark bookMark = xCreator.toData().getMobileBookMark(); + bookMark.setUseBookMark(this.useBookMarkCheck.isSelected()); + String newBookMarkName = this.bookMarkNameField.getText(); + DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); + if (ComparatorUtils.equals(newBookMarkName, bookMark.getBookMarkName())) { + return; + } + if (!isExist(newBookMarkName)) { + bookMark.setBookMarkName(newBookMarkName); + } else { + FineJOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Mobile_BookMark_Rename_Failure"), + com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Form_Joption_News"), + JOptionPane.ERROR_MESSAGE, IOUtils.readIcon("com/fr/design/form/images/joption_failure.png")); + this.bookMarkNameField.setText(bookMark.getBookMarkName()); + } + } + + private boolean isExist(String name) { + Form form = WidgetPropertyPane.getInstance().getEditingFormDesigner().getTarget(); + WLayout container = form.getContainer(); + WSortLayout wSortLayout = (WSortLayout) container.getWidget(container.getWidgetCount() - 1); + List list = wSortLayout.getOrderedMobileWidgetList(); + for (String value : list) { + Widget widget = form.getWidgetByName(value); + if (widget != null && ComparatorUtils.equals(widget.getMobileBookMark().getBookMarkName(), name)) { + return true; + } + CRBoundsWidget boundsWidget = (CRBoundsWidget) wSortLayout.getWidget(value); + if (boundsWidget != null && ComparatorUtils.equals(boundsWidget.getWidget().getMobileBookMark().getBookMarkName(), name)) { + return true; + } + } + return false; + } + + @Override + protected String title4PopupWindow() { + return "MobileAdvanceInnerPane"; + } +} diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java index 2492650972..06e1c39d3d 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java @@ -11,9 +11,12 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.utils.gui.UIComponentUtils; import com.fr.design.widget.FRWidgetFactory; +import com.fr.form.main.Form; import com.fr.form.ui.FormWidgetHelper; import com.fr.form.ui.Widget; +import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.WSortLayout; +import com.fr.form.ui.widget.CRBoundsWidget; import com.fr.stable.ArrayUtils; import javax.swing.BorderFactory; @@ -97,6 +100,22 @@ public class MobileComponentFrozenPane extends BasicPane { map.put(value, false); } uiComboCheckBox.setSelectedValues(map); + if (ArrayUtils.isEmpty(uiComboCheckBox.getSelectedValues()) || !uiComboCheckBox.isEnabled()) { + uiComboCheckBox.setEnabled(!shouldFrozen()); + } + } + + private boolean shouldFrozen() { + Form form = WidgetPropertyPane.getInstance().getEditingFormDesigner().getTarget(); + WLayout container = form.getContainer(); + WSortLayout wSortLayout = (WSortLayout) container.getWidget(container.getWidgetCount() - 1); + boolean frozen = false; + List list = wSortLayout.getOrderedMobileWidgetList(); + for (String value : list) { + CRBoundsWidget boundsWidget = (CRBoundsWidget) wSortLayout.getWidget(value); + frozen = frozen || boundsWidget.getWidget().getMobileBookMark().isUseBookMark(); + } + return frozen; } @Override From caeeffcf674e3be80b2a2a69e433424c83f15f71 Mon Sep 17 00:00:00 2001 From: hades Date: Fri, 17 Apr 2020 20:38:28 +0800 Subject: [PATCH 19/28] =?UTF-8?q?fix=20=E6=BC=8F=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/icombocheckbox/UIComboCheckBox.java | 8 ++++++++ .../com/fr/design/os/impl/MacOsAddListenerAction.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java b/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java index e2a5719d4b..0652f9cf8f 100644 --- a/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java +++ b/designer-base/src/main/java/com/fr/design/gui/icombocheckbox/UIComboCheckBox.java @@ -360,6 +360,14 @@ public class UIComboCheckBox extends JComponent implements UIObserver, GlobalNam popup.setSelectedValue(map); } + @Override + public void setEnabled(boolean enabled) { + super.setEnabled(enabled); + this.popup.setEnabled(enabled); + this.editor.setEnabled(enabled); + this.arrowButton.setEnabled(enabled); + } + /** * 简单的测试demo * @param args diff --git a/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java b/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java index f33527ccbb..1ff796a1dc 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/MacOsAddListenerAction.java @@ -27,7 +27,7 @@ public class MacOsAddListenerAction implements OSBasedAction { Class quitHandler = Class.forName("com.apple.eawt.QuitHandler"); Object quitInstance = getProxy(quitHandler, "handleQuitRequestWith", new QuitAction()); Class aboutHandler = Class.forName("com.apple.eawt.AboutHandler"); - Object aboutInstance = getProxy(aboutHandler, "", new AboutAction()); + Object aboutInstance = getProxy(aboutHandler, "handleAbout", new AboutAction()); Reflect.on(Reflect.on(app).call("getApplication").get()).call("setQuitHandler", quitInstance) .call("setAboutHandler", aboutInstance); } catch (ClassNotFoundException e) { From fddd95418ed168948795da459a02c03626ddd7de Mon Sep 17 00:00:00 2001 From: hades Date: Sat, 18 Apr 2020 13:43:02 +0800 Subject: [PATCH 20/28] =?UTF-8?q?MOBILE-26198=20&&=20MOBILE-26189=20?= =?UTF-8?q?=E4=BA=A4=E4=BA=92=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cardlayout/XWCardMainBorderLayout.java | 4 +- .../MobileBookMarkCombinePropertyUI.java | 36 ++++++++++ .../design/mainframe/WidgetPropertyPane.java | 3 +- .../mobile/MobileBookMarkCombinePane.java | 69 +++++++++++++++++++ .../component/MobileComponentFrozenPane.java | 16 ++--- 5 files changed, 117 insertions(+), 11 deletions(-) create mode 100644 designer-form/src/main/java/com/fr/design/designer/properties/mobile/MobileBookMarkCombinePropertyUI.java create mode 100644 designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileBookMarkCombinePane.java diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index c51fe491e4..682b92e698 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -16,7 +16,7 @@ import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.designer.creator.XWidgetCreator; -import com.fr.design.designer.properties.mobile.MobileBooKMarkUsePropertyUI; +import com.fr.design.designer.properties.mobile.MobileBookMarkCombinePropertyUI; import com.fr.design.form.util.FormDesignerUtils; import com.fr.design.form.util.XCreatorConstants; import com.fr.design.fun.WidgetPropertyUIProvider; @@ -518,7 +518,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout { @Override public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { if (FormDesignerUtils.isAppRelayout(WidgetPropertyPane.getInstance().getEditingFormDesigner())) { - return new WidgetPropertyUIProvider[] {new MobileBooKMarkUsePropertyUI(this)}; + return new WidgetPropertyUIProvider[] {new MobileBookMarkCombinePropertyUI(this)}; } else { return super.getWidgetPropertyUIProviders(); } diff --git a/designer-form/src/main/java/com/fr/design/designer/properties/mobile/MobileBookMarkCombinePropertyUI.java b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/MobileBookMarkCombinePropertyUI.java new file mode 100644 index 0000000000..29bc2fb9aa --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/designer/properties/mobile/MobileBookMarkCombinePropertyUI.java @@ -0,0 +1,36 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.impl.AbstractWidgetPropertyUIProvider; +import com.fr.design.gui.itable.AbstractPropertyTable; +import com.fr.design.widget.ui.designer.mobile.MobileBookMarkCombinePane; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/4/18 + */ +public class MobileBookMarkCombinePropertyUI extends AbstractWidgetPropertyUIProvider { + + private XCreator xCreator; + + public MobileBookMarkCombinePropertyUI(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new MobileBookMarkCombinePane(xCreator); + } + + @Override + public String tableTitle() { + return com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Mobile_Attr"); + } +} diff --git a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java index 93533b7728..7fb6f20143 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java @@ -6,6 +6,7 @@ import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.events.DesignerEditListener; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.*; +import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.designer.properties.EventPropertyTable; import com.fr.design.designer.properties.mobile.MobileBookMarkPropertyUI; @@ -180,7 +181,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper if (selection != null && xCreator != null) { embeddedPropertyUIProviders = selection.getSelectedCreator().getWidgetPropertyUIProviders(); if(!designer.getDesignerMode().isFormParameterEditor()) { - if (!xCreator.acceptType(XWAbsoluteLayout.class, XWFitLayout.class, XWCardTagLayout.class) && FormDesignerUtils.isAppRelayout(designer)) { + if (!xCreator.acceptType(XWAbsoluteLayout.class, XWFitLayout.class, XWCardTagLayout.class, XWCardMainBorderLayout.class) && FormDesignerUtils.isAppRelayout(designer)) { embeddedPropertyUIProviders = ArrayUtils.insert(0, embeddedPropertyUIProviders, new MobileBookMarkPropertyUI(xCreator)); } if (xCreator.supportMobileStyle()) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileBookMarkCombinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileBookMarkCombinePane.java new file mode 100644 index 0000000000..cd46026017 --- /dev/null +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/MobileBookMarkCombinePane.java @@ -0,0 +1,69 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.widget.ui.designer.mobile.component.MobileAdvanceInnerPane; +import com.fr.design.widget.ui.designer.mobile.component.MobileBookMarkUsePane; + +import javax.swing.*; +import java.awt.*; + +/** + * @author hades + * @version 10.0 + * Created by hades on 2020/4/18 + */ +public class MobileBookMarkCombinePane extends MobileWidgetDefinePane { + + private MobileBookMarkUsePane mobileBookMarkUsePane; + private MobileAdvanceInnerPane mobileAdvanceInnerPane; + private XCreator xCreator; + + + public MobileBookMarkCombinePane(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + public void initPropertyGroups(Object source) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); + this.mobileAdvanceInnerPane = new MobileAdvanceInnerPane(xCreator); + this.mobileBookMarkUsePane = new MobileBookMarkUsePane(); + panel.add(this.mobileBookMarkUsePane, BorderLayout.NORTH); + panel.add(this.mobileAdvanceInnerPane, BorderLayout.CENTER); + UIExpandablePane uiExpandablePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 20, panel); + this.add(uiExpandablePane, BorderLayout.NORTH); + } + + private void bindListeners2Widgets() { + reInitAllListeners(); + AttributeChangeListener changeListener = new AttributeChangeListener() { + @Override + public void attributeChange() { + update(); + } + }; + this.addAttributeChangeListener(changeListener); + } + + private void reInitAllListeners() { + initListener(this); + } + + @Override + public void populate(FormDesigner designer) { + this.mobileBookMarkUsePane.populate(xCreator); + this.mobileAdvanceInnerPane.populate(); + this.bindListeners2Widgets(); + } + + @Override + public void update() { + this.mobileBookMarkUsePane.update(xCreator); + this.mobileAdvanceInnerPane.update(); + } +} diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java index 06e1c39d3d..de86a07f2b 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/component/MobileComponentFrozenPane.java @@ -61,6 +61,7 @@ public class MobileComponentFrozenPane extends BasicPane { } List widgetList = ((WSortLayout) selectedModel).getNonContainerWidgetList(); + widgetList.removeAll(frozenWidgets()); return widgetList.toArray(new String[0]); } @@ -100,22 +101,21 @@ public class MobileComponentFrozenPane extends BasicPane { map.put(value, false); } uiComboCheckBox.setSelectedValues(map); - if (ArrayUtils.isEmpty(uiComboCheckBox.getSelectedValues()) || !uiComboCheckBox.isEnabled()) { - uiComboCheckBox.setEnabled(!shouldFrozen()); - } } - private boolean shouldFrozen() { + private List frozenWidgets() { Form form = WidgetPropertyPane.getInstance().getEditingFormDesigner().getTarget(); WLayout container = form.getContainer(); WSortLayout wSortLayout = (WSortLayout) container.getWidget(container.getWidgetCount() - 1); - boolean frozen = false; - List list = wSortLayout.getOrderedMobileWidgetList(); + List list = wSortLayout.getNonContainerWidgetList(); + List widgets = new ArrayList<>(); for (String value : list) { CRBoundsWidget boundsWidget = (CRBoundsWidget) wSortLayout.getWidget(value); - frozen = frozen || boundsWidget.getWidget().getMobileBookMark().isUseBookMark(); + if (boundsWidget.getWidget().getMobileBookMark().isUseBookMark()) { + widgets.add(value); + } } - return frozen; + return widgets; } @Override From 9a0471d7aa241f628718e6dd7d347ac8641b0e98 Mon Sep 17 00:00:00 2001 From: hades Date: Sat, 18 Apr 2020 22:03:10 +0800 Subject: [PATCH 21/28] =?UTF-8?q?=20MOBILE-26189=20=E5=92=8C=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E7=90=86=E8=A7=A3=E6=9C=89=E5=87=BA=E5=85=A5=20?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/cardlayout/XWCardMainBorderLayout.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index 682b92e698..c539f7044d 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -16,7 +16,7 @@ import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.designer.creator.XWidgetCreator; -import com.fr.design.designer.properties.mobile.MobileBookMarkCombinePropertyUI; +import com.fr.design.designer.properties.mobile.MobileBooKMarkUsePropertyUI; import com.fr.design.form.util.FormDesignerUtils; import com.fr.design.form.util.XCreatorConstants; import com.fr.design.fun.WidgetPropertyUIProvider; @@ -518,7 +518,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout { @Override public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { if (FormDesignerUtils.isAppRelayout(WidgetPropertyPane.getInstance().getEditingFormDesigner())) { - return new WidgetPropertyUIProvider[] {new MobileBookMarkCombinePropertyUI(this)}; + return new WidgetPropertyUIProvider[] {new MobileBooKMarkUsePropertyUI(this)}; } else { return super.getWidgetPropertyUIProviders(); } From 39a5781cae243738f10101a0cfc1421b26b3daae Mon Sep 17 00:00:00 2001 From: Tomorrow Date: Mon, 20 Apr 2020 10:43:37 +0800 Subject: [PATCH 22/28] =?UTF-8?q?CHART-13531:=20=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E4=BB=AA=E8=A1=A8=E7=9B=98=E8=AE=BE=E8=AE=A1=E5=99=A8=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E4=B8=AD=E7=9A=84=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/van/chart/gauge/images/cuvette.png | Bin 706 -> 574 bytes .../com/fr/van/chart/gauge/images/pointer.png | Bin 1495 -> 1581 bytes .../fr/van/chart/gauge/images/pointer_180.png | Bin 1078 -> 1164 bytes .../com/fr/van/chart/gauge/images/ring.png | Bin 1638 -> 1223 bytes .../com/fr/van/chart/gauge/images/slot.png | Bin 1484 -> 1113 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/designer-chart/src/main/resources/com/fr/van/chart/gauge/images/cuvette.png b/designer-chart/src/main/resources/com/fr/van/chart/gauge/images/cuvette.png index 5f68049e8b2258d16875a806d02f5697fbff22e9..39f034740e050c304fb21313a81f0f93d0ce370a 100644 GIT binary patch delta 541 zcmV+&0^B2$?rD-o$Rotpg>*LJ1;QgF4Siey1=XxX=Zce{rLYtcB#_XhnM0=#o7{Or zPV$Vj^7;49?0z@1qm|c+qF@#59xGxF>YxtlpbqMw4(gx|>VKgBvJgTqgwSic;9dFO zZ?M)2`}|Z2)9JJa(Cu~?YV-VS#<VMbs-@N*G@uzef+L1RSzw0`vgDx}?>4-?@s&?JH{{=jDWsL zk5qLgBFDf!FayS_Iu?-;uxs-Ms+x<)36QI5)^^a(Kn`R8sv1OOA2;1XTY|q&f0LPp9k3o68ow^5RpMen^dMJmff;+XMYAf28I@E5;Ln3>Z|h zH_tLF=iEjL1oO!%!0pPYZ4%q?q>`z!4Ey#QKv2~jcw^OYX3yoz%CEe<)}7IzWuya~ zs_LHUe>J0u&n_@h)$Iy&VohlfZF5CYL?3CIc5b58@n3fMUDrV!)IlB8K^@dV9n?V` f)IlAzRTg#$jL}@tl(kcu00000NkvXXu0mjfZQTc= delta 674 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 bp8x{@UVOgbo@<@z00000NkvXXu0mjfacBIX diff --git a/designer-chart/src/main/resources/com/fr/van/chart/gauge/images/ring.png b/designer-chart/src/main/resources/com/fr/van/chart/gauge/images/ring.png index beeaecbb54c650068196a5bf1e9f01d388c0c106..10d0b637ec168befd5be4eb42630d65d0c592f24 100644 GIT binary patch delta 1195 zcmV;c1XTOx495wOEPoOJ01FZU(%pXi000DeNkl=fa*$UX7(mUr3@_Gvn9$qS=Qn0eA>tp5wUnYORH+ zhBBI33Hx6qsf*FH&2Bbt0L``y0Jk`fyW7y9{?*XXi#WZI?Y$yFv%P$YF6;_Lf~X^JIsE#ATly zr`ikK*d<9qI2?weC}z_Ffc|oFwye;75vLc-AWwJFn1B4DxnM{DU|AO3-Q93Ho%zD} zZe4P8Y9;J9+jvfQ()ez`0XtQEx{@Rbuh*LocDS5;EgAGxlDcRXu4Dc7vNsO5+YO2` zjfU@Q3VP@9&IL0uaM@=s$&+TD^>{pHQ$C*O`)dZeCzDsrcGqHZvXGo*7{+Yse9b^( zY0_sLJAcP96_=7Om&a#O%aRFQviU)=PAr?idYKnKQEVpY0Pel z2ng!IywU7-dp^}vKM9yE1_FYLpH~xb(8K}MpU+Zo&;;hTBm@K%b6XPJP7=SpyBU#$ zmRnj;l}m-9LC5Y3M{3!nz<*x*`?ZX~t_mkjV1KxWK~mQ7^v%8~$iQWe|7A6C;PL-W z;q9aejP|k!2r3ftzWPeO`*b@<{P1}*dRlGx*kwas2Zg0z8hvgGi_cPx0Xp-wYxl^~ zqlZC4)-kswVfZ+M(Own_S;zE0N%XjE80ezmc97`npzu;qG1|+b$7RFQh=PGGx^W8c zv48tQ&PhLgb?i`{CS@H7S%=#}ntsndE|bfVq;_atQ4|D&!JO-J97oh7bURrk$E(}X z!(!Y)6NeUU{GL62pok3fqA2Do%4?IOZH%^I9DBf5eiIP{!EE?p%|KgdZQ3{%+*5PB zT8>GQl&?meuNmn0p!Z%oqvpibuNxvnrGNY$l%{D2hr_1Lvr;>SB|l!e9m?;YYSOX(;wu?Z(J`|wLY3ke`6!;V32_{Ew$!zjB^XXL z%Og!>?wxuPk}s}l3TshMw-82j1Qmu*9^)qeK z%}PL4%%d4A^p!**%Iie4JaXl;&Xu}q-9ke7eJ`2v*0hW&o;;TJj}LZUYY0(aOcTxQ zwV}~_ZH%_jLTl6GgWh}9S_@(Qp(M%zwLmRU3)BL&KrPUt>|dGn^U4su5TO77002ov JPDHLkV1oFxQ=0$) delta 1613 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 delta 1458 zcmV;j1x@+z z`@Hu$rTSN>{1JnRDKn+j>)BrU= z7Zpy=$`2m<^@#{$slFCt+`)+C^v5_e{XUD2hwUO8aPaa^q8w_h+4R77dbP!r>R8u= z<%7;MwHG78?tjTJ>tt9SF&tKwg}0j03X&xW$?+IYV<^`w1y+gC_jZ-9JD{YvVJQVY z)HV9z`Jn0JOA+45i5A52B9Jfb$G9C*EP~>Z5Xuo_fjjNWt5qAuzz-Xq97`pDuQul>-a3^nT|6F>xCjqC>9E$0&Dcocekv$d!<8p#h?ux z=X~cw=IfC3FwHZ^r}C}ww|1819$HF0pPZVk`g@jpb0W-Ts^aJlBu)t`%A570^(LrzJMwpw4nCU2wELJi-N&m zeQ9aw{EzH=%s=H znx39UGcz-8kH_q`9;l3cpC}?0t3ax z#bwFN*Q6pN*e5SbwggBRuBn0qak*T>IH^|iEZ&DL7K^91w|8UOLcocbWjDQrz`~R4 zoLmGJ7P3Ayk3o^c;dnhQpb*wwmaIp-FV>X*TU0q#kbO(jlmF0zmeNwxH zynoyo$O6^cv~|sAo5!msaWban1wlYgr?WzL(4Z{1>A4BP0M+m!tS9i}RZtZKr-w-% zw2s*J;bah}UaT%+J4)4jPg<2c3tAhsqu$>BFF(mOK5p;XCj%=rgc$ zVBH5Df>Qvl$Lfdo#I_#me0$}|gd-Qn6@TasIwc7Sfh>e|#2e5^7tukihlxjBq-ZzR zA$3F&Ky~Q)2{=I3;ol8vJUdK(ljr&S)3E9$o<`Kzm1;D2X#-Z(YYRy|@wAU<5$Ook z({-ftV4hBC_Hq3W-X@081`jOWza`3BMZ|lmr~Kr3J$VN*gom|{3}r;-^%1JGe1CN3 z!8g2KZ@NJfPbcrUoLY?&FEkuCxSn_fv<2JttBVwwzW`lNAk_tI8#s+B3!Mbu-PqOw zw&v#M+vsnyEW7-H2+`DXwD#L8vy~lFimC^W|6Z#tgY8*Mu`Q(9vVDDhPhyWMlnyVq z-OHY%R!$Dk`7jc|7ifQf{{|clA284Z-^x^GB|DpS@ARhC Date: Mon, 20 Apr 2020 11:55:30 +0800 Subject: [PATCH 23/28] =?UTF-8?q?CHART-13531:=20=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E7=BB=84=E5=90=88=E5=9B=BE=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E9=9D=A2=E6=9D=BF=E4=B8=AD=E7=9A=84=E4=BB=AA?= =?UTF-8?q?=E8=A1=A8=E7=9B=98=E7=9A=84=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/images/custom/icon/cuvette.png | Bin 15846 -> 574 bytes .../custom/images/custom/icon/pointer_180.png | Bin 16361 -> 1164 bytes .../custom/images/custom/icon/pointer_360.png | Bin 16778 -> 1581 bytes .../chart/custom/images/custom/icon/ring.png | Bin 16824 -> 1223 bytes .../chart/custom/images/custom/icon/slot.png | Bin 16673 -> 1113 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/cuvette.png b/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/cuvette.png index 680f9ed18eda907e323e693eb257a15f5741f169..39f034740e050c304fb21313a81f0f93d0ce370a 100644 GIT binary patch delta 541 zcmV+&0^B2$?rD-o$Rotpg>*LJ1;QgF4Siey1=XxX=Zce{rLYtcB#_XhnM0=#o7{Or zPV$Vj^7;49?0z@1qm|c+qF@#59xGxF>YxtlpbqMw4(gx|>VKgBvJgTqgwSic;9dFO zZ?M)2`}|Z2)9JJa(Cu~?YV-VS#<VMbs-@N*G@uzef+L1RSzw0`vgDx}?>4-?@s&?JH{{=jDWsL zk5qLgBFDf!FayS_Iu?-;uxs-Ms+x<)36QI5)^^a(Kn`R8sv1OOA2;1XTY|q&f0LPp9k3o68ow^5RpMen^dMJmff;+XMYAf28I@E5;Ln3>Z|h zH_tLF=iEjL1oO!%!0pPYZ4%q?q>`z!4Ey#QKv2~jcw^OYX3yoz%CEe<)}7IzWuya~ zs_LHUe>J0u&n_@h)$Iy&VohlfZF5CYL?3CIc5b58@n3fMUDrV!)IlB8K^@dV9n?V` f)IlAzRTg#$jL}@tl(kcu00000NkvXXu0mjfvgimr literal 15846 zcmeI3dsGuw9>)hL@+eSjYm3%L496GiWF{dANeodWDzL^<%r1|*TPBkUOd*+&Odx=s zQmw64T^|dIfG%6hZo5U+Z40d^i|$Ira=OBbigN0@zG{6Os4wbz3VW0Ah!>dSIqjbP zXL1fqe)o63zu(N~{(d*}&)t~3Vp(YLlwbrwLK73TDd4ICf0Donu954lOTZ<_nviZs zkf)z>{rMmjRS^iHyhZEN*fia870H-Igpn~&BB$93W+RAtq0>r`ITR}}P+7DkR@if> zSty{5vBFfD4%b=Zscbr-$VRO!TA?S4a!937xKII$*^Lvsu=v!mxsZ0#QM}v;Sx+DLBR~v zUT9$nCu*@rdV&na(NcEOMq62$u?Spo2?OI`V}(LjqT$crbD6Efi7fU(c7P)0B&?WN zgkxigjO4J!>agXyZ_P+zR4!$vEUX>q#AE8L*$m6rvzc*H4!g%q4Aw-a8_qrE{hG~V zrna+7@&STDq+=@W`a&y(rBHUpVI!#}`QT9^$9j5}HjOOKW072*aqpdS(&NZn9*@jj z3Z4~GgJ)I6+bDu%YV$_QjDjBFp@y~Dts7kLOo|#Y#9b=?Tg>VcBu9D&^ag28iubFTR&_70kC7vjX z_gt?yMp9*BY-WPh&}Jfw!mO4oH8wKnHFLPCRPjtMV*|HEX`prlMJAt)kRZju>>5_tt1mFQ&~ z4fZ`E*K3aJS&SeVNy-(tjFO;)l%P-rB~_pX1$Zih++ZMN5|dG`6c42sBh08&3A7zl zYoS*agIad)Y%8g}$47@8xwLzSvJy5scdevX1{%EHxNo>1;t;|H-bCbodEQE^$ILY}1aJy9Q* z!Qs`I>$f16{vRxaoyh-j%kX4f^&^%6-l6_~%P>;KWHw>RqKq1BsDOtCo^0hj>-l(R z4R!12PE@;ooK&ETK}8Yn?g6bmYHTF4XMUQi8*?4*`7sh4d@!-=|De>{4NKFxrQU8> zI->lAg=RI9!EDg5m&)}E>e=2`f|or?BbUjdWoir_h84-Qlgdrg(qJF9yY>^AVo(D+ z#uTP|2>}pyGPlsnF(~vbmDg*Ty9Yg^;H3||Z(_qQoTJ)vco+LAzl=Q5PZ<@8#V3J) zaGN|XZa$Eg#{~i5HhEm!d>}863j)Gz^0>J9Kwcgf1cckZj;Bw%?I-GxF8_hCXb7o59H->K|r`o9v3$s$jjq`fN+~UE^a=Mm&XMG;Wl|( z+k_@xsujzz~N2-nUJDGkfK=#QnC&~9u9!(w+Q0E5#&ZD zI6PX8ATKgIUTay3Ab#MaRh-^={#JQh&P&UlFKON`&zKeZ@zr;QA&#ltGRJpEtHtHd zwzgQ#zZ#a9u!6=;%m_>iYLY6CO&IX$>%5R;|MsYVOkUXRT_st+zmk0Rd2G_$pz>p) zKP}pH_12Yb+tc;kX*(z7+?*C6eI#YBt$B1Uv}b>NhJ9*Cj(Yv`t*_T7si)7W{K~hwes9o%>-8ml4Ksa;ii;;MK2Tr3KK#<%1M41`EtVZC{&>Rl zNogDPR(MEANODx!+!r>b?euS-nBV@*U(z<)4la)>d+*Sp%DsE1N0kM)7`7WF>6NKr z3$9mD>CV0H+-x*TCaX{GOP>4GOrO2$r`@YNQ=t`tyQ!_MJhJ36+7rL9aq)(((=!ItS?A^?uD14G z>c9Wdi}wmQ>WP5C7 zsRXTAezq;YqCj7*Yx$s560qFo^3u+l((~I={^1)_5}KJYPlnc1`HCtFpG%sTn)ERG zVpPqY+hL8tpO-UrN%NK^75bI?*CEQxXSbC|K2FT^aUyEp|CFV?bbDK8&je-Iz1_?F z6)9hCEXkdTH=T5Tme0n7^h$C1Oh$H1R^`TyijKle;l-w}GcHWcI(u*G#fUwtk>tgl>^Asn$k@V!_k`6#xLr3T|LuuxM5RA;^pnq-bM2qEv*Cg$^NX! zZ)MVl{RsQJgQc@GUU)y_<{yehyMErY?97IKqHnJM=0%b1fl}Wso=a?gH4}gss&Dr_ UV1GHsbrL&q$qH@V;>@-G1&}t=_W%F@ diff --git a/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/pointer_180.png b/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/pointer_180.png index b20420280c86e2573cdf86681f99cdf631c7ca9d..213a052d4c6f169670a8d37e5b566fbb0ddf588f 100644 GIT binary patch delta 1135 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 diff --git a/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/pointer_360.png b/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/pointer_360.png index d4058631fbdfac2c236c06670ddaa08e7bb93023..58b1f0a35bf9f878eddb1c6e943fa660c465de73 100644 GIT binary patch delta 1557 zcmV+w2I~2Wg8{7!kSu=^000XT0n*)m`~Uz2-$_J4RA}DqnoVpIR}jblyN*BBCc!Zw z-xR5k)ReZTs$8hZg$suwlvYHdkvJi7f`d;@azL_j0Vz^0L6taARmG8N4wX2#J)o*l z4y~1gp$ScFq1YjD4C`#x`{CUM z{OsAY-+DZrPi;2a7j<=Y4IATfxtyr$dL*4rPftut{K_!Q696&*nTU*vlM+$InhDrC zIXQWQ=lQs%X_SA<!j;CNs_cDP(@Kl(=^g`op_#)2ZO<008Iec0|RP89u0@XL#nFgy?ip6+!N@_moF)k z$!zvjRi$t^JOtoqrC=)p8I48*TOl{v>gp=3t*zzV6GeZqV4NTb1>>2$gPqLilVIz4~>oD@Z&NF;I_KvTJ(Y#GtDJ{Sz1>+0(ASu7TG zbadcVY!;#@mK7Wg!@$D7PhhoLVYAuL)z#$-27~7qhN-W5!oV<$rN6(wt*57F#A>wy z0PJ=EKvT>5NxRgT3cHI09LCNJv}`m{r&xI48vHey1W2zM~yS03Ic@$sXg&rB0`mukAq+g2FNgrIqKb@e}|)7ii5iHBX)N3y(fR^B+ z?XoPtu-o^hFSi&+dTba=s*Z768&+fmjV>oH>q}_kZ17zF0d?&k?P)Ge)8KNsI*4fT z!0kut+CM`5#VZKp>ailf_SY3zK_FL;`ip;8_6+%6Y`nQIzlK2hssv)8e0=)gZ@gz` zXE(1qJ3HZY?!1g}oCB(w&FdfWcy|1aq9|BcSlH|zKYqOWpxxcwZ#DkAOPBD|FAwti zyNT23%+sT3TImIW5`s~SAP9dSI&|o*ol8|!BwoD0v5t;yqxDWANmAVHc7H`g%hiAI z(KT6?pO)mS9Ea|cCrg4fv!kbGjj1ZZNSmLZ|9xxbvY#Rd0#sE60GN8UYJp})M@K`l zEQ_KjB9%%Zm&@%NsNHUdq9~AMSsWc54FSkj#Yas)b;n|{vG(@%K9*%+u~_yLp}V`g zx4qs?=I7@FCr+HWPDDaA*U`+tz`%bkUDw5}kcMGElB7Zt$YwY5)$Oh~C(dLFHt(`5 zivt4#w*X|SnlKR2dLR&3nwy)uv$1nA3SFAwBloNk78HTX} zII_IF{D;%&{H)YvqnNC(uR{=or!6fl=K=6Uv{uf1W#zi2a^C0j^)4?jkH5JAFQ-73 zNF>I6K3{JoAS-qxVICs2gu~&XOeQ0gW44)0Mlg%lEdZPTXX&$|77|Cv}U_Mq5t z#7<3;B#Omi5Bz@r8367|9!Gyv6m$!)9Y9lGU!QksYHBE%OioCWL~mB|RaGTPk|>!> zPE1Wr4fXZ)dCl_{d!^s0>|nH8?bj@1aR6+7zyH{&Q>QvNp3lt8EDR0~CIILFQ~=qs zmXH0&jLHDtx-HD@C)hg!eb-X^vqlZH23iBHf!09xLH-A~@8O0dEZ7aD00000NkvXX Hu0mjfbF=n# literal 16778 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 diff --git a/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/ring.png b/designer-chart/src/main/resources/com/fr/van/chart/custom/images/custom/icon/ring.png index f3bf1b31d8bd3a46ad86605c78045ce58183f246..10d0b637ec168befd5be4eb42630d65d0c592f24 100644 GIT binary patch delta 1196 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 oTDoPuQ_jL|LqF3Oyt4=1y$FxqxQC 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 From 467217870b2f9f2e645530ee1f2cc65e991e3ee3 Mon Sep 17 00:00:00 2001 From: hades Date: Wed, 22 Apr 2020 15:15:22 +0800 Subject: [PATCH 24/28] =?UTF-8?q?REPORT-30347=20=E5=A4=84=E7=90=86?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/fr/start/LifecycleFatalErrorHandler.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/designer-realize/src/main/java/com/fr/start/LifecycleFatalErrorHandler.java b/designer-realize/src/main/java/com/fr/start/LifecycleFatalErrorHandler.java index 252b01dc1a..ef416416c9 100644 --- a/designer-realize/src/main/java/com/fr/start/LifecycleFatalErrorHandler.java +++ b/designer-realize/src/main/java/com/fr/start/LifecycleFatalErrorHandler.java @@ -1,5 +1,6 @@ package com.fr.start; +import com.fr.common.report.ReportState; import com.fr.design.RestartHelper; import com.fr.design.dialog.ErrorDialog; import com.fr.design.dialog.FineJOptionPane; @@ -10,6 +11,9 @@ import com.fr.exit.DesignerExiter; import com.fr.general.IOUtils; import com.fr.io.utils.ResourceIOUtils; import com.fr.log.FineLoggerFactory; +import com.fr.process.ProcessEventPipe; +import com.fr.process.engine.core.CarryMessageEvent; +import com.fr.process.engine.core.FineProcessContext; import com.fr.stable.StableUtils; import com.fr.stable.lifecycle.ErrorType; import com.fr.stable.lifecycle.FineLifecycleFatalError; @@ -45,6 +49,10 @@ public class LifecycleFatalErrorHandler { public void handle(FineLifecycleFatalError fatal) { SplashContext.getInstance().hide(); + ProcessEventPipe eventPipe = FineProcessContext.getParentPipe(); + if (eventPipe != null) { + eventPipe.fire(new CarryMessageEvent(ReportState.STOP.getValue())); + } map.get(fatal.getErrorType()).handle(fatal); } From 8f8228e8b26c9356183fefbeee1da7930861cfc5 Mon Sep 17 00:00:00 2001 From: Maksim Date: Wed, 22 Apr 2020 18:04:01 +0800 Subject: [PATCH 25/28] =?UTF-8?q?cpt=E4=B8=8Ecptx=E5=8F=A6=E5=AD=98?= =?UTF-8?q?=E4=B8=BA=E6=96=87=E4=BB=B6=E5=90=8D=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/file/FILEChooserPane.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java index 0ca481b09b..96e722d116 100644 --- a/designer-base/src/main/java/com/fr/file/FILEChooserPane.java +++ b/designer-base/src/main/java/com/fr/file/FILEChooserPane.java @@ -505,12 +505,21 @@ public class FILEChooserPane extends BasicPane { if (StringUtils.isEmpty(fileName) || StringUtils.isEmpty(filterExtension) || fileFilter.containsExtension(fileExtension.getExtension())) { return fileName; } - if (!ComparatorUtils.equals(fileNameExtension, filterExtension)) { + if (!ComparatorUtils.equals(fileNameExtension, filterExtension) && !isMapping(fileNameExtension, filterExtension)) { return fileName + filterExtension; } return fileNameWithOutExtension + filterExtension; } + private boolean isMapping(String fromExtension, String toExtension){ + if(FileExtension.CPTX.matchExtension(fromExtension)){ + return FileExtension.CPT.matchExtension(toExtension); + }else if(FileExtension.CPT.matchExtension(fromExtension)){ + return FileExtension.CPTX.matchExtension(toExtension); + } + return false; + } + private void doCancel() { this.locationBtnPane.setPopDir(null); dialogExit(); From 7a5ed6513ff8d2ab094cda755b8327de4488a450 Mon Sep 17 00:00:00 2001 From: hades Date: Wed, 22 Apr 2020 22:20:20 +0800 Subject: [PATCH 26/28] =?UTF-8?q?REPORT-30369=20=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XWCardMainBorderLayout.java | 9 --------- .../designer/creator/cardlayout/XWTabFitLayout.java | 6 +----- .../com/fr/design/mainframe/WidgetPropertyPane.java | 2 +- .../ui/designer/mobile/TabMobileWidgetDefinePane.java | 10 ---------- 4 files changed, 2 insertions(+), 25 deletions(-) diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index c539f7044d..25da3e7754 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -514,13 +514,4 @@ public class XWCardMainBorderLayout extends XWBorderLayout { public boolean isSupportShared() { return true; } - - @Override - public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { - if (FormDesignerUtils.isAppRelayout(WidgetPropertyPane.getInstance().getEditingFormDesigner())) { - return new WidgetPropertyUIProvider[] {new MobileBooKMarkUsePropertyUI(this)}; - } else { - return super.getWidgetPropertyUIProviders(); - } - } } diff --git a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java index f17ac09250..508f3f7dfa 100644 --- a/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java +++ b/designer-form/src/main/java/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java @@ -593,11 +593,7 @@ public class XWTabFitLayout extends XWFitLayout { */ @Override public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { - if (FormDesignerUtils.isAppRelayout(WidgetPropertyPane.getInstance().getEditingFormDesigner())) { - return new WidgetPropertyUIProvider[] {new MobileBookMarkPropertyUI(this), new MobileBooKMarkUsePropertyUI(this)}; - } else { - return new WidgetPropertyUIProvider[0]; - } + return new WidgetPropertyUIProvider[0]; } @Override diff --git a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java index 7fb6f20143..c37b4ba9aa 100644 --- a/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer-form/src/main/java/com/fr/design/mainframe/WidgetPropertyPane.java @@ -181,7 +181,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetProper if (selection != null && xCreator != null) { embeddedPropertyUIProviders = selection.getSelectedCreator().getWidgetPropertyUIProviders(); if(!designer.getDesignerMode().isFormParameterEditor()) { - if (!xCreator.acceptType(XWAbsoluteLayout.class, XWFitLayout.class, XWCardTagLayout.class, XWCardMainBorderLayout.class) && FormDesignerUtils.isAppRelayout(designer)) { + if (!xCreator.acceptType(XWAbsoluteLayout.class, XWFitLayout.class, XWCardTagLayout.class) && FormDesignerUtils.isAppRelayout(designer)) { embeddedPropertyUIProviders = ArrayUtils.insert(0, embeddedPropertyUIProviders, new MobileBookMarkPropertyUI(xCreator)); } if (xCreator.supportMobileStyle()) { diff --git a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java index d4f1c0a114..5919985d59 100644 --- a/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java +++ b/designer-form/src/main/java/com/fr/design/widget/ui/designer/mobile/TabMobileWidgetDefinePane.java @@ -34,7 +34,6 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { private MobileComponentMarginPane marginPane; private MobileComponentLayoutIntervalPane intervalPane; private MobileBookMarkUsePane mobileBookMarkUsePane; - private MobileAdvanceInnerPane mobileAdvanceInnerPane; public TabMobileWidgetDefinePane(XCreator xCreator) { this.xCreator = xCreator; @@ -72,10 +71,7 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { intervalPane = new MobileComponentLayoutIntervalPane(FormTabPaddingAttrMark.XML_TAG); if (FormDesignerUtils.isAppRelayout(designer)) { mobileBookMarkUsePane = new MobileBookMarkUsePane(); - mobileAdvanceInnerPane = new MobileAdvanceInnerPane(xCreator); innerAdvancePane.add(mobileBookMarkUsePane, BorderLayout.CENTER); - innerAdvancePane.add(mobileAdvanceInnerPane, BorderLayout.SOUTH); - } innerAdvancePane.add(marginPane, BorderLayout.NORTH); UIExpandablePane advancePane = new UIExpandablePane(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_Advanced"), 280, 20, innerAdvancePane); @@ -105,9 +101,6 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { if (mobileBookMarkUsePane != null) { mobileBookMarkUsePane.populate(xCreator); } - if (mobileAdvanceInnerPane != null) { - mobileAdvanceInnerPane.populate(); - } } @Override @@ -124,8 +117,5 @@ public class TabMobileWidgetDefinePane extends MobileWidgetDefinePane { if (mobileBookMarkUsePane != null) { mobileBookMarkUsePane.update(xCreator); } - if (mobileAdvanceInnerPane != null) { - this.mobileAdvanceInnerPane.update(); - } } } From 95279dbff846440e731f1ec0b4e3e03a96545c36 Mon Sep 17 00:00:00 2001 From: hades Date: Thu, 23 Apr 2020 14:51:17 +0800 Subject: [PATCH 27/28] =?UTF-8?q?REPORT-29118=20mac=E4=B8=8B=E5=B1=8F?= =?UTF-8?q?=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/design/os/impl/SupportOSImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java b/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java index 5b8d4d2e8d..d799d00466 100644 --- a/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java +++ b/designer-base/src/main/java/com/fr/design/os/impl/SupportOSImpl.java @@ -88,7 +88,7 @@ public enum SupportOSImpl implements SupportOS { NON_GUARDIAN_START { @Override public boolean support() { - return OperatingSystem.isLinux() || Arch.getArch() == Arch.ARM; + return OperatingSystem.isLinux() || Arch.getArch() == Arch.ARM || OperatingSystem.isMacos(); } }, From 0d02b5a02a50431737739edab2fa9e550a4f7ce5 Mon Sep 17 00:00:00 2001 From: hades Date: Fri, 24 Apr 2020 11:07:08 +0800 Subject: [PATCH 28/28] =?UTF-8?q?REPORT-30467=20=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=E6=97=B6=E9=95=BF=E5=BB=B6=E9=95=BF=20=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E4=B8=8E=E7=A1=AE=E5=AE=9A=E5=AF=B9=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/fr/start/DesignerSuperListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java b/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java index f6fa3c9376..f5c9174649 100644 --- a/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java +++ b/designer-realize/src/main/java/com/fr/start/DesignerSuperListener.java @@ -31,7 +31,7 @@ import java.util.concurrent.TimeUnit; public class DesignerSuperListener { private static final DesignerSuperListener INSTANCE = new DesignerSuperListener(); - private static final int ONCE_DELAY = 90; + private static final int ONCE_DELAY = 180; private static final int FIXED_DELAY = 0; private static final int FIXED_FREQ = 2; @@ -116,6 +116,7 @@ public class DesignerSuperListener { @Override protected void okEvent() { dispose(); + DesignerLauncher.getInstance().exit(); } @Override @@ -125,7 +126,6 @@ public class DesignerSuperListener { } }; dialog.setVisible(true); - DesignerLauncher.getInstance().exit(); } private void startFallBackListener() {