From d0b778e4e6fb63d353adcb2445952e6068a0519b Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 5 Jan 2018 11:53:15 +0800 Subject: [PATCH 01/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=3D>1=20=E2=80=9C?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E5=B1=9E=E6=80=A7=E2=80=9D=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E7=95=8C=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/IntervalConstants.java | 2 + .../dialog/mobile/MobileRadioCheckPane.java | 7 + .../com/fr/design/locale/designer.properties | 9 + .../design/locale/designer_en_US.properties | 11 +- .../design/locale/designer_ja_JP.properties | 6 + .../design/locale/designer_ko_KR.properties | 8 + .../design/locale/designer_zh_CN.properties | 11 +- .../design/locale/designer_zh_TW.properties | 9 + .../form/mobile/FormMobileAttrPane.java | 24 ++- .../FormMobileTemplateSettingsPane.java | 155 ++++++++++++++++++ 10 files changed, 234 insertions(+), 8 deletions(-) create mode 100644 designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java diff --git a/designer_base/src/com/fr/design/designer/IntervalConstants.java b/designer_base/src/com/fr/design/designer/IntervalConstants.java index 1f210c70f5..a2a2ee669e 100644 --- a/designer_base/src/com/fr/design/designer/IntervalConstants.java +++ b/designer_base/src/com/fr/design/designer/IntervalConstants.java @@ -27,4 +27,6 @@ public class IntervalConstants { public static final int INTERVAL_W3 = 49; + public static final int INTERVAL_W4 = 22; + } diff --git a/designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java b/designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java index ee38557612..70899aa4bc 100644 --- a/designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java +++ b/designer_base/src/com/fr/design/dialog/mobile/MobileRadioCheckPane.java @@ -1,6 +1,8 @@ package com.fr.design.dialog.mobile; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.event.ChangeListener; +import com.fr.design.event.UIObserverListener; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; @@ -10,6 +12,7 @@ import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.List; @@ -43,6 +46,10 @@ public class MobileRadioCheckPane extends BasicBeanPane { this.add(fitOpsPane); } + public void registerChangeLister(UIObserverListener listener) { + checkBoxes.get(0).registerChangeListener(listener); + } + public int getCurrentState() { return checkBoxes.get(0).isSelected() ? 0 : 1; } diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0337a6be1f..3efb952ca0 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2167,3 +2167,12 @@ FR-Designer_Tab_Template_Four=Template Four FR-Designer_Tab_Template_Five=Template Five FR-Designer_Tab_Template_Six=Template Six FR-Designer_Tab_Display_Position=Display Position +FR-Designer_Set_Mobile_Only_Template=Set as mobile only template +FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size +FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match +FR-Designer_Open_Adaptive_Property_Auto_Match=Open adpative property auto match +FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable +FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out +FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index dc16e87a27..8093b6e4ea 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2165,4 +2165,13 @@ FR-Designer_Tab_Template_Three=Template Three FR-Designer_Tab_Template_Four=Template Four FR-Designer_Tab_Template_Five=Template Five FR-Designer_Tab_Template_Six=Template Six -FR-Designer_Tab_Display_Position=Display Position \ No newline at end of file +FR-Designer_Tab_Display_Position=Display Position +FR-Designer_Set_Mobile_Only_Template=Set as mobile only template +FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size +FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match +FR-Designer_Open_Adaptive_Property_Auto_Match=Open adpative property auto match +FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable +FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out +FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 3b2c34d297..ee834b755b 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2167,3 +2167,9 @@ FR-Designer_Tab_Template_Four= FR-Designer_Tab_Template_Five= FR-Designer_Tab_Template_Six= FR-Designer_Tab_Display_Position= +FR-Designer_Set_Mobile_Only_Template= +FR-Designer_Set_Mobile_Canvas_Size= +FR-Designer_Open_Adaptive_Property_Auto_Match= +FR-Designer_Mobile_Screen_Zoom_In= +FR-Designer_Mobile_Screen_Zoom_Out= +FR-Designer_Adaptive_Property_Auto_Match_Desc= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 92cc47a236..9130aa4e5a 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2167,3 +2167,11 @@ FR-Designer_Tab_Template_Four= FR-Designer_Tab_Template_Five= FR-Designer_Tab_Template_Six= FR-Designer_Tab_Display_Position= +FR-Designer_Set_Mobile_Only_Template= +FR-Designer_Set_Mobile_Canvas_Size= +FR-Designer_Adaptive_Property_Auto_Match= +FR-Designer_Open_Adaptive_Property_Auto_Match= +FR-Designer_Mobile_Screen_Zoom_In= +FR-Designer_Mobile_Screen_Zoom_Out= +FR-Designer_Mobile_Screen_Zoom_Out_Desc= +FR-Designer_Adaptive_Property_Auto_Match_Desc= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 0e35765fd5..987929be28 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2166,4 +2166,13 @@ FR-Designer_Tab_Template_Three=\u6A21\u677F\u4E09 FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D -FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E \ No newline at end of file +FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E +FR-Designer_Set_Mobile_Only_Template=\u8BBE\u7F6E\u4E3A\u624B\u673A\u7AEF\u4E13\u5C5E\u6A21\u7248 +FR-Designer_Set_Mobile_Canvas_Size=\u8BBE\u7F6E\u4E3A\u624B\u673A\u6A21\u7248\u753B\u5E03\u5927\u5C0F +FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u9002\u5E94\u5C5E\u6027\u81EA\u52A8\u5339\u914D +FR-Designer_Open_Adaptive_Property_Auto_Match=\u5F00\u542F\u81EA\u9002\u5E94\u5C5E\u6027\u81EA\u52A8\u5339\u914D +FR-Designer_Canvas_Size_Lock_Desc=\u753B\u5E03\u5927\u5C0F375*560\uFF0C\u5BBD\u5EA6\u9501\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u4E49 +FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u5C4F\u5E55\u624B\u673A\uFF1A\u9002\u914D +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u673A\uFF1A\u653E\u5927 +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u673A\uFF1A\u538B\u7F29 +FR-Designer_Adaptive_Property_Auto_Match_Desc=\u4E3A\u63D0\u5347\u624B\u673A\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u5E03\u5C40\u529F\u80FD\u65F6\uFF0C\u8BBE\u7F6E\u81EA\u9002\u5E94\u5E03\u5C40\u65B9\u5F0F\u4E0B\u7684\u7EC4\u4EF6\u7F29\u653E\u903B\u8F91\u4E3A"\u6A2A\u5411\u81EA\u9002\u5E94" \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 873d48f7ba..59dee09532 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2166,3 +2166,12 @@ FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D FR-Designer_Tab_Display_Position=\u986F\u793A\u4F4D\u7F6E +FR-Designer_Set_Mobile_Only_Template=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u7AEF\u5C08\u5C6C\u6A21\u7248 +FR-Designer_Set_Mobile_Canvas_Size=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u6A21\u7248\u756B\u5E03\u5927\u5C0F +FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u6211\u8ABF\u6574\u5185\u5BB9\u81EA\u52D5\u5339\u914D +FR-Designer_Open_Adaptive_Property_Auto_Match=\u958B\u555F\u81EA\u6211\u8ABF\u6574\u5185\u5BB9\u81EA\u52D5\u5339\u914D +FR-Designer_Canvas_Size_Lock_Desc=\u756B\u5E03\u5927\u5C0F375*560\uFF0C\u5BEC\u5EA6\u9396\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u7FA9 +FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u8367\u5E55\u624B\u6A5F\uFF1A\u9069\u914D +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u6A5F\uFF1A\u653E\u5927 +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u6A5F\uFF1A\u58D3\u7E2E +FR-Designer_Adaptive_Property_Auto_Match_Desc=\u70BA\u63D0\u5347\u624B\u6A5F\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u4F48\u5C40\u529F\u80FD\u6642\uFF0C\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574\u4F48\u5C40\u7BA1\u9053\u4E0B\u7684\u7D44\u4EF6\u7E2E\u653E\u908F\u8F2F\u70BA\u201C\u6A6B\u5411\u81EA\u6211\u8ABF\u6574\u201D diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java index a4d657e117..b8d1bbb3a0 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -15,6 +15,8 @@ import java.awt.*; public class FormMobileAttrPane extends BasicBeanPane{ //工具栏容器 private MobileToolBarPane mobileToolBarPane; + // 模版设置面板 + private FormMobileTemplateSettingsPane formMobileTemplateSettingsPane; static final int PADDINGHEIGHT = 10; @@ -25,15 +27,25 @@ public class FormMobileAttrPane extends BasicBeanPane{ //现在只有两个panel,填不满自适应对话框,只能为工具栏Panel和h5解析方式panel分别包裹上一层Panel再计算高度,不然会自动 //拉长两个Panel的高度去填满整个对话框。 private void initComponents() { - JPanel jPanel1 = new JPanel(); +// JPanel jPanel1 = new JPanel(); this.setLayout(FRGUIPaneFactory.createBorderLayout()); - jPanel1.setLayout(FRGUIPaneFactory.createBorderLayout()); - jPanel1.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); +// jPanel1.setLayout(FRGUIPaneFactory.createBorderLayout()); +// jPanel1.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + JPanel mobileToolBarPaneWrapper = new JPanel(new BorderLayout()); + mobileToolBarPaneWrapper.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10)); this.mobileToolBarPane = new MobileToolBarPane(); + mobileToolBarPaneWrapper.add(this.mobileToolBarPane, BorderLayout.NORTH); //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 - jPanel1.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + PADDINGHEIGHT)); - jPanel1.add("North", this.mobileToolBarPane); - this.add("North", jPanel1); +// jPanel1.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + PADDINGHEIGHT)); +// jPanel1.add("North", this.mobileToolBarPane); + + JPanel formMobileTemplateSettingsPaneWrapper = new JPanel(new BorderLayout()); + formMobileTemplateSettingsPaneWrapper.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + this.formMobileTemplateSettingsPane = new FormMobileTemplateSettingsPane(); + formMobileTemplateSettingsPaneWrapper.add(this.formMobileTemplateSettingsPane, BorderLayout.NORTH); + + this.add(formMobileTemplateSettingsPaneWrapper, BorderLayout.NORTH); + this.add(mobileToolBarPaneWrapper, BorderLayout.CENTER); } @Override diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java new file mode 100644 index 0000000000..13e74c0873 --- /dev/null +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java @@ -0,0 +1,155 @@ +package com.fr.design.form.mobile; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.dialog.mobile.MobileRadioCheckPane; +import com.fr.design.event.UIObserverListener; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.form.main.mobile.FormMobileAttr; +import com.fr.general.Inter; + +import javax.swing.*; +import javax.swing.border.Border; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/** + * Created by plough on 2018/1/4. + */ +public class FormMobileTemplateSettingsPane extends BasicBeanPane { + + private UICheckBox mobileOnlyCheck; // 设置为手机端专属模版 + private UICheckBox mobileCanvasSizeCheck; // 设置为手机模版画布大小 + private UICheckBox adaptivePropertyAutoMatchCheck; // 自适应属性自动匹配 + + public FormMobileTemplateSettingsPane() { + this.initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow()); + + JPanel contentPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + contentPane.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L1, IntervalConstants.INTERVAL_L5, IntervalConstants.INTERVAL_L2, 0)); + + JPanel mobileSettingsPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + mobileSettingsPane.setVisible(false); + mobileSettingsPane.add(getMobileCanvasSizeCheckPane(), BorderLayout.NORTH); + mobileSettingsPane.add(getAdaptivePropertyAutoMatchCheckPane(), BorderLayout.CENTER); + + + mobileOnlyCheck = new UICheckBox(Inter.getLocText("FR-Designer_Set_Mobile_Only_Template")); + mobileOnlyCheck.registerChangeListener(new UIObserverListener() { + @Override + public void doChange() { + mobileSettingsPane.setVisible(mobileOnlyCheck.isSelected()); + } + }); + + contentPane.add(mobileOnlyCheck, BorderLayout.NORTH); + contentPane.add(mobileSettingsPane, BorderLayout.CENTER); + + borderPane.add(contentPane); + this.add(borderPane); + } + + private JPanel getMobileCanvasSizeCheckPane() { + JPanel panel = new JPanel(FRGUIPaneFactory.createBorderLayout()); + mobileCanvasSizeCheck = new UICheckBox(Inter.getLocText("FR-Designer_Set_Mobile_Canvas_Size")); + // 默认勾选,不可取消 + mobileCanvasSizeCheck.setSelected(true); + mobileCanvasSizeCheck.setEnabled(false); + panel.add(mobileCanvasSizeCheck, BorderLayout.NORTH); + panel.add(getCanvasDescPane(), BorderLayout.CENTER); + panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L1, 0, IntervalConstants.INTERVAL_L6, 0)); + return panel; + } + + private JPanel getAdaptivePropertyAutoMatchCheckPane() { + JPanel panel = new JPanel(FRGUIPaneFactory.createBorderLayout()); + String selectedDesc = Inter.getLocText("FR-Designer_Adaptive_Property_Auto_Match"); + String unselectedDesc = Inter.getLocText("FR-Designer_Open_Adaptive_Property_Auto_Match"); + adaptivePropertyAutoMatchCheck = new UICheckBox(); + adaptivePropertyAutoMatchCheck.registerChangeListener(new UIObserverListener() { + @Override + public void doChange() { + adaptivePropertyAutoMatchCheck.setText(adaptivePropertyAutoMatchCheck.isSelected() ? selectedDesc : unselectedDesc); + } + }); + adaptivePropertyAutoMatchCheck.setSelected(true); + panel.add(adaptivePropertyAutoMatchCheck, BorderLayout.NORTH); + panel.add(getAdaptivePropertyAutoMatchDescPane(), BorderLayout.CENTER); + return panel; + } + + private JPanel getCanvasDescPane() { + + UILabel desc1 = createDescLabel(Inter.getLocText("FR-Designer_Canvas_Size_Lock_Desc")); + UILabel desc2 = createDescLabel(Inter.getLocText("FR-Designer_Mobile_Screen_Match_Desc")); + UILabel desc3 = createDescLabel(Inter.getLocText("FR-Designer_Mobile_Screen_Zoom_In_Desc")); + UILabel desc4 = createDescLabel(Inter.getLocText("FR-Designer_Mobile_Screen_Zoom_Out_Desc")); + + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + double[] rowSize = {p, p, p, p}; + double[] columnSize = {p, f}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{desc1, null}, + new Component[]{desc2, null}, + new Component[]{desc3, null}, + new Component[]{desc4, null} + }; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W0, IntervalConstants.INTERVAL_L1); + panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L6, IntervalConstants.INTERVAL_W4, IntervalConstants.INTERVAL_L1, 0)); + return panel; + } + + private JPanel getAdaptivePropertyAutoMatchDescPane() { + + UILabel desc1 = createDescLabel(Inter.getLocText("FR-Designer_Adaptive_Property_Auto_Match_Desc")); + + JPanel panel = new JPanel(FRGUIPaneFactory.createBorderLayout()); + panel.add(desc1, BorderLayout.CENTER); + panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L6, IntervalConstants.INTERVAL_W4, IntervalConstants.INTERVAL_L1, 0)); + return panel; + } + + private UILabel createDescLabel(String desc) { + UILabel label = new UILabel(desc); + label.setForeground(Color.gray); + return label; + } + + @Override + public void populateBean(FormMobileAttr ob) { + if (ob == null) { + ob = new FormMobileAttr(); + } +// this.mobileOnlyCheckPane.populateBean(ob.isRefresh()); + } + + @Override + public FormMobileAttr updateBean() { + return null; + } + + @Override + public void updateBean(FormMobileAttr mobileAttr) { +// if(mobileAttr != null) { +// mobileAttr.setRefresh(this.mobileOnlyCheckPane.updateBean()); +// } + } + + @Override + protected String title4PopupWindow() { + return "模版设置"; + } + +} \ No newline at end of file From 9d63c433b20ba9f2749effe59a767b8febd63ca5 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Fri, 5 Jan 2018 13:53:24 +0800 Subject: [PATCH 02/75] =?UTF-8?q?REPORT-6392=20=E5=86=B3=E7=AD=96=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E7=BB=84=E4=BB=B6=E9=87=8D=E5=90=8D=E6=97=B6=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=94=99=E4=B9=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 2 ++ .../design/locale/designer_en_US.properties | 4 ++- .../design/locale/designer_ja_JP.properties | 2 ++ .../design/locale/designer_ko_KR.properties | 3 +- .../design/locale/designer_zh_CN.properties | 4 ++- .../design/locale/designer_zh_TW.properties | 2 ++ .../mainframe/widget/BasicPropertyPane.java | 31 +++++++++++++++++- .../fr/design/form/images/joption_failure.png | Bin 0 -> 900 bytes .../fr/design/form/images/joption_success.png | Bin 0 -> 891 bytes .../widget/ui/FormWidgetCardPane.java | 8 +++++ 10 files changed, 52 insertions(+), 4 deletions(-) create mode 100755 designer_form/src/com/fr/design/form/images/joption_failure.png create mode 100755 designer_form/src/com/fr/design/form/images/joption_success.png diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0337a6be1f..b548c45068 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2167,3 +2167,5 @@ FR-Designer_Tab_Template_Four=Template Four FR-Designer_Tab_Template_Five=Template Five FR-Designer_Tab_Template_Six=Template Six FR-Designer_Tab_Display_Position=Display Position +FR-Designer_Form_Widget_Rename_Failure=There are the same components, please set the other name +FR-Designer_Joption_News=news diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index dc16e87a27..ca858e60e4 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2165,4 +2165,6 @@ FR-Designer_Tab_Template_Three=Template Three FR-Designer_Tab_Template_Four=Template Four FR-Designer_Tab_Template_Five=Template Five FR-Designer_Tab_Template_Six=Template Six -FR-Designer_Tab_Display_Position=Display Position \ No newline at end of file +FR-Designer_Tab_Display_Position=Display Position +FR-Designer_Form_Widget_Rename_Failure=There are the same components, please set the other name +FR-Designer_Joption_News=news \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 3b2c34d297..fbb1cf52f9 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2167,3 +2167,5 @@ FR-Designer_Tab_Template_Four= FR-Designer_Tab_Template_Five= FR-Designer_Tab_Template_Six= FR-Designer_Tab_Display_Position= +FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u30EA\u30CD\u30FC\u30E0\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u3001\u4ED6\u306E\u540D\u79F0\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer_Joption_News=\u30CB\u30E5\u30FC\u30B9 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 92cc47a236..5446883ed2 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2152,7 +2152,6 @@ FR-Designer_Format_JavaScript=Format Code FR-Designer_Tip_Content= FR-Designer_Chart_Empty_Data= FR-Designer-Vcs_tab_click= -FR-Designer_Move_Up= FR-Designer_Move_Down= FR-Designer_Move_To_Top= FR-Designer_Move_To_Bottom= @@ -2167,3 +2166,5 @@ FR-Designer_Tab_Template_Four= FR-Designer_Tab_Template_Five= FR-Designer_Tab_Template_Six= FR-Designer_Tab_Display_Position= +FR-Designer_Form_Widget_Rename_Failure=\uC874\uC7AC \uB3D9\uBA85 \uAD6C\uC131 \uC694\uC18C \uC124\uC815 \uC880 \uB2E4\uB978 \uC774\uB984 +FR-Designer_Joption_News=\uC18C\uC2DD diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 0e35765fd5..7fca1c2848 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2166,4 +2166,6 @@ FR-Designer_Tab_Template_Three=\u6A21\u677F\u4E09 FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D -FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E \ No newline at end of file +FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E +FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u91CD\u540D\u7EC4\u4EF6\uFF0C\u8BF7\u8BBE\u7F6E\u5176\u4ED6\u540D\u79F0 +FR-Designer_Joption_News=\u6D88\u606F \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 873d48f7ba..76b01b545f 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2166,3 +2166,5 @@ FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D FR-Designer_Tab_Display_Position=\u986F\u793A\u4F4D\u7F6E +FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u91CD\u540D\u7D44\u4EF6\uFF0C\u8ACB\u8A2D\u5B9A\u5176\u4ED6\u540D\u7A31 +FR-Designer_Joption_News=\u6D88\u606F diff --git a/designer_base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java b/designer_base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java index 12b83b3e7d..101b869e34 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java +++ b/designer_base/src/com/fr/design/mainframe/widget/BasicPropertyPane.java @@ -13,6 +13,10 @@ import javax.swing.BorderFactory; import javax.swing.JPanel; import java.awt.BorderLayout; import java.awt.Component; +import java.awt.event.FocusEvent; +import java.awt.event.FocusListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; /** * Created by plough on 2017/8/7. @@ -27,7 +31,32 @@ public class BasicPropertyPane extends BasicPane { protected void initContentPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); - widgetName = new UITextField(); + widgetName = new UITextField() { + protected void initListener() { + if (shouldResponseChangeListener()) { + addFocusListener(new FocusListener() { + @Override + public void focusGained(FocusEvent e) { + + } + + @Override + public void focusLost(FocusEvent e) { + attributeChange(); + } + }); + addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_ENTER) { + attributeChange(); + } + } + }); + } + } + }; + widgetName.setGlobalName(Inter.getLocText("FR-Designer_Basic")); double f = TableLayout.FILL; double p = TableLayout.PREFERRED; diff --git a/designer_form/src/com/fr/design/form/images/joption_failure.png b/designer_form/src/com/fr/design/form/images/joption_failure.png new file mode 100755 index 0000000000000000000000000000000000000000..bea459040de434dfc52c9c32a7011842f35293ce GIT binary patch literal 900 zcmV-~1AF|5P)Px&K1oDDR9FecSItjTK@guUj{?OIL!wOxv_QBRpx)IO#CRaYSoB~F@u(;N0u;l^ zKSGbnK@VtR2sbrGO*AnkK;wLHCy_R(K~fn>MWp8 z3aITkyd2yTmp*|QI|6~4fj$A)p;VGG(GjV(_+&$##MqGs8-dSWxgcB-bR(H~Huswb z!e?~7lA9yIR9_vs87Hx`LuP-!M6nH(MT-?FC)EZ zZgwgKx5?10Ig1+GgCA2mI-K>jc+yf0_;@iIj@jPI8$t~{-v?gc z#&HIq_e{ZUp>%oO=HeW*F3BcY8>+4bsufCPMxUs=gtpO-&7onvHkOC+-dtGv*z|`I% zmZqjHTgG0ojo1N<D-QW;sMB4(f)O1kFuR(M+HiyGG($k zbweM;Ia(vIfZ2!~0W>mfmtJmx4sIA7G&B&_Rlem`w$>4VZ*TkiWUQ@`@%a-4wv!}w zcggJQqss6Il`dYQ(##A|Pmcq>r4I|oDoxS3{DOkdo@yFzv2gD`jV&%nzp(TlKsDpg z{2lepEZtUb#m@0@(z`u}gMM7t+$6%~FGQ~URA}sMBJtPvA?$wi(CQqXs^GnIary10 z-(UEa3&n5LoWssE!v}x%UPJU1BCpEP)Px&HAzH4R9FecR!wLVK@@(wNvRcEK_dylDh4kiq8_}cv{dXtda@{jR1v|OAmU9* zErojTQ3Mgm#h3!OT_pxwKvIDL zlm-Ml4s=YGyjTg297CqLmbf~>u~=t`$x4+w>QE>9dX5{u2%_*@;XB2nyHsZ>`y;?q z^*);$q95fV?Fh9C6br(5@s*gw%%ylQ#nR`mi$)34+ACRnNrkRwbZ_=K4P_outRWfp@LdZyc@g^LxmI3IcD*bTz0AzaiU&qISp^X#*y~gcbn=13p0yHm zMrzaC?6ev5=kCx#dC}sBF9}p%ra8+xiW%iK(B4a9KT|?uS>L*iN#+Qe+)O#GK3kr=%aLM-SU-cOs0Ym*3Iw{3Es(d^mDhj%5i_qX=%!JZ*;P zLjGjxi8gP0WOg2iou*2e9%JlV0y{CsM-@$<cSo~RGdZ6nz|^*&nL)jhDh1=Tw`u)12NY_1@0=%7Gub~qY=1xzn;B;aNEzx0lyBpeP=XFS@Jc=jJ>H&90c zZbm_L%heTnvGkT+mp;(vKY3cL{H6|bEA4BE(TOdG=*+fb)Mm6gpaT6^IJ^`^a&e08 z|C&@Zdhy!!J{mo8Rm6p5!wI0`i*uv$pIIN)I%|+oh(wJ29}hlVYIqY4&OZno96yA( zNpQ1(s#J~6FH|NVH=Mxxl??m^;eupv)`4?i$hb`SX2Q7E{4Ts3PT+8B0{()M`6=4j z(jlruPufcd|i1N>77-@i@8Wr^0r R)^Pv;002ovPDHLkV1l#&n*;y= literal 0 HcmV?d00001 diff --git a/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index 841e9c2908..d09e094178 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.widget.ui; +import com.fr.base.BaseUtils; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; @@ -17,6 +18,7 @@ import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; import com.fr.design.widget.DataModify; import com.fr.design.widget.FormWidgetDefinePaneFactoryBase; @@ -34,6 +36,7 @@ import com.fr.stable.StringUtils; import javax.swing.BorderFactory; import javax.swing.JComponent; +import javax.swing.JOptionPane; import javax.swing.JPanel; import java.awt.BorderLayout; @@ -208,6 +211,11 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { currentEditorDefinePane.setGlobalName(getGlobalName()); Widget widget = currentEditorDefinePane.updateBean(); if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Basic")) && widgetPropertyPane != null) { + if (designer.getTarget().isNameExist(widgetPropertyPane.getWidgetNameField().getText()) && !ComparatorUtils.equals(widgetPropertyPane.getWidgetNameField().getText(), widget.getWidgetName())) { + widgetPropertyPane.getWidgetNameField().setText(widget.getWidgetName()); + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_Form_Widget_Rename_Failure"), Inter.getLocText("FR-Designer_Joption_News"), JOptionPane.ERROR_MESSAGE, BaseUtils.readIcon("com/fr/design/form/images/joption_failure.png")); + return; + } widgetPropertyPane.update(widget); xCreator.resetCreatorName(widget.getWidgetName()); xCreator.resetVisible(widget.isVisible()); From 3654f494e518e4fe40bb7568553d85bef02b1a61 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Fri, 5 Jan 2018 15:24:05 +0800 Subject: [PATCH 03/75] =?UTF-8?q?REPORT-6416=20=E6=8F=90=E4=BE=9B=E5=8F=AA?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=A8=A1=E7=89=88=E5=8F=82=E6=95=B0=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=96=B9=E6=B3=95=EF=BC=8Cdesigner-chart?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/mainframe/JWorkBook.java | 5 +++++ .../src/com/fr/design/mainframe/JTemplate.java | 12 ++++++++++++ .../com/fr/design/mainframe/JVirtualTemplate.java | 6 ++++++ designer_form/src/com/fr/design/mainframe/JForm.java | 6 ++++++ 4 files changed, 29 insertions(+) diff --git a/designer/src/com/fr/design/mainframe/JWorkBook.java b/designer/src/com/fr/design/mainframe/JWorkBook.java index c7996e84f9..6320d23d2c 100644 --- a/designer/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer/src/com/fr/design/mainframe/JWorkBook.java @@ -967,6 +967,11 @@ public class JWorkBook extends JTemplate { return ps; } + @Override + public Parameter[] getJTemplateParameters() { + return this.parameterPane.getAllParameters(); + } + /** * 请求单元格区域的焦点 */ diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 1da72d5f79..8a8744118f 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -989,10 +989,22 @@ public abstract class JTemplate> ex return UIConstants.RUN_BIG_ICON; } + /** + * 获取所有参数 + * + * @return + */ public Parameter[] getParameters() { return new Parameter[0]; } + /** + * 获取模板参数 + * + * @return + */ + public abstract Parameter[] getJTemplateParameters(); + /** * 请求表单焦点 */ diff --git a/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java b/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java index 4c798d6597..e92f081eb9 100644 --- a/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.Parameter; import com.fr.design.DesignModelAdapter; import com.fr.design.designer.TargetComponent; import com.fr.design.file.HistoryTemplateListPane; @@ -255,6 +256,11 @@ public class JVirtualTemplate extends JTemplate { } + @Override + public Parameter[] getJTemplateParameters() { + return new Parameter[0]; + } + @Override public Icon getIcon() { if (getFullPathName().endsWith("cpt")) { diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index a754fdacf7..3581e61ac3 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.Parameter; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.WebPreviewUtils; @@ -672,6 +673,11 @@ public class JForm extends JTemplate implements BaseJForm { return UIConstants.RUN_BIG_ICON; } + @Override + public Parameter[] getJTemplateParameters() { + return this.getTarget().getTemplateParameters(); + } + @Override /** * 创建菜单项Preview From 81606bf8193d275427174ffa356e081c09148353 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Fri, 5 Jan 2018 15:26:02 +0800 Subject: [PATCH 04/75] =?UTF-8?q?pmd=20=E6=8A=8AWidgetNameField=E6=90=9E?= =?UTF-8?q?=E6=88=90=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/widget/ui/FormWidgetCardPane.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java b/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java index d09e094178..538f26099d 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java +++ b/designer_form/src/com/fr/design/mainframe/widget/ui/FormWidgetCardPane.java @@ -17,6 +17,7 @@ import com.fr.design.dialog.BasicScrollPane; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; @@ -211,8 +212,9 @@ public class FormWidgetCardPane extends AbstractAttrNoScrollPane { currentEditorDefinePane.setGlobalName(getGlobalName()); Widget widget = currentEditorDefinePane.updateBean(); if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Basic")) && widgetPropertyPane != null) { - if (designer.getTarget().isNameExist(widgetPropertyPane.getWidgetNameField().getText()) && !ComparatorUtils.equals(widgetPropertyPane.getWidgetNameField().getText(), widget.getWidgetName())) { - widgetPropertyPane.getWidgetNameField().setText(widget.getWidgetName()); + UITextField widgetNameField = widgetPropertyPane.getWidgetNameField(); + if (designer.getTarget().isNameExist(widgetNameField.getText()) && !ComparatorUtils.equals(widgetNameField.getText(), widget.getWidgetName())) { + widgetNameField.setText(widget.getWidgetName()); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_Form_Widget_Rename_Failure"), Inter.getLocText("FR-Designer_Joption_News"), JOptionPane.ERROR_MESSAGE, BaseUtils.readIcon("com/fr/design/form/images/joption_failure.png")); return; } From 3b42e57812e2d810758847ee99e2f3c2935345ca Mon Sep 17 00:00:00 2001 From: MoMeak Date: Fri, 5 Jan 2018 15:42:46 +0800 Subject: [PATCH 05/75] =?UTF-8?q?PMD=20=E5=8E=BB=E6=8E=89abstract.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/mainframe/JTemplate.java | 4 +++- .../src/com/fr/design/mainframe/JVirtualTemplate.java | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 8a8744118f..42d7f6c134 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -1003,7 +1003,9 @@ public abstract class JTemplate> ex * * @return */ - public abstract Parameter[] getJTemplateParameters(); + public Parameter[] getJTemplateParameters() { + return new Parameter[0]; + } /** * 请求表单焦点 diff --git a/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java b/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java index e92f081eb9..4c798d6597 100644 --- a/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JVirtualTemplate.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; -import com.fr.base.Parameter; import com.fr.design.DesignModelAdapter; import com.fr.design.designer.TargetComponent; import com.fr.design.file.HistoryTemplateListPane; @@ -256,11 +255,6 @@ public class JVirtualTemplate extends JTemplate { } - @Override - public Parameter[] getJTemplateParameters() { - return new Parameter[0]; - } - @Override public Icon getIcon() { if (getFullPathName().endsWith("cpt")) { From 9c4086872796f7dbdb5d53e4b48c9298eb76b7b1 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 5 Jan 2018 16:00:33 +0800 Subject: [PATCH 06/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=3D>=E5=AD=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD1=3D>=E8=AE=BE=E5=AE=9A=E7=94=BB=E5=B8=83=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E5=B9=B6=E9=94=81=E5=AE=9A=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 1 + .../design/locale/designer_en_US.properties | 3 +- .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 3 +- .../design/locale/designer_zh_TW.properties | 1 + .../form/mobile/FormMobileAttrPane.java | 16 +++----- .../FormMobileTemplateSettingsPane.java | 11 ++++-- .../src/com/fr/design/mainframe/FormArea.java | 37 ++++++++++++++++++- .../src/com/fr/design/mainframe/JForm.java | 2 +- 10 files changed, 57 insertions(+), 19 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 3efb952ca0..5265515263 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2176,3 +2176,4 @@ FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" +FR-Designer_Template_Settings=Template Settings diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 8093b6e4ea..cef5d259c6 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2174,4 +2174,5 @@ FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width i FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out -FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" \ No newline at end of file +FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" +FR-Designer_Template_Settings=Template Settings \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index ee834b755b..2143be3f7a 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2173,3 +2173,4 @@ FR-Designer_Open_Adaptive_Property_Auto_Match= FR-Designer_Mobile_Screen_Zoom_In= FR-Designer_Mobile_Screen_Zoom_Out= FR-Designer_Adaptive_Property_Auto_Match_Desc= +FR-Designer_Template_Settings= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 9130aa4e5a..6f81086304 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2175,3 +2175,4 @@ FR-Designer_Mobile_Screen_Zoom_In= FR-Designer_Mobile_Screen_Zoom_Out= FR-Designer_Mobile_Screen_Zoom_Out_Desc= FR-Designer_Adaptive_Property_Auto_Match_Desc= +FR-Designer_Template_Settings= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 987929be28..5727fd3102 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2175,4 +2175,5 @@ FR-Designer_Canvas_Size_Lock_Desc=\u753B\u5E03\u5927\u5C0F375*560\uFF0C\u5BBD\u5 FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u5C4F\u5E55\u624B\u673A\uFF1A\u9002\u914D FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u673A\uFF1A\u653E\u5927 FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u673A\uFF1A\u538B\u7F29 -FR-Designer_Adaptive_Property_Auto_Match_Desc=\u4E3A\u63D0\u5347\u624B\u673A\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u5E03\u5C40\u529F\u80FD\u65F6\uFF0C\u8BBE\u7F6E\u81EA\u9002\u5E94\u5E03\u5C40\u65B9\u5F0F\u4E0B\u7684\u7EC4\u4EF6\u7F29\u653E\u903B\u8F91\u4E3A"\u6A2A\u5411\u81EA\u9002\u5E94" \ No newline at end of file +FR-Designer_Adaptive_Property_Auto_Match_Desc=\u4E3A\u63D0\u5347\u624B\u673A\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u5E03\u5C40\u529F\u80FD\u65F6\uFF0C\u8BBE\u7F6E\u81EA\u9002\u5E94\u5E03\u5C40\u65B9\u5F0F\u4E0B\u7684\u7EC4\u4EF6\u7F29\u653E\u903B\u8F91\u4E3A"\u6A2A\u5411\u81EA\u9002\u5E94" +FR-Designer_Template_Settings=\u6A21\u7248\u8BBE\u7F6E \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 59dee09532..e9a8b643ad 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2175,3 +2175,4 @@ FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u8367\u5E55\u624B\u6A5F\uFF1A\u90 FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u6A5F\uFF1A\u653E\u5927 FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u6A5F\uFF1A\u58D3\u7E2E FR-Designer_Adaptive_Property_Auto_Match_Desc=\u70BA\u63D0\u5347\u624B\u6A5F\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u4F48\u5C40\u529F\u80FD\u6642\uFF0C\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574\u4F48\u5C40\u7BA1\u9053\u4E0B\u7684\u7D44\u4EF6\u7E2E\u653E\u908F\u8F2F\u70BA\u201C\u6A6B\u5411\u81EA\u6211\u8ABF\u6574\u201D +FR-Designer_Template_Settings=\u6A21\u7248\u8A2D\u5B9A diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java index b8d1bbb3a0..a2650d8069 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -18,29 +18,21 @@ public class FormMobileAttrPane extends BasicBeanPane{ // 模版设置面板 private FormMobileTemplateSettingsPane formMobileTemplateSettingsPane; - static final int PADDINGHEIGHT = 10; + private static final int PADDING = 10; public FormMobileAttrPane() { this.initComponents(); } - //现在只有两个panel,填不满自适应对话框,只能为工具栏Panel和h5解析方式panel分别包裹上一层Panel再计算高度,不然会自动 - //拉长两个Panel的高度去填满整个对话框。 private void initComponents() { -// JPanel jPanel1 = new JPanel(); this.setLayout(FRGUIPaneFactory.createBorderLayout()); -// jPanel1.setLayout(FRGUIPaneFactory.createBorderLayout()); -// jPanel1.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JPanel mobileToolBarPaneWrapper = new JPanel(new BorderLayout()); - mobileToolBarPaneWrapper.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 10)); + mobileToolBarPaneWrapper.setBorder(BorderFactory.createEmptyBorder(PADDING, PADDING, 0, PADDING)); this.mobileToolBarPane = new MobileToolBarPane(); mobileToolBarPaneWrapper.add(this.mobileToolBarPane, BorderLayout.NORTH); - //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 -// jPanel1.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + PADDINGHEIGHT)); -// jPanel1.add("North", this.mobileToolBarPane); JPanel formMobileTemplateSettingsPaneWrapper = new JPanel(new BorderLayout()); - formMobileTemplateSettingsPaneWrapper.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + formMobileTemplateSettingsPaneWrapper.setBorder(BorderFactory.createEmptyBorder(PADDING, PADDING, PADDING, PADDING)); this.formMobileTemplateSettingsPane = new FormMobileTemplateSettingsPane(); formMobileTemplateSettingsPaneWrapper.add(this.formMobileTemplateSettingsPane, BorderLayout.NORTH); @@ -54,12 +46,14 @@ public class FormMobileAttrPane extends BasicBeanPane{ ob = new FormMobileAttr(); } this.mobileToolBarPane.populateBean(ob); + this.formMobileTemplateSettingsPane.populateBean(ob); } @Override public FormMobileAttr updateBean() { FormMobileAttr formMobileAttr = new FormMobileAttr(); this.mobileToolBarPane.updateBean(formMobileAttr); + this.formMobileTemplateSettingsPane.updateBean(formMobileAttr); return formMobileAttr; } diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java index 13e74c0873..399f217f4b 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java @@ -133,6 +133,8 @@ public class FormMobileTemplateSettingsPane extends BasicBeanPane 0.0000001) { + widthPane.setValue(MOBILE_ONLY_WIDTH); + changeWidthPaneValue(MOBILE_ONLY_WIDTH); + heightPane.setValue(MOBILE_ONLY_HEIGHT); + changeHeightPaneValue(MOBILE_ONLY_HEIGHT); + widthPane.setEnabled(false); + } else if (!formMobileAttr.isMobileOnly() && !widthPane.isEnabled()) { + widthPane.setEnabled(true); + } + } + }); } MouseWheelListener showValSpinnerMouseWheelListener = new MouseWheelListener() { diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index a754fdacf7..707356c0c4 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -236,7 +236,7 @@ public class JForm extends JTemplate implements BaseJForm { centerPane.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 0, new Color(85, 85, 85))); formDesign = new FormDesigner(this.getTarget(), new TabChangeAction(BaseJForm.ELEMENTCASE_TAB, this)); WidgetToolBarPane.getInstance(formDesign); - FormArea area = new FormArea(formDesign); + FormArea area = new FormArea(formDesign, this); JPanel areaWrapper = new JPanel(new BorderLayout()); areaWrapper.add(area, BorderLayout.CENTER); areaWrapper.setBackground(Color.white); From c09f69f7a91069aec834f8e2bdac88b51aa6f329 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 5 Jan 2018 17:44:55 +0800 Subject: [PATCH 07/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=3D>=E5=AD=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD1=3D>=E8=AE=BE=E5=AE=9A=E7=94=BB=E5=B8=83=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=E5=B9=B6=E9=94=81=E5=AE=9A=E5=AE=BD=E5=BA=A6=3D>bug?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/FormArea.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormArea.java b/designer_form/src/com/fr/design/mainframe/FormArea.java index c87348d71a..1786337dfe 100644 --- a/designer_form/src/com/fr/design/mainframe/FormArea.java +++ b/designer_form/src/com/fr/design/mainframe/FormArea.java @@ -116,12 +116,11 @@ public class FormArea extends JComponent implements ScrollRulerComponent { changeWidthPaneValue(MOBILE_ONLY_WIDTH); heightPane.setValue(MOBILE_ONLY_HEIGHT); changeHeightPaneValue(MOBILE_ONLY_HEIGHT); - widthPane.setEnabled(false); - } else if (!formMobileAttr.isMobileOnly() && !widthPane.isEnabled()) { - widthPane.setEnabled(true); } + widthPane.setEnabled(!formMobileAttr.isMobileOnly()); } }); + widthPane.setEnabled(!jForm.getTarget().getFormMobileAttr().isMobileOnly()); } MouseWheelListener showValSpinnerMouseWheelListener = new MouseWheelListener() { From 1bbcc5dc43483a3d248e7674fdee40cde25d64b4 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Mon, 8 Jan 2018 11:03:27 +0800 Subject: [PATCH 08/75] =?UTF-8?q?CHART-1922=20=E5=9C=B0=E5=9B=BE&=E7=83=AD?= =?UTF-8?q?=E5=8A=9B=E5=9C=B0=E5=9B=BE=E5=9C=B0=E5=9B=BE=E8=BE=B9=E7=95=8C?= =?UTF-8?q?=E4=B8=AD=E5=8F=AA=E8=8E=B7=E5=8F=96=E6=A8=A1=E7=89=88=E5=8F=82?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../map/designer/type/VanChartMapSourceChoosePane.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java b/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java index a98c8d7f7c..d55c9307e3 100644 --- a/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java +++ b/designer_chart/src/com/fr/plugin/chart/map/designer/type/VanChartMapSourceChoosePane.java @@ -588,15 +588,10 @@ public class VanChartMapSourceChoosePane extends JPanel implements UIObserver { private String[] getParams() { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); - if (jTemplate == null){ + if (jTemplate == null) { return new String[0]; } - String[] params = new String[0]; - if(jTemplate.getTarget() instanceof ParameterHolder){ - params = getParamsName(((ParameterHolder)jTemplate.getTarget()).getParameters()); - } - - return params; + return getParamsName((jTemplate.getJTemplateParameters())); } private String[] getParamsName(Parameter[] parameters) { From 60ce6d9007e6af5deb78db58c8fc09719f5bd911 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 8 Jan 2018 13:56:20 +0800 Subject: [PATCH 09/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=3D>=E5=AD=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD1=3D>=E5=9C=A8=E6=8A=A5=E8=A1=A8=E5=9D=97=E4=B8=AD?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=BB=E5=B8=83=E8=BE=B9=E7=BC=98=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/mainframe/JWorkBook.java | 9 +++++++++ designer/src/com/fr/grid/GridUI.java | 3 +-- .../com/fr/design/mainframe/JTemplate.java | 11 +++++++++- .../src/com/fr/design/mainframe/JForm.java | 20 +++++++++++++++++-- 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/JWorkBook.java b/designer/src/com/fr/design/mainframe/JWorkBook.java index c7996e84f9..fe7dcfc614 100644 --- a/designer/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer/src/com/fr/design/mainframe/JWorkBook.java @@ -876,6 +876,15 @@ public class JWorkBook extends JTemplate { return true; } + /** + * 是否应该画出分页线 + * + * @return 是则返回true + */ + public boolean shouldPaintPaginateLines() { + return true; + } + @Override public HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { return ReportHyperlinkGroupPane.getInstance(hyperlinkGroupPaneActionProvider); diff --git a/designer/src/com/fr/grid/GridUI.java b/designer/src/com/fr/grid/GridUI.java index 2215fc2b79..b14aa2cb91 100644 --- a/designer/src/com/fr/grid/GridUI.java +++ b/designer/src/com/fr/grid/GridUI.java @@ -584,8 +584,7 @@ public class GridUI extends ComponentUI { private void paintPaginateLines(Graphics g, Grid grid) { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); - if(!jTemplate.isJWorkBook()){ - //报表块无分页之说 + if(!jTemplate.shouldPaintPaginateLines()){ return; } Graphics2D g2d = (Graphics2D) g; diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 1da72d5f79..4492875bef 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -899,13 +899,22 @@ public abstract class JTemplate> ex */ public abstract boolean isJWorkBook(); + /** + * 是否应该画出分页线 + * + * @return 是则返回true + */ + public boolean shouldPaintPaginateLines() { + return false; + } + /** * 激活指定的template * */ public void activeJTemplate(int index, JTemplate jt) { DesignerContext.getDesignerFrame().activateJTemplate(this); - }; + } /** * 激活已存在的模板 diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 707356c0c4..6586147dc9 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.PaperSize; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.WebPreviewUtils; @@ -22,7 +23,6 @@ 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.file.HistoryTemplateListPane; import com.fr.design.gui.frpane.HyperlinkGroupPane; import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider; import com.fr.design.gui.ilable.UILabel; @@ -56,6 +56,8 @@ import com.fr.form.ui.container.WLayout; import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.page.PaperSettingProvider; +import com.fr.report.worksheet.FormElementCase; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.bridge.StableFactory; @@ -165,6 +167,15 @@ public class JForm extends JTemplate implements BaseJForm { return false; } + /** + * 是否应该画出分页线 + * + * @return 是则返回true + */ + public boolean shouldPaintPaginateLines() { + return getTarget().getFormMobileAttr().isMobileOnly(); + } + /** * 返回当前支持的超链界面pane * @@ -830,7 +841,12 @@ public class JForm extends JTemplate implements BaseJForm { designerClass.put(Constants.ARG_0, FormElementCaseProvider.class); Object[] designerArg = new Object[]{formDesign.getElementCase()}; - return StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); + FormECDesignerProvider formECDesigner = StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); + // 如果是移动端专属模版,需要修改页面大小并显示边缘线 + PaperSettingProvider paperSetting = ((FormElementCase)formECDesigner.getEditingElementCase()).getReportSettings().getPaperSetting(); + paperSetting.setPaperSize(getTarget().getFormMobileAttr().isMobileOnly() ? PaperSize.PAPERSIZE_MOBILE : new PaperSize()); + + return formECDesigner; } /** From 945aac3275c31ae028f00db431e10691a4f70aa9 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 8 Jan 2018 14:48:48 +0800 Subject: [PATCH 10/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=3D>=E5=AD=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD2=20=E8=87=AA=E9=80=82=E5=BA=94=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/JForm.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 6586147dc9..7ebbbefbc0 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -815,6 +815,14 @@ public class JForm extends JTemplate implements BaseJForm { } } + /** + * 模板更新 + */ + public void fireTargetModified() { + super.fireTargetModified(); + WidgetPropertyPane.getInstance().refreshDockingView(); + } + /** * 在Form和ElementCase, 以及ElementCase和ElementCase之间切换 * From 32c9cea0597466551157c5143dbe5cf053d3ac2c Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 8 Jan 2018 15:40:20 +0800 Subject: [PATCH 11/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E6=99=AE=E9=80=9A=E6=8A=A5=E8=A1=A8=3D>1=20=E2=80=9C?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E5=B1=9E=E6=80=A7=E2=80=9D=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E7=95=8C=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mobile/ReportMobileAttrPane.java | 10 +- .../ReportMobileTemplateSettingsPane.java | 100 ++++++++++++++++++ 2 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java diff --git a/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java b/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java index 5c97dae8c7..743dd4d7fc 100644 --- a/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java +++ b/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java @@ -12,9 +12,8 @@ import javax.swing.*; */ public class ReportMobileAttrPane extends BasicBeanPane{ - + private ReportMobileTemplateSettingsPane reportMobileTemplateSettingsPane; // 模版设置面板 private AppFitBrowserPane appFitBrowserPane; - //工具栏容器 private MobileToolBarPane mobileToolBarPane; @@ -28,6 +27,10 @@ public class ReportMobileAttrPane extends BasicBeanPane{ JPanel jPanel = new JPanel(); jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.Y_AXIS)); jPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + + reportMobileTemplateSettingsPane = new ReportMobileTemplateSettingsPane(); + jPanel.add(reportMobileTemplateSettingsPane); + appFitBrowserPane = new AppFitBrowserPane(); appFitBrowserPane.setAppFitPreviewPane(appFitPreviewPane); jPanel.add(appFitBrowserPane); @@ -46,13 +49,14 @@ public class ReportMobileAttrPane extends BasicBeanPane{ } appFitBrowserPane.populateBean(ob); mobileToolBarPane.populateBean(ob); - + reportMobileTemplateSettingsPane.populateBean(ob); } @Override public ElementCaseMobileAttr updateBean() { ElementCaseMobileAttr caseMobileAttr = appFitBrowserPane.updateBean(); mobileToolBarPane.updateBean(caseMobileAttr); + reportMobileTemplateSettingsPane.updateBean(caseMobileAttr); return caseMobileAttr; } diff --git a/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java b/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java new file mode 100644 index 0000000000..ce3a56383b --- /dev/null +++ b/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java @@ -0,0 +1,100 @@ +package com.fr.design.report.mobile; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.designer.IntervalConstants; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.general.Inter; +import com.fr.report.mobile.ElementCaseMobileAttr; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by plough on 2018/1/8. + */ +public class ReportMobileTemplateSettingsPane extends BasicBeanPane { + + private UICheckBox mobileCanvasSizeCheck; // 设置为手机模版画布大小 + + public ReportMobileTemplateSettingsPane() { + this.initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow()); + + JPanel contentPane = new JPanel(FRGUIPaneFactory.createBorderLayout()); + contentPane.setBorder(BorderFactory.createEmptyBorder(0, IntervalConstants.INTERVAL_L2, 0, 0)); + + contentPane.add(getMobileCanvasSizeCheckPane(), BorderLayout.CENTER); + + borderPane.add(contentPane); + this.add(borderPane); + } + + private JPanel getMobileCanvasSizeCheckPane() { + JPanel panel = new JPanel(FRGUIPaneFactory.createBorderLayout()); + mobileCanvasSizeCheck = new UICheckBox(Inter.getLocText("FR-Designer_Set_Mobile_Canvas_Size")); + panel.add(mobileCanvasSizeCheck, BorderLayout.NORTH); + panel.add(getCanvasDescPane(), BorderLayout.CENTER); + panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L1, 0, IntervalConstants.INTERVAL_L6, 0)); + return panel; + } + + private JPanel getCanvasDescPane() { + + UILabel desc1 = createDescLabel(Inter.getLocText("FR-Designer_Mobile_Screen_Match_Desc")); + UILabel desc2 = createDescLabel(Inter.getLocText("FR-Designer_Mobile_Screen_Zoom_In_Desc")); + UILabel desc3 = createDescLabel(Inter.getLocText("FR-Designer_Mobile_Screen_Zoom_Out_Desc")); + + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + double[] rowSize = {p, p, p, p}; + double[] columnSize = {p, f}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{desc1, null}, + new Component[]{desc2, null}, + new Component[]{desc3, null} + }; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W0, IntervalConstants.INTERVAL_L1); + panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L7, IntervalConstants.INTERVAL_W4, IntervalConstants.INTERVAL_L1, 0)); + return panel; + } + + private UILabel createDescLabel(String desc) { + UILabel label = new UILabel(desc); + label.setForeground(Color.gray); + return label; + } + + @Override + public void populateBean(ElementCaseMobileAttr ob) { + if (ob == null) { + ob = new ElementCaseMobileAttr(); + } + mobileCanvasSizeCheck.setSelected(ob.isMobileCanvasSize()); + } + + @Override + public ElementCaseMobileAttr updateBean() { + return null; + } + + @Override + public void updateBean(ElementCaseMobileAttr mobileAttr) { + if(mobileAttr != null) { + mobileAttr.setMobileCanvasSize(mobileCanvasSizeCheck.isSelected()); + } + } + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("FR-Designer_Template_Settings"); + } +} \ No newline at end of file From ff7495d418335a91dd00edb981ae4ac7dc525c6e Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 8 Jan 2018 16:25:19 +0800 Subject: [PATCH 12/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=20=E8=80=83=E5=B0=BA?= =?UTF-8?q?=E5=AF=B8=3D>=E6=99=AE=E9=80=9A=E6=8A=A5=E8=A1=A8=3D>3=20?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=AE=BE=E7=BD=AE=E2=80=94=E7=BA=B8=E5=BC=A0?= =?UTF-8?q?=E5=A4=A7=E5=B0=8F=3D>=E5=8F=96=E6=B6=88=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=9A=84=E8=AE=BE=E7=BD=AE=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/report/PageSetupPane.java | 102 ++---------------- 1 file changed, 6 insertions(+), 96 deletions(-) diff --git a/designer/src/com/fr/design/report/PageSetupPane.java b/designer/src/com/fr/design/report/PageSetupPane.java index 07076b1776..9e1ac363af 100644 --- a/designer/src/com/fr/design/report/PageSetupPane.java +++ b/designer/src/com/fr/design/report/PageSetupPane.java @@ -73,14 +73,6 @@ public class PageSetupPane extends BasicPane { private OtherPane otherPane; private UILabel zeroMarginWarn; - public final static PaperSize MOBILE_SMAIL_SIZE = new PaperSize(new MM(142.8f), new MM(254)); - public final static PaperSize MOBILE_LARGE_SIZE = new PaperSize(new MM(190.5f), new MM(338.7f)); - - public static final Object[][] MOBILE_NAME_SIZE_ARRAY = { - {Inter.getLocText("FR-Designer_PaperSize-Mobile-Large"),MOBILE_LARGE_SIZE}, - {Inter.getLocText("FR-Designer_PaperSize-Mobile-Small"),MOBILE_SMAIL_SIZE} - }; - public PageSetupPane() { this.initComponents(); } @@ -135,12 +127,10 @@ public class PageSetupPane extends BasicPane { private UIRadioButton landscapeRadioButton; private UIRadioButton predefinedRadioButton; - private UIRadioButton mobileRadioButton; private UIRadioButton customRadioButton; private UIComboBox predefinedComboBox; - private UIComboBox mobileComboBox; - + private UIBasicSpinner paperWidthSpinner; private UIBasicSpinner paperHeightSpinner; private UIComboBox switchInch; @@ -210,20 +200,14 @@ public class PageSetupPane extends BasicPane { predefinedRadioButton = new UIRadioButton(Inter.getLocText("PageSetup-Predefined") + ":"); predefinedRadioButton.setMnemonic('P'); predefinedRadioButton.addActionListener(previewListener); - - mobileRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer_MobilePhone") + " :"); - mobileRadioButton.setMnemonic('M'); - mobileRadioButton.addActionListener(previewListener); - - + customRadioButton = new UIRadioButton(Inter.getLocText("Custom") + ":"); customRadioButton.setMnemonic('C'); customRadioButton.addActionListener(previewListener); predefinedComboBox = new UIComboBox(); - mobileComboBox = new UIComboBox(); - + paperWidthSpinner = new UIBasicSpinner(new SpinnerNumberModel(0.0, 0.0, Double.MAX_VALUE, 1.0)); ((JSpinner.DefaultEditor) paperWidthSpinner.getEditor()).getTextField().setColumns(7); paperHeightSpinner = new UIBasicSpinner(new SpinnerNumberModel(0.0, 0.0, Double.MAX_VALUE, 1.0)); @@ -239,9 +223,7 @@ public class PageSetupPane extends BasicPane { predefinedComboBox.setRenderer(paperSizeCellRenderere); predefinedComboBox.addItemListener(paperSizeItemListener); - - mobileComboBox.setRenderer(paperSizeMobileCellRenderere); - mobileComboBox.addItemListener(paperSizeItemMobileListener); + ((JSpinner.DefaultEditor) paperWidthSpinner.getEditor()).getTextField().getDocument().addDocumentListener(customTextListener); ((JSpinner.DefaultEditor) paperHeightSpinner.getEditor()).getTextField().getDocument().addDocumentListener(customTextListener); @@ -253,12 +235,6 @@ public class PageSetupPane extends BasicPane { Object[] tmpPaperSizeNameArray = ReportConstants.PaperSizeNameSizeArray[i]; predefinedComboBox.addItem(tmpPaperSizeNameArray[1]); } - - for(int i=0; i Date: Mon, 8 Jan 2018 17:35:44 +0800 Subject: [PATCH 13/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E6=99=AE=E9=80=9A=E6=8A=A5=E8=A1=A8=3D>3=20=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E8=AE=BE=E7=BD=AE=E2=80=94=E7=BA=B8=E5=BC=A0=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F=3D>=E9=99=90=E5=88=B6=E5=AE=BD=E5=BA=A6=E8=8C=83?= =?UTF-8?q?=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/report/PageSetupPane.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/designer/src/com/fr/design/report/PageSetupPane.java b/designer/src/com/fr/design/report/PageSetupPane.java index 9e1ac363af..93460b7cc9 100644 --- a/designer/src/com/fr/design/report/PageSetupPane.java +++ b/designer/src/com/fr/design/report/PageSetupPane.java @@ -428,6 +428,23 @@ public class PageSetupPane extends BasicPane { setAndPopulate(isCustomed, unitType); populateMargin(); + + checkMobileSetting(report); + } + + private void checkMobileSetting(Report report) { + if (report.getBook().getReportMobileAttr().isMobileCanvasSize()) { + // 当勾选移动端画布大小后,自定义选项不可修改;限制宽度范围 + predefinedRadioButton.setEnabled(false); + predefinedComboBox.setEnabled(false); + double maxWidth; + if (unitType == Constants.UNIT_MM) { // 毫米 + maxWidth = PaperSize.PAPERSIZE_MOBILE.getWidth().toMMValue4Scale2(); + } else { // 英寸 + maxWidth = PaperSize.PAPERSIZE_MOBILE.getWidth().toINCHValue4Scale3(); + } + ((SpinnerNumberModel)paperWidthSpinner.getModel()).setMaximum(maxWidth); + } } private void unitSet(int unitType) { From 184616a920d2e9eedcdca985633fdb9e29db7e44 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 8 Jan 2018 19:56:11 +0800 Subject: [PATCH 14/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=8A=9F=E8=83=BD=E5=9F=8B=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../actions/report/ReportMobileAttrAction.java | 12 +++++++++++- .../mainframe/actions/FormMobileAttrAction.java | 12 +++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java b/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java index 84d1facdf4..be9421312b 100644 --- a/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java +++ b/designer/src/com/fr/design/actions/report/ReportMobileAttrAction.java @@ -11,7 +11,10 @@ import com.fr.design.report.mobile.ReportMobileAttrPane; import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.main.TemplateWorkBook; +import com.fr.plugin.ExtraClassManager; import com.fr.report.mobile.ElementCaseMobileAttr; +import com.fr.stable.ReportFunctionProcessor; +import com.fr.stable.fun.FunctionProcessor; import javax.swing.*; import java.awt.event.ActionEvent; @@ -50,8 +53,15 @@ public class ReportMobileAttrAction extends JWorkBookAction{ BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { @Override public void doOk() { - wbTpl.setReportMobileAttr(mobileAttrPane.updateBean()); + ElementCaseMobileAttr elementCaseMobileAttr = mobileAttrPane.updateBean(); + wbTpl.setReportMobileAttr(elementCaseMobileAttr); jwb.fireTargetModified(); + if (elementCaseMobileAttr.isMobileCanvasSize()) { + FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); + if (processor != null) { + processor.recordFunction(ReportFunctionProcessor.MOBILE_TEMPLATE_CPT); + } + } } }); dialog.setVisible(true); diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java index 4f67187085..bb5bf0ce78 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -11,6 +11,9 @@ import com.fr.design.menu.MenuKeySet; import com.fr.form.main.Form; import com.fr.form.main.mobile.FormMobileAttr; import com.fr.general.Inter; +import com.fr.plugin.ExtraClassManager; +import com.fr.stable.ReportFunctionProcessor; +import com.fr.stable.fun.FunctionProcessor; import javax.swing.*; import java.awt.event.ActionEvent; @@ -47,8 +50,15 @@ public class FormMobileAttrAction extends JTemplateAction { BasicDialog dialog = mobileAttrPane.showWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { @Override public void doOk() { - formTpl.setFormMobileAttr(mobileAttrPane.updateBean()); + FormMobileAttr formMobileAttr = mobileAttrPane.updateBean(); + formTpl.setFormMobileAttr(formMobileAttr); jf.fireTargetModified(); + if (formMobileAttr.isMobileOnly()) { + FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); + if (processor != null) { + processor.recordFunction(ReportFunctionProcessor.MOBILE_TEMPLATE_FRM); + } + } } }); dialog.setVisible(true); From 4f06afdd3783777193d582f6f7480315a439551a Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 10 Jan 2018 16:08:23 +0800 Subject: [PATCH 15/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/mainframe/JWorkBook.java | 9 --------- .../mainframe/form/FormElementCaseDesigner.java | 5 +++-- .../mainframe/form/FormElementCasePaneDelegate.java | 4 +++- .../mobile/ReportMobileTemplateSettingsPane.java | 4 +++- designer/src/com/fr/grid/GridUI.java | 4 ---- .../fr/design/dialog/mobile/MobileRadioCheckPane.java | 4 ---- .../src/com/fr/design/mainframe/JTemplate.java | 9 --------- designer_form/src/com/fr/design/mainframe/JForm.java | 11 +---------- 8 files changed, 10 insertions(+), 40 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/JWorkBook.java b/designer/src/com/fr/design/mainframe/JWorkBook.java index 8cef67169b..6320d23d2c 100644 --- a/designer/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer/src/com/fr/design/mainframe/JWorkBook.java @@ -876,15 +876,6 @@ public class JWorkBook extends JTemplate { return true; } - /** - * 是否应该画出分页线 - * - * @return 是则返回true - */ - public boolean shouldPaintPaginateLines() { - return true; - } - @Override public HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { return ReportHyperlinkGroupPane.getInstance(hyperlinkGroupPaneActionProvider); diff --git a/designer/src/com/fr/design/mainframe/form/FormElementCaseDesigner.java b/designer/src/com/fr/design/mainframe/form/FormElementCaseDesigner.java index 103a695113..b1f3b2e1be 100644 --- a/designer/src/com/fr/design/mainframe/form/FormElementCaseDesigner.java +++ b/designer/src/com/fr/design/mainframe/form/FormElementCaseDesigner.java @@ -30,6 +30,7 @@ import com.fr.design.menu.ShortCut; import com.fr.design.menu.ToolBarDef; import com.fr.design.present.ConditionAttributesGroupPane; import com.fr.form.FormElementCaseProvider; +import com.fr.form.main.Form; import com.fr.general.Inter; import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.Selection; @@ -50,11 +51,11 @@ public class FormElementCaseDesigner{ - public FormElementCasePaneDelegate(FormElementCase sheet) { + public FormElementCasePaneDelegate(FormElementCase sheet, Form form) { super(sheet); + this.getGrid().setShowPaginateLine(form.getFormMobileAttr().isMobileOnly()); this.addSelectionChangeListener(new SelectionListener() { @Override public void selectionChanged(SelectionEvent e) { diff --git a/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java b/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java index ce3a56383b..e449091a5b 100644 --- a/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java +++ b/designer/src/com/fr/design/report/mobile/ReportMobileTemplateSettingsPane.java @@ -83,7 +83,9 @@ public class ReportMobileTemplateSettingsPane extends BasicBeanPane { this.add(fitOpsPane); } - public void registerChangeLister(UIObserverListener listener) { - checkBoxes.get(0).registerChangeListener(listener); - } - public int getCurrentState() { return checkBoxes.get(0).isSelected() ? 0 : 1; } diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 000e9dbda7..faca73e836 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -899,15 +899,6 @@ public abstract class JTemplate> ex */ public abstract boolean isJWorkBook(); - /** - * 是否应该画出分页线 - * - * @return 是则返回true - */ - public boolean shouldPaintPaginateLines() { - return false; - } - /** * 激活指定的template * diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index d6b20aed99..97c0d6ff1f 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -154,15 +154,6 @@ public class JForm extends JTemplate implements BaseJForm { return false; } - /** - * 是否应该画出分页线 - * - * @return 是则返回true - */ - public boolean shouldPaintPaginateLines() { - return getTarget().getFormMobileAttr().isMobileOnly(); - } - /** * 返回当前支持的超链界面pane * @@ -840,7 +831,7 @@ public class JForm extends JTemplate implements BaseJForm { HashMap designerClass = new HashMap(); designerClass.put(Constants.ARG_0, FormElementCaseProvider.class); - Object[] designerArg = new Object[]{formDesign.getElementCase()}; + Object[] designerArg = new Object[]{formDesign.getElementCase(), getTarget()}; FormECDesignerProvider formECDesigner = StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); // 如果是移动端专属模版,需要修改页面大小并显示边缘线 PaperSettingProvider paperSetting = ((FormElementCase)formECDesigner.getEditingElementCase()).getReportSettings().getPaperSetting(); From b908fad40e3b2780a45db53dd473b01968613e7d Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 16 Jan 2018 14:13:33 +0800 Subject: [PATCH 16/75] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8C=85=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/form/mobile/FormMobileTemplateSettingsPane.java | 7 ++++--- designer_form/src/com/fr/design/mainframe/FormArea.java | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java index 399f217f4b..719f958fa7 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java @@ -26,6 +26,7 @@ public class FormMobileTemplateSettingsPane extends BasicBeanPane Date: Mon, 22 Jan 2018 09:22:10 +0800 Subject: [PATCH 17/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E5=9B=BE=E8=A1=A8=E5=9D=97=E7=9A=84=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2=3D>?= =?UTF-8?q?=E5=88=9D=E6=AD=A5=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XChartEditor.java | 7 + .../mobile/ChartEditorPropertyUI.java | 38 ++++ .../design/mainframe/WidgetPropertyPane.java | 3 + .../mobile/ChartEditorDefinePane.java | 163 ++++++++++++++++++ 4 files changed, 211 insertions(+) create mode 100644 designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java create mode 100644 designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index 260697355d..8a491e32d4 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -10,6 +10,9 @@ import com.fr.base.chart.BaseChartCollection; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; +import com.fr.design.designer.properties.mobile.ChartEditorPropertyUI; +import com.fr.design.designer.properties.mobile.ElementCasePropertyUI; +import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.chart.BaseChartPropertyPane; import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.mainframe.*; @@ -278,4 +281,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator { initStyle(); } + @Override + public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { + return new WidgetPropertyUIProvider[]{ new ChartEditorPropertyUI(this)}; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java b/designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java new file mode 100644 index 0000000000..320f51b319 --- /dev/null +++ b/designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java @@ -0,0 +1,38 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XChartEditor; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XElementCase; +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.ChartEditorDefinePane; +import com.fr.design.widget.ui.designer.mobile.ElementCaseDefinePane; +import com.fr.general.Inter; + +/** + * Created by plough on 2018/1/18. + */ +public class ChartEditorPropertyUI extends AbstractWidgetPropertyUIProvider { + + private XCreator xCreator; + + public ChartEditorPropertyUI(XChartEditor xChartEditor) { + this.xCreator = xChartEditor; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new ChartEditorDefinePane(xCreator); + } + + @Override + public String tableTitle() { + return Inter.getLocText("FR-Designer_Mobile-Attr"); + } +} diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 75a1bed357..eda8dcd917 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -35,6 +35,8 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope private static final String PARA = "para"; private static final String BODY = "body"; + private static final int PADDING = 10; + private static final int PADDING_M = 12; private FormWidgetCardPane formWidgetCardPane; // 控件的属性表 private EventPropertyTable eventTable; // 控件的事件表 private List widgetPropertyTables; // 这个变量应该是保存控件拓展的属性tab @@ -224,6 +226,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope for (WidgetPropertyUIProvider widgetAttrProvider : widgetAttrProviders) { MobileWidgetDefinePane extraPane = (MobileWidgetDefinePane) widgetAttrProvider.createWidgetAttrPane(); if (extraPane != null) { + extraPane.setBorder(BorderFactory.createEmptyBorder(PADDING, PADDING, PADDING, PADDING_M)); mobileExtraPropertyPanes.add(extraPane); wsp.add(extraPane); } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java new file mode 100644 index 0000000000..492a2c62c4 --- /dev/null +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -0,0 +1,163 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.base.mobile.ChartMobileFitAttrState; +import com.fr.base.mobile.MobileFitAttrState; +import com.fr.design.constants.LayoutConstants; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.properties.items.Item; +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.icombobox.UIComboBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +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.ui.ChartEditor; +import com.fr.form.ui.ElementCaseEditor; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by plough on 2018/1/18. + */ +public class ChartEditorDefinePane extends MobileWidgetDefinePane{ + private static final Item[] ITEMS = { + new Item(ChartMobileFitAttrState.AUTO.description(), ChartMobileFitAttrState.AUTO), + new Item(ChartMobileFitAttrState.AREA.description(), ChartMobileFitAttrState.AREA), + new Item(ChartMobileFitAttrState.GEOMETRIC.description(), ChartMobileFitAttrState.GEOMETRIC) + }; + + private XCreator xCreator; // 当前选中控件的xCreator + private FormDesigner designer; // 当前设计器 +// private UIComboBox hComboBox; // 横屏下拉框 + private UIComboBox vComboBox;// 竖屏下拉框 +// private UICheckBox heightRestrictCheckBox; // 手机显示限制高度复选框 + private UILabel maxHeightLabel; + private UISpinner maxHeightSpinner; // 最大高度Spinner + private AttributeChangeListener changeListener; + + public ChartEditorDefinePane (XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + protected void initContentPane() {} + + @Override + protected JPanel createContentPane() { + return null; + } + + @Override + public String getIconPath() { + return ""; + } + + @Override + public String title4PopupWindow() { + return "ChartEditor"; + } + + + @Override + public void initPropertyGroups(Object source) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); +// this.hComboBox = new UIComboBox(ITEMS); + this.vComboBox = new UIComboBox(ITEMS); +// this.heightRestrictCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Mobile-Height-Limit")); + this.maxHeightLabel = new UILabel(Inter.getLocText("FR-Designer_Mobile-Height-Percent"), SwingConstants.LEFT); + this.maxHeightSpinner = new UISpinner(0, 1, 0.01, 0.75); + maxHeightSpinner.setVisible(false); + maxHeightLabel.setVisible(false); + + Component[][] components = new Component[][]{ + new Component[] {new UILabel("放大逻辑", SwingConstants.LEFT), new UILabel("等比例自适应")}, + new Component[] {new UILabel("缩小逻辑", SwingConstants.LEFT), vComboBox}, + new Component[] {new UILabel("提示:系统根据模版自动匹配缩小逻辑"), null}, + new Component[] {maxHeightLabel, maxHeightSpinner} + }; + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + double[] rowSize = {p, p, p, p}; + double[] columnSize = {p,f}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 30, LayoutConstants.VGAP_LARGE); + panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); + final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); + panelWrapper.add(panel, BorderLayout.NORTH); + UIExpandablePane folderPane = new UIExpandablePane("图表自适应", 280, 20, panelWrapper); + this.add(folderPane, BorderLayout.NORTH); + this.bingListeners2Widgets(); + this.setGlobalNames(); + this.repaint(); + } + + private void bingListeners2Widgets() { + reInitAllListeners(); + this.changeListener = new AttributeChangeListener() { + @Override + public void attributeChange() { + update(); + } + }; + } + + /** + * 后台初始化所有事件. + */ + private void reInitAllListeners() { + initListener(this); + } + + @Override + public void populate(FormDesigner designer) { +// this.designer = designer; +// this.addAttributeChangeListener(changeListener); +// ChartEditor elementCaseEditor = (ChartEditor)xCreator.toData(); +// this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr())); +// this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr())); +// this.heightRestrictCheckBox.setSelected(elementCaseEditor.isHeightRestrict()); +// this.maxHeightLabel.setVisible(); +// this.maxHeightSpinner.setVisible(elementCaseEditor.isHeightRestrict()); +// this.maxHeightSpinner.setValue(elementCaseEditor.getHeightPercent()); + } + + @Override + public void update() { +// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 +// String globalName = this.getGlobalName(); +// switch (globalName) { +// case "hComboBox": +//// ((ChartEditor)xCreator.toData()).setHorziontalAttr(((MobileFitAttrState)((Item)hComboBox.getSelectedItem()).getValue())); +// break; +// case "vComboBox": +//// ((ChartEditor)xCreator.toData()).setVerticalAttr(((MobileFitAttrState)((Item)vComboBox.getSelectedItem()).getValue())); +// break; +// case "heightRestrictCheckBox": +// boolean isHeightRestrict = heightRestrictCheckBox.isSelected(); +//// ((ChartEditor)xCreator.toData()).setHeightRestrict(isHeightRestrict); +// maxHeightSpinner.setVisible(isHeightRestrict); +// maxHeightLabel.setVisible(isHeightRestrict); +// break; +// case "maxHeightSpinner": +//// ((ChartEditor)xCreator.toData()).setHeightPercent(maxHeightSpinner.getValue()); +// break; +// } + } + + private void setGlobalNames() { +// this.hComboBox.setGlobalName("hComboBox"); +// this.vComboBox.setGlobalName("vComboBox"); +// this.heightRestrictCheckBox.setGlobalName("heightRestrictCheckBox"); +// this.maxHeightSpinner.setGlobalName("maxHeightSpinner"); + } + +} From 360d5c8cbf170d68259cf20f9ed5e39dd89a4f0d Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 24 Jan 2018 14:18:54 +0800 Subject: [PATCH 18/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E9=80=BB=E8=BE=91=3D>=E5=9B=BE=E8=A1=A8=E5=9D=97=E7=9A=84?= =?UTF-8?q?=E7=A7=BB=20=E5=8A=A8=E7=AB=AF=E8=AE=BE=E7=BD=AE=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=3D>=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/chart/mobile/ChartMobileAttr.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java diff --git a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java new file mode 100644 index 0000000000..6fc187243a --- /dev/null +++ b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java @@ -0,0 +1,76 @@ +package com.fr.design.chart.mobile; + +import com.fr.base.mobile.ChartMobileAttrProvider; +import com.fr.base.mobile.ChartMobileFitAttrState; +import com.fr.base.mobile.ChartMobileFitAttrStateProvider; +import com.fr.json.JSONException; +import com.fr.json.JSONObject; +import com.fr.stable.xml.XMLPrintWriter; +import com.fr.stable.xml.XMLableReader; + +/** + * 当前图表块在移动端的一些属性 + * Created by plough on 2018/1/23. + */ +public class ChartMobileAttr implements ChartMobileAttrProvider { + + public static final String XML_TAG = "ChartMobileAttr"; + // 缩小逻辑属性 + private ChartMobileFitAttrState zoomOutAttr; + // 放大逻辑属性 + private ChartMobileFitAttrState zoomInAttr; + + @Override + public ChartMobileFitAttrStateProvider getZoomOutAttr() { + return zoomOutAttr; + } + + @Override + public void setZoomOutAttr(ChartMobileFitAttrStateProvider zoomOutAttr) { + this.zoomOutAttr = (ChartMobileFitAttrState) zoomOutAttr; + } + + @Override + public ChartMobileFitAttrStateProvider getZoomInAttr() { + return zoomInAttr; + } + + @Override + public void setZoomInAttr(ChartMobileFitAttrStateProvider zoomInAttr) { + this.zoomInAttr = (ChartMobileFitAttrState) zoomInAttr; + } + + @Override + public boolean isAdaptive() { + // TODO: body 是否开启手机重布局 + return true; + } + + @Override + public void createJSONConfig(JSONObject jo) throws JSONException { + jo.put("zoomOutFit", this.zoomOutAttr.getState()); + jo.put("zoomInFit", this.zoomInAttr.getState()); + } + + @Override + public void readXML(XMLableReader reader) { + int defaultIndex = ChartMobileFitAttrState.AUTO.getState(); + int zoomOutIndex = reader.getAttrAsInt("zoomOut", defaultIndex); + int zoomInIndex = reader.getAttrAsInt("zoomIn", defaultIndex); + this.zoomOutAttr = ChartMobileFitAttrState.parse(zoomOutIndex); + this.zoomInAttr = ChartMobileFitAttrState.parse(zoomInIndex); + } + + @Override + public void writeXML(XMLPrintWriter writer) { + writer.startTAG(ChartMobileAttrProvider.XML_TAG) + .attr("zoomOut", this.zoomOutAttr.getState()) + .attr("zoomIn", this.zoomInAttr.getState()) + .end(); + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } +} From a9747b0fd7ac3a5c26cbae7ae07b9c1cf5f2a380 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 24 Jan 2018 15:30:19 +0800 Subject: [PATCH 19/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E4=B8=8Ebody=E7=9A=84=E2=80=9C=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E9=87=8D=E5=B8=83=E5=B1=80=E2=80=9D=E9=80=89=E9=A1=B9=E8=81=94?= =?UTF-8?q?=E5=8A=A8=EF=BC=8C=E5=8E=BB=E5=8B=BE=E9=80=89=E6=97=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 1 + .../design/locale/designer_en_US.properties | 1 + .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 1 + .../design/locale/designer_zh_TW.properties | 1 + .../design/chart/mobile/ChartMobileAttr.java | 2 +- .../mobile/ChartEditorDefinePane.java | 38 +++++++++++++------ 8 files changed, 34 insertions(+), 12 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 101044661a..41f4102821 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2182,3 +2182,4 @@ FR-Designer_Joption_News=news FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index b10d9809be..2ae12739ea 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2181,3 +2181,4 @@ FR-Designer_Joption_News=news FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 63a17b1035..dd7bc51044 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2179,3 +2179,4 @@ FR-Designer_Joption_News=\u30CB\u30E5\u30FC\u30B9 FR-Designer_Zoom_In_Logic= FR-Designer_Zoom_Out_Logic= FR-Designer_Chart_Adaptivity= +FR-Designer_Tip_Chart_Adaptivity_Unavailable= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 379730f5cc..832f4612c1 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2180,3 +2180,4 @@ FR-Designer_Joption_News=\uC18C\uC2DD FR-Designer_Zoom_In_Logic= FR-Designer_Zoom_Out_Logic= FR-Designer_Chart_Adaptivity= +FR-Designer_Tip_Chart_Adaptivity_Unavailable= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 30fc31f9c1..855132f2bf 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2182,3 +2182,4 @@ FR-Designer_Joption_News=\u6D88\u606F FR-Designer_Zoom_In_Logic=\u653E\u5927\u903B\u8F91 FR-Designer_Zoom_Out_Logic=\u7F29\u5C0F\u903B\u8F91 FR-Designer_Chart_Adaptivity=\u56FE\u8868\u81EA\u9002\u5E94 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9009\u624B\u673A\u91CD\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u4E0D\u652F\u6301\u56FE\u8868\u81EA\u9002\u5E94 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index c1659808e9..4a555d5fde 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2181,3 +2181,4 @@ FR-Designer_Joption_News=\u6D88\u606F FR-Designer_Zoom_In_Logic=\u653E\u5927\u908F\u8F2F FR-Designer_Zoom_Out_Logic=\u7E2E\u5C0F\u908F\u8F2F FR-Designer_Chart_Adaptivity=\u5716\u8868\u81EA\u6211\u8ABF\u6574 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9078\u624B\u6A5F\u91CD\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u4E0D\u652F\u6301\u5716\u8868\u81EA\u6211\u8ABF\u6574 diff --git a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java index 6fc187243a..34aeb393af 100644 --- a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java +++ b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java @@ -42,7 +42,7 @@ public class ChartMobileAttr implements ChartMobileAttrProvider { @Override public boolean isAdaptive() { - // TODO: body 是否开启手机重布局 + // TODO: body 是否开启手机重布局。需要解决模块间依赖问题。这个方法暂时没用,等功能做好之后,再考虑是否去掉 return true; } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index eb4b1305d8..8730deec02 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -15,6 +15,7 @@ import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.ChartEditor; +import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; import javax.swing.*; @@ -35,8 +36,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private XCreator xCreator; // 当前选中控件的xCreator private FormDesigner designer; // 当前设计器 private UIComboBox zoomOutComboBox;// 缩小逻辑下拉框 - private UILabel maxHeightLabel; - private UISpinner maxHeightSpinner; // 最大高度Spinner private AttributeChangeListener changeListener; private UILabel tipLabel; @@ -67,7 +66,28 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); -// this.hComboBox = new UIComboBox(ITEMS); + + if (((WFitLayout)designer.getRootComponent().toData()).isAppRelayout()) { // 如果开启了手机重布局 + this.add(getMobileSettingsPane(), BorderLayout.NORTH); + this.bingListeners2Widgets(); + this.setGlobalNames(); + } else { + this.add(getUnavailableTipPane(), BorderLayout.NORTH); + } + + this.repaint(); + } + + private JPanel getUnavailableTipPane() { + JPanel panel = new JPanel(new BorderLayout()); + UILabel unavailableTipLabel = new UILabel(); + unavailableTipLabel.setText("" + Inter.getLocText("FR-Designer_Tip_Chart_Adaptivity_Unavailable") + ""); + unavailableTipLabel.setForeground(Color.gray); + panel.add(unavailableTipLabel, BorderLayout.NORTH); + return panel; + } + + private UIExpandablePane getMobileSettingsPane() { this.zoomOutComboBox = new UIComboBox(ITEMS); this.zoomOutComboBox.addItemListener(new ItemListener() { @Override @@ -95,11 +115,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(panel, BorderLayout.NORTH); - UIExpandablePane folderPane = new UIExpandablePane(Inter.getLocText("FR-Designer_Chart_Adaptivity"), 280, 20, panelWrapper); - this.add(folderPane, BorderLayout.NORTH); - this.bingListeners2Widgets(); - this.setGlobalNames(); - this.repaint(); + return new UIExpandablePane(Inter.getLocText("FR-Designer_Chart_Adaptivity"), 280, 20, panelWrapper); } private void updateTipLabel() { @@ -127,9 +143,9 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void populate(FormDesigner designer) { - this.designer = designer; - this.addAttributeChangeListener(changeListener); - ChartEditor chartEditor = (ChartEditor)xCreator.toData(); +// this.designer = designer; +// this.addAttributeChangeListener(changeListener); +// ChartEditor chartEditor = (ChartEditor)xCreator.toData(); // this.zoomOutComboBox.setSelectedIndex(0); // this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr())); // this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr())); From f96f509f4abed57576a1c470f3bc66d140232780 Mon Sep 17 00:00:00 2001 From: plough Date: Sun, 28 Jan 2018 21:16:06 +0800 Subject: [PATCH 20/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=8F=AF=E5=AD=98?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/chart/mobile/ChartMobileAttr.java | 76 ------------------ .../mobile/ChartEditorDefinePane.java | 77 ++++++++----------- 2 files changed, 30 insertions(+), 123 deletions(-) delete mode 100644 designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java diff --git a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java deleted file mode 100644 index 34aeb393af..0000000000 --- a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.fr.design.chart.mobile; - -import com.fr.base.mobile.ChartMobileAttrProvider; -import com.fr.base.mobile.ChartMobileFitAttrState; -import com.fr.base.mobile.ChartMobileFitAttrStateProvider; -import com.fr.json.JSONException; -import com.fr.json.JSONObject; -import com.fr.stable.xml.XMLPrintWriter; -import com.fr.stable.xml.XMLableReader; - -/** - * 当前图表块在移动端的一些属性 - * Created by plough on 2018/1/23. - */ -public class ChartMobileAttr implements ChartMobileAttrProvider { - - public static final String XML_TAG = "ChartMobileAttr"; - // 缩小逻辑属性 - private ChartMobileFitAttrState zoomOutAttr; - // 放大逻辑属性 - private ChartMobileFitAttrState zoomInAttr; - - @Override - public ChartMobileFitAttrStateProvider getZoomOutAttr() { - return zoomOutAttr; - } - - @Override - public void setZoomOutAttr(ChartMobileFitAttrStateProvider zoomOutAttr) { - this.zoomOutAttr = (ChartMobileFitAttrState) zoomOutAttr; - } - - @Override - public ChartMobileFitAttrStateProvider getZoomInAttr() { - return zoomInAttr; - } - - @Override - public void setZoomInAttr(ChartMobileFitAttrStateProvider zoomInAttr) { - this.zoomInAttr = (ChartMobileFitAttrState) zoomInAttr; - } - - @Override - public boolean isAdaptive() { - // TODO: body 是否开启手机重布局。需要解决模块间依赖问题。这个方法暂时没用,等功能做好之后,再考虑是否去掉 - return true; - } - - @Override - public void createJSONConfig(JSONObject jo) throws JSONException { - jo.put("zoomOutFit", this.zoomOutAttr.getState()); - jo.put("zoomInFit", this.zoomInAttr.getState()); - } - - @Override - public void readXML(XMLableReader reader) { - int defaultIndex = ChartMobileFitAttrState.AUTO.getState(); - int zoomOutIndex = reader.getAttrAsInt("zoomOut", defaultIndex); - int zoomInIndex = reader.getAttrAsInt("zoomIn", defaultIndex); - this.zoomOutAttr = ChartMobileFitAttrState.parse(zoomOutIndex); - this.zoomInAttr = ChartMobileFitAttrState.parse(zoomInIndex); - } - - @Override - public void writeXML(XMLPrintWriter writer) { - writer.startTAG(ChartMobileAttrProvider.XML_TAG) - .attr("zoomOut", this.zoomOutAttr.getState()) - .attr("zoomIn", this.zoomInAttr.getState()) - .end(); - } - - @Override - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } -} diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 8730deec02..232d0bc1b7 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -1,6 +1,7 @@ package com.fr.design.widget.ui.designer.mobile; import com.fr.base.mobile.ChartMobileFitAttrState; +import com.fr.base.mobile.ChartMobileFitAttrStateProvider; import com.fr.design.constants.LayoutConstants; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.properties.items.Item; @@ -8,13 +9,13 @@ import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AttributeChangeListener; 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.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; 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.ui.ChartEditor; +import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; @@ -38,6 +39,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private UIComboBox zoomOutComboBox;// 缩小逻辑下拉框 private AttributeChangeListener changeListener; private UILabel tipLabel; + private boolean isPopulating = false; public ChartEditorDefinePane (XCreator xCreator) { this.xCreator = xCreator; @@ -70,7 +72,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ if (((WFitLayout)designer.getRootComponent().toData()).isAppRelayout()) { // 如果开启了手机重布局 this.add(getMobileSettingsPane(), BorderLayout.NORTH); this.bingListeners2Widgets(); - this.setGlobalNames(); + this.addAttributeChangeListener(changeListener); } else { this.add(getUnavailableTipPane(), BorderLayout.NORTH); } @@ -88,13 +90,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ } private UIExpandablePane getMobileSettingsPane() { - this.zoomOutComboBox = new UIComboBox(ITEMS); - this.zoomOutComboBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - updateTipLabel(); - } - }); + initZoomOutComboBox(); tipLabel = new UILabel(); tipLabel.setForeground(Color.gray); @@ -115,9 +111,26 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(panel, BorderLayout.NORTH); + return new UIExpandablePane(Inter.getLocText("FR-Designer_Chart_Adaptivity"), 280, 20, panelWrapper); } + private void initZoomOutComboBox() { + this.zoomOutComboBox = new UIComboBox(ITEMS); + + BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); + ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); + this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); + + this.zoomOutComboBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + updateTipLabel(); + } + }); + } + + private void updateTipLabel() { ChartMobileFitAttrState fitAttrState = (ChartMobileFitAttrState) ((Item)zoomOutComboBox.getSelectedItem()).getValue(); // 使用 html,可以自动换行 @@ -129,6 +142,9 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.changeListener = new AttributeChangeListener() { @Override public void attributeChange() { + if (isPopulating) { + return; + } update(); } }; @@ -143,46 +159,13 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void populate(FormDesigner designer) { -// this.designer = designer; -// this.addAttributeChangeListener(changeListener); -// ChartEditor chartEditor = (ChartEditor)xCreator.toData(); -// this.zoomOutComboBox.setSelectedIndex(0); -// this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr())); -// this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr())); -// this.heightRestrictCheckBox.setSelected(elementCaseEditor.isHeightRestrict()); -// this.maxHeightLabel.setVisible(); -// this.maxHeightSpinner.setVisible(elementCaseEditor.isHeightRestrict()); -// this.maxHeightSpinner.setValue(elementCaseEditor.getHeightPercent()); + // 感觉 populate 方法没啥用。可以直接在 initPropertyGroups 中更新界面 } @Override public void update() { -// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 -// String globalName = this.getGlobalName(); -// switch (globalName) { -// case "hComboBox": -//// ((ChartEditor)xCreator.toData()).setHorziontalAttr(((MobileFitAttrState)((Item)hComboBox.getSelectedItem()).getValue())); -// break; -// case "vComboBox": -//// ((ChartEditor)xCreator.toData()).setVerticalAttr(((MobileFitAttrState)((Item)vComboBox.getSelectedItem()).getValue())); -// break; -// case "heightRestrictCheckBox": -// boolean isHeightRestrict = heightRestrictCheckBox.isSelected(); -//// ((ChartEditor)xCreator.toData()).setHeightRestrict(isHeightRestrict); -// maxHeightSpinner.setVisible(isHeightRestrict); -// maxHeightLabel.setVisible(isHeightRestrict); -// break; -// case "maxHeightSpinner": -//// ((ChartEditor)xCreator.toData()).setHeightPercent(maxHeightSpinner.getValue()); -// break; -// } + ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomInAttr(ChartMobileFitAttrState.PROPORTION); + ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); + DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 } - - private void setGlobalNames() { -// this.hComboBox.setGlobalName("hComboBox"); -// this.vComboBox.setGlobalName("vComboBox"); -// this.heightRestrictCheckBox.setGlobalName("heightRestrictCheckBox"); -// this.maxHeightSpinner.setGlobalName("maxHeightSpinner"); - } - } From ec5c5dd499afa6284b2297cdad8b7ffc8d30ebbf Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 09:26:32 +0800 Subject: [PATCH 21/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=20=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E9=80=BB=E8=BE=91=3D>=E5=8A=9F=E8=83=BD=E5=9F=8B=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/ChartEditorDefinePane.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 232d0bc1b7..5517f27f92 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -15,9 +15,12 @@ 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.FormFunctionProcessor; import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; +import com.fr.plugin.ExtraClassManager; +import com.fr.stable.fun.FunctionProcessor; import javax.swing.*; import java.awt.*; @@ -39,7 +42,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private UIComboBox zoomOutComboBox;// 缩小逻辑下拉框 private AttributeChangeListener changeListener; private UILabel tipLabel; - private boolean isPopulating = false; public ChartEditorDefinePane (XCreator xCreator) { this.xCreator = xCreator; @@ -125,7 +127,19 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.zoomOutComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { + // 只响应选中事件 + if (e.getStateChange() != ItemEvent.SELECTED) { + return; + } updateTipLabel(); + ChartMobileFitAttrState selectedAttr = (ChartMobileFitAttrState)((Item)e.getItem()).getValue(); + if (selectedAttr.getState() != ChartMobileFitAttrState.AUTO.getState()) { + // 功能埋点 + FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); + if (processor != null) { + processor.recordFunction(FormFunctionProcessor.MOBILE_CHART_ADAPTIVITY); + } + } } }); } @@ -142,9 +156,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.changeListener = new AttributeChangeListener() { @Override public void attributeChange() { - if (isPopulating) { - return; - } update(); } }; From b8b22da030c091ed302dcfabf862e1d91b29a526 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 14:09:12 +0800 Subject: [PATCH 22/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/designer/mobile/ChartEditorDefinePane.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 5517f27f92..f33fd3a43e 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -1,5 +1,6 @@ package com.fr.design.widget.ui.designer.mobile; +import com.fr.base.mobile.ChartMobileAttrProvider; import com.fr.base.mobile.ChartMobileFitAttrState; import com.fr.base.mobile.ChartMobileFitAttrStateProvider; import com.fr.design.constants.LayoutConstants; @@ -20,7 +21,9 @@ import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; import com.fr.plugin.ExtraClassManager; +import com.fr.stable.StringUtils; import com.fr.stable.fun.FunctionProcessor; +import com.fr.third.org.apache.poi.util.StringUtil; import javax.swing.*; import java.awt.*; @@ -52,7 +55,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override protected JPanel createContentPane() { - return null; + return new JPanel(); } @Override @@ -62,7 +65,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public String title4PopupWindow() { - return "ChartEditor"; + return StringUtils.EMPTY; } @@ -175,8 +178,9 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void update() { - ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomInAttr(ChartMobileFitAttrState.PROPORTION); - ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); + ChartMobileAttrProvider mobileAttr = ((BaseChartEditor)xCreator.toData()).getMobileAttr(); + mobileAttr.setZoomInAttr(ChartMobileFitAttrState.PROPORTION); + mobileAttr.setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 } } From 59b23599b543b4de4aa1b38e7b197d5fb63377cf Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 15:15:30 +0800 Subject: [PATCH 23/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/WidgetPropertyPane.java | 1 + .../mobile/ChartEditorDefinePane.java | 75 ++++++++++--------- 2 files changed, 40 insertions(+), 36 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index eda8dcd917..cb528ddfad 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -124,6 +124,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope if (mobileExtraPropertyPanes != null) { for (MobileWidgetDefinePane extraPane : mobileExtraPropertyPanes) { extraPane.initPropertyGroups(designer); + extraPane.populate(designer); } } if (widgetPropertyTables != null) { diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index f33fd3a43e..477ab9aab2 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -23,7 +23,6 @@ import com.fr.general.Inter; import com.fr.plugin.ExtraClassManager; import com.fr.stable.StringUtils; import com.fr.stable.fun.FunctionProcessor; -import com.fr.third.org.apache.poi.util.StringUtil; import javax.swing.*; import java.awt.*; @@ -60,7 +59,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public String getIconPath() { - return ""; + return StringUtils.EMPTY; } @Override @@ -73,18 +72,15 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); - - if (((WFitLayout)designer.getRootComponent().toData()).isAppRelayout()) { // 如果开启了手机重布局 - this.add(getMobileSettingsPane(), BorderLayout.NORTH); - this.bingListeners2Widgets(); - this.addAttributeChangeListener(changeListener); - } else { - this.add(getUnavailableTipPane(), BorderLayout.NORTH); - } - + this.add(isAppRelayout() ? getMobileSettingsPane() : getUnavailableTipPane(), BorderLayout.NORTH); this.repaint(); } + // body是否开启手机重布局 + private boolean isAppRelayout() { + return ((WFitLayout)designer.getRootComponent().toData()).isAppRelayout(); + } + private JPanel getUnavailableTipPane() { JPanel panel = new JPanel(new BorderLayout()); UILabel unavailableTipLabel = new UILabel(); @@ -122,29 +118,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private void initZoomOutComboBox() { this.zoomOutComboBox = new UIComboBox(ITEMS); - - BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); - ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); - this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); - - this.zoomOutComboBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - // 只响应选中事件 - if (e.getStateChange() != ItemEvent.SELECTED) { - return; - } - updateTipLabel(); - ChartMobileFitAttrState selectedAttr = (ChartMobileFitAttrState)((Item)e.getItem()).getValue(); - if (selectedAttr.getState() != ChartMobileFitAttrState.AUTO.getState()) { - // 功能埋点 - FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); - if (processor != null) { - processor.recordFunction(FormFunctionProcessor.MOBILE_CHART_ADAPTIVITY); - } - } - } - }); } @@ -154,7 +127,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ tipLabel.setText("" + fitAttrState.tip() + ""); } - private void bingListeners2Widgets() { + private void bindListeners2Widgets() { reInitAllListeners(); this.changeListener = new AttributeChangeListener() { @Override @@ -173,7 +146,37 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void populate(FormDesigner designer) { - // 感觉 populate 方法没啥用。可以直接在 initPropertyGroups 中更新界面 + this.designer = designer; + + if (!isAppRelayout()) { + return; + } + + BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); + ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); + this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); + + // 数据 populate 完成后,再设置监听 + this.bindListeners2Widgets(); + this.zoomOutComboBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + // 只响应选中事件 + if (e.getStateChange() != ItemEvent.SELECTED) { + return; + } + updateTipLabel(); + ChartMobileFitAttrState selectedAttr = (ChartMobileFitAttrState)((Item)e.getItem()).getValue(); + if (selectedAttr.getState() != ChartMobileFitAttrState.AUTO.getState()) { + // 功能埋点 + FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); + if (processor != null) { + processor.recordFunction(FormFunctionProcessor.MOBILE_CHART_ADAPTIVITY); + } + } + } + }); + this.addAttributeChangeListener(changeListener); } @Override From 81367e5f66f053eaa499eebb4e1b9abdab8f3401 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 30 Jan 2018 19:42:04 +0800 Subject: [PATCH 24/75] =?UTF-8?q?REPORT-6681=20=E3=80=90=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E3=80=91=E6=8A=A5=E8=A1=A8=E3=80=8B=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=89=8B=E6=9C=BA=E7=AB=AF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=94=BB=E5=B8=83=E5=A4=A7=E5=B0=8F=E5=8A=9F=E8=83=BD=E3=80=8B?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=AE=BE=E7=BD=AE=E3=80=8B=E2=80=9C=E7=BA=B8?= =?UTF-8?q?=E5=BC=A0=E5=A4=A7=E5=B0=8F-=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E2=80=9D=E4=B8=AD=E5=AE=BD=E5=BA=A6=E5=80=BC=E4=B8=BA=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E5=80=BC=E6=97=B6=EF=BC=8C=E5=90=91=E4=B8=8B=E7=AE=AD?= =?UTF-8?q?=E5=A4=B4=E7=82=B9=E5=87=BB=E6=97=A0=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/report/PageSetupPane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer/src/com/fr/design/report/PageSetupPane.java b/designer/src/com/fr/design/report/PageSetupPane.java index 93460b7cc9..883690a088 100644 --- a/designer/src/com/fr/design/report/PageSetupPane.java +++ b/designer/src/com/fr/design/report/PageSetupPane.java @@ -443,6 +443,7 @@ public class PageSetupPane extends BasicPane { } else { // 英寸 maxWidth = PaperSize.PAPERSIZE_MOBILE.getWidth().toINCHValue4Scale3(); } + maxWidth = Math.round(maxWidth * 100) / 100.0; // 保留两位小数 ((SpinnerNumberModel)paperWidthSpinner.getModel()).setMaximum(maxWidth); } } From bf921b66d84892df81cda419e7bf96016e94bcc5 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 30 Jan 2018 19:50:51 +0800 Subject: [PATCH 25/75] =?UTF-8?q?REPORT-6687=20=E3=80=90=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E3=80=91=E8=A1=A8=E5=8D=95=E3=80=8B=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E6=89=8B=E6=9C=BA=E7=AB=AF=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=94=BB=E5=B8=83=E5=A4=A7=E5=B0=8F=E5=8A=9F=E8=83=BD=E3=80=8B?= =?UTF-8?q?=E5=BC=80=E5=90=AF=E8=87=AA=E9=80=82=E5=BA=94=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=B9=E9=85=8D=E7=9A=84=E5=AD=90=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=BB=98=E8=AE=A4=E6=B2=A1=E6=9C=89=E5=8B=BE=E9=80=89?= =?UTF-8?q?=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/form/mobile/FormMobileTemplateSettingsPane.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java index 719f958fa7..2bf56ed76b 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java @@ -49,7 +49,11 @@ public class FormMobileTemplateSettingsPane extends BasicBeanPane Date: Tue, 30 Jan 2018 20:22:17 +0800 Subject: [PATCH 26/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E5=BD=93=E5=AE=BD=E5=BA=A6=E4=B8=BA375=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E7=82=B9=E5=87=BB=E7=A1=AE=E5=AE=9A=E5=90=8E=EF=BC=8C=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=AE=BE=E7=BD=AE=E9=AB=98=E5=BA=A6=E4=B8=BA=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormArea.java | 27 +++++++------------ .../actions/FormMobileAttrAction.java | 2 ++ 2 files changed, 11 insertions(+), 18 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormArea.java b/designer_form/src/com/fr/design/mainframe/FormArea.java index 37f05cfcb1..caab605dc1 100644 --- a/designer_form/src/com/fr/design/mainframe/FormArea.java +++ b/designer_form/src/com/fr/design/mainframe/FormArea.java @@ -102,27 +102,18 @@ public class FormArea extends JComponent implements ScrollRulerComponent { } this.setFocusTraversalKeysEnabled(false); this.designer.addMouseWheelListener(showValSpinnerMouseWheelListener); - initMobileAttrModifiedListener(); + widthPane.setEnabled(!jForm.getTarget().getFormMobileAttr().isMobileOnly()); } - private void initMobileAttrModifiedListener() { - if (jForm == null) { - return; + public void onMobileAttrModified() { + FormMobileAttr formMobileAttr = jForm.getTarget().getFormMobileAttr(); + if (formMobileAttr.isMobileOnly()) { + widthPane.setValue(MOBILE_ONLY_WIDTH); + changeWidthPaneValue(MOBILE_ONLY_WIDTH); + heightPane.setValue(MOBILE_ONLY_HEIGHT); + changeHeightPaneValue(MOBILE_ONLY_HEIGHT); } - jForm.addTargetModifiedListener(new TargetModifiedListener() { - @Override - public void targetModified(TargetModifiedEvent e) { - FormMobileAttr formMobileAttr = jForm.getTarget().getFormMobileAttr(); - if (formMobileAttr.isMobileOnly() && Math.abs(widthPane.getValue() - MOBILE_ONLY_WIDTH) > 0.0000001) { - widthPane.setValue(MOBILE_ONLY_WIDTH); - changeWidthPaneValue(MOBILE_ONLY_WIDTH); - heightPane.setValue(MOBILE_ONLY_HEIGHT); - changeHeightPaneValue(MOBILE_ONLY_HEIGHT); - } - widthPane.setEnabled(!formMobileAttr.isMobileOnly()); - } - }); - widthPane.setEnabled(!jForm.getTarget().getFormMobileAttr().isMobileOnly()); + widthPane.setEnabled(!formMobileAttr.isMobileOnly()); } MouseWheelListener showValSpinnerMouseWheelListener = new MouseWheelListener() { diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java index bb5bf0ce78..17a4458bd8 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -6,6 +6,7 @@ import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.form.mobile.FormMobileAttrPane; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.FormArea; import com.fr.design.mainframe.JForm; import com.fr.design.menu.MenuKeySet; import com.fr.form.main.Form; @@ -52,6 +53,7 @@ public class FormMobileAttrAction extends JTemplateAction { public void doOk() { FormMobileAttr formMobileAttr = mobileAttrPane.updateBean(); formTpl.setFormMobileAttr(formMobileAttr); + ((FormArea)jf.getFormDesign().getParent()).onMobileAttrModified(); jf.fireTargetModified(); if (formMobileAttr.isMobileOnly()) { FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); From ec5d9d08f53ce12336f57b376a7481f811bc6c90 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 31 Jan 2018 16:31:36 +0800 Subject: [PATCH 27/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E4=BF=AE=E5=A4=8D=E4=BB=8E=E8=A1=A8=E5=8D=95=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=88=B0cpt=E6=97=B6=E7=9A=84npe=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/FormArea.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormArea.java b/designer_form/src/com/fr/design/mainframe/FormArea.java index caab605dc1..11db27bda0 100644 --- a/designer_form/src/com/fr/design/mainframe/FormArea.java +++ b/designer_form/src/com/fr/design/mainframe/FormArea.java @@ -102,7 +102,9 @@ public class FormArea extends JComponent implements ScrollRulerComponent { } this.setFocusTraversalKeysEnabled(false); this.designer.addMouseWheelListener(showValSpinnerMouseWheelListener); - widthPane.setEnabled(!jForm.getTarget().getFormMobileAttr().isMobileOnly()); + if (jForm != null) { + widthPane.setEnabled(!jForm.getTarget().getFormMobileAttr().isMobileOnly()); + } } public void onMobileAttrModified() { From 415e244d29baf6c1a58e53ff240d44da8f2f3768 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 31 Jan 2018 16:55:25 +0800 Subject: [PATCH 28/75] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8C?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormArea.java | 18 +++--------------- .../src/com/fr/design/mainframe/JForm.java | 2 +- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormArea.java b/designer_form/src/com/fr/design/mainframe/FormArea.java index 11db27bda0..05853b7307 100644 --- a/designer_form/src/com/fr/design/mainframe/FormArea.java +++ b/designer_form/src/com/fr/design/mainframe/FormArea.java @@ -42,7 +42,6 @@ public class FormArea extends JComponent implements ScrollRulerComponent { private static final int MOBILE_ONLY_WIDTH = 375; private static final int MOBILE_ONLY_HEIGHT = 560; private FormDesigner designer; - private JForm jForm; private int horizontalValue = 0; private int verticalValue = 0; private int verticalMax = 0; @@ -68,21 +67,12 @@ public class FormArea extends JComponent implements ScrollRulerComponent { } public FormArea(FormDesigner designer) { - this(designer, null, true); - } - - public FormArea(FormDesigner designer, JForm jForm) { - this(designer, jForm, true); + this(designer, true); } public FormArea(FormDesigner designer, boolean useScrollBar) { - this(designer, null, useScrollBar); - } - - public FormArea(FormDesigner designer, JForm jForm, boolean useScrollBar) { this.designer = designer; this.designer.setParent(this); - this.jForm = jForm; isValid = useScrollBar; verScrollBar = new FormScrollBar(Adjustable.VERTICAL, this); horScrollBar = new FormScrollBar(Adjustable.HORIZONTAL, this); @@ -94,6 +84,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent { this.add(FormRulerLayout.VERTICAL, verScrollBar); this.add(FormRulerLayout.HIRIZONTAL, horScrollBar); enableEvents(AWTEvent.MOUSE_WHEEL_EVENT_MASK); + widthPane.setEnabled(!designer.getTarget().getFormMobileAttr().isMobileOnly()); } else { // 报表参数界面只要标尺和中心pane this.setLayout(new RulerLayout()); @@ -102,13 +93,10 @@ public class FormArea extends JComponent implements ScrollRulerComponent { } this.setFocusTraversalKeysEnabled(false); this.designer.addMouseWheelListener(showValSpinnerMouseWheelListener); - if (jForm != null) { - widthPane.setEnabled(!jForm.getTarget().getFormMobileAttr().isMobileOnly()); - } } public void onMobileAttrModified() { - FormMobileAttr formMobileAttr = jForm.getTarget().getFormMobileAttr(); + FormMobileAttr formMobileAttr = designer.getTarget().getFormMobileAttr(); if (formMobileAttr.isMobileOnly()) { widthPane.setValue(MOBILE_ONLY_WIDTH); changeWidthPaneValue(MOBILE_ONLY_WIDTH); diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 97c0d6ff1f..2eeb4b0865 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -225,7 +225,7 @@ public class JForm extends JTemplate implements BaseJForm { centerPane.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 0, new Color(85, 85, 85))); formDesign = new FormDesigner(this.getTarget(), new TabChangeAction(BaseJForm.ELEMENTCASE_TAB, this)); WidgetToolBarPane.getInstance(formDesign); - FormArea area = new FormArea(formDesign, this); + FormArea area = new FormArea(formDesign); JPanel areaWrapper = new JPanel(new BorderLayout()); areaWrapper.add(area, BorderLayout.CENTER); areaWrapper.setBackground(Color.white); From 3258a866cdb6b47ba5cc1d2624da6ab6e7f1d9e5 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 1 Feb 2018 11:41:27 +0800 Subject: [PATCH 29/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>=E6=8E=92=E5=BA=8F=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controlpane/UISimpleListControlPane.java | 468 ++++++++++++++++++ .../mainframe/MobileWidgetListPane.java | 67 +++ .../design/mainframe/WidgetPropertyPane.java | 7 +- 3 files changed, 539 insertions(+), 3 deletions(-) create mode 100644 designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java create mode 100644 designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java diff --git a/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java b/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java new file mode 100644 index 0000000000..639e9649f7 --- /dev/null +++ b/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java @@ -0,0 +1,468 @@ +package com.fr.design.gui.controlpane; + +import com.fr.base.BaseUtils; +import com.fr.design.actions.UpdateAction; +import com.fr.design.constants.UIConstants; +import com.fr.design.dialog.BasicPane; +import com.fr.design.gui.icontainer.UIScrollPane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ilist.ListModelElement; +import com.fr.design.gui.ilist.UIList; +import com.fr.design.gui.itoolbar.UIToolBarUI; +import com.fr.design.gui.itoolbar.UIToolbar; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.menu.ShortCut; +import com.fr.design.menu.ToolBarDef; +import com.fr.general.ComparatorUtils; +import com.fr.general.Inter; +import com.fr.stable.ArrayUtils; +import com.fr.stable.Nameable; +import com.fr.stable.StringUtils; +import sun.swing.DefaultLookup; + +import javax.swing.*; +import javax.swing.border.Border; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import java.awt.*; +import java.awt.event.*; +import java.util.Arrays; +import java.util.Comparator; + +/** + * 简单列表面板 + * Created by plough on 2018/2/1. + */ +public class UISimpleListControlPane extends BasicPane { + public static final String LIST_NAME = "UISimpleControl_List"; + + protected UIList nameList; + protected String selectedName; + private ShortCut4JControlPane[] shorts; + private ToolBarDef toolbarDef; + private UIToolbar toolBar; + + public UISimpleListControlPane() { + initComponentPane(); + } + + public ShortCut4JControlPane[] getShorts() { + return shorts; + } + + protected void initComponentPane() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.add(getContentPane(), BorderLayout.CENTER); + this.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 10)); + this.checkButtonEnabled(); + } + + protected JPanel getContentPane() { + JPanel contentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + + JPanel listPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + initListPane(listPane); + contentPane.add(listPane, BorderLayout.CENTER); + + shorts = this.createShortcuts(); + if (ArrayUtils.isEmpty(shorts)) { + return contentPane; + } + + toolbarDef = new ToolBarDef(); + for (ShortCut4JControlPane sj : shorts) { + toolbarDef.addShortCut(sj.getShortCut()); + } + toolBar = ToolBarDef.createJToolBar(); + toolBar.setUI(new UIToolBarUI(){ + @Override + public void paint(Graphics g, JComponent c) { + Graphics2D g2 = (Graphics2D) g; + g2.setColor(Color.WHITE); + g2.fillRect(0, 0, c.getWidth(), c.getHeight()); + } + }); + toolbarDef.updateToolBar(toolBar); + // 封装一层,加边框 + JPanel toolBarPane = new JPanel(new BorderLayout()); + toolBarPane.add(toolBar, BorderLayout.CENTER); + toolBarPane.setBorder(BorderFactory.createMatteBorder(1, 1, 0, 1, UIConstants.RULER_LINE_COLOR)); + + listPane.add(toolBarPane, BorderLayout.NORTH); + + return contentPane; + } + + protected ShortCut4JControlPane[] createShortcuts() { + return new ShortCut4JControlPane[]{ + moveUpItemShortCut(), + moveDownItemShortCut(), + sortItemShortCut(), + }; + } + + protected void initListPane(JPanel listPane) { + nameList = createJNameList(); + nameList.setName(LIST_NAME); + nameList.setSelectionBackground(UIConstants.ATTRIBUTE_PRESS); + listPane.add(new UIScrollPane(nameList), BorderLayout.CENTER); + + + nameList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); + nameList.addMouseListener(listMouseListener); + nameList.addListSelectionListener(new ListSelectionListener() { + public void valueChanged(ListSelectionEvent evt) { + // richie:避免多次update和populate大大降低效率 + if (!evt.getValueIsAdjusting()) { + UISimpleListControlPane.this.checkButtonEnabled(); + } + } + }); + } + + public UIList createJNameList() { + UIList nameList = new UIList(new DefaultListModel()) { + @Override + public int locationToIndex(Point location) { + int index = super.locationToIndex(location); + if (index != -1 && !getCellBounds(index, index).contains(location)) { + return -1; + } + else { + return index; + } + } + }; + nameList.setCellRenderer(new NameableListCellRenderer(this)); + return nameList; + } + + protected ShortCut4JControlPane moveUpItemShortCut() { + return new NormalEnableShortCut(new MoveUpItemAction()); + } + + protected ShortCut4JControlPane moveDownItemShortCut() { + return new NormalEnableShortCut(new MoveDownItemAction()); + } + + protected ShortCut4JControlPane sortItemShortCut() { + return new NormalEnableShortCut(new SortItemAction()); + } + + public Nameable[] update() { + java.util.List res = new java.util.ArrayList(); + DefaultListModel listModel = (DefaultListModel) this.nameList.getModel(); + for (int i = 0, len = listModel.getSize(); i < len; i++) { + res.add(((ListModelElement) listModel.getElementAt(i)).wrapper); + } + + return res.toArray(new Nameable[res.size()]); + } + + public void populate(Nameable[] nameableArray) { + DefaultListModel listModel = (DefaultListModel) this.nameList.getModel(); + listModel.removeAllElements(); + if (ArrayUtils.isEmpty(nameableArray)) { + return; + } + + listModel.setSize(nameableArray.length); + for (int i = 0; i < nameableArray.length; i++) { + listModel.set(i, new ListModelElement(nameableArray[i])); + } + if (listModel.size() > 0 || this.nameList.getSelectedIndex() != 0) { + this.nameList.setSelectedIndex(0); + } + this.checkButtonEnabled(); + } + + /** + * 根据name,选中UINameEdList中的item + */ + public void setSelectedName(String name) { + DefaultListModel listModel = (DefaultListModel) this.nameList.getModel(); + for (int i = 0, len = listModel.getSize(); i < len; i++) { + Nameable item = ((ListModelElement) listModel.getElementAt(i)).wrapper; + if (ComparatorUtils.equals(name, item.getName())) { + this.nameList.setSelectedIndex(i); + break; + } + } + } + + /** + * 获取选中的名字 + */ + public String getSelectedName() { + ListModelElement el = (ListModelElement) this.nameList.getSelectedValue(); + + return el == null ? null : el.wrapper.getName(); + } + + protected DefaultListModel getModel() { + return (DefaultListModel) this.nameList.getModel(); + } + + @Override + protected String title4PopupWindow() { + return null; + } + + /* + * 上移Item + */ + private class MoveUpItemAction extends UpdateAction { + public MoveUpItemAction() { + this.setName(Inter.getLocText("Utils-Move_Up")); + this.setMnemonic('U'); + this.setSmallIcon(BaseUtils + .readIcon("/com/fr/design/images/control/up.png")); + } + + @Override + public void actionPerformed(ActionEvent evt) { + int selectedIndex = nameList.getSelectedIndex(); + if (selectedIndex == -1) { + return; + } + + // 上移 + if (selectedIndex > 0) { + DefaultListModel listModel = (DefaultListModel) nameList.getModel(); + + Object prevObj = listModel.get(selectedIndex - 1); + Object currentObj = listModel.get(selectedIndex); + listModel.set(selectedIndex - 1, currentObj); + listModel.set(selectedIndex, prevObj); + + nameList.setSelectedIndex(selectedIndex - 1); + nameList.ensureIndexIsVisible(selectedIndex - 1); + } + } + } + + /* + * 下移Item + */ + private class MoveDownItemAction extends UpdateAction { + public MoveDownItemAction() { + this.setName(Inter.getLocText("Utils-Move_Down")); + this.setMnemonic('D'); + this.setSmallIcon(BaseUtils + .readIcon("/com/fr/design/images/control/down.png")); + } + + @Override + public void actionPerformed(ActionEvent evt) { + int selectedIndex = nameList.getSelectedIndex(); + if (selectedIndex == -1) { + return; + } + + if (selectedIndex < nameList.getModel().getSize() - 1) { + DefaultListModel listModel = (DefaultListModel) nameList.getModel(); + + Object nextObj = listModel.get(selectedIndex + 1); + Object currentObj = listModel.get(selectedIndex); + listModel.set(selectedIndex + 1, currentObj); + listModel.set(selectedIndex, nextObj); + + nameList.setSelectedIndex(selectedIndex + 1); + nameList.ensureIndexIsVisible(selectedIndex + 1); + } + } + } + + private class SortItemAction extends UpdateAction { + private boolean isAtoZ = false; + + public SortItemAction() { + this.setName(Inter.getLocText("FR-Action_Sort")); + this.setMnemonic('S'); + this.setSmallIcon(BaseUtils + .readIcon("/com/fr/design/images/control/sortAsc.png")); + } + + @Override + public void actionPerformed(ActionEvent evt) { + // p:选中的值. + Object selectedValue = nameList.getSelectedValue(); + + DefaultListModel listModel = (DefaultListModel) nameList.getModel(); + if (listModel.getSize() <= 0) { + return; + } + Nameable[] nameableArray = new Nameable[listModel.getSize()]; + + for (int i = 0; i < listModel.getSize(); i++) { + nameableArray[i] = ((ListModelElement) listModel.getElementAt(i)).wrapper; + } + + // p:排序. + if (isAtoZ) { // 升序 + Comparator nameableComparator = new Comparator() { + @Override + public int compare(Nameable o1, Nameable o2) { + return ComparatorUtils.compare(o2.getName(), o1.getName()); + } + }; + isAtoZ = !isAtoZ; + Arrays.sort(nameableArray, nameableComparator); + } else { // 降序 + Comparator nameableComparator = new Comparator() { + @Override + public int compare(Nameable o1, Nameable o2) { + return ComparatorUtils.compare(o1.getName(), o2 + .getName()); + } + }; + isAtoZ = !isAtoZ; + Arrays.sort(nameableArray, nameableComparator); + } + + for (int i = 0; i < nameableArray.length; i++) { + listModel.set(i, new ListModelElement(nameableArray[i])); + } + + // p:需要选中以前的那个值. + if (selectedValue != null) { + nameList.setSelectedValue(selectedValue, true); + } + + checkButtonEnabled(); + // p:需要repaint. + nameList.repaint(); + } + } + + /* + * UIList的鼠标事件 + */ + private MouseListener listMouseListener = new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + JList list = (JList) e.getSource(); + if (list.locationToIndex(e.getPoint()) == -1 && !e.isShiftDown() + && !isMenuShortcutKeyDown(e)) { + list.clearSelection(); + } + } + + private boolean isMenuShortcutKeyDown(InputEvent event) { + return (event.getModifiers() & Toolkit.getDefaultToolkit() + .getMenuShortcutKeyMask()) != 0; + } + }; + + /** + * 检查按钮可用状态 Check button enabled. + */ + public void checkButtonEnabled() { + for (ShortCut4JControlPane sj : getShorts()) { + sj.checkEnable(); + } + } + + /** + * 设置选中项 + * + * @param index 选中项的序列号 + */ + public void setSelectedIndex(int index) { + nameList.setSelectedIndex(index); + } + + + public class NormalEnableShortCut extends ShortCut4JControlPane { + public NormalEnableShortCut(ShortCut shortCut) { + this.shortCut = shortCut; + } + + /** + * 检查是否可用 + */ + @Override + public void checkEnable() { + this.shortCut.setEnabled(getModel() + .getSize() > 0 + && UISimpleListControlPane.this.nameList.getSelectedIndex() != -1); + } + } + + + private class NameableListCellRenderer extends + JPanel implements ListCellRenderer { + + private UILabel label; + private UISimpleListControlPane listControlPane; + private Color initialLabelForeground; + + public NameableListCellRenderer(UISimpleListControlPane listControlPane) { + super(); + this.listControlPane = listControlPane; + initComponents(); + setOpaque(true); + setBorder(getNoFocusBorder()); + setName("List.cellRenderer"); + } + + private void initComponents() { + label = new UILabel(); + label.setBorder(BorderFactory.createEmptyBorder(3, 10, 3, 0)); + initialLabelForeground = label.getForeground(); + this.setLayout(new BorderLayout()); + this.add(label, BorderLayout.CENTER); + } + + private Border getNoFocusBorder() { + return BorderFactory.createMatteBorder(0, 0, 1, 0, UIConstants.LIST_ITEM_SPLIT_LINE); + } + + private void setText(String t) { + label.setText(t); + } + + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + setComponentOrientation(list.getComponentOrientation()); + + Color bg = null; + Color fg = null; + + JList.DropLocation dropLocation = list.getDropLocation(); + if (dropLocation != null + && !dropLocation.isInsert() + && dropLocation.getIndex() == index) { + + bg = DefaultLookup.getColor(this, ui, "List.dropCellBackground"); + fg = DefaultLookup.getColor(this, ui, "List.dropCellForeground"); + + isSelected = true; + } + + if (isSelected) { + setBackground(bg == null ? list.getSelectionBackground() : bg); + setForeground(fg == null ? list.getSelectionForeground() : fg); + label.setForeground(Color.WHITE); + } + else { + setBackground(list.getBackground()); + setForeground(list.getForeground()); + label.setForeground(initialLabelForeground); + } + + setText((value == null) ? StringUtils.EMPTY : value.toString()); + + setEnabled(list.isEnabled()); + setFont(list.getFont()); + + if (value instanceof ListModelElement) { + Nameable wrappee = ((ListModelElement) value).wrapper; + this.setText(wrappee.getName()); + } + + return this; + } + } +} diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java new file mode 100644 index 0000000000..09840e7c0a --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -0,0 +1,67 @@ +package com.fr.design.mainframe; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.gui.controlpane.UISimpleListControlPane; +import com.fr.form.ui.Widget; +import com.fr.form.ui.container.WSortLayout; +import com.fr.general.Inter; +import com.fr.general.NameObject; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by plough on 2018/1/31. + */ +public class MobileWidgetListPane extends UISimpleListControlPane { + public static final String LIST_NAME = "Widget_List"; + + private FormDesigner designer; + private List cellData; + private static final List EMPTY_LIST = new ArrayList(); + + public MobileWidgetListPane(FormDesigner designer) { + super(); + this.designer = designer; + cellData = getData(); + + List nameObjectList = new ArrayList(); + for (String name : cellData) { + nameObjectList.add(new NameObject(name, null)); + } + populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); + } + + /** + * 获取选中控件的控件列表 + * + * @return String[][] 二维数组,[0][0]widgetName + */ + private List getData() { + if (designer.isFormParaDesigner()) { + return EMPTY_LIST; + } + + //选择的控件 + XCreator selectedCreator = designer.getSelectionModel().getSelection().getSelectedCreator(); + Widget selectedModel = selectedCreator != null ? selectedCreator.toData() : null; + + if (selectedModel == null) { + return new ArrayList<>(); + } + + // 选择的控件有两种类型,一种是WLayout,代表容器,一种是Widget,代表控件 + if (selectedModel.acceptType(WSortLayout.class)) { + java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); + List widgetName = new ArrayList(); +// [mobileWidgetList.size() + 1][1]; +// widgetName[0][0] = Inter.getLocText("FR-Designer_WidgetOrder"); + for (int i = 0; i < mobileWidgetList.size(); i++) { + widgetName.add(mobileWidgetList.get(i)); + } + return widgetName; + } else { + return EMPTY_LIST; + } + } +} \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index cb528ddfad..5ffac23f0f 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -253,9 +253,10 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope if ("body".equals(selection.getWidgetName())) { JPanel jPanel = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); jPanel.add(abstractPropertyTable); - MobileWidgetTable mobileWidgetTable = new MobileWidgetTable(designer); - jPanel.add(mobileWidgetTable.getTableHeader()); - jPanel.add(mobileWidgetTable); +// MobileWidgetTable mobileWidgetTable = new MobileWidgetTable(designer); +// jPanel.add(mobileWidgetTable.getTableHeader()); +// jPanel.add(mobileWidgetTable); + jPanel.add(new MobileWidgetListPane(designer)); return jPanel; } return abstractPropertyTable; From f7639a84bfe1a81fc924777b12e5acc3595eb792 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 1 Feb 2018 14:56:31 +0800 Subject: [PATCH 30/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>body=20=E7=95=8C=E9=9D=A2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=3D>=E6=A1=86=E6=9E=B6=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controlpane/UISimpleListControlPane.java | 1 - .../mobile/BodyMobilePropertyUI.java | 6 +- .../mainframe/MobileWidgetListPane.java | 2 +- .../designer/mobile/BodyMobileDefinePane.java | 120 ++++++++++++++++++ 4 files changed, 125 insertions(+), 4 deletions(-) create mode 100644 designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java diff --git a/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java b/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java index 639e9649f7..b2c90fbc79 100644 --- a/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java +++ b/designer_base/src/com/fr/design/gui/controlpane/UISimpleListControlPane.java @@ -53,7 +53,6 @@ public class UISimpleListControlPane extends BasicPane { protected void initComponentPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.add(getContentPane(), BorderLayout.CENTER); - this.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 10)); this.checkButtonEnabled(); } diff --git a/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java b/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java index 81c402e42a..d6a5dab6ae 100644 --- a/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java +++ b/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java @@ -6,6 +6,7 @@ import com.fr.design.designer.creator.XWFitLayout; 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.BodyMobileDefinePane; import com.fr.general.Inter; /** @@ -25,12 +26,13 @@ public class BodyMobilePropertyUI extends AbstractWidgetPropertyUIProvider { @Override public AbstractPropertyTable createWidgetAttrTable() { - return new BodyAppRelayoutTable(xCreator); +// return new BodyAppRelayoutTable(xCreator); + return null; } @Override public BasicPane createWidgetAttrPane() { - return null; + return new BodyMobileDefinePane(xCreator); } @Override diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java index 09840e7c0a..a992f3c1b8 100644 --- a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -53,7 +53,7 @@ public class MobileWidgetListPane extends UISimpleListControlPane { // 选择的控件有两种类型,一种是WLayout,代表容器,一种是Widget,代表控件 if (selectedModel.acceptType(WSortLayout.class)) { java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); - List widgetName = new ArrayList(); + List widgetName = new ArrayList(); // [mobileWidgetList.size() + 1][1]; // widgetName[0][0] = Inter.getLocText("FR-Designer_WidgetOrder"); for (int i = 0; i < mobileWidgetList.size(); i++) { diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java new file mode 100644 index 0000000000..eb430e8cfb --- /dev/null +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java @@ -0,0 +1,120 @@ +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.gui.icheckbox.UICheckBox; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.MobileWidgetListPane; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by plough on 2018/2/1. + */ +public class BodyMobileDefinePane extends MobileWidgetDefinePane { + private XCreator xCreator; // 当前选中控件的xCreator + private FormDesigner designer; + private AttributeChangeListener changeListener; + + public BodyMobileDefinePane(XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + protected void initContentPane() {} + + @Override + protected JPanel createContentPane() { + return new JPanel(); + } + + @Override + public String getIconPath() { + return StringUtils.EMPTY; + } + + @Override + public String title4PopupWindow() { + return StringUtils.EMPTY; + } + + + @Override + public void initPropertyGroups(Object source) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + this.add(getMobilePropertyPane(), BorderLayout.NORTH); + this.add(getMobileWidgetListPane(), BorderLayout.CENTER); + this.repaint(); + } + + // 手机属性 + private UIExpandablePane getMobilePropertyPane() { + JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); + UICheckBox relayoutCheck = new UICheckBox("手机重布局", true); + relayoutCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); + panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); + panel.add(relayoutCheck); + + final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); + panelWrapper.add(panel, BorderLayout.NORTH); + + return new UIExpandablePane("手机属性", 280, 20, panelWrapper); + } + + // 控件顺序 + private UIExpandablePane getMobileWidgetListPane() { + JPanel panel = new MobileWidgetListPane(designer); + panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); + JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); + panelWrapper.add(panel, BorderLayout.CENTER); + + return new UIExpandablePane("控件顺序", 280, 20, panelWrapper); + } + + private void bindListeners2Widgets() { + reInitAllListeners(); + this.changeListener = new AttributeChangeListener() { + @Override + public void attributeChange() { + update(); + } + }; + } + + /** + * 后台初始化所有事件. + */ + private void reInitAllListeners() { + initListener(this); + } + + @Override + public void populate(FormDesigner designer) { + this.designer = designer; + +// if (!isAppRelayout()) { +// return; +// } +// +// BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); +// ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); +// +// // 数据 populate 完成后,再设置监听 +// this.bindListeners2Widgets(); +// this.addAttributeChangeListener(changeListener); + } + + @Override + public void update() { +// ChartMobileAttrProvider mobileAttr = ((BaseChartEditor)xCreator.toData()).getMobileAttr(); +// mobileAttr.setZoomInAttr(ChartMobileFitAttrState.PROPORTION); +// mobileAttr.setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); +// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 + } +} From 15dd30ecb523ddb70db33641fe48cedc4f68c85f Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 1 Feb 2018 15:27:48 +0800 Subject: [PATCH 31/75] =?UTF-8?q?REPORT-5907=20=E8=A1=A8=E5=8D=95=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=8A=B6=E6=80=81=EF=BC=88=E9=BB=98=E8=AE=A4=E3=80=81?= =?UTF-8?q?=E6=82=AC=E5=81=9C=E3=80=81=E9=80=89=E4=B8=AD=E3=80=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=EF=BC=89=E8=A7=86=E8=A7=89=E6=94=B9=E8=89=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XChartEditor.java | 20 ++++++++++++++++++ .../fr/design/designer/creator/XCreator.java | 10 +++++++++ .../designer/creator/XWAbsoluteLayout.java | 21 +++++++++++++++++-- .../designer/creator/XWTitleLayout.java | 13 ++++++++++++ .../cardlayout/XWCardMainBorderLayout.java | 10 +++++++-- .../design/form/util/XCreatorConstants.java | 4 +++- .../com/fr/design/mainframe/CoverPane.java | 16 ++++++++++++-- .../fr/design/mainframe/CoverReportPane.java | 6 ++++++ .../fr/design/mainframe/FormDesignerUI.java | 4 +++- 9 files changed, 96 insertions(+), 8 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index 8a491e32d4..5ab96a112a 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -6,6 +6,7 @@ import java.beans.IntrospectionException; import javax.swing.*; +import com.fr.base.GraphHelper; import com.fr.base.chart.BaseChartCollection; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -24,6 +25,8 @@ import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.Widget; import com.fr.design.form.util.XCreatorConstants; import com.fr.general.Inter; +import com.fr.stable.Constants; +import com.fr.stable.GraphDrawHelper; import com.fr.stable.core.PropertyChangeAdapter; /** @@ -43,6 +46,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator { private boolean isEditing = false; private JPanel coverPanel; + private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); + private static final Color INNER_BORDER_COLOR = new Color(65, 155, 249); public XChartEditor(BaseChartEditor editor) { this(editor, new Dimension(250, 150)); @@ -121,6 +126,21 @@ public class XChartEditor extends XBorderStyleWidgetCreator { return false; } + + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + @Override + public void paintBorder(Graphics g, Rectangle bounds){ + if(isEditing){ + g.setColor(OUTER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 5, bounds.height + 5), Constants.LINE_LARGE); + g.setColor(INNER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height), Constants.LINE_MEDIUM); + } + } + /** * 返回设计器的Editor */ diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index d934ecf57f..fbc14ff3bd 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -4,6 +4,7 @@ package com.fr.design.designer.creator; import com.fr.base.BaseUtils; +import com.fr.base.GraphHelper; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -16,6 +17,7 @@ import com.fr.design.mainframe.*; import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; +import com.fr.stable.Constants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; @@ -690,6 +692,14 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo // do nothing } + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + public void paintBorder(Graphics g, Rectangle bounds){ + GraphHelper.draw(g, bounds, Constants.LINE_MEDIUM); + } + /** * 创建右击弹出菜单 * diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index eba8cd6888..74a970af01 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator; +import com.fr.base.GraphHelper; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; @@ -11,6 +12,7 @@ import com.fr.design.designer.beans.location.Direction; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.cardlayout.XWTabFitLayout; import com.fr.design.form.layout.FRAbsoluteLayout; +import com.fr.design.form.util.XCreatorConstants; import com.fr.design.icon.IconPathConstants; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormArea; @@ -23,6 +25,7 @@ import com.fr.form.ui.container.WLayout; import com.fr.general.FRScreen; import com.fr.general.IOUtils; import com.fr.general.Inter; +import com.fr.stable.Constants; import java.awt.*; import java.awt.event.ContainerEvent; @@ -42,6 +45,8 @@ public class XWAbsoluteLayout extends XLayoutContainer { private static final int EDIT_BTN_HEIGHT = 24; private int minWidth = WLayout.MIN_WIDTH; private int minHeight = WLayout.MIN_HEIGHT; + private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); + private static final Color INNER_BORDER_COLOR = new Color(65, 155, 249); //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 protected double containerPercent = 1.0; @@ -432,8 +437,8 @@ public class XWAbsoluteLayout extends XLayoutContainer { Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); //画白色的编辑层 - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); - g2d.setColor(Color.WHITE); + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 50 / 100.0F)); + g2d.setColor(XCreatorConstants.COVER_COLOR); g2d.fillRect(x, y, w, h); //画编辑按钮所在框 g2d.setComposite(oldComposite); @@ -453,9 +458,21 @@ public class XWAbsoluteLayout extends XLayoutContainer { g2d.setColor(Color.BLACK); //画编辑文字 g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); + g.setColor(XCreatorConstants.FORM_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); } + } + @Override + public void paintBorder(Graphics g, Rectangle bounds){ + if(editable){ + g.setColor(OUTER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 5, bounds.height + 5), Constants.LINE_LARGE); + g.setColor(INNER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height), Constants.LINE_MEDIUM); + } + } /** * 响应点击事件 * diff --git a/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java b/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java index 6860fc3453..7e1e145735 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWTitleLayout.java @@ -111,6 +111,19 @@ public class XWTitleLayout extends DedicateLayoutContainer { return null; } + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + @Override + public void paintBorder(Graphics g, Rectangle bounds) { + XCreator childCreator = getEditingChildCreator(); + if (childCreator != null) { + childCreator.paintBorder(g, bounds); + } + + } + /** * 将WLayout转换为XLayoutContainer */ diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index c326cec11f..2f56785687 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator.cardlayout; +import com.fr.base.GraphHelper; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.LayoutAdapter; @@ -13,6 +14,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.form.util.XCreatorConstants; import com.fr.design.icon.IconPathConstants; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; @@ -24,6 +26,8 @@ import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.general.ComparatorUtils; import com.fr.general.IOUtils; import com.fr.general.Inter; +import com.fr.stable.Constants; + import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Component; @@ -286,8 +290,8 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); //画白色的编辑层 - g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); - g2d.setColor(Color.WHITE); + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 50 / 100.0F)); + g2d.setColor(XCreatorConstants.COVER_COLOR); g2d.fillRect(x, y, w, h); //画编辑按钮所在框 g2d.setComposite(oldComposite); @@ -307,6 +311,8 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ g2d.setColor(Color.BLACK); //画编辑文字 g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); + g.setColor(XCreatorConstants.FORM_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); } } diff --git a/designer_form/src/com/fr/design/form/util/XCreatorConstants.java b/designer_form/src/com/fr/design/form/util/XCreatorConstants.java index 91cd2007ed..7e2436120e 100644 --- a/designer_form/src/com/fr/design/form/util/XCreatorConstants.java +++ b/designer_form/src/com/fr/design/form/util/XCreatorConstants.java @@ -31,7 +31,7 @@ public class XCreatorConstants { public static final Color RESIZE_BOX_BORDER_COLOR = new Color(143, 171, 196); // 当前选取的组件的边框线着色 public static final Color SELECTION_COLOR = new Color(179, 209, 236); - public static final Color FORM_BORDER_COLOR = new Color(200, 201, 205); + public static final Color FORM_BORDER_COLOR = new Color(141, 194, 249); // 设计器区域外边框的颜色和粗细 public static final Border AREA_BORDER = BorderFactory.createLineBorder(new Color(224, 224, 255), 0); // 布局拖拽时的颜色 @@ -43,6 +43,8 @@ public class XCreatorConstants { public static final Color FIT_LAYOUT_POINT_COLOR = new Color(106, 168, 222); // 格子布局的分割线 public static final Color LAYOUT_SEP_COLOR = new Color(210, 210, 210); + + public static final Color COVER_COLOR = new Color(216, 242, 253); // 伸缩表单操作条的颜色 public static final Color OP_COLOR = new Color(157,228,245); diff --git a/designer_form/src/com/fr/design/mainframe/CoverPane.java b/designer_form/src/com/fr/design/mainframe/CoverPane.java index 9fed1ab7c3..4d3d977e24 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverPane.java @@ -1,9 +1,13 @@ package com.fr.design.mainframe; +import com.fr.base.GraphHelper; +import com.fr.design.form.util.XCreatorConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.icon.IconPathConstants; +import com.fr.design.utils.ComponentUtils; import com.fr.general.IOUtils; import com.fr.general.Inter; +import com.fr.stable.Constants; import javax.swing.*; import java.awt.*; @@ -17,7 +21,9 @@ import java.awt.*; public class CoverPane extends JPanel { private UIButton editButton; - private AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F); + private AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 50 / 100.0F); + private static final int BORDER_WIDTH = 2; + private static final Color COVER_COLOR = new Color(216, 242, 253); public CoverPane() { setLayout(getCoverLayout()); @@ -89,9 +95,15 @@ public class CoverPane extends JPanel { Graphics2D g2d = (Graphics2D) g; Composite oldComposite = g2d.getComposite(); g2d.setComposite(composite); - g2d.setColor(Color.WHITE); + g2d.setColor(COVER_COLOR); g2d.fillRect(0, 0, getWidth(), getHeight()); g2d.setComposite(oldComposite); + g.setColor(XCreatorConstants.FORM_BORDER_COLOR); + GraphHelper.draw(g, getPaintBorderBounds(), Constants.LINE_MEDIUM); super.paint(g); } + + protected Rectangle getPaintBorderBounds(){ + return new Rectangle(BORDER_WIDTH, BORDER_WIDTH, getWidth() - BORDER_WIDTH * 2 , getHeight() - BORDER_WIDTH * 2); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java index 196d8752a1..ec2924cdd1 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java @@ -21,6 +21,7 @@ import java.awt.event.WindowEvent; * Time: 11:32 */ public class CoverReportPane extends CoverPane implements HelpDialogHandler{ + private static final int BORDER_WIDTH = 2; private Icon controlMode = IOUtils.readIcon(IconPathConstants.TD_EL_SHARE_HELP_ICON_PATH); private JComponent controlButton = new JComponent() { protected void paintComponent(Graphics g) { @@ -126,6 +127,11 @@ public class CoverReportPane extends CoverPane implements HelpDialogHandler{ } } + @Override + protected Rectangle getPaintBorderBounds(){ + return new Rectangle(BORDER_WIDTH - 1, BORDER_WIDTH- 1, getWidth() - BORDER_WIDTH * 2 , getHeight() - BORDER_WIDTH * 2); + } + @Override public void setVisible(boolean aFlag) { super.setVisible(aFlag); diff --git a/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java b/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java index 8a40928c36..9263b47165 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import java.awt.AlphaComposite; +import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.awt.Graphics2D; @@ -266,6 +267,7 @@ public class FormDesignerUI extends ComponentUI { bounds.y -= designer.getArea().getVerticalValue(); drawResizingThumbs(g, selectionModel.getSelection().getDirections(), bounds.x, bounds.y, bounds.width, bounds.height); + //选中时边框颜色 g.setColor(XCreatorConstants.FORM_BORDER_COLOR); for (XCreator creator : selectionModel.getSelection().getSelectedCreators()) { @@ -277,7 +279,7 @@ public class FormDesignerUI extends ComponentUI { } else if (designer.getRootComponent().acceptType(XWFitLayout.class)) { resetCreatorBounds(creatorBounds); } - GraphHelper.draw(g, creatorBounds, Constants.LINE_MEDIUM); + creator.paintBorder(g, creatorBounds); } } From af7a5835795cb9f5d6ac3c74f1bd24fc41321297 Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 1 Feb 2018 15:29:39 +0800 Subject: [PATCH 32/75] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/form/util/XCreatorConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/form/util/XCreatorConstants.java b/designer_form/src/com/fr/design/form/util/XCreatorConstants.java index 7e2436120e..4cced61430 100644 --- a/designer_form/src/com/fr/design/form/util/XCreatorConstants.java +++ b/designer_form/src/com/fr/design/form/util/XCreatorConstants.java @@ -43,7 +43,7 @@ public class XCreatorConstants { public static final Color FIT_LAYOUT_POINT_COLOR = new Color(106, 168, 222); // 格子布局的分割线 public static final Color LAYOUT_SEP_COLOR = new Color(210, 210, 210); - + // 组件覆盖层颜色 public static final Color COVER_COLOR = new Color(216, 242, 253); // 伸缩表单操作条的颜色 From 9119e2230080255855f3a49058737e9f8bb47ed0 Mon Sep 17 00:00:00 2001 From: plough Date: Sun, 4 Feb 2018 08:19:27 +0800 Subject: [PATCH 33/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>body=20=E7=95=8C=E9=9D=A2=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/BodyMobilePropertyUI.java | 1 - .../mainframe/MobileWidgetListPane.java | 13 ++++ .../design/mainframe/WidgetPropertyPane.java | 21 +----- .../designer/mobile/BodyMobileDefinePane.java | 68 ++++++++++++------- 4 files changed, 59 insertions(+), 44 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java b/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java index d6a5dab6ae..133175878c 100644 --- a/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java +++ b/designer_form/src/com/fr/design/designer/properties/mobile/BodyMobilePropertyUI.java @@ -26,7 +26,6 @@ public class BodyMobilePropertyUI extends AbstractWidgetPropertyUIProvider { @Override public AbstractPropertyTable createWidgetAttrTable() { -// return new BodyAppRelayoutTable(xCreator); return null; } diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java index a992f3c1b8..28df47b704 100644 --- a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -6,6 +6,7 @@ import com.fr.form.ui.Widget; import com.fr.form.ui.container.WSortLayout; import com.fr.general.Inter; import com.fr.general.NameObject; +import com.fr.stable.Nameable; import java.util.ArrayList; import java.util.List; @@ -32,6 +33,18 @@ public class MobileWidgetListPane extends UISimpleListControlPane { populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); } + /** + * 保存移动端控件列表顺序 + */ + public void updateToDesigner() { + Nameable[] nameableList = update(); + List newMobileWidgetList = new ArrayList<>(); + for (Nameable nameable : nameableList) { + newMobileWidgetList.add(nameable.getName()); + } + ((WSortLayout) designer.getSelectionModel().getSelection().getSelectedCreator().toData()).updateSortedMobileWidgetList(newMobileWidgetList); + } + /** * 获取选中控件的控件列表 * diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 5ffac23f0f..3193870a4e 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -236,32 +236,13 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope widgetPropertyTables.add(propertyTable); designer.addDesignerEditListener(new WidgetPropertyDesignerAdapter(formWidgetCardPane)); - UIScrollPane uiScrollPane = new UIScrollPane(getExtraBodyTable(propertyTable)); + UIScrollPane uiScrollPane = new UIScrollPane(propertyTable); wsp.add(uiScrollPane); } } } } - /** - * 如果是body的拓展属性表,那么要额外加上一张控件顺序表 - * - * @return - */ - private Component getExtraBodyTable(AbstractPropertyTable abstractPropertyTable) { - Widget selection = designer.getSelectionModel().getSelection().getSelectedCreator().toData(); - if ("body".equals(selection.getWidgetName())) { - JPanel jPanel = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); - jPanel.add(abstractPropertyTable); -// MobileWidgetTable mobileWidgetTable = new MobileWidgetTable(designer); -// jPanel.add(mobileWidgetTable.getTableHeader()); -// jPanel.add(mobileWidgetTable); - jPanel.add(new MobileWidgetListPane(designer)); - return jPanel; - } - return abstractPropertyTable; - } - private void initTabPane() { final String[] tabTitles = new String[]{ Inter.getLocText("FR-Designer_Properties"), diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java index eb430e8cfb..6ae0b86d4a 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java @@ -1,5 +1,6 @@ package com.fr.design.widget.ui.designer.mobile; +import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AttributeChangeListener; @@ -8,21 +9,25 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.MobileWidgetListPane; import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.general.Inter; import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; +import java.lang.reflect.Method; /** * Created by plough on 2018/2/1. */ public class BodyMobileDefinePane extends MobileWidgetDefinePane { - private XCreator xCreator; // 当前选中控件的xCreator + private XCreator bodyCreator; private FormDesigner designer; private AttributeChangeListener changeListener; + private UICheckBox appRelayoutCheck; + private MobileWidgetListPane mobileWidgetListPane; public BodyMobileDefinePane(XCreator xCreator) { - this.xCreator = xCreator; + this.bodyCreator = xCreator; } @Override @@ -56,23 +61,23 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { // 手机属性 private UIExpandablePane getMobilePropertyPane() { JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); - UICheckBox relayoutCheck = new UICheckBox("手机重布局", true); - relayoutCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); + appRelayoutCheck = new UICheckBox("手机重布局", true); + appRelayoutCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); - panel.add(relayoutCheck); + panel.add(appRelayoutCheck); final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(panel, BorderLayout.NORTH); - return new UIExpandablePane("手机属性", 280, 20, panelWrapper); + return new UIExpandablePane(Inter.getLocText("FR-Designer_Properties_Mobile"), 280, 20, panelWrapper); } // 控件顺序 private UIExpandablePane getMobileWidgetListPane() { - JPanel panel = new MobileWidgetListPane(designer); - panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); + mobileWidgetListPane = new MobileWidgetListPane(designer); + mobileWidgetListPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); - panelWrapper.add(panel, BorderLayout.CENTER); + panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); return new UIExpandablePane("控件顺序", 280, 20, panelWrapper); } @@ -94,27 +99,44 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { initListener(this); } + // body是否开启手机重布局 + private boolean isAppRelayout() { + boolean result = false; + try { + Method m = bodyCreator.toData().getClass().getMethod("isAppRelayout"); + result = (boolean)m.invoke(bodyCreator.toData()); + } catch (Exception e) { + // do nothing + } + return result; + } + + private void setAppRelayout(boolean appRelayoutSeleted) { + if (appRelayoutSeleted == isAppRelayout()) { + return; + } + try { + Method m = bodyCreator.toData().getClass().getMethod("setAppRelayout", boolean.class); + m.invoke(bodyCreator.toData(), appRelayoutSeleted); + } catch (Exception e) { + // do nothing + } + } + @Override public void populate(FormDesigner designer) { this.designer = designer; + appRelayoutCheck.setSelected(isAppRelayout()); -// if (!isAppRelayout()) { -// return; -// } -// -// BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); -// ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); -// -// // 数据 populate 完成后,再设置监听 -// this.bindListeners2Widgets(); -// this.addAttributeChangeListener(changeListener); + // 数据 populate 完成后,再设置监听 + this.bindListeners2Widgets(); + this.addAttributeChangeListener(changeListener); } @Override public void update() { -// ChartMobileAttrProvider mobileAttr = ((BaseChartEditor)xCreator.toData()).getMobileAttr(); -// mobileAttr.setZoomInAttr(ChartMobileFitAttrState.PROPORTION); -// mobileAttr.setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); -// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 + setAppRelayout(appRelayoutCheck.isSelected()); + mobileWidgetListPane.updateToDesigner(); + designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED); } } From 5f993e58aa6d8ae3506f303227b4b09f25e2cee9 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 13:53:15 +0800 Subject: [PATCH 34/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/XWParameterLayout.java | 7 ++ .../mobile/ParaMobilePropertyUI.java | 39 +++++++ .../designer/mobile/ParaMobileDefinePane.java | 102 ++++++++++++++++++ 3 files changed, 148 insertions(+) create mode 100644 designer_form/src/com/fr/design/designer/properties/mobile/ParaMobilePropertyUI.java create mode 100644 designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java diff --git a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java index 84011c9c41..0bbb2035b5 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java @@ -6,7 +6,9 @@ package com.fr.design.designer.creator; import com.fr.design.ExtraDesignClassManager; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRParameterLayoutAdapter; +import com.fr.design.designer.properties.mobile.ParaMobilePropertyUI; import com.fr.design.form.util.XCreatorConstants; +import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.mainframe.widget.editors.BackgroundEditor; import com.fr.design.mainframe.widget.editors.BooleanEditor; import com.fr.design.mainframe.widget.editors.WidgetDisplayPosition; @@ -214,6 +216,11 @@ public class XWParameterLayout extends XWAbsoluteLayout { public void updateBoundsWidget() { } + @Override + public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { + return new WidgetPropertyUIProvider[]{ new ParaMobilePropertyUI(this)}; + } + @Override protected String getIconName() { return "layout_absolute.png"; diff --git a/designer_form/src/com/fr/design/designer/properties/mobile/ParaMobilePropertyUI.java b/designer_form/src/com/fr/design/designer/properties/mobile/ParaMobilePropertyUI.java new file mode 100644 index 0000000000..0ed8bc61c5 --- /dev/null +++ b/designer_form/src/com/fr/design/designer/properties/mobile/ParaMobilePropertyUI.java @@ -0,0 +1,39 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XWAbsoluteBodyLayout; +import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.XWParameterLayout; +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.BodyMobileDefinePane; +import com.fr.design.widget.ui.designer.mobile.ParaMobileDefinePane; +import com.fr.general.Inter; + +/** + * Created by Administrator on 2016/5/16/0016. + */ +public class ParaMobilePropertyUI extends AbstractWidgetPropertyUIProvider { + + private XCreator xCreator; + + public ParaMobilePropertyUI(XWParameterLayout xwParameterLayout) { + this.xCreator = xwParameterLayout; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new ParaMobileDefinePane(xCreator); + } + + @Override + public String tableTitle() { + return Inter.getLocText("FR-Designer_Mobile-Attr"); + } +} diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java new file mode 100644 index 0000000000..b73f3b153a --- /dev/null +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java @@ -0,0 +1,102 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.design.designer.beans.events.DesignerEvent; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.MobileWidgetListPane; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.general.Inter; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import java.awt.*; +import java.lang.reflect.Method; + +/** + * Created by plough on 2018/2/5. + */ +public class ParaMobileDefinePane extends MobileWidgetDefinePane { + private XCreator paraCreator; + private FormDesigner designer; + private AttributeChangeListener changeListener; + private UICheckBox appRelayoutCheck; + private MobileWidgetListPane mobileWidgetListPane; + + public ParaMobileDefinePane(XCreator xCreator) { + this.paraCreator = xCreator; + } + + @Override + protected void initContentPane() {} + + @Override + protected JPanel createContentPane() { + return new JPanel(); + } + + @Override + public String getIconPath() { + return StringUtils.EMPTY; + } + + @Override + public String title4PopupWindow() { + return StringUtils.EMPTY; + } + + + @Override + public void initPropertyGroups(Object source) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + this.add(getMobileWidgetListPane(), BorderLayout.CENTER); + this.repaint(); + } + + // 控件顺序 + private UIExpandablePane getMobileWidgetListPane() { + mobileWidgetListPane = new MobileWidgetListPane(designer); + mobileWidgetListPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); + JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); + panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); + + return new UIExpandablePane("控件顺序", 280, 20, panelWrapper); + } + + private void bindListeners2Widgets() { + reInitAllListeners(); + this.changeListener = new AttributeChangeListener() { + @Override + public void attributeChange() { + update(); + } + }; + } + + /** + * 后台初始化所有事件. + */ + private void reInitAllListeners() { + initListener(this); + } + + + @Override + public void populate(FormDesigner designer) { + this.designer = designer; + + // 设置监听 + this.bindListeners2Widgets(); + this.addAttributeChangeListener(changeListener); + } + + @Override + public void update() { + mobileWidgetListPane.updateToDesigner(); + designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED); + } +} From e2b4dfb70b34b9ec8b161206319bd6473f3bedbc Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 15:30:43 +0800 Subject: [PATCH 35/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=9B=E5=A2=9E=E5=8A=A0=E6=8F=90=E7=A4=BA=EF=BC=8C=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/MobileWidgetListPane.java | 11 ++--- .../design/mainframe/WidgetPropertyPane.java | 47 +++++-------------- 2 files changed, 16 insertions(+), 42 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java index 28df47b704..c4e289f939 100644 --- a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -4,7 +4,6 @@ import com.fr.design.designer.creator.XCreator; import com.fr.design.gui.controlpane.UISimpleListControlPane; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WSortLayout; -import com.fr.general.Inter; import com.fr.general.NameObject; import com.fr.stable.Nameable; @@ -18,16 +17,16 @@ public class MobileWidgetListPane extends UISimpleListControlPane { public static final String LIST_NAME = "Widget_List"; private FormDesigner designer; - private List cellData; + private List widgetNameList; private static final List EMPTY_LIST = new ArrayList(); public MobileWidgetListPane(FormDesigner designer) { super(); this.designer = designer; - cellData = getData(); + widgetNameList = getData(); List nameObjectList = new ArrayList(); - for (String name : cellData) { + for (String name : widgetNameList) { nameObjectList.add(new NameObject(name, null)); } populate(nameObjectList.toArray(new NameObject[nameObjectList.size()])); @@ -48,7 +47,7 @@ public class MobileWidgetListPane extends UISimpleListControlPane { /** * 获取选中控件的控件列表 * - * @return String[][] 二维数组,[0][0]widgetName + * @return List widgetNameList */ private List getData() { if (designer.isFormParaDesigner()) { @@ -67,8 +66,6 @@ public class MobileWidgetListPane extends UISimpleListControlPane { if (selectedModel.acceptType(WSortLayout.class)) { java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); List widgetName = new ArrayList(); -// [mobileWidgetList.size() + 1][1]; -// widgetName[0][0] = Inter.getLocText("FR-Designer_WidgetOrder"); for (int i = 0; i < mobileWidgetList.size(); i++) { widgetName.add(mobileWidgetList.get(i)); } diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 3193870a4e..b96adf846e 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -11,6 +11,7 @@ import com.fr.design.dialog.BasicPane; import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.ibutton.UIHeadGroup; import com.fr.design.gui.icontainer.UIScrollPane; +import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itable.AbstractPropertyTable; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.widget.ui.FormWidgetCardPane; @@ -33,8 +34,6 @@ import java.util.Set; */ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPropertyPane { - private static final String PARA = "para"; - private static final String BODY = "body"; private static final int PADDING = 10; private static final int PADDING_M = 12; private FormWidgetCardPane formWidgetCardPane; // 控件的属性表 @@ -43,14 +42,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope private List mobileExtraPropertyPanes; // 保存9.0设计器下移动端拓展的属性tab,舍弃JTable private FormDesigner designer; // 当前designer private UIScrollPane psp; // 用来装载属性表table的容器 - private UIScrollPane esp; //用来装载事件table的容器 private JPanel wsp; // 装载移动端tab的容器,包括移动端属性表和控件拓展的移动端属性表 - private MobileParaWidgetTable mobileParaWidgetTable; // 参数面板的移动端属性tab(和body的移动端属性tab区别是没有标签名column) - private MobileWidgetTable mobileWidgetTable; // body的移动端属性tab - private UIScrollPane downPanel; // 这个滚动容器是用于装载centerPane的 - private JPanel centerPane; // 此centerPane采用的是cardLayout布局,装载着mobileWidgetTable和mobileBodyWidgetTable - private CardLayout cardLayout; // 卡片布局,选中参数面板时显示mobileWidgetTable,选中body时显示mobileBodyWidgetTable - private JTableHeader header;//把表头单独get出来作为一个组件 private UIHeadGroup tabsHeaderIconPane; private XComponent lastAffectedCreator; @@ -159,33 +151,10 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope //加上表头后,这里不再使用borderLayout布局,而采用BoxLayout布局 wsp = FRGUIPaneFactory.createY_AXISBoxInnerContainer_S_Pane(); wsp.setBorder(null); - mobileParaWidgetTable = new MobileParaWidgetTable(designer); - mobileWidgetTable = new MobileWidgetTable(designer); designer.addDesignerEditListener(new MobileWidgetDesignerAdapter()); - centerPane = FRGUIPaneFactory.createCardLayout_S_Pane(); - cardLayout = (CardLayout) centerPane.getLayout(); - centerPane.add(mobileParaWidgetTable, PARA); - // 采用卡片布局的容器必须指定卡片名字,如果没有卡片名字 - // 就会出现:Exception in thread "main" java.lang.IllegalArgumentException: - // cannot add to layout: constraint must be a string - // 第二个参数代表卡片的名字。后来show方法调用时通过名字找到要显示的卡片 - centerPane.add(mobileWidgetTable, BODY); //这两句代码,是把JTable放到一个JPanel中去了,表头不会显示, - //只有放到JScrollPanel中去表头才能正常显示,这就是MobileWidgetTable中定义了表头却没有显示的原因! - //解决方案:MobileWidgetTable实在无法直接放到JScrollPanel中去的时候,应该把表头get出来单独作为一个组件显示 - - if (hasSelectParaPane(designer)) { - cardLayout.show(centerPane, PARA); - header = mobileParaWidgetTable.getTableHeader(); - } else { - cardLayout.show(centerPane, BODY); - header = mobileWidgetTable.getTableHeader(); - } - downPanel = new UIScrollPane(centerPane); - downPanel.setBorder(new LineBorder(Color.GRAY)); //获取拓展移动端属性tab WidgetPropertyUIProvider[] widgetAttrProviders = getExtraPropertyUIProviders(); - addWidgetAttr(widgetAttrProviders); } @@ -220,9 +189,8 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope * @param widgetAttrProviders 拓展的tab */ private void addWidgetAttr(WidgetPropertyUIProvider[] widgetAttrProviders) { - if (widgetAttrProviders.length == 0) { // 判断有没有拓展的tab,没有就使用原来的 - wsp.add(header); - wsp.add(downPanel); + if (widgetAttrProviders.length == 0) { // 判断有没有拓展的tab,提示"无可用配置项" + wsp.add(getUnavailablePane()); } else { for (WidgetPropertyUIProvider widgetAttrProvider : widgetAttrProviders) { MobileWidgetDefinePane extraPane = (MobileWidgetDefinePane) widgetAttrProvider.createWidgetAttrPane(); @@ -243,6 +211,15 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope } } + // "无可用配置项"面板 + private JPanel getUnavailablePane() { + JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); + UILabel label = new UILabel("无可用配置项"); + label.setHorizontalAlignment(SwingConstants.CENTER); + panel.add(label); + return panel; + } + private void initTabPane() { final String[] tabTitles = new String[]{ Inter.getLocText("FR-Designer_Properties"), From c9b7354701a29848509c6f87138bb53bacf788e5 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 15:57:38 +0800 Subject: [PATCH 36/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>=E5=9B=BD=E9=99=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/MobileWidgetListPane.java | 4 ---- .../src/com/fr/design/mainframe/WidgetPropertyPane.java | 6 +----- .../widget/ui/designer/mobile/BodyMobileDefinePane.java | 4 ++-- .../widget/ui/designer/mobile/ParaMobileDefinePane.java | 5 +---- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java index c4e289f939..a8796170e8 100644 --- a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -50,10 +50,6 @@ public class MobileWidgetListPane extends UISimpleListControlPane { * @return List widgetNameList */ private List getData() { - if (designer.isFormParaDesigner()) { - return EMPTY_LIST; - } - //选择的控件 XCreator selectedCreator = designer.getSelectionModel().getSelection().getSelectedCreator(); Widget selectedModel = selectedCreator != null ? selectedCreator.toData() : null; diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index b96adf846e..1e5f97136c 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -7,7 +7,6 @@ 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.properties.EventPropertyTable; -import com.fr.design.dialog.BasicPane; import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.ibutton.UIHeadGroup; import com.fr.design.gui.icontainer.UIScrollPane; @@ -16,13 +15,10 @@ import com.fr.design.gui.itable.AbstractPropertyTable; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.widget.ui.FormWidgetCardPane; import com.fr.design.widget.ui.designer.mobile.MobileWidgetDefinePane; -import com.fr.form.ui.Widget; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; import javax.swing.*; -import javax.swing.border.LineBorder; -import javax.swing.table.JTableHeader; import java.awt.*; import java.util.ArrayList; import java.util.List; @@ -214,7 +210,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope // "无可用配置项"面板 private JPanel getUnavailablePane() { JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); - UILabel label = new UILabel("无可用配置项"); + UILabel label = new UILabel(Inter.getLocText("FR-Designer_No_Settings_Available")); label.setHorizontalAlignment(SwingConstants.CENTER); panel.add(label); return panel; diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java index 6ae0b86d4a..a9e34f7813 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java @@ -61,7 +61,7 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { // 手机属性 private UIExpandablePane getMobilePropertyPane() { JPanel panel = FRGUIPaneFactory.createBorderLayout_S_Pane(); - appRelayoutCheck = new UICheckBox("手机重布局", true); + appRelayoutCheck = new UICheckBox(Inter.getLocText("FR-Designer-App_ReLayout"), true); appRelayoutCheck.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); panel.add(appRelayoutCheck); @@ -79,7 +79,7 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); - return new UIExpandablePane("控件顺序", 280, 20, panelWrapper); + return new UIExpandablePane(Inter.getLocText("FR-Designer_WidgetOrder"), 280, 20, panelWrapper); } private void bindListeners2Widgets() { diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java index b73f3b153a..55eeddadb4 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java @@ -4,7 +4,6 @@ import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.creator.XCreator; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AttributeChangeListener; -import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.MobileWidgetListPane; @@ -14,7 +13,6 @@ import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; -import java.lang.reflect.Method; /** * Created by plough on 2018/2/5. @@ -23,7 +21,6 @@ public class ParaMobileDefinePane extends MobileWidgetDefinePane { private XCreator paraCreator; private FormDesigner designer; private AttributeChangeListener changeListener; - private UICheckBox appRelayoutCheck; private MobileWidgetListPane mobileWidgetListPane; public ParaMobileDefinePane(XCreator xCreator) { @@ -64,7 +61,7 @@ public class ParaMobileDefinePane extends MobileWidgetDefinePane { JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); - return new UIExpandablePane("控件顺序", 280, 20, panelWrapper); + return new UIExpandablePane(Inter.getLocText("FR-Designer_WidgetOrder"), 280, 20, panelWrapper); } private void bindListeners2Widgets() { From 22f763a6c4d2dad55ed76de29d32f1de8e4c8b76 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 19:01:42 +0800 Subject: [PATCH 37/75] =?UTF-8?q?MOBILE-3963=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=96=B0=E7=95=8C=E9=9D=A2=EF=BC=88=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=EF=BC=89=3D>=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gui/frpane/AbstractAttrNoScrollPane.java | 11 +++++-- .../mainframe/MobileWidgetListPane.java | 30 +++++++++---------- .../designer/mobile/BodyMobileDefinePane.java | 23 ++------------ .../mobile/ChartEditorDefinePane.java | 19 ------------ .../mobile/ElementCaseDefinePane.java | 19 ------------ .../mobile/MobileWidgetDefinePane.java | 12 ++++++++ .../designer/mobile/ParaMobileDefinePane.java | 23 ++------------ 7 files changed, 39 insertions(+), 98 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java b/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java index 755d9cfaea..361a93b958 100644 --- a/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java @@ -5,6 +5,7 @@ import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameObserver; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; +import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; @@ -132,13 +133,19 @@ public abstract class AbstractAttrNoScrollPane extends BasicPane { /** * 返回图标的路径 */ - public abstract String getIconPath(); + public String getIconPath() { + // 默认为空,子类有需要再重写 + return StringUtils.EMPTY; + } /** * 界面标题 * @return 标题 */ - public abstract String title4PopupWindow(); + public String title4PopupWindow() { + // 默认为空,子类有需要再重写 + return StringUtils.EMPTY; + } /** * 设置选中的ID, 用于双击展示界面. diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java index a8796170e8..3d2c67cdaa 100644 --- a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -5,6 +5,7 @@ import com.fr.design.gui.controlpane.UISimpleListControlPane; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WSortLayout; import com.fr.general.NameObject; +import com.fr.stable.ArrayUtils; import com.fr.stable.Nameable; import java.util.ArrayList; @@ -17,12 +18,13 @@ public class MobileWidgetListPane extends UISimpleListControlPane { public static final String LIST_NAME = "Widget_List"; private FormDesigner designer; - private List widgetNameList; - private static final List EMPTY_LIST = new ArrayList(); + private WSortLayout wSortLayout; + private String[] widgetNameList; - public MobileWidgetListPane(FormDesigner designer) { + public MobileWidgetListPane(FormDesigner designer, WSortLayout wSortLayout) { super(); this.designer = designer; + this.wSortLayout = wSortLayout; widgetNameList = getData(); List nameObjectList = new ArrayList(); @@ -41,7 +43,7 @@ public class MobileWidgetListPane extends UISimpleListControlPane { for (Nameable nameable : nameableList) { newMobileWidgetList.add(nameable.getName()); } - ((WSortLayout) designer.getSelectionModel().getSelection().getSelectedCreator().toData()).updateSortedMobileWidgetList(newMobileWidgetList); + wSortLayout.updateSortedMobileWidgetList(newMobileWidgetList); } /** @@ -49,25 +51,21 @@ public class MobileWidgetListPane extends UISimpleListControlPane { * * @return List widgetNameList */ - private List getData() { + private String[] getData() { //选择的控件 XCreator selectedCreator = designer.getSelectionModel().getSelection().getSelectedCreator(); Widget selectedModel = selectedCreator != null ? selectedCreator.toData() : null; - if (selectedModel == null) { - return new ArrayList<>(); + if (selectedModel == null || !selectedModel.acceptType(WSortLayout.class)) { + return ArrayUtils.EMPTY_STRING_ARRAY; } // 选择的控件有两种类型,一种是WLayout,代表容器,一种是Widget,代表控件 - if (selectedModel.acceptType(WSortLayout.class)) { - java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); - List widgetName = new ArrayList(); - for (int i = 0; i < mobileWidgetList.size(); i++) { - widgetName.add(mobileWidgetList.get(i)); - } - return widgetName; - } else { - return EMPTY_LIST; + java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); + String[] widgetNames = new String[mobileWidgetList.size()]; + for (int i = 0; i < mobileWidgetList.size(); i++) { + widgetNames[i] = mobileWidgetList.get(i); } + return widgetNames; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java index a9e34f7813..f307152849 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java @@ -9,8 +9,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.MobileWidgetListPane; import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.ui.container.WSortLayout; import com.fr.general.Inter; -import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; @@ -30,25 +30,6 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { this.bodyCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return new JPanel(); - } - - @Override - public String getIconPath() { - return StringUtils.EMPTY; - } - - @Override - public String title4PopupWindow() { - return StringUtils.EMPTY; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -74,7 +55,7 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { // 控件顺序 private UIExpandablePane getMobileWidgetListPane() { - mobileWidgetListPane = new MobileWidgetListPane(designer); + mobileWidgetListPane = new MobileWidgetListPane(designer, (WSortLayout) bodyCreator.toData()); mobileWidgetListPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 477ab9aab2..240ddc3261 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -49,25 +49,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.xCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return new JPanel(); - } - - @Override - public String getIconPath() { - return StringUtils.EMPTY; - } - - @Override - public String title4PopupWindow() { - return StringUtils.EMPTY; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java index 70c3b94f63..afe9027f02 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java @@ -48,25 +48,6 @@ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ this.xCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return null; - } - - @Override - public String getIconPath() { - return ""; - } - - @Override - public String title4PopupWindow() { - return "ElementCase"; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java index 49d0b59a52..ac4de096a6 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java @@ -3,6 +3,8 @@ package com.fr.design.widget.ui.designer.mobile; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.mainframe.FormDesigner; +import javax.swing.*; + /** * 所有移动端需要拓展的属性面板均继承此类 * @@ -23,4 +25,14 @@ public abstract class MobileWidgetDefinePane extends AbstractAttrNoScrollPane{ * 从属性面板把数据传到后台 */ public abstract void update(); + + // 暂不需要此方法 + @Override + protected void initContentPane() {} + + // 暂不需要此方法 + @Override + protected JPanel createContentPane() { + return new JPanel(); + } } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java index 55eeddadb4..91c26678f4 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java @@ -8,8 +8,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.MobileWidgetListPane; import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.ui.container.WSortLayout; import com.fr.general.Inter; -import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; @@ -27,25 +27,6 @@ public class ParaMobileDefinePane extends MobileWidgetDefinePane { this.paraCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return new JPanel(); - } - - @Override - public String getIconPath() { - return StringUtils.EMPTY; - } - - @Override - public String title4PopupWindow() { - return StringUtils.EMPTY; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -56,7 +37,7 @@ public class ParaMobileDefinePane extends MobileWidgetDefinePane { // 控件顺序 private UIExpandablePane getMobileWidgetListPane() { - mobileWidgetListPane = new MobileWidgetListPane(designer); + mobileWidgetListPane = new MobileWidgetListPane(designer, (WSortLayout) paraCreator.toData()); mobileWidgetListPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); From 787cba6b67275dc0fac644e28f2f0e2ec9858fc2 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 6 Feb 2018 12:09:28 +0800 Subject: [PATCH 38/75] =?UTF-8?q?REPORT-5907=20=E8=A1=A8=E5=8D=95=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E7=8A=B6=E6=80=81=EF=BC=88=E9=BB=98=E8=AE=A4=E3=80=81?= =?UTF-8?q?=E6=82=AC=E5=81=9C=E3=80=81=E9=80=89=E4=B8=AD=E3=80=81=E7=BC=96?= =?UTF-8?q?=E8=BE=91=EF=BC=89=E8=A7=86=E8=A7=89=E6=94=B9=E8=89=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/icon/IconPathConstants.java | 2 +- .../src/com/fr/design/images/control/newEdit.png | Bin 0 -> 442 bytes .../fr/design/designer/creator/XChartEditor.java | 15 ++++++++++++--- .../fr/design/designer/creator/XElementCase.java | 12 ++++++++++++ .../designer/creator/XWAbsoluteLayout.java | 7 +++++-- .../cardlayout/XWCardMainBorderLayout.java | 12 ++++++++++-- .../src/com/fr/design/mainframe/CoverPane.java | 2 +- .../com/fr/design/mainframe/CoverReportPane.java | 4 ++-- 8 files changed, 43 insertions(+), 11 deletions(-) create mode 100644 designer_base/src/com/fr/design/images/control/newEdit.png diff --git a/designer_base/src/com/fr/design/icon/IconPathConstants.java b/designer_base/src/com/fr/design/icon/IconPathConstants.java index ec5fcded3f..c591a8e752 100644 --- a/designer_base/src/com/fr/design/icon/IconPathConstants.java +++ b/designer_base/src/com/fr/design/icon/IconPathConstants.java @@ -1 +1 @@ -package com.fr.design.icon; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 6.5.6 * Date: 12-12-18 * Time: 上午9:42 * 用于保存所有图标路径的类 */ public class IconPathConstants { private IconPathConstants() { } public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; public static final String DS_TREE_TD_ICON_PATH = "/com/fr/design/images/data/tree.png"; public static final String DS_QUERY_ICON_PATH = "/com/fr/design/images/data/database.png"; public static final String PREVIEW_ICON_PATH = "/com/fr/design/images/m_file/preview.png"; public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png"; public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png"; public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.png"; public static final String TD_REMOVE_ICON_PATH = "/com/fr/design/images/control/tab/remove.png"; public static final String TD_CONNECTION_ICON_PATH = "/com/fr/design/images/m_web/connection.png"; public static final String SP_SHOW_ICON_PATH = "/com/fr/design/images/data/store_procedure.png"; public static final String STD_SHOW_ICON_PATH = "/com/fr/design/images/data/dock/serverdatabase.png"; public static final String XMLA_ICON_PATH = "/com/fr/design/images/data/cube.png"; public static final String FORBID_ICON_PATH = "/com/fr/web/images/form/forbid.png"; } \ No newline at end of file +package com.fr.design.icon; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 6.5.6 * Date: 12-12-18 * Time: 上午9:42 * 用于保存所有图标路径的类 */ public class IconPathConstants { private IconPathConstants() { } public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; public static final String DS_TREE_TD_ICON_PATH = "/com/fr/design/images/data/tree.png"; public static final String DS_QUERY_ICON_PATH = "/com/fr/design/images/data/database.png"; public static final String PREVIEW_ICON_PATH = "/com/fr/design/images/m_file/preview.png"; public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png"; public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png"; public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.png"; public static final String TD_REMOVE_ICON_PATH = "/com/fr/design/images/control/tab/remove.png"; public static final String TD_CONNECTION_ICON_PATH = "/com/fr/design/images/m_web/connection.png"; public static final String SP_SHOW_ICON_PATH = "/com/fr/design/images/data/store_procedure.png"; public static final String STD_SHOW_ICON_PATH = "/com/fr/design/images/data/dock/serverdatabase.png"; public static final String XMLA_ICON_PATH = "/com/fr/design/images/data/cube.png"; public static final String FORBID_ICON_PATH = "/com/fr/web/images/form/forbid.png"; public static final String EDIT_ICON_PATH = "/com/fr/design/images/control/newEdit.png"; } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/images/control/newEdit.png b/designer_base/src/com/fr/design/images/control/newEdit.png new file mode 100644 index 0000000000000000000000000000000000000000..49843ce8ec011ec1b28e30ef46948e0859458a35 GIT binary patch literal 442 zcmV;r0Y(0aP)Px$bV)=(R5%fpQ$0_^Fc7s<8j4gFKE@)^jS=cd$$}V|P}b~4V&F$GWZ^de8~>q% zg^>!0#3>R#AV^(Uk-~yfV(y~aa$O^Vhvx3yd*{2Clo0(422AL=C1%XKx0KD2?8F#* zZZIqaL9n5SlA#J1*otuD46zmb(U0eOLm|i&=UIa-5aykB09=zIiUCZNfa*jReMRrzKFy z6A{!8c-I4aCRH`tqO`sM>=JRcq)s+tnC=?HQ%Y&+y6sKQ(?*OuHGwI@9EAI@sHJ0(lmuv$90W8 ko`1`B(5U{0Ye<*VAAV?z7$o4xVgLXD07*qoM6N<$f)tO!f&c&j literal 0 HcmV?d00001 diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index 5ab96a112a..f6fd5c9d41 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -38,6 +38,7 @@ import com.fr.stable.core.PropertyChangeAdapter; */ public class XChartEditor extends XBorderStyleWidgetCreator { private static final long serialVersionUID = -7009439442104836657L; + private static int BORDER_WIDTH = 2; //具体来说是DesignerEditor private DesignerEditor designerEditor; // private DesignerEditor designerEditor; @@ -45,6 +46,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator { private boolean isRefreshing = false; private boolean isEditing = false; + + private boolean isHovering = false; private JPanel coverPanel; private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); private static final Color INNER_BORDER_COLOR = new Color(65, 155, 249); @@ -135,12 +138,13 @@ public class XChartEditor extends XBorderStyleWidgetCreator { public void paintBorder(Graphics g, Rectangle bounds){ if(isEditing){ g.setColor(OUTER_BORDER_COLOR); - GraphHelper.draw(g, new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 5, bounds.height + 5), Constants.LINE_LARGE); - g.setColor(INNER_BORDER_COLOR); - GraphHelper.draw(g, new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height), Constants.LINE_MEDIUM); + GraphHelper.draw(g, new Rectangle(bounds.x - BORDER_WIDTH, bounds.y - BORDER_WIDTH, bounds.width + BORDER_WIDTH + 1, bounds.height + BORDER_WIDTH + 1), Constants.LINE_LARGE); + }else if(!isHovering){ + super.paintBorder(g, bounds); } } + /** * 返回设计器的Editor */ @@ -209,6 +213,10 @@ public class XChartEditor extends XBorderStyleWidgetCreator { public void paint(Graphics g) { designerEditor.paintEditor(g, this.getSize()); super.paint(g); + if(isEditing){ + g.setColor(INNER_BORDER_COLOR); + GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); + } } /** @@ -283,6 +291,7 @@ public class XChartEditor extends XBorderStyleWidgetCreator { * @param display 是否 */ public void displayCoverPane(boolean display){ + isHovering = display; coverPanel.setVisible(display); coverPanel.setPreferredSize(editor.getPreferredSize()); coverPanel.setBounds(editor.getBounds()); diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 514cd12d18..cece2042ba 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -1,6 +1,7 @@ package com.fr.design.designer.creator; import com.fr.base.BaseUtils; +import com.fr.base.GraphHelper; import com.fr.design.ExtraDesignClassManager; import com.fr.design.designer.properties.mobile.ElementCasePropertyUI; import com.fr.design.form.util.XCreatorConstants; @@ -20,6 +21,7 @@ import com.fr.form.ui.ElementCaseEditor; import com.fr.form.ui.ElementCaseEditorProvider; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; +import com.fr.stable.Constants; import com.fr.stable.CoreGraphHelper; import com.fr.stable.core.PropertyChangeAdapter; import com.fr.stable.fun.FitProvider; @@ -38,6 +40,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme private CoverReportPane coverPanel; private FormDesigner designer; private static BufferedImage DEFAULT_BACKGROUND; + private boolean isHovering = false; static{ try{ @@ -216,11 +219,20 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme * @param display 是否 */ public void displayCoverPane(boolean display){ + isHovering = display; coverPanel.setVisible(display); coverPanel.setBounds(1, 1, (int) editor.getBounds().getWidth(), (int) editor.getBounds().getHeight()); editor.repaint(); } + @Override + public void paintBorder(Graphics g, Rectangle bounds){ + if (!isHovering) { + super.paintBorder(g, bounds); + } + } + + /** * 销毁帮助提示框 */ diff --git a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java index 74a970af01..c252060b89 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWAbsoluteLayout.java @@ -47,6 +47,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { private int minHeight = WLayout.MIN_HEIGHT; private static final Color OUTER_BORDER_COLOR = new Color(65, 155, 249, 30); private static final Color INNER_BORDER_COLOR = new Color(65, 155, 249); + private static final int BORDER_WIDTH = 1; //由于屏幕分辨率不同,界面上的容器大小可能不是默认的100%,此时拖入组件时,保存的大小按照100%时的计算 protected double containerPercent = 1.0; @@ -445,7 +446,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { g2d.setColor(new Color(176, 196, 222)); g2d.fillRect((x + w / 2 - EDIT_BTN_WIDTH / 2), (y + h / 2 - EDIT_BTN_HEIGHT / 2), EDIT_BTN_WIDTH, EDIT_BTN_HEIGHT); //画编辑按钮图标 - BufferedImage image = IOUtils.readImage(IconPathConstants.TD_EDIT_ICON_PATH); + BufferedImage image = IOUtils.readImage(IconPathConstants.EDIT_ICON_PATH); g2d.drawImage( image, (x + w / 2 - 23), @@ -459,7 +460,7 @@ public class XWAbsoluteLayout extends XLayoutContainer { //画编辑文字 g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); g.setColor(XCreatorConstants.FORM_BORDER_COLOR); - GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); + GraphHelper.draw(g, new Rectangle(BORDER_WIDTH, BORDER_WIDTH, getWidth() - BORDER_WIDTH * 2, getHeight() - BORDER_WIDTH * 2), Constants.LINE_MEDIUM); } } @@ -471,6 +472,8 @@ public class XWAbsoluteLayout extends XLayoutContainer { GraphHelper.draw(g, new Rectangle(bounds.x - 3, bounds.y - 3, bounds.width + 5, bounds.height + 5), Constants.LINE_LARGE); g.setColor(INNER_BORDER_COLOR); GraphHelper.draw(g, new Rectangle(bounds.x, bounds.y, bounds.width, bounds.height), Constants.LINE_MEDIUM); + }else if(!isMouseEnter){ + super.paintBorder(g, bounds); } } /** diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index 2f56785687..4308d19236 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -57,6 +57,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ private static final int EDIT_BTN_WIDTH = 60; private static final int EDIT_BTN_HEIGHT = 24; + private static final int BORDER_WIDTH = 1; private final int CARDMAINLAYOUT_CHILD_COUNT = 1; @@ -298,7 +299,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ g2d.setColor(new Color(176, 196, 222)); g2d.fillRect((x + w / 2 - EDIT_BTN_WIDTH / 2), (y + h / 2 - EDIT_BTN_HEIGHT / 2), EDIT_BTN_WIDTH, EDIT_BTN_HEIGHT); //画编辑按钮图标 - BufferedImage image = IOUtils.readImage(IconPathConstants.TD_EDIT_ICON_PATH); + BufferedImage image = IOUtils.readImage(IconPathConstants.EDIT_ICON_PATH); g2d.drawImage( image, (x + w / 2 - 23), @@ -312,7 +313,14 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ //画编辑文字 g2d.drawString(Inter.getLocText("FR-Designer_Edit"), x + w / 2 - 2, y + h / 2 + 5); g.setColor(XCreatorConstants.FORM_BORDER_COLOR); - GraphHelper.draw(g, new Rectangle(0, 0, getWidth(), getHeight()), Constants.LINE_MEDIUM); + GraphHelper.draw(g, new Rectangle(BORDER_WIDTH, BORDER_WIDTH, getWidth() - BORDER_WIDTH * 2, getHeight() - BORDER_WIDTH * 2), Constants.LINE_MEDIUM); + } + } + + @Override + public void paintBorder(Graphics g, Rectangle bounds){ + if (!isMouseEnter) { + super.paintBorder(g, bounds); } } diff --git a/designer_form/src/com/fr/design/mainframe/CoverPane.java b/designer_form/src/com/fr/design/mainframe/CoverPane.java index 4d3d977e24..00e9f8b3b0 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverPane.java @@ -30,7 +30,7 @@ public class CoverPane extends JPanel { setBackground(null); setOpaque(false); - editButton = new UIButton(Inter.getLocText("Edit"), IOUtils.readIcon(IconPathConstants.TD_EDIT_ICON_PATH)) { + editButton = new UIButton(Inter.getLocText("Edit"), IOUtils.readIcon(IconPathConstants.EDIT_ICON_PATH)) { @Override public Dimension getPreferredSize() { return new Dimension(60, 24); diff --git a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java index ec2924cdd1..3578856d95 100644 --- a/designer_form/src/com/fr/design/mainframe/CoverReportPane.java +++ b/designer_form/src/com/fr/design/mainframe/CoverReportPane.java @@ -21,7 +21,7 @@ import java.awt.event.WindowEvent; * Time: 11:32 */ public class CoverReportPane extends CoverPane implements HelpDialogHandler{ - private static final int BORDER_WIDTH = 2; + private static final int BORDER_WIDTH = 1; private Icon controlMode = IOUtils.readIcon(IconPathConstants.TD_EL_SHARE_HELP_ICON_PATH); private JComponent controlButton = new JComponent() { protected void paintComponent(Graphics g) { @@ -129,7 +129,7 @@ public class CoverReportPane extends CoverPane implements HelpDialogHandler{ @Override protected Rectangle getPaintBorderBounds(){ - return new Rectangle(BORDER_WIDTH - 1, BORDER_WIDTH- 1, getWidth() - BORDER_WIDTH * 2 , getHeight() - BORDER_WIDTH * 2); + return new Rectangle(BORDER_WIDTH, BORDER_WIDTH, getWidth() - 3 * BORDER_WIDTH , getHeight() - 3 * BORDER_WIDTH); } @Override From 9e687ced384bf7a15fe90364b9650fa0827a9337 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 6 Feb 2018 12:11:08 +0800 Subject: [PATCH 39/75] =?UTF-8?q?=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XChartEditor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index f6fd5c9d41..d779b51025 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -38,7 +38,7 @@ import com.fr.stable.core.PropertyChangeAdapter; */ public class XChartEditor extends XBorderStyleWidgetCreator { private static final long serialVersionUID = -7009439442104836657L; - private static int BORDER_WIDTH = 2; + private static final int BORDER_WIDTH = 2; //具体来说是DesignerEditor private DesignerEditor designerEditor; // private DesignerEditor designerEditor; From 2128fd6925b5312edb8763980f7ce1599fc3cc31 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 7 Feb 2018 09:02:11 +0800 Subject: [PATCH 40/75] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8D=A2=E8=A1=8C?= =?UTF-8?q?=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/icon/IconPathConstants.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/icon/IconPathConstants.java b/designer_base/src/com/fr/design/icon/IconPathConstants.java index c591a8e752..8939feef01 100644 --- a/designer_base/src/com/fr/design/icon/IconPathConstants.java +++ b/designer_base/src/com/fr/design/icon/IconPathConstants.java @@ -1 +1,36 @@ -package com.fr.design.icon; /** * Created by IntelliJ IDEA. * Author : Richer * Version: 6.5.6 * Date: 12-12-18 * Time: 上午9:42 * 用于保存所有图标路径的类 */ public class IconPathConstants { private IconPathConstants() { } public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; public static final String DS_TREE_TD_ICON_PATH = "/com/fr/design/images/data/tree.png"; public static final String DS_QUERY_ICON_PATH = "/com/fr/design/images/data/database.png"; public static final String PREVIEW_ICON_PATH = "/com/fr/design/images/m_file/preview.png"; public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png"; public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png"; public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.png"; public static final String TD_REMOVE_ICON_PATH = "/com/fr/design/images/control/tab/remove.png"; public static final String TD_CONNECTION_ICON_PATH = "/com/fr/design/images/m_web/connection.png"; public static final String SP_SHOW_ICON_PATH = "/com/fr/design/images/data/store_procedure.png"; public static final String STD_SHOW_ICON_PATH = "/com/fr/design/images/data/dock/serverdatabase.png"; public static final String XMLA_ICON_PATH = "/com/fr/design/images/data/cube.png"; public static final String FORBID_ICON_PATH = "/com/fr/web/images/form/forbid.png"; public static final String EDIT_ICON_PATH = "/com/fr/design/images/control/newEdit.png"; } \ No newline at end of file +package com.fr.design.icon; + +/** + * Created by IntelliJ IDEA. + * Author : Richer + * Version: 6.5.6 + * Date: 12-12-18 + * Time: 上午9:42 + * 用于保存所有图标路径的类 + */ +public class IconPathConstants { + private IconPathConstants() { + + } + + public static final String ADD_POPMENU_ICON_PATH = "/com/fr/design/images/control/addPopup.png"; + + public static final String DS_ICON_PATH = "/com/fr/design/images/data/datasource.png"; + public static final String CLASS_TD_ICON_PATH = "/com/fr/design/images/data/source/classTableData.png"; + public static final String EMB_TD_ICON_PATH = "/com/fr/design/images/data/dataTable.png"; + public static final String DS_RELATION_TD_ICON_PATH = "/com/fr/design/images/data/multi.png"; + public static final String FILE_TD_ICON_PATH = "/com/fr/design/images/data/file.png"; + public static final String DS_TREE_TD_ICON_PATH = "/com/fr/design/images/data/tree.png"; + public static final String DS_QUERY_ICON_PATH = "/com/fr/design/images/data/database.png"; + public static final String PREVIEW_ICON_PATH = "/com/fr/design/images/m_file/preview.png"; + public static final String TD_EDIT_ICON_PATH = "/com/fr/design/images/control/edit.png"; + public static final String TD_EL_SHARE_HELP_ICON_PATH = "/com/fr/design/images/control/help_open.png"; + public static final String TD_EL_SHARE_CLOSE_ICON_PATH = "/com/fr/design/images/control/help_close.png"; + public static final String TD_REMOVE_ICON_PATH = "/com/fr/design/images/control/tab/remove.png"; + public static final String TD_CONNECTION_ICON_PATH = "/com/fr/design/images/m_web/connection.png"; + public static final String SP_SHOW_ICON_PATH = "/com/fr/design/images/data/store_procedure.png"; + public static final String STD_SHOW_ICON_PATH = "/com/fr/design/images/data/dock/serverdatabase.png"; + public static final String XMLA_ICON_PATH = "/com/fr/design/images/data/cube.png"; + public static final String FORBID_ICON_PATH = "/com/fr/web/images/form/forbid.png"; + public static final String EDIT_ICON_PATH = "/com/fr/design/images/control/newEdit.png"; +} \ No newline at end of file From 3d540b45438c235566995ab8a2e11bee6ad3029a Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 7 Feb 2018 11:20:32 +0800 Subject: [PATCH 41/75] =?UTF-8?q?REPORT-6691=20=E4=BF=AE=E6=94=B9=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E4=B8=AD=E9=83=A8=E5=88=86=E5=95=86=E5=8A=A1?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/actions/help/AboutPane.java | 53 ++++++++++++------- .../com/fr/design/locale/designer.properties | 2 + .../design/locale/designer_en_US.properties | 2 + .../design/locale/designer_ja_JP.properties | 2 + .../design/locale/designer_ko_KR.properties | 2 + .../design/locale/designer_zh_CN.properties | 2 + .../design/locale/designer_zh_TW.properties | 2 + 7 files changed, 46 insertions(+), 19 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/help/AboutPane.java b/designer_base/src/com/fr/design/actions/help/AboutPane.java index b55161a167..3b15cf3cc3 100644 --- a/designer_base/src/com/fr/design/actions/help/AboutPane.java +++ b/designer_base/src/com/fr/design/actions/help/AboutPane.java @@ -68,28 +68,36 @@ public class AboutPane extends JPanel { Inter.getLocText("FR-Designer-Basic_Activation_Key_Copy_OK") })); - if (shouldShowPhoneAndQQ()) { - if (ComparatorUtils.equals(ProductConstants.APP_NAME, FINEREPORT)) { - boxCenterAlignmentPane = new BoxCenterAligmentPane(Inter.getLocText("FR-Designer_Service_Phone") + ProductConstants.COMPARE_TELEPHONE); - contentPane.add(boxCenterAlignmentPane); - } - boxCenterAlignmentPane = new BoxCenterAligmentPane("QQ:" + SiteCenter.getInstance().acquireUrlByKind("help.qq")); - contentPane.add(boxCenterAlignmentPane); - } + addPhoneAndQQPane(contentPane); + + // 官网 + JPanel urlActionPane = getURLActionPane(Inter.getLocText("FR-Designer_Official_Website"), SiteCenter.getInstance().acquireUrlByKind("website." + FRContext.getLocale(), ProductConstants.WEBSITE_URL)); - BoxCenterAligmentPane actionLabel = getURLActionLabel(SiteCenter.getInstance().acquireUrlByKind("website." + FRContext.getLocale(), ProductConstants.WEBSITE_URL)); - BoxCenterAligmentPane emailLabel = getEmailActionLabel(SiteCenter.getInstance().acquireUrlByKind("support.email", ProductConstants.SUPPORT_EMAIL)); + // 支持邮箱 + String defaultEmail = SiteCenter.getInstance().acquireUrlByKind("support.email", ProductConstants.SUPPORT_EMAIL); + JPanel emailPane = getEmailActionPane(Inter.getLocText("FR-Designer_Support_Email"),SiteCenter.getInstance().acquireUrlByKind("support.email." + FRContext.getLocale(), defaultEmail)); - contentPane.add(actionLabel); - contentPane.add(emailLabel); + contentPane.add(urlActionPane); + contentPane.add(emailPane); if (shouldShowThanks()) { addThankPane(contentPane); } } - // 是否显示服务电话和 qq - private boolean shouldShowPhoneAndQQ() { - return !FRContext.getLocale().equals(Locale.US); + private void addPhoneAndQQPane(JPanel contentPane) { + BoxCenterAligmentPane boxCenterAlignmentPane; + // 英文版不显示服务电话和QQ + if (FRContext.getLocale().equals(Locale.US)) { + return; + } + boxCenterAlignmentPane = new BoxCenterAligmentPane(Inter.getLocText("FR-Designer_Service_Phone") + SiteCenter.getInstance().acquireUrlByKind("service.phone." + FRContext.getLocale(), ProductConstants.COMPARE_TELEPHONE)); + contentPane.add(boxCenterAlignmentPane); + // 繁体版不显示QQ + if (FRContext.getLocale().equals(Locale.TAIWAN)) { + return; + } + boxCenterAlignmentPane = new BoxCenterAligmentPane("QQ: " + SiteCenter.getInstance().acquireUrlByKind("help.qq")); + contentPane.add(boxCenterAlignmentPane); } // 是否显示鸣谢面板 @@ -133,7 +141,7 @@ public class AboutPane extends JPanel { StringUtils.BLANK, ProductConstants.RELEASE_VERSION, BUILD_PREFIX); } - private BoxCenterAligmentPane getEmailActionLabel(final String mailTo) { + private JPanel getEmailActionPane(final String desc, final String mailTo){ ActionLabel emailLabel = new ActionLabel(mailTo); emailLabel.addActionListener(new ActionListener() { @@ -147,10 +155,13 @@ public class AboutPane extends JPanel { } }); - return new BoxCenterAligmentPane(emailLabel); + JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + panel.add(new UILabel(desc)); + panel.add(emailLabel); + return panel; } - private BoxCenterAligmentPane getURLActionLabel(final String url) { + private JPanel getURLActionPane(final String desc, final String url){ ActionLabel actionLabel = new ActionLabel(url); actionLabel.addActionListener(new ActionListener() { @Override @@ -163,7 +174,11 @@ public class AboutPane extends JPanel { } }); - return new BoxCenterAligmentPane(actionLabel); + JPanel panel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + panel.add(new UILabel(desc)); + panel.add(actionLabel); + + return panel; } class UserLabel extends BoldFontTextLabel { diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 41f4102821..5af30b4e2a 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2183,3 +2183,5 @@ FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available +FR-Designer_Official_Website=Official Website: +FR-Designer_Support_Email=Email: diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 2ae12739ea..1a4867e0e5 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2182,3 +2182,5 @@ FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available +FR-Designer_Official_Website=Official Website: +FR-Designer_Support_Email=Email: diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index dd7bc51044..64cfc9261b 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2180,3 +2180,5 @@ FR-Designer_Zoom_In_Logic= FR-Designer_Zoom_Out_Logic= FR-Designer_Chart_Adaptivity= FR-Designer_Tip_Chart_Adaptivity_Unavailable= +FR-Designer_Official_Website= +FR-Designer_Support_Email= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 832f4612c1..9deed02f84 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2181,3 +2181,5 @@ FR-Designer_Zoom_In_Logic= FR-Designer_Zoom_Out_Logic= FR-Designer_Chart_Adaptivity= FR-Designer_Tip_Chart_Adaptivity_Unavailable= +FR-Designer_Official_Website= +FR-Designer_Support_Email= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 855132f2bf..ad2dbc699a 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2183,3 +2183,5 @@ FR-Designer_Zoom_In_Logic=\u653E\u5927\u903B\u8F91 FR-Designer_Zoom_Out_Logic=\u7F29\u5C0F\u903B\u8F91 FR-Designer_Chart_Adaptivity=\u56FE\u8868\u81EA\u9002\u5E94 FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9009\u624B\u673A\u91CD\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u4E0D\u652F\u6301\u56FE\u8868\u81EA\u9002\u5E94 +FR-Designer_Official_Website=\u5B98\u65B9\u7F51\u7AD9\uFF1A +FR-Designer_Support_Email=\u652F\u6301\u90AE\u7BB1\uFF1A diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 4a555d5fde..20445a4ebe 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2182,3 +2182,5 @@ FR-Designer_Zoom_In_Logic=\u653E\u5927\u908F\u8F2F FR-Designer_Zoom_Out_Logic=\u7E2E\u5C0F\u908F\u8F2F FR-Designer_Chart_Adaptivity=\u5716\u8868\u81EA\u6211\u8ABF\u6574 FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9078\u624B\u6A5F\u91CD\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u4E0D\u652F\u6301\u5716\u8868\u81EA\u6211\u8ABF\u6574 +FR-Designer_Official_Website=\u5B98\u65B9\u7DB2\u7AD9\uFF1A +FR-Designer_Support_Email=\u652F\u6301\u90F5\u7BB1\uFF1A From 7fb189412c0319fe8078e2a66d3be8494059e5b9 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 7 Feb 2018 16:40:00 +0800 Subject: [PATCH 42/75] =?UTF-8?q?REPORT-6868=20=E5=8D=95=E5=85=83=E6=A0=BC?= =?UTF-8?q?=E9=A2=91=E7=B9=81=E5=BC=B9=E6=A1=86=EF=BC=8C=E5=8F=8C=E5=87=BB?= =?UTF-8?q?=E4=B9=9F=E5=A4=84=E7=90=86=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/dscolumn/SelectedDataColumnPane.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java index 9b1ad0088f..aec849e419 100644 --- a/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -91,7 +91,7 @@ public class SelectedDataColumnPane extends BasicPane { /** * 数据集下拉框变动后修改数据列下拉框加载状态的监听器 */ - private ItemListener loadInstantListener = new ItemListener() { + private ItemListener isNeedReloadListener = new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { if (e.getStateChange() == ItemEvent.SELECTED) { @@ -313,6 +313,7 @@ public class SelectedDataColumnPane extends BasicPane { private void addListener() { tableNameComboBox.addItemListener(this.itemListener); columnNameComboBox.addItemListener(this.itemListener); + tableNameComboBox.addItemListener(this.isNeedReloadListener); } /** @@ -321,13 +322,13 @@ public class SelectedDataColumnPane extends BasicPane { private void removeListener() { tableNameComboBox.removeItemListener(this.itemListener); columnNameComboBox.removeItemListener(this.itemListener); + tableNameComboBox.removeItemListener(this.isNeedReloadListener); } protected void initTableNameComboBox() { tableNameComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource()); tableNameComboBox.setPreferredSize(new Dimension(100, 20)); - tableNameComboBox.addItemListener(this.loadInstantListener); } @Override From bd791f3ced4e1aa6ff3a72d4addcd5439940ec68 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 8 Feb 2018 11:14:16 +0800 Subject: [PATCH 43/75] =?UTF-8?q?MOBILE-6262=20FR9.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=8F=90=E4=BE=9B=E6=89=8B=E6=9C=BA=E7=AB=AF=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E7=94=BB=E5=B8=83=E5=8F=82=E8=80=83=E5=B0=BA=E5=AF=B8?= =?UTF-8?q?=3D>=E4=BA=A4=E4=BA=92=E9=AA=8C=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer.properties | 1 - .../src/com/fr/design/locale/designer_en_US.properties | 1 - .../src/com/fr/design/locale/designer_ja_JP.properties | 1 - .../src/com/fr/design/locale/designer_ko_KR.properties | 1 - .../src/com/fr/design/locale/designer_zh_CN.properties | 1 - .../src/com/fr/design/locale/designer_zh_TW.properties | 1 - .../fr/design/form/mobile/FormMobileTemplateSettingsPane.java | 4 +--- 7 files changed, 1 insertion(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 5af30b4e2a..3a1bfffd0a 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2170,7 +2170,6 @@ FR-Designer_Tab_Display_Position=Display Position FR-Designer_Set_Mobile_Only_Template=Set as mobile only template FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match -FR-Designer_Open_Adaptive_Property_Auto_Match=Open adpative property auto match FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 1a4867e0e5..df77db12e6 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2169,7 +2169,6 @@ FR-Designer_Tab_Display_Position=Display Position FR-Designer_Set_Mobile_Only_Template=Set as mobile only template FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match -FR-Designer_Open_Adaptive_Property_Auto_Match=Open adpative property auto match FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 64cfc9261b..69a05fe90d 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2169,7 +2169,6 @@ FR-Designer_Tab_Template_Six= FR-Designer_Tab_Display_Position= FR-Designer_Set_Mobile_Only_Template= FR-Designer_Set_Mobile_Canvas_Size= -FR-Designer_Open_Adaptive_Property_Auto_Match= FR-Designer_Mobile_Screen_Zoom_In= FR-Designer_Mobile_Screen_Zoom_Out= FR-Designer_Adaptive_Property_Auto_Match_Desc= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 9deed02f84..a6de6a804c 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2169,7 +2169,6 @@ FR-Designer_Tab_Display_Position= FR-Designer_Set_Mobile_Only_Template= FR-Designer_Set_Mobile_Canvas_Size= FR-Designer_Adaptive_Property_Auto_Match= -FR-Designer_Open_Adaptive_Property_Auto_Match= FR-Designer_Mobile_Screen_Zoom_In= FR-Designer_Mobile_Screen_Zoom_Out= FR-Designer_Mobile_Screen_Zoom_Out_Desc= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index ad2dbc699a..7ee6469b02 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2170,7 +2170,6 @@ FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E FR-Designer_Set_Mobile_Only_Template=\u8BBE\u7F6E\u4E3A\u624B\u673A\u7AEF\u4E13\u5C5E\u6A21\u7248 FR-Designer_Set_Mobile_Canvas_Size=\u8BBE\u7F6E\u4E3A\u624B\u673A\u6A21\u7248\u753B\u5E03\u5927\u5C0F FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u9002\u5E94\u5C5E\u6027\u81EA\u52A8\u5339\u914D -FR-Designer_Open_Adaptive_Property_Auto_Match=\u5F00\u542F\u81EA\u9002\u5E94\u5C5E\u6027\u81EA\u52A8\u5339\u914D FR-Designer_Canvas_Size_Lock_Desc=\u753B\u5E03\u5927\u5C0F375*560\uFF0C\u5BBD\u5EA6\u9501\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u4E49 FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u5C4F\u5E55\u624B\u673A\uFF1A\u9002\u914D FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u673A\uFF1A\u653E\u5927 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 20445a4ebe..b73cfeb6cd 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2169,7 +2169,6 @@ FR-Designer_Tab_Display_Position=\u986F\u793A\u4F4D\u7F6E FR-Designer_Set_Mobile_Only_Template=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u7AEF\u5C08\u5C6C\u6A21\u7248 FR-Designer_Set_Mobile_Canvas_Size=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u6A21\u7248\u756B\u5E03\u5927\u5C0F FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u6211\u8ABF\u6574\u5185\u5BB9\u81EA\u52D5\u5339\u914D -FR-Designer_Open_Adaptive_Property_Auto_Match=\u958B\u555F\u81EA\u6211\u8ABF\u6574\u5185\u5BB9\u81EA\u52D5\u5339\u914D FR-Designer_Canvas_Size_Lock_Desc=\u756B\u5E03\u5927\u5C0F375*560\uFF0C\u5BEC\u5EA6\u9396\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u7FA9 FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u8367\u5E55\u624B\u6A5F\uFF1A\u9069\u914D FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u6A5F\uFF1A\u653E\u5927 diff --git a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java index 2bf56ed76b..a32faac5b9 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileTemplateSettingsPane.java @@ -78,13 +78,11 @@ public class FormMobileTemplateSettingsPane extends BasicBeanPane Date: Thu, 8 Feb 2018 11:28:47 +0800 Subject: [PATCH 44/75] =?UTF-8?q?REPORT-6563=20=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=EF=BC=8C=E6=8E=A7=E4=BB=B6=E6=9C=80=E5=B0=8F?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E5=90=8E=E5=AF=BC=E8=87=B4frm=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9body=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XWFitLayout.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java index 712a8588d1..e7b82e61e3 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java @@ -28,6 +28,8 @@ import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; +import javax.swing.*; + /** * @author jim * @date 2014-6-23 @@ -958,11 +960,13 @@ public class XWFitLayout extends XLayoutContainer { public boolean canAddInterval(int interval) { int val = interval/2; for (int i=0, len=this.getComponentCount(); i Date: Thu, 8 Feb 2018 13:41:33 +0800 Subject: [PATCH 45/75] =?UTF-8?q?REPORT-6563=20=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=EF=BC=8C=E6=8E=A7=E4=BB=B6=E6=9C=80=E5=B0=8F?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E5=90=8E=20=E5=AF=BC=E8=87=B4frm=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E4=BF=AE=E6=94=B9body=E7=9A=84=E6=A0=B7=E5=BC=8F=3D>?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XWFitLayout.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java index e7b82e61e3..7fbc7f6dbb 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWFitLayout.java @@ -28,7 +28,8 @@ import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; -import javax.swing.*; +import javax.swing.JOptionPane; + /** * @author jim From 7c96c62051f9c7e34d58067df1e49fb6bce18464 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 9 Feb 2018 13:53:48 +0800 Subject: [PATCH 46/75] =?UTF-8?q?REPORT-6868=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=A0=BC=E5=8F=8C=E5=87=BB=E5=BC=B9=E5=87=BA?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E9=9B=86=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/dscolumn/DSColumnPane.java | 160 ++++++++++-------- 1 file changed, 89 insertions(+), 71 deletions(-) diff --git a/designer/src/com/fr/design/dscolumn/DSColumnPane.java b/designer/src/com/fr/design/dscolumn/DSColumnPane.java index 68b49b1af3..66071ba312 100644 --- a/designer/src/com/fr/design/dscolumn/DSColumnPane.java +++ b/designer/src/com/fr/design/dscolumn/DSColumnPane.java @@ -1,26 +1,30 @@ package com.fr.design.dscolumn; -import java.awt.BorderLayout; -import java.awt.Component; -import java.awt.Dimension; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; - -import javax.swing.JPanel; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; - import com.fr.base.FRContext; import com.fr.data.TableDataSource; +import com.fr.design.dialog.BasicPane; import com.fr.design.gui.frpane.UITabbedPane; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.dialog.BasicPane; -import com.fr.general.Inter; import com.fr.design.mainframe.ElementCasePane; +import com.fr.general.Inter; import com.fr.report.cell.CellElement; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.TemplateCellElement; +import javax.swing.JPanel; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dimension; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; + +/** + * @author null + * @version 2018年2月9日13点47分 + * @since 8.0 + */ public class DSColumnPane extends BasicPane { private TableDataSource tplEC; @@ -29,17 +33,56 @@ public class DSColumnPane extends BasicPane { private DSColumnConditionsPane conditionPane = null; private DSColumnAdvancedPane advancedPane = null; private TemplateCellElement cellElement; - protected Component lastSelectedComponent; - + private Component lastSelectedComponent; + public static final int SETTING_ALL = 2; public static final int SETTING_DSRELATED = 1; - + + + private ChangeListener appliedWizardTabChangeListener = new ChangeListener() { + + @Override + public void stateChanged(ChangeEvent evt) { + try { + if (lastSelectedComponent == null) { + lastSelectedComponent = basicPane; + } + // selectTabComponent是正要切换到的那个Pane + Component selectTabComponent = tabbedPane.getSelectedComponent(); + // denny: 如果切换Tab时上一个Pane是basicPane, 则刷新一下其他Pane, + // 因为选择的数据列可能改变, 导致后面过滤和使用公式用到的数据项改变 + if (lastSelectedComponent == basicPane) { + basicPane.update(cellElement); + + // denny_GUI: 刷新其他面板 + refreshOtherTabs(); + } + // 切换标签的时候就,确认是否有没有添加到列表中的条件 + lastSelectedComponent = selectTabComponent; + } catch (Exception e) { + FRContext.getLogger().error(e.getMessage(), e); + } + + } + }; + /** + * cellElement 改变时,刷新一下 + * 比如:上边切换Tab时,basicPane Update了一下,可能会改变Field cellElement的值 + */ + private PropertyChangeListener myPropertyChangeListener = new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + refreshOtherTabs(); + } + }; + public DSColumnPane() { - this.initComponents(SETTING_ALL); + this(SETTING_ALL); } - - public DSColumnPane(int setting) { - this.initComponents(setting); + + private DSColumnPane(int setting) { + this.initComponents(setting); } protected void initComponents(int setting) { @@ -65,18 +108,22 @@ public class DSColumnPane extends BasicPane { this.setPreferredSize(new Dimension(610, 400)); } - + @Override protected String title4PopupWindow() { - return Inter.getLocText("ExpandD-Data_Column"); + return Inter.getLocText("ExpandD-Data_Column"); } - /* - * populate + /** + * 更新面板信息 + * + * @param tds 数据源 + * @param cellElement 单元格 + * @throws Exception e */ public void populate(TableDataSource tds, TemplateCellElement cellElement) throws Exception { - this.tplEC = tds; - + this.tplEC = tds; + if (tds == null || cellElement == null) { // _denny: 我不认为这种情况应该出现,以防万一 this.cellElement = new DefaultTemplateCellElement(); @@ -85,15 +132,16 @@ public class DSColumnPane extends BasicPane { // _denny: 这边需要克隆一下,因为在设置时,可能改变字段cellElement,但改变真实值是不被期望的 try { this.cellElement = (TemplateCellElement) cellElement.clone(); - } catch (CloneNotSupportedException ce) { + } catch (CloneNotSupportedException ignored) { } + // 只更新基本设置的面板信息即可,因为从基本信息切换到其他设置的时候也还是会更新其他面板的 this.basicPane.populate(tds, this.cellElement); - this.conditionPane.populate(tds, this.cellElement); - this.advancedPane.populate(this.cellElement); } - /* - * update + /** + * update 保存 + * + * @return 单元格信息 */ public CellElement update() { this.basicPane.update(cellElement); @@ -101,54 +149,24 @@ public class DSColumnPane extends BasicPane { this.advancedPane.update(cellElement); return cellElement; } - public ChangeListener appliedWizardTabChangeListener = new ChangeListener() { - - public void stateChanged(ChangeEvent evt) { - try { - if (lastSelectedComponent == null) { - lastSelectedComponent = basicPane; - } - //selectTabComponent是正要切换到的那个Pane - Component selectTabComponent = tabbedPane.getSelectedComponent(); - // _denny: 如果切换Tab时上一个Pane是basicPane, 则刷新一下其他Pane, - // 因为选择的数据列可能改变, 导致后面过滤和使用公式用到的数据项改变 - if (lastSelectedComponent == basicPane) { - basicPane.update(cellElement); - - // denny_GUI: 刷新其他面板 - refrushOtherTabs(); - } - // 切换标签的时候就,确认是否有没有添加到列表中的条件 - lastSelectedComponent = selectTabComponent; - } catch (Exception e) { - FRContext.getLogger().error(e.getMessage(), e); - } - } - }; - // cellElement 改变时,刷新一下 - // 比如:上边切换Tab时,basicPane Update了一下,可能会改变Field cellElement的值 - PropertyChangeListener myPropertyChangeListener = new PropertyChangeListener() { - - public void propertyChange(PropertyChangeEvent evt) { - refrushOtherTabs(); - } - }; - - //_denny:当数据tab中的数据发生变化的时候刷新后面的tab - public void refrushOtherTabs() { - // ——deny:当JTabPane中加入一个Pane时,后面的Pane可能还没有初始化 + /** + * denny:当数据tab中的数据发生变化的时候刷新后面的tab + */ + private void refreshOtherTabs() { + // deny:当JTabPane中加入一个Pane时,后面的Pane可能还没有初始化 if (conditionPane == null || advancedPane == null) { return; } this.conditionPane.populate(tplEC, cellElement); this.advancedPane.populate(cellElement); } - public void putElementcase(ElementCasePane t){ - basicPane.putElementcase(t); + + public void putElementcase(ElementCasePane t) { + basicPane.putElementcase(t); } - public void putCellElement(TemplateCellElement tplCE) { - basicPane.putCellElement(tplCE); - } + public void putCellElement(TemplateCellElement tplCE) { + basicPane.putCellElement(tplCE); + } } \ No newline at end of file From 6088af74c9b0c939bcc1b712ed9fd5c40e789d2c Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 9 Feb 2018 14:47:30 +0800 Subject: [PATCH 47/75] =?UTF-8?q?REPORT-6373=20=20tab=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XWTabFitLayout.java | 29 ++++++++++++++++++- .../src/com/fr/design/mainframe/FormArea.java | 2 +- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java index 7f80f94870..ee3c9dd07d 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java @@ -28,7 +28,12 @@ import com.fr.stable.ArrayUtils; import com.fr.stable.core.PropertyChangeAdapter; import javax.swing.border.Border; -import java.awt.*; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; +import java.awt.FontMetrics; +import java.awt.Rectangle; import java.beans.IntrospectionException; @@ -623,4 +628,26 @@ public class XWTabFitLayout extends XWFitLayout { xCardSwitchButton.setPreferredSize(new Dimension(width, xCardSwitchButton.getHeight())); } + private void checkVisible(){ + WTabFitLayout wTabFitLayout = (WTabFitLayout)this.data; + CardSwitchButton cardSwitchButton = wTabFitLayout.getCurrentCard(); + cardSwitchButton.setVisible(wTabFitLayout.isVisible()); + } + + + /** + * 是否支持设置可见 + * return boolean + */ + @Override + public boolean supportSetVisible(){ + return true; + } + + + @Override + public void resetVisible(boolean visible){ + checkVisible(); + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormArea.java b/designer_form/src/com/fr/design/mainframe/FormArea.java index 05853b7307..bcb6dd4755 100644 --- a/designer_form/src/com/fr/design/mainframe/FormArea.java +++ b/designer_form/src/com/fr/design/mainframe/FormArea.java @@ -488,7 +488,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent { public void scrollPathToVisible(XCreator creator) { creator.seleteRelatedComponent(creator); - if (!ComponentUtils.isComponentVisible(creator) && !designer.isRoot(creator) && (creator.toData()).isVisible()) { + if (!ComponentUtils.isComponentVisible(creator) && !designer.isRoot(creator)) { designer.makeVisible(creator); } From b774b9d5a9db432a00f86cc98eeefce0855d114f Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Fri, 9 Feb 2018 16:16:32 +0800 Subject: [PATCH 48/75] =?UTF-8?q?REPORT-6949=20=E6=9D=A1=E4=BB=B6=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E7=9A=84=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E5=90=8E=E4=BC=9A=E8=87=AA=E5=8A=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/ElementCasePaneDelegate.java | 36 ++++++++++--------- .../ReportHyperlinkGroupPaneNoPop.java | 7 +++- .../design/gui/frpane/HyperlinkGroupPane.java | 34 +++++++++++------- .../HyperlinkGroupPaneActionProvider.java | 14 ++++++++ .../gui/xpane/FormHyperlinkGroupPane.java | 3 +- 5 files changed, 63 insertions(+), 31 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java index cc57b7a852..0ec151d275 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -1,38 +1,42 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; -import com.fr.design.actions.edit.HyperlinkAction; -import com.fr.design.fun.MenuHandler; -import com.fr.design.gui.frpane.HyperlinkGroupPane; -import com.fr.design.menu.KeySetUtils; -import com.fr.design.present.ConditionAttributesGroupPane; -import com.fr.general.Inter; -import com.fr.grid.selection.FloatSelection; -import com.fr.grid.selection.Selection; -import com.fr.page.ReportSettingsProvider; -import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.DesignState; import com.fr.design.actions.UpdateAction; -import com.fr.design.actions.cell.*; +import com.fr.design.actions.cell.CellAttributeAction; +import com.fr.design.actions.cell.CellExpandAttrAction; +import com.fr.design.actions.cell.CellWidgetAttrAction; +import com.fr.design.actions.cell.ConditionAttributesAction; +import com.fr.design.actions.cell.GlobalStyleMenuDef; import com.fr.design.actions.columnrow.InsertColumnAction; import com.fr.design.actions.columnrow.InsertRowAction; import com.fr.design.actions.core.ActionFactory; +import com.fr.design.actions.edit.HyperlinkAction; import com.fr.design.actions.edit.merge.MergeCellAction; import com.fr.design.actions.edit.merge.UnmergeCellAction; import com.fr.design.actions.utils.DeprecatedActionManager; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.fun.MenuHandler; +import com.fr.design.gui.frpane.HyperlinkGroupPane; import com.fr.design.mainframe.cell.QuickEditorRegion; +import com.fr.design.menu.KeySetUtils; import com.fr.design.menu.MenuDef; import com.fr.design.menu.SeparatorDef; -import com.fr.report.worksheet.WorkSheet; +import com.fr.design.present.ConditionAttributesGroupPane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.design.selection.SelectionEvent; import com.fr.design.selection.SelectionListener; +import com.fr.general.Inter; +import com.fr.grid.selection.FloatSelection; +import com.fr.grid.selection.Selection; +import com.fr.page.ReportSettingsProvider; +import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ArrayUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import java.awt.BorderLayout; /** * 类说明: 设计面板中最上方的"插入" "单元格"下拉列表Menu模块. @@ -79,11 +83,11 @@ public class ElementCasePaneDelegate extends ElementCasePane { CellElementPropertyPane.getInstance().populate(ElementCasePaneDelegate.this); QuickEditorRegion.getInstance().populate(getCurrentEditor()); JTemplate editingTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); + // 模板初始化完成后,才能初始化超级链接面板 if (editingTemplate != null && !editingTemplate.isUpMode()) { Selection editingSelection = getSelection(); - // 模板初始化完成后,才能初始化超级链接面板 + // 获取超级链接面板并刷新显示 HyperlinkGroupPane hyperlinkGroupPane = editingTemplate.getHyperLinkPane(HyperlinkGroupPaneActionImpl.getInstance()); - hyperlinkGroupPane.populate(ElementCasePaneDelegate.this); if (editingSelection instanceof FloatSelection) { EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.REPORT_FLOAT); JPanel floatPane = new JPanel(new BorderLayout()); diff --git a/designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPaneNoPop.java b/designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPaneNoPop.java index 451c899755..e93460377a 100644 --- a/designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPaneNoPop.java +++ b/designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPaneNoPop.java @@ -5,7 +5,7 @@ import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider; /** * Created by plough on 2017/9/4. */ -public class ReportHyperlinkGroupPaneNoPop extends ReportHyperlinkGroupPane{ +public class ReportHyperlinkGroupPaneNoPop extends ReportHyperlinkGroupPane { private static ReportHyperlinkGroupPaneNoPop singleton; private ReportHyperlinkGroupPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { @@ -24,4 +24,9 @@ public class ReportHyperlinkGroupPaneNoPop extends ReportHyperlinkGroupPane{ protected boolean isNewStyle() { return false; } + + @Override + public boolean needAutoSave() { + return false; + } } diff --git a/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java b/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java index 882e0ce127..3671ebbf42 100644 --- a/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPane.java @@ -44,15 +44,12 @@ public abstract class HyperlinkGroupPane extends UIListControlPane { @Override public void on(PluginEvent event) { - - refreshNameableCreator(createNameableCreators()); - + refreshNameableCreator(createNameableCreators()); } }, new PluginFilter() { @Override public boolean accept(PluginContext context) { - return context.contain(HyperlinkProvider.XML_TAG); } }); @@ -63,6 +60,7 @@ public abstract class HyperlinkGroupPane extends UIListControlPane { * * @return 返回Nameable按钮数组. */ + @Override public NameableCreator[] createNameableCreators() { Map nameCreators = new ListMap<>(); NameableCreator[] creators = DesignModuleFactory.getHyperlinkGroupType().getHyperlinkCreators(); @@ -82,6 +80,7 @@ public abstract class HyperlinkGroupPane extends UIListControlPane { * * @return 返回标题字符串. */ + @Override public String title4PopupWindow() { return Inter.getLocText("FR-Designer_Hyperlink"); } @@ -91,11 +90,11 @@ public abstract class HyperlinkGroupPane extends UIListControlPane { return Inter.getLocText("FR-Designer_Add_Hyperlink"); } - public void populate(NameJavaScriptGroup nameHyperlink_array) { - java.util.List list = new ArrayList(); - if (nameHyperlink_array != null) { - for (int i = 0; i < nameHyperlink_array.size(); i++) { - list.add(new NameObject(nameHyperlink_array.getNameHyperlink(i).getName(), nameHyperlink_array.getNameHyperlink(i).getJavaScript())); + public void populate(NameJavaScriptGroup hyperlinkArray) { + java.util.List list = new ArrayList<>(); + if (hyperlinkArray != null) { + for (int i = 0; i < hyperlinkArray.size(); i++) { + list.add(new NameObject(hyperlinkArray.getNameHyperlink(i).getName(), hyperlinkArray.getNameHyperlink(i).getJavaScript())); } } @@ -113,20 +112,29 @@ public abstract class HyperlinkGroupPane extends UIListControlPane { */ public NameJavaScriptGroup updateJSGroup() { Nameable[] res = this.update(); - NameJavaScript[] res_array = new NameJavaScript[res.length]; + NameJavaScript[] resArray = new NameJavaScript[res.length]; for (int i = 0; i < res.length; i++) { NameObject no = (NameObject) res[i]; - res_array[i] = new NameJavaScript(no.getName(), (JavaScript) no.getObject()); + resArray[i] = new NameJavaScript(no.getName(), (JavaScript) no.getObject()); } - return new NameJavaScriptGroup(res_array); + return new NameJavaScriptGroup(resArray); } @Override public void saveSettings() { - if (isPopulating) { + if (isPopulating || !needAutoSave()) { return; } hyperlinkGroupPaneActionProvider.saveSettings(this); } + + /** + * 是否需要自动保存到超级链接属性中 + * + * @return 是否需要自动保存 + */ + public boolean needAutoSave() { + return true; + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java b/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java index a5f7ae9a6c..525bb5b792 100644 --- a/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java +++ b/designer_base/src/com/fr/design/gui/frpane/HyperlinkGroupPaneActionProvider.java @@ -3,9 +3,23 @@ package com.fr.design.gui.frpane; import com.fr.design.designer.TargetComponent; /** + * @author plough * Created by plough on 2017/7/26. */ public interface HyperlinkGroupPaneActionProvider { + + /** + * 刷新面板展示 + * + * @param hyperlinkGroupPane 超链面板 + * @param elementCasePane 模板 + */ void populate(HyperlinkGroupPane hyperlinkGroupPane, TargetComponent elementCasePane); + + /** + * 保存到文件 + * + * @param hyperlinkGroupPane 超联面板 + */ void saveSettings(HyperlinkGroupPane hyperlinkGroupPane); } diff --git a/designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPane.java b/designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPane.java index 1d3e146860..bdcadbdfcf 100644 --- a/designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPane.java @@ -29,7 +29,8 @@ public class FormHyperlinkGroupPane extends HyperlinkGroupPane{ * * @return 返回Nameable按钮数组. */ - public NameableCreator[] createNameableCreators() { + @Override + public NameableCreator[] createNameableCreators() { NameableCreator[] creators = super.createNameableCreators(); for (int i=0; i Date: Mon, 12 Feb 2018 23:47:22 +0800 Subject: [PATCH 49/75] =?UTF-8?q?REPORT-6888=209.0=20=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E6=A0=87=E7=AD=BE=E5=B1=9E=E6=80=A7=E9=97=AE=E9=A2=98?= =?UTF-8?q?=3D=E3=80=8B=E4=BF=AE=E5=A4=8D=E8=A1=A8=E5=8D=95=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E5=B1=9E=E6=80=A7=E9=9D=A2=E6=9D=BF=E9=AB=98=E7=BA=A7?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E4=B8=AD=E6=96=87=E6=9C=AC=E6=A1=86=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E8=BE=93=E5=85=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/JForm.java | 29 +++++++++++-------- .../actions/FormMobileAttrAction.java | 5 ++-- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 2eeb4b0865..be07525a00 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -15,7 +15,12 @@ import com.fr.design.designer.beans.actions.FormDeleteAction; import com.fr.design.designer.beans.actions.PasteAction; 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.XComponent; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; +import com.fr.design.designer.creator.XWAbsoluteBodyLayout; +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; @@ -58,8 +63,17 @@ import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.bridge.StableFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; @@ -797,15 +811,6 @@ public class JForm extends JTemplate implements BaseJForm { JForm.this.fireTargetModified(); } } - - /** - * 模板更新 - */ - public void fireTargetModified() { - super.fireTargetModified(); - WidgetPropertyPane.getInstance().refreshDockingView(); - } - /** * 在Form和ElementCase, 以及ElementCase和ElementCase之间切换 * diff --git a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java index 17a4458bd8..95df79b964 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/FormMobileAttrAction.java @@ -8,6 +8,7 @@ import com.fr.design.form.mobile.FormMobileAttrPane; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormArea; import com.fr.design.mainframe.JForm; +import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.menu.MenuKeySet; import com.fr.form.main.Form; import com.fr.form.main.mobile.FormMobileAttr; @@ -16,7 +17,7 @@ import com.fr.plugin.ExtraClassManager; import com.fr.stable.ReportFunctionProcessor; import com.fr.stable.fun.FunctionProcessor; -import javax.swing.*; +import javax.swing.KeyStroke; import java.awt.event.ActionEvent; /** @@ -54,7 +55,7 @@ public class FormMobileAttrAction extends JTemplateAction { FormMobileAttr formMobileAttr = mobileAttrPane.updateBean(); formTpl.setFormMobileAttr(formMobileAttr); ((FormArea)jf.getFormDesign().getParent()).onMobileAttrModified(); - jf.fireTargetModified(); + WidgetPropertyPane.getInstance().refreshDockingView(); if (formMobileAttr.isMobileOnly()) { FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); if (processor != null) { From 4c64e22719b8305cf0020b0ca9f69885d6af85e5 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Mon, 26 Feb 2018 15:01:04 +0800 Subject: [PATCH 50/75] =?UTF-8?q?REPORT-6457=20=E5=B0=86=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E5=A1=AB=E6=8A=A5=E7=9A=84=E5=8A=9F=E8=83=BD=E4=BB=A5=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=BD=A2=E6=88=90=E6=8B=86=E8=A7=A3=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/webattr/ReportWebWidgetConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/webattr/ReportWebWidgetConstants.java b/designer/src/com/fr/design/webattr/ReportWebWidgetConstants.java index 12dd2dcb76..55db27c051 100644 --- a/designer/src/com/fr/design/webattr/ReportWebWidgetConstants.java +++ b/designer/src/com/fr/design/webattr/ReportWebWidgetConstants.java @@ -32,7 +32,7 @@ public class ReportWebWidgetConstants { public static WidgetOption[] getWriteToolBarInstance() { return new WidgetOption[]{SUBMIT, VERIFY, EMAIL, EXPORT, PDF, EXCELP, EXCELO, EXCELS, WORD, PRINT, FLASHPRINT, APPLETPRINT, PDFPRINT, IMPORTEXCELDATA, SHOWCELLVALUE, - APPENDCOLUMNROW, DELETECOLUMNROW, SETPRINTEROFFSET, WRITEOFFLINEHTML, CUSTOM_BUTTON, WRITESTASH, WRITESTASHCLEAR, IMPORTEXCELDATA_CUSTOMIZED, + APPENDCOLUMNROW, DELETECOLUMNROW, SETPRINTEROFFSET, CUSTOM_BUTTON, WRITESTASH, WRITESTASHCLEAR, IMPORTEXCELDATA_CUSTOMIZED, IMPORTEXCEL, IMPORTEXCEL_COVER, IMPORTEXCEL_CLEAN, IMPORTEXCEL_APPEND}; } From bb7183256b20e75a84c048a24b0c2fc590a26780 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 26 Feb 2018 19:08:31 +0800 Subject: [PATCH 51/75] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E4=BF=AE=E6=94=B9=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 3 +- .../design/locale/designer_en_US.properties | 3 +- .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 3 +- .../design/locale/designer_zh_TW.properties | 3 +- .../mobile/ChartEditorDefinePane.java | 29 ++++++++++++++++--- 7 files changed, 35 insertions(+), 8 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 3a1bfffd0a..76e68d31f4 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2181,6 +2181,7 @@ FR-Designer_Joption_News=news FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity -FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, the chart does not support the setting of self-adaptive FR-Designer_Official_Website=Official Website: FR-Designer_Support_Email=Email: +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index df77db12e6..3b825643dc 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2180,6 +2180,7 @@ FR-Designer_Joption_News=news FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity -FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, the chart does not support the setting of self-adaptive FR-Designer_Official_Website=Official Website: FR-Designer_Support_Email=Email: +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 69a05fe90d..8151fed1e1 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2181,3 +2181,4 @@ FR-Designer_Chart_Adaptivity= FR-Designer_Tip_Chart_Adaptivity_Unavailable= FR-Designer_Official_Website= FR-Designer_Support_Email= +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index a6de6a804c..4adc4ca518 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2182,3 +2182,4 @@ FR-Designer_Chart_Adaptivity= FR-Designer_Tip_Chart_Adaptivity_Unavailable= FR-Designer_Official_Website= FR-Designer_Support_Email= +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 7ee6469b02..ec163bacd5 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2181,6 +2181,7 @@ FR-Designer_Joption_News=\u6D88\u606F FR-Designer_Zoom_In_Logic=\u653E\u5927\u903B\u8F91 FR-Designer_Zoom_Out_Logic=\u7F29\u5C0F\u903B\u8F91 FR-Designer_Chart_Adaptivity=\u56FE\u8868\u81EA\u9002\u5E94 -FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9009\u624B\u673A\u91CD\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u4E0D\u652F\u6301\u56FE\u8868\u81EA\u9002\u5E94 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 FR-Designer_Official_Website=\u5B98\u65B9\u7F51\u7AD9\uFF1A FR-Designer_Support_Email=\u652F\u6301\u90AE\u7BB1\uFF1A +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7EDD\u5BF9\u753B\u5E03\u5757\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index b73cfeb6cd..50363e3e65 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2180,6 +2180,7 @@ FR-Designer_Joption_News=\u6D88\u606F FR-Designer_Zoom_In_Logic=\u653E\u5927\u908F\u8F2F FR-Designer_Zoom_Out_Logic=\u7E2E\u5C0F\u908F\u8F2F FR-Designer_Chart_Adaptivity=\u5716\u8868\u81EA\u6211\u8ABF\u6574 -FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9078\u624B\u6A5F\u91CD\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u4E0D\u652F\u6301\u5716\u8868\u81EA\u6211\u8ABF\u6574 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 FR-Designer_Official_Website=\u5B98\u65B9\u7DB2\u7AD9\uFF1A FR-Designer_Support_Email=\u652F\u6301\u90F5\u7BB1\uFF1A +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7D55\u5C0D\u756B\u5E03\u584A\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 240ddc3261..ddde0ba21c 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -5,6 +5,8 @@ import com.fr.base.mobile.ChartMobileFitAttrState; import com.fr.base.mobile.ChartMobileFitAttrStateProvider; import com.fr.design.constants.LayoutConstants; import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XWAbsoluteBodyLayout; +import com.fr.design.designer.creator.XWAbsoluteLayout; import com.fr.design.designer.properties.items.Item; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AttributeChangeListener; @@ -53,19 +55,38 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); - this.add(isAppRelayout() ? getMobileSettingsPane() : getUnavailableTipPane(), BorderLayout.NORTH); + JPanel mobileSettingsPane; + if (isInAbsoluteLayout()) { + mobileSettingsPane = getUnavailableTipPane(Inter.getLocText("FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout")); + } else if (!isAppRelayout()) { + mobileSettingsPane = getUnavailableTipPane(Inter.getLocText("FR-Designer_Tip_Chart_Adaptivity_Unavailable")); + } else { + mobileSettingsPane = getMobileSettingsPane(); + } + this.add(mobileSettingsPane, BorderLayout.NORTH); this.repaint(); } + private boolean isInAbsoluteLayout() { + Container parent = xCreator.getParent(); + while (parent != null) { + if (parent instanceof XWAbsoluteLayout && !(parent instanceof XWAbsoluteBodyLayout)) { + return true; + } + parent = parent.getParent(); + } + return false; + } + // body是否开启手机重布局 private boolean isAppRelayout() { return ((WFitLayout)designer.getRootComponent().toData()).isAppRelayout(); } - private JPanel getUnavailableTipPane() { + private JPanel getUnavailableTipPane(String tipText) { JPanel panel = new JPanel(new BorderLayout()); UILabel unavailableTipLabel = new UILabel(); - unavailableTipLabel.setText("" + Inter.getLocText("FR-Designer_Tip_Chart_Adaptivity_Unavailable") + ""); + unavailableTipLabel.setText("" + tipText + ""); unavailableTipLabel.setForeground(Color.gray); panel.add(unavailableTipLabel, BorderLayout.NORTH); return panel; @@ -129,7 +150,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ public void populate(FormDesigner designer) { this.designer = designer; - if (!isAppRelayout()) { + if (!isAppRelayout() || isInAbsoluteLayout()) { return; } From 9d2b04f3049d5329508c8d5c9bfef07393e77a5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Tue, 27 Feb 2018 09:38:04 +0800 Subject: [PATCH 52/75] =?UTF-8?q?MOBILE-7394=20=E8=A7=A3=E5=86=B3=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E6=A0=87=E7=AD=BE=E6=8E=A7=E4=BB=B6=E8=B5=8B?= =?UTF-8?q?=E5=80=BC=E5=90=8E=EF=BC=8C=E6=8E=A7=E4=BB=B6=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E7=9A=84=E8=B5=8B=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/parameter/RootDesignDefinePane.java | 7 +++++++ .../widget/FormWidgetDefinePaneFactoryBase.java | 4 ++-- .../widget/ui/designer/FieldEditorDefinePane.java | 14 ++++++++++++++ .../ui/designer/TextFieldEditorDefinePane.java | 4 ++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java index 6cfa4a2667..82d17f9ff8 100644 --- a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java @@ -17,6 +17,7 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.widget.accessibles.AccessibleBackgroundEditor; import com.fr.design.widget.ui.designer.AbstractDataModify; @@ -53,6 +54,12 @@ public class RootDesignDefinePane extends AbstractDataModify { initComponent(); } + public RootDesignDefinePane(XCreator xCreator, FormDesigner designer) { + super(xCreator, designer); + this.root = (XWParameterLayout) xCreator; + initComponent(); + } + public void initComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); diff --git a/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java b/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java index 0de1e2bdaf..9c69ec3e10 100644 --- a/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java +++ b/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java @@ -85,8 +85,8 @@ public class FormWidgetDefinePaneFactoryBase { Appearance dn = defineMap.get(widget.getClass()); DataModify definePane = null; try { - Constructor con = dn.getDefineClass().getConstructor(XCreator.class); - definePane = (DataModify)con.newInstance(creator); + Constructor con = dn.getDefineClass().getConstructor(XCreator.class, FormDesigner.class); + definePane = (DataModify)con.newInstance(creator, designer); operator.did(definePane.dataUI(), dn.getDisplayName()); } catch (Exception e) { FRContext.getLogger().error(e.getMessage(), e); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java index ad47924d43..d2f7911455 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java @@ -9,8 +9,12 @@ 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.FormDesigner; import com.fr.design.widget.ui.designer.component.FontSizeComboPane; import com.fr.form.ui.FieldEditor; +import com.fr.form.ui.Widget; +import com.fr.form.ui.container.WParameterLayout; +import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import javax.swing.*; @@ -34,6 +38,11 @@ public abstract class FieldEditorDefinePane extends Abstr this.initComponents(); } + public FieldEditorDefinePane(XCreator xCreator, FormDesigner designer) { + super(xCreator, designer); + this.initComponents(); + } + protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); labelNameTextField = new UITextField(); @@ -70,6 +79,11 @@ public abstract class FieldEditorDefinePane extends Abstr e.setAllowBlank(this.allowBlankCheckBox.isSelected()); e.setErrorMessage(this.errorMsgTextField.getText()); e.setFontSize(fontSizePane.getValue()); + if (!ComparatorUtils.equals(e.getLabelName(), labelNameTextField.getText())) { + XCreator xCreator = designer.getSelectionModel().getSelection().getSelectedCreator(); + Widget selectedWidget = xCreator.toData(); + ((WParameterLayout) designer.getParaComponent().toData()).setNameTagModified(selectedWidget.getWidgetName(), true); + } e.setLabelName(labelNameTextField.getText()); return e; } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java index 6facca8573..0d22cc99b1 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java @@ -9,6 +9,7 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.FormDesigner; import com.fr.design.widget.ui.designer.component.FormWidgetValuePane; import com.fr.form.ui.TextEditor; import com.fr.general.Inter; @@ -27,6 +28,9 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane super(xCreator); } + public TextFieldEditorDefinePane(XCreator xCreator, FormDesigner designer) { + super(xCreator, designer); + } @Override protected JPanel setFirstContentPane() { From c17f1a17b1e0bbd86812e7e35894385e54f3b1f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Tue, 27 Feb 2018 10:00:10 +0800 Subject: [PATCH 53/75] =?UTF-8?q?=E4=B8=8D=E8=83=BD=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=8D=E5=B0=84=E7=9A=84=E5=8F=82=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E6=8A=8AFieldEditorDefinePane=E4=B8=AD=E7=9A=84design?= =?UTF-8?q?er=E8=8E=B7=E5=8F=96=E6=96=B9=E5=BC=8F=E6=8D=A2=E6=88=90?= =?UTF-8?q?=E4=BB=8EWidgetPropertyPane=E4=B8=AD=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/parameter/RootDesignDefinePane.java | 7 ------- .../fr/design/widget/FormWidgetDefinePaneFactoryBase.java | 4 ++-- .../design/widget/ui/designer/FieldEditorDefinePane.java | 7 ++----- .../widget/ui/designer/TextFieldEditorDefinePane.java | 4 ---- 4 files changed, 4 insertions(+), 18 deletions(-) diff --git a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java index 82d17f9ff8..16863ba1de 100644 --- a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java @@ -54,13 +54,6 @@ public class RootDesignDefinePane extends AbstractDataModify { initComponent(); } - public RootDesignDefinePane(XCreator xCreator, FormDesigner designer) { - super(xCreator, designer); - this.root = (XWParameterLayout) xCreator; - initComponent(); - } - - public void initComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); designerWidth = new UISpinner(1, Integer.MAX_VALUE, 1); diff --git a/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java b/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java index 9c69ec3e10..0de1e2bdaf 100644 --- a/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java +++ b/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java @@ -85,8 +85,8 @@ public class FormWidgetDefinePaneFactoryBase { Appearance dn = defineMap.get(widget.getClass()); DataModify definePane = null; try { - Constructor con = dn.getDefineClass().getConstructor(XCreator.class, FormDesigner.class); - definePane = (DataModify)con.newInstance(creator, designer); + Constructor con = dn.getDefineClass().getConstructor(XCreator.class); + definePane = (DataModify)con.newInstance(creator); operator.did(definePane.dataUI(), dn.getDisplayName()); } catch (Exception e) { FRContext.getLogger().error(e.getMessage(), e); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java index d2f7911455..5a3c37bf9e 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/FieldEditorDefinePane.java @@ -10,6 +10,7 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.widget.ui.designer.component.FontSizeComboPane; import com.fr.form.ui.FieldEditor; import com.fr.form.ui.Widget; @@ -38,11 +39,6 @@ public abstract class FieldEditorDefinePane extends Abstr this.initComponents(); } - public FieldEditorDefinePane(XCreator xCreator, FormDesigner designer) { - super(xCreator, designer); - this.initComponents(); - } - protected void initComponents() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); labelNameTextField = new UITextField(); @@ -79,6 +75,7 @@ public abstract class FieldEditorDefinePane extends Abstr e.setAllowBlank(this.allowBlankCheckBox.isSelected()); e.setErrorMessage(this.errorMsgTextField.getText()); e.setFontSize(fontSizePane.getValue()); + designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); if (!ComparatorUtils.equals(e.getLabelName(), labelNameTextField.getText())) { XCreator xCreator = designer.getSelectionModel().getSelection().getSelectedCreator(); Widget selectedWidget = xCreator.toData(); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java index 0d22cc99b1..35f918da46 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java @@ -28,10 +28,6 @@ public class TextFieldEditorDefinePane extends FieldEditorDefinePane super(xCreator); } - public TextFieldEditorDefinePane(XCreator xCreator, FormDesigner designer) { - super(xCreator, designer); - } - @Override protected JPanel setFirstContentPane() { regPane = createRegPane(); From b9aaedc1415c2b8ec65e5e97f0d8adcc918de186 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E7=A3=8A?= <294531121@qq.com> Date: Tue, 27 Feb 2018 10:04:00 +0800 Subject: [PATCH 54/75] . --- .../src/com/fr/design/parameter/RootDesignDefinePane.java | 1 - .../fr/design/widget/ui/designer/TextFieldEditorDefinePane.java | 1 - 2 files changed, 2 deletions(-) diff --git a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java index 16863ba1de..6cee032503 100644 --- a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java @@ -17,7 +17,6 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.JTemplate; import com.fr.design.mainframe.widget.accessibles.AccessibleBackgroundEditor; import com.fr.design.widget.ui.designer.AbstractDataModify; diff --git a/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java index 35f918da46..cd20e74396 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/TextFieldEditorDefinePane.java @@ -9,7 +9,6 @@ import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.mainframe.FormDesigner; import com.fr.design.widget.ui.designer.component.FormWidgetValuePane; import com.fr.form.ui.TextEditor; import com.fr.general.Inter; From 9a20b0f91b2e49c3fc44a81f07eb64997baf8c69 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 27 Feb 2018 14:52:21 +0800 Subject: [PATCH 55/75] REPORT-6710 --- .../src/com/fr/design/file/NewTemplatePane.java | 2 +- .../fr/design/images/buttonicon/add_press.png | Bin 306 -> 321 bytes .../com/fr/design/images/buttonicon/addicon.png | Bin 232 -> 203 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/file/NewTemplatePane.java b/designer_base/src/com/fr/design/file/NewTemplatePane.java index aeec5a8fdb..1cfea84999 100644 --- a/designer_base/src/com/fr/design/file/NewTemplatePane.java +++ b/designer_base/src/com/fr/design/file/NewTemplatePane.java @@ -21,7 +21,7 @@ import java.awt.geom.Rectangle2D; public abstract class NewTemplatePane extends JComponent implements MouseListener, MouseMotionListener { private static final Icon GRAY_NEW_CPT = BaseUtils.readIcon("/com/fr/design/images/buttonicon/additicon_grey.png"); - private static final int PRE_GAP = 0; + private static final int PRE_GAP = 5; private static final int HEIGHT = 26; private Graphics2D g2d; private Icon newWorkBookIconMode = null; diff --git a/designer_base/src/com/fr/design/images/buttonicon/add_press.png b/designer_base/src/com/fr/design/images/buttonicon/add_press.png index f3268f9b613ced5e5b3fc735ce8f610d8431a812..81f9df9e3434c7413b3fa5b3e437b6c33b80da1a 100644 GIT binary patch literal 321 zcmV-H0lxl;P)Px#`$Q`-%LFbqt9C6KxWU7}q8SfJm)AgJG60Cj;5!$YdnO0Wc^y&$I{ zBz;KrM;u?yXU75Fw%6S>jTa9Kdm69nPGI9LBes&)>5s+6oNF<^Rwm)gxb3XI2y$gNIp5^nFi!J3*a7 zfuzXeFbqSRjK#2q(HY*ax z=HGUpi@JnAc97>88-~}r(RJ|>WqF+cI|9uXzv+PE=N4i-(QB9@u2_Bp+&?@3wbhMi TkK*2P00000NkvXXu0mjf#rK2y literal 306 zcmV-20nPr2P)Px#>`6pHR5%g6l|2r^FbsvM6A7d)40K|HbAWnwI7dfzmTpNzjBsVS4~0TR7yl&w z?7UV@)A#*m9LH@4fmRhB?|o|9_U^i_+tq^dTq&g{#<-@MP&qI&y#!*3+)eyXZAx)( z_s+n)L2u+nrPx9_uJXeE3Wicxol7yA7=lZh+I0k8tg(hN(8khaF?cE@cM%_1C#H{ce*n2D_4VgwHJykrhxm_glfTByB)&#!!sTju05ogz8t%K*Ib=64S^sk-`)e+_ z3?-@L?=E^m0)?4eK^tE^<#1h9lC*Vkz=wNB??s$qRQ_l#Eu!}zq`3L^+;r}_)1FHx za0ji}%FAH!`NZpmQ@GCMYBLux9u@N1$P)agOZH`iy(jPIO|C!(F?hQAxvX-ssnb3VLC_xqG}?2v$!n+}`Nk+(g2`JLU07iQ-Q#-5WXR#_A_ z`)tvy71w%dZ!EStrgrRH>qUvIvOW8PvfoN1-#1(zR?;-1y~t+$>b}B^V>1l7Mb^7- gU-YBxzUUkV?Le#gxN6fyK-V&Oy85}Sb4q9e0F5|YjsO4v From 62a810608f9d9f7745d1a04756afa5e76d52b6ff Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 27 Feb 2018 16:05:23 +0800 Subject: [PATCH 56/75] REPORT-6609 --- .../com/fr/design/mainframe/ElementCasePane.java | 10 +++++----- .../mainframe/ElementCasePaneDelegate.java | 8 ++++---- .../src/com/fr/design/mainframe/JWorkBook.java | 12 ++++++------ .../com/fr/design/mainframe/ReportComponent.java | 4 ++-- .../mainframe/ReportComponentCardPane.java | 4 ++-- .../fr/design/mainframe/SheetNameTabPane.java | 3 ++- .../mainframe/form/FormElementCaseDesigner.java | 4 ++-- .../design/parameter/ParameterDefinitePane.java | 5 +++-- .../src/com/fr/design/webattr/ToolBarButton.java | 4 ++-- .../fr/grid/AbstractGridHeaderMouseHandler.java | 6 +++--- designer/src/com/fr/grid/GridColumnUI.java | 4 ++-- designer/src/com/fr/grid/GridMouseAdapter.java | 14 +++++++------- designer/src/com/fr/grid/GridRowUI.java | 4 ++-- designer/src/com/fr/grid/GridUI.java | 6 ++---- .../src/com/fr/grid/selection/CellSelection.java | 3 ++- .../com/fr/grid/selection/FloatSelection.java | 4 ++-- designer/src/com/fr/poly/PolyComponetsBar.java | 3 ++- designer/src/com/fr/poly/PolyDesigner.java | 8 ++++---- .../com/fr/poly/actions/DeleteBlockAction.java | 3 ++- .../com/fr/poly/creator/ChartBlockEditor.java | 7 +++---- .../src/com/fr/poly/creator/ECBlockEditor.java | 4 ++-- .../src/com/fr/poly/creator/ECBlockPane.java | 6 +++--- .../poly/hanlder/BottomCornerMouseHanlder.java | 8 ++++---- .../hanlder/ColumnOperationMouseHandler.java | 6 +++--- .../fr/poly/hanlder/PolyDesignerDropTarget.java | 4 ++-- .../poly/hanlder/RowOperationMouseHandler.java | 6 +++--- designer/src/com/fr/start/Designer.java | 4 ++-- designer_base/src/com/fr/design/DesignState.java | 4 ++-- .../design/actions/AllowAuthorityEditAction.java | 2 +- .../design/actions/ExitAuthorityEditAction.java | 5 +++-- .../com/fr/design/file/MutilTempalteTabPane.java | 2 +- .../src/com/fr/design/file/NewTemplatePane.java | 2 +- .../fr/design/gui/ibutton/UISliderButtonUI.java | 8 ++++---- .../gui/icontainer/UIEastResizableContainer.java | 5 ++--- .../gui/icontainer/UIModeControlContainer.java | 10 +++++----- .../gui/icontainer/UIResizableContainer.java | 7 +++---- .../com/fr/design/mainframe/DesignerFrame.java | 15 ++++++++------- .../mainframe/DesignerFrameFileDealerPane.java | 3 ++- .../mainframe/EastRegionContainerPane.java | 3 ++- .../src/com/fr/design/mainframe/JTemplate.java | 16 ++++++++-------- .../com/fr/design/mainframe/UndoStateEdit.java | 6 +++--- .../mainframe/toolbar/ToolBarMenuDock.java | 11 +++++------ .../fr/design/mainframe/toolbar/VcsScene.java | 4 ++-- .../roleAuthority/ReportAndFSManagePane.java | 3 ++- .../com/fr/design/utils/gui/GUIPaintUtils.java | 10 +++++----- .../com/fr/design/designer/creator/XCreator.java | 4 ++-- .../design/form/parameter/FormParaDesigner.java | 4 ++-- .../design/mainframe/EditingMouseListener.java | 7 ++++--- .../com/fr/design/mainframe/FormDesigner.java | 8 ++++---- .../com/fr/design/mainframe/FormDesignerUI.java | 6 ++---- .../fr/design/mainframe/FormToolBarButton.java | 4 ++-- .../src/com/fr/design/mainframe/JForm.java | 8 ++++---- .../fr/design/mainframe/ShareWidgetButton.java | 4 ++-- .../com/fr/design/mainframe/ToolBarButton.java | 4 ++-- .../fr/design/mainframe/WidgetToolBarPane.java | 5 +++-- 55 files changed, 164 insertions(+), 160 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/ElementCasePane.java b/designer/src/com/fr/design/mainframe/ElementCasePane.java index 547fdcf480..1bd0582fc2 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePane.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePane.java @@ -4,12 +4,12 @@ package com.fr.design.mainframe; import com.fr.base.BaseFormula; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.base.FRContext; import com.fr.base.Formula; import com.fr.base.ScreenResolution; import com.fr.base.Style; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; @@ -755,7 +755,7 @@ public abstract class ElementCasePane extends Tar * @return 返回是否清除内容. */ public boolean clearContents() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return false; } boolean b = this.selection.clear(Clear.CONTENTS, this); @@ -1042,7 +1042,7 @@ public abstract class ElementCasePane extends Tar */ public UIPopupMenu createRowPopupMenu(MouseEvent evt, int selectedRows) { UIPopupMenu popupMenu = new UIPopupMenu(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { popupMenu.add(new CleanAuthorityAction(this).createMenuItem()); return popupMenu; } @@ -1135,7 +1135,7 @@ public abstract class ElementCasePane extends Tar public UIPopupMenu createColumnPopupMenu(MouseEvent evt, int selectedColumn) { UIPopupMenu popupMenu = new UIPopupMenu(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { popupMenu.add(new CleanAuthorityAction(this).createMenuItem()); return popupMenu; } @@ -1236,7 +1236,7 @@ public abstract class ElementCasePane extends Tar public ShortCut[] shortCuts4Authority() { return new ShortCut[]{ new NameSeparator(Inter.getLocText(new String[]{"DashBoard-Potence", "Edit"})), - BaseUtils.isAuthorityEditing() ? new ExitAuthorityEditAction(this) : new AllowAuthorityEditAction(this), + DesignerMode.isAuthorityEditing() ? new ExitAuthorityEditAction(this) : new AllowAuthorityEditAction(this), }; } diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java index 0ec151d275..601467125f 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -1,6 +1,6 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.actions.UpdateAction; import com.fr.design.actions.cell.CellAttributeAction; @@ -51,7 +51,7 @@ public class ElementCasePaneDelegate extends ElementCasePane { this.addSelectionChangeListener(new SelectionListener() { @Override public void selectionChanged(SelectionEvent e) { - if (!isEditable() && !BaseUtils.isAuthorityEditing()) { + if (!isEditable() && !DesignerMode.isAuthorityEditing()) { return; } refreshPropertyPanes(); @@ -71,7 +71,7 @@ public class ElementCasePaneDelegate extends ElementCasePane { private void refreshPropertyPanes() { //在编辑权限,所以要更新权限编辑面板 - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { AuthorityPropertyPane authorityPropertyPane = new AuthorityPropertyPane(ElementCasePaneDelegate.this); authorityPropertyPane.populate(); EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION); @@ -124,7 +124,7 @@ public class ElementCasePaneDelegate extends ElementCasePane { * @return 返回MenuDef数组. */ public MenuDef[] menus4Target() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return super.menus4Target(); } return (MenuDef[]) ArrayUtils.addAll(super.menus4Target(), new MenuDef[]{createInsertMenuDef(), createCellMenuDef()}); diff --git a/designer/src/com/fr/design/mainframe/JWorkBook.java b/designer/src/com/fr/design/mainframe/JWorkBook.java index c7996e84f9..8fc64277e8 100644 --- a/designer/src/com/fr/design/mainframe/JWorkBook.java +++ b/designer/src/com/fr/design/mainframe/JWorkBook.java @@ -264,7 +264,7 @@ public class JWorkBook extends JTemplate { if (this.getEditingElementCasePane() == null) { return JWorkBook.this; } - this.getEditingElementCasePane().getGrid().setEditable(!BaseUtils.isAuthorityEditing()); + this.getEditingElementCasePane().getGrid().setEditable(!DesignerMode.isAuthorityEditing()); centerPane.needToShowCoverAndHidPane(); if (centerPane.isUpEditMode()) { return parameterPane; @@ -294,7 +294,7 @@ public class JWorkBook extends JTemplate { } public JPanel getEastUpPane() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return allowAuthorityUpPane(); } else { return exitEastUpPane(); @@ -589,7 +589,7 @@ public class JWorkBook extends JTemplate { */ public ShortCut[] shortcut4FileMenu() { boolean showWorkBookExportMenu = DesignerMode.isVcsMode() - || BaseUtils.isAuthorityEditing() + || DesignerMode.isAuthorityEditing() || (FRContext.getCurrentEnv() instanceof RemoteEnv); return (ShortCut[]) ArrayUtils.addAll(super.shortcut4FileMenu(), showWorkBookExportMenu ? new ShortCut[0] : new ShortCut[]{this.createWorkBookExportMenu()} @@ -634,7 +634,7 @@ public class JWorkBook extends JTemplate { public ShortCut[] shortCuts4Authority() { return new ShortCut[]{ new NameSeparator(Inter.getLocText("FR-Designer_Permissions_Edition")), - BaseUtils.isAuthorityEditing() ? new ExitAuthorityEditAction(this) : new AllowAuthorityEditAction(this), + DesignerMode.isAuthorityEditing() ? new ExitAuthorityEditAction(this) : new AllowAuthorityEditAction(this), }; } @@ -676,7 +676,7 @@ public class JWorkBook extends JTemplate { protected void applyUndoState(WorkBookUndoState u) { try { this.setTarget((WorkBook) u.getWorkBook().clone()); - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { if (u.getAuthorityType() != BaseUndoState.NORMAL_STATE) { applyAll(u); this.undoState = u; @@ -929,7 +929,7 @@ public class JWorkBook extends JTemplate { } } } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION); EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(allowAuthorityUpPane()); EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance()); diff --git a/designer/src/com/fr/design/mainframe/ReportComponent.java b/designer/src/com/fr/design/mainframe/ReportComponent.java index 699f6c1c5b..1a6f07152e 100644 --- a/designer/src/com/fr/design/mainframe/ReportComponent.java +++ b/designer/src/com/fr/design/mainframe/ReportComponent.java @@ -5,7 +5,7 @@ package com.fr.design.mainframe; import javax.swing.JScrollBar; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.AllowAuthorityEditAction; import com.fr.design.actions.ExitAuthorityEditAction; import com.fr.design.actions.report.ReportBackgroundAction; @@ -68,7 +68,7 @@ public abstract class ReportComponent= 2 && !BaseUtils.isAuthorityEditing()) { + if (clickCount >= 2 && !DesignerMode.isAuthorityEditing()) { grid.startEditing(); } - if (clickCount == 1 && cellElement != null && cellElement.getWidget() != null && !BaseUtils.isAuthorityEditing()) { + if (clickCount == 1 && cellElement != null && cellElement.getWidget() != null && !DesignerMode.isAuthorityEditing()) { showWidetWindow(cellElement, report); } reportPane.repaint(); @@ -362,12 +362,12 @@ public class GridMouseAdapter implements MouseListener, MouseWheelListener, Mous } Selection selection = reportPane.getSelection(); - if (selection instanceof FloatSelection && !BaseUtils.isAuthorityEditing()) { + if (selection instanceof FloatSelection && !DesignerMode.isAuthorityEditing()) { doWithFloatElementDragged(evtX, evtY, (FloatSelection) selection); grid.setDragType(GridUtils.DRAG_FLOAT); - } else if (grid.getDragType() == GridUtils.DRAG_CELLSELECTION_BOTTOMRIGHT_CORNER && !BaseUtils.isAuthorityEditing()) { + } else if (grid.getDragType() == GridUtils.DRAG_CELLSELECTION_BOTTOMRIGHT_CORNER && !DesignerMode.isAuthorityEditing()) { doWithCellElementDragged(evtX, evtY, (CellSelection) selection); - } else if (grid.getDragType() == GridUtils.DRAG_CELLSELECTION && !BaseUtils.isAuthorityEditing()) { + } else if (grid.getDragType() == GridUtils.DRAG_CELLSELECTION && !DesignerMode.isAuthorityEditing()) { // peter:获得调整过的Selected Column Row. ColumnRow selectedCellPoint = GridUtils.getAdjustEventColumnRow_withresolution(reportPane, evtX, evtY, resolution); if (selectedCellPoint.getColumn() != grid.getDragRectangle().x || selectedCellPoint.getRow() != grid.getDragRectangle().y) { diff --git a/designer/src/com/fr/grid/GridRowUI.java b/designer/src/com/fr/grid/GridRowUI.java index 818b81700d..5499906990 100644 --- a/designer/src/com/fr/grid/GridRowUI.java +++ b/designer/src/com/fr/grid/GridRowUI.java @@ -8,10 +8,10 @@ import javax.swing.JComponent; import javax.swing.UIManager; import javax.swing.plaf.ComponentUI; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.base.GraphHelper; import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.cache.list.IntList; import com.fr.design.constants.UIConstants; import com.fr.design.mainframe.ElementCasePane; @@ -137,7 +137,7 @@ public class GridRowUI extends ComponentUI { } private void drawAuthority(ElementCase elementCase, Graphics2D g2d, double tmpHeight1, double tmpIncreaseHeight, Dimension size, int i) { - boolean isAuthorityEdited = BaseUtils.isAuthorityEditing(); + boolean isAuthorityEdited = DesignerMode.isAuthorityEditing(); if (isAuthorityEdited) { ColumnRowPrivilegeControl cpc = elementCase.getRowPrivilegeControl(i); String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); diff --git a/designer/src/com/fr/grid/GridUI.java b/designer/src/com/fr/grid/GridUI.java index 9a972db7b1..390e2779ac 100644 --- a/designer/src/com/fr/grid/GridUI.java +++ b/designer/src/com/fr/grid/GridUI.java @@ -1,7 +1,6 @@ package com.fr.grid; import com.fr.base.BaseFormula; -import com.fr.base.BaseUtils; import com.fr.base.DynamicUnitList; import com.fr.base.FRContext; import com.fr.base.GraphHelper; @@ -10,6 +9,7 @@ import com.fr.base.PaperSize; import com.fr.base.Utils; import com.fr.base.background.ColorBackground; import com.fr.base.background.ImageBackground; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.mainframe.DesignerContext; @@ -41,9 +41,7 @@ import com.fr.report.worksheet.FormElementCase; import com.fr.report.worksheet.WorkSheet; import com.fr.stable.ColumnRow; import com.fr.stable.Constants; -import com.fr.stable.script.CalculatorUtils; import com.fr.stable.unit.FU; -import com.fr.third.antlr.ANTLRException; import javax.swing.*; import javax.swing.plaf.ComponentUI; @@ -1037,7 +1035,7 @@ public class GridUI extends ComponentUI { throw new IllegalArgumentException("The component c to paint must be a Grid!"); } - isAuthority = BaseUtils.isAuthorityEditing(); + isAuthority = DesignerMode.isAuthorityEditing(); Graphics2D g2d = (Graphics2D) g; diff --git a/designer/src/com/fr/grid/selection/CellSelection.java b/designer/src/com/fr/grid/selection/CellSelection.java index 3201c44344..faaa6511eb 100644 --- a/designer/src/com/fr/grid/selection/CellSelection.java +++ b/designer/src/com/fr/grid/selection/CellSelection.java @@ -5,6 +5,7 @@ import com.fr.base.BaseUtils; import com.fr.base.ConfigManager; import com.fr.base.NameStyle; import com.fr.base.Utils; +import com.fr.base.vcs.DesignerMode; import com.fr.cache.list.IntList; import com.fr.design.actions.UpdateAction; import com.fr.design.actions.cell.CellAttributeAction; @@ -463,7 +464,7 @@ public class CellSelection extends Selection { */ public UIPopupMenu createPopupMenu(ElementCasePane ePane) { UIPopupMenu popup = new UIPopupMenu(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { popup.add(new CleanAuthorityAction(ePane).createMenuItem()); return popup; } diff --git a/designer/src/com/fr/grid/selection/FloatSelection.java b/designer/src/com/fr/grid/selection/FloatSelection.java index cff3a4a642..a1f09591f5 100644 --- a/designer/src/com/fr/grid/selection/FloatSelection.java +++ b/designer/src/com/fr/grid/selection/FloatSelection.java @@ -1,7 +1,7 @@ package com.fr.grid.selection; -import com.fr.base.BaseUtils; import com.fr.base.FRContext; +import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.cell.CleanAuthorityAction; import com.fr.design.actions.cell.FloatStyleAction; import com.fr.design.actions.core.ActionFactory; @@ -118,7 +118,7 @@ public class FloatSelection extends Selection { @Override public JPopupMenu createPopupMenu(ElementCasePane ePane) { UIPopupMenu popup = new UIPopupMenu(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { popup.add(new CleanAuthorityAction(ePane).createMenuItem()); return popup; } diff --git a/designer/src/com/fr/poly/PolyComponetsBar.java b/designer/src/com/fr/poly/PolyComponetsBar.java index 625978bcd3..5e584ca2f3 100644 --- a/designer/src/com/fr/poly/PolyComponetsBar.java +++ b/designer/src/com/fr/poly/PolyComponetsBar.java @@ -5,6 +5,7 @@ import com.fr.base.FRContext; import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartGetter; import com.fr.base.chart.BaseChartNameID; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.itooltip.MultiLineToolTip; @@ -53,7 +54,7 @@ public class PolyComponetsBar extends JToolBar { */ public void checkEnable() { for (SerIcon serIcon : serIcons) { - serIcon.setEnabled(!BaseUtils.isAuthorityEditing()); + serIcon.setEnabled(!DesignerMode.isAuthorityEditing()); } } diff --git a/designer/src/com/fr/poly/PolyDesigner.java b/designer/src/com/fr/poly/PolyDesigner.java index eefff3e1ec..c72dbb3c8e 100644 --- a/designer/src/com/fr/poly/PolyDesigner.java +++ b/designer/src/com/fr/poly/PolyDesigner.java @@ -3,10 +3,10 @@ */ package com.fr.poly; -import com.fr.base.BaseUtils; import com.fr.base.FRContext; import com.fr.base.GraphHelper; import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.common.inputevent.InputEventBaseOnOS; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; @@ -355,7 +355,7 @@ public class PolyDesigner extends ReportComponent { */ public void resetSelectionAndChooseState() { designer.setChooseType(SelectionType.INNER); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { JTemplate jTemplate = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); if (jTemplate.isJWorkBook()) { //清参数面板 diff --git a/designer/src/com/fr/poly/creator/ECBlockPane.java b/designer/src/com/fr/poly/creator/ECBlockPane.java index ebde8b3b4b..b0dae56734 100644 --- a/designer/src/com/fr/poly/creator/ECBlockPane.java +++ b/designer/src/com/fr/poly/creator/ECBlockPane.java @@ -3,7 +3,7 @@ */ package com.fr.poly.creator; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.edit.HyperlinkAction; import com.fr.design.menu.KeySetUtils; import com.fr.general.Inter; @@ -55,7 +55,7 @@ public class ECBlockPane extends PolyElementCasePane { if (!isEditable()) { return; } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { if (designer.getSelection().getEditingElementCasePane() == null) { EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION_DISABLED); EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(new NoSupportAuthorityEdit()); @@ -106,7 +106,7 @@ public class ECBlockPane extends PolyElementCasePane { * @return 返回MenuDef数组. */ public MenuDef[] menus4Target() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return super.menus4Target(); } return (MenuDef[]) ArrayUtils.addAll(super.menus4Target(), new MenuDef[]{createInsertMenuDef(), createCellMenuDef()}); diff --git a/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java b/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java index 84a626406b..193e20d055 100644 --- a/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java +++ b/designer/src/com/fr/poly/hanlder/BottomCornerMouseHanlder.java @@ -9,8 +9,8 @@ import java.awt.event.MouseEvent; import javax.swing.event.MouseInputAdapter; -import com.fr.base.BaseUtils; import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.design.beans.location.Absorptionline; import com.fr.design.beans.location.MoveUtils; import com.fr.design.beans.location.MoveUtils.RectangleDesigner; @@ -49,7 +49,7 @@ public class BottomCornerMouseHanlder extends MouseInputAdapter { * */ public void mousePressed(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { designer.noAuthorityEdit(); } pressed = e.getPoint(); @@ -66,7 +66,7 @@ public class BottomCornerMouseHanlder extends MouseInputAdapter { * */ public void mouseReleased(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { designer.noAuthorityEdit(); } editor.setDragging(false); @@ -92,7 +92,7 @@ public class BottomCornerMouseHanlder extends MouseInputAdapter { * */ public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { designer.noAuthorityEdit(); return; } diff --git a/designer/src/com/fr/poly/hanlder/ColumnOperationMouseHandler.java b/designer/src/com/fr/poly/hanlder/ColumnOperationMouseHandler.java index a03608499e..71e9ee4357 100644 --- a/designer/src/com/fr/poly/hanlder/ColumnOperationMouseHandler.java +++ b/designer/src/com/fr/poly/hanlder/ColumnOperationMouseHandler.java @@ -6,8 +6,8 @@ package com.fr.poly.hanlder; import java.awt.Point; import java.awt.event.MouseEvent; -import com.fr.base.BaseUtils; import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.general.ComparatorUtils; import com.fr.poly.PolyDesigner; import com.fr.poly.PolyDesigner.SelectionType; @@ -57,7 +57,7 @@ public abstract class ColumnOperationMouseHandler extends * */ public void mousePressed(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { designer.noAuthorityEdit(); } startPoint = e.getPoint(); @@ -74,7 +74,7 @@ public abstract class ColumnOperationMouseHandler extends * */ public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } TemplateBlock block = editor.getValue(); diff --git a/designer/src/com/fr/poly/hanlder/PolyDesignerDropTarget.java b/designer/src/com/fr/poly/hanlder/PolyDesignerDropTarget.java index 9cdda209c1..52263e60f0 100644 --- a/designer/src/com/fr/poly/hanlder/PolyDesignerDropTarget.java +++ b/designer/src/com/fr/poly/hanlder/PolyDesignerDropTarget.java @@ -15,10 +15,10 @@ import java.awt.dnd.DropTargetEvent; import javax.swing.JScrollBar; -import com.fr.base.BaseUtils; import com.fr.base.FRContext; import com.fr.base.ScreenResolution; import com.fr.base.chart.BaseChart; +import com.fr.base.vcs.DesignerMode; import com.fr.design.mainframe.DesignerContext; import com.fr.grid.Grid; import com.fr.poly.PolyDesigner; @@ -55,7 +55,7 @@ public class PolyDesignerDropTarget extends DropTargetAdapter { */ public void dragEnter(DropTargetDragEvent dtde) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } // richer:避免在一次拖拽过程中重复查找 diff --git a/designer/src/com/fr/poly/hanlder/RowOperationMouseHandler.java b/designer/src/com/fr/poly/hanlder/RowOperationMouseHandler.java index 770c103447..a29f2674eb 100644 --- a/designer/src/com/fr/poly/hanlder/RowOperationMouseHandler.java +++ b/designer/src/com/fr/poly/hanlder/RowOperationMouseHandler.java @@ -6,8 +6,8 @@ package com.fr.poly.hanlder; import java.awt.Point; import java.awt.event.MouseEvent; -import com.fr.base.BaseUtils; import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.general.ComparatorUtils; import com.fr.poly.PolyDesigner; import com.fr.poly.PolyDesigner.SelectionType; @@ -55,7 +55,7 @@ public abstract class RowOperationMouseHandler extends Bl * */ public void mousePressed(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { designer.noAuthorityEdit(); } startPoint = e.getPoint(); @@ -72,7 +72,7 @@ public abstract class RowOperationMouseHandler extends Bl * */ public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } TemplateBlock block = editor.getValue(); diff --git a/designer/src/com/fr/start/Designer.java b/designer/src/com/fr/start/Designer.java index 4d9154c097..8f47abaf41 100644 --- a/designer/src/com/fr/start/Designer.java +++ b/designer/src/com/fr/start/Designer.java @@ -123,7 +123,7 @@ public class Designer extends BaseDesigner { return menuDef; } - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut(SeparatorDef.DEFAULT); if (FRContext.getCurrentEnv().isRoot()) { @@ -320,7 +320,7 @@ public class Designer extends BaseDesigner { @Override public JComponent resetToolBar(JComponent toolbarComponent, ToolBarMenuDockPlus plus) { //如果是处于权限编辑状态 - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { if (plus instanceof JWorkBook && plus.toolbars4Target() == null) { //聚合块编辑 return super.polyToolBar(Inter.getLocText(new String[]{"Polybolck", "DashBoard-Potence", "Edit"})); diff --git a/designer_base/src/com/fr/design/DesignState.java b/designer_base/src/com/fr/design/DesignState.java index 0a74f52e2f..eadd90bebe 100644 --- a/designer_base/src/com/fr/design/DesignState.java +++ b/designer_base/src/com/fr/design/DesignState.java @@ -1,8 +1,8 @@ package com.fr.design; -import com.fr.base.BaseUtils; import com.fr.base.Env; import com.fr.base.FRContext; +import com.fr.base.vcs.DesignerMode; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.env.RemoteEnv; @@ -46,7 +46,7 @@ public class DesignState { designState += REMOTE; } isRoot = env != null && env.isRoot(); - isAuthority = BaseUtils.isAuthorityEditing(); + isAuthority = DesignerMode.isAuthorityEditing(); } public int getDesignState() { diff --git a/designer_base/src/com/fr/design/actions/AllowAuthorityEditAction.java b/designer_base/src/com/fr/design/actions/AllowAuthorityEditAction.java index 4d73692054..4ad897815e 100644 --- a/designer_base/src/com/fr/design/actions/AllowAuthorityEditAction.java +++ b/designer_base/src/com/fr/design/actions/AllowAuthorityEditAction.java @@ -1 +1 @@ -package com.fr.design.actions; import com.fr.base.BaseUtils; import com.fr.design.constants.UIConstants; import com.fr.design.menu.KeySetUtils; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.design.designer.TargetComponent; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.mainframe.*; /** * Author : daisy * Date: 13-8-30 * Time: 上午10:12 */ public class AllowAuthorityEditAction extends TemplateComponentAction { public AllowAuthorityEditAction(TargetComponent t) { super(t); this.setMenuKeySet(KeySetUtils.ALLOW_AUTHORITY_EDIT); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/allow_authority_edit.png")); } /** * 撤销 */ public void prepare4Undo() { HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().iniAuthorityUndoState(); } /** * 执行动作 * * @return 是否执行成功 */ public boolean executeActionReturnUndoRecordNeeded() { TargetComponent tc = getEditingComponent(); if (tc == null) { return false; } cleanAuthorityCondition(); //进入时是格式刷则取消格式刷 if (DesignerContext.getFormatState() != DesignerContext.FORMAT_STATE_NULL) { tc.cancelFormat(); } BaseUtils.setAuthorityEditing(true); ReportAndFSManagePane.getInstance().refreshDockingView(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); WestRegionContainerPane.getInstance().replaceDownPane(ReportAndFSManagePane.getInstance()); DesignerContext.getDesignerFrame().setCloseMode(UIConstants.CLOSE_OF_AUTHORITY); DesignerContext.getDesignerFrame().resetToolkitByPlus(tc.getToolBarMenuDockPlus()); DesignerContext.getDesignerFrame().needToAddAuhtorityPaint(); EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION); EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(tc.getEastUpPane()); DesignerContext.getDesignerFrame().refreshDottedLine(); EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance()); EastRegionContainerPane.getInstance().removeParameterPane(); //画虚线 return true; } /** * 进入权限编辑之前将权限编辑界面重置一下工具栏 */ private void cleanAuthorityCondition() { java.util.List> opendedTemplate = HistoryTemplateListPane.getInstance().getHistoryList(); for (int i = 0; i < opendedTemplate.size(); i++) { opendedTemplate.get(i).cleanAuthorityUndo(); } } } \ No newline at end of file +package com.fr.design.actions; import com.fr.base.BaseUtils; import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.menu.KeySetUtils; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.design.designer.TargetComponent; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.mainframe.*; /** * Author : daisy * Date: 13-8-30 * Time: 上午10:12 */ public class AllowAuthorityEditAction extends TemplateComponentAction { public AllowAuthorityEditAction(TargetComponent t) { super(t); this.setMenuKeySet(KeySetUtils.ALLOW_AUTHORITY_EDIT); this.setName(getMenuKeySet().getMenuName()); this.setMnemonic(getMenuKeySet().getMnemonic()); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/allow_authority_edit.png")); } /** * 撤销 */ public void prepare4Undo() { HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().iniAuthorityUndoState(); } /** * 执行动作 * * @return 是否执行成功 */ public boolean executeActionReturnUndoRecordNeeded() { TargetComponent tc = getEditingComponent(); if (tc == null) { return false; } cleanAuthorityCondition(); //进入时是格式刷则取消格式刷 if (DesignerContext.getFormatState() != DesignerContext.FORMAT_STATE_NULL) { tc.cancelFormat(); } DesignerMode.setMode(DesignerMode.AUTHORITY); ReportAndFSManagePane.getInstance().refreshDockingView(); RolesAlreadyEditedPane.getInstance().refreshDockingView(); WestRegionContainerPane.getInstance().replaceDownPane(ReportAndFSManagePane.getInstance()); DesignerContext.getDesignerFrame().setCloseMode(UIConstants.CLOSE_OF_AUTHORITY); DesignerContext.getDesignerFrame().resetToolkitByPlus(tc.getToolBarMenuDockPlus()); DesignerContext.getDesignerFrame().needToAddAuhtorityPaint(); EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION); EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(tc.getEastUpPane()); DesignerContext.getDesignerFrame().refreshDottedLine(); EastRegionContainerPane.getInstance().replaceConfiguredRolesPane(RolesAlreadyEditedPane.getInstance()); EastRegionContainerPane.getInstance().removeParameterPane(); //画虚线 return true; } /** * 进入权限编辑之前将权限编辑界面重置一下工具栏 */ private void cleanAuthorityCondition() { java.util.List> opendedTemplate = HistoryTemplateListPane.getInstance().getHistoryList(); for (int i = 0; i < opendedTemplate.size(); i++) { opendedTemplate.get(i).cleanAuthorityUndo(); } } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/actions/ExitAuthorityEditAction.java b/designer_base/src/com/fr/design/actions/ExitAuthorityEditAction.java index a470673a0b..7b79be2822 100644 --- a/designer_base/src/com/fr/design/actions/ExitAuthorityEditAction.java +++ b/designer_base/src/com/fr/design/actions/ExitAuthorityEditAction.java @@ -1,6 +1,7 @@ package com.fr.design.actions; import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.DesignModelAdapter; import com.fr.design.designer.TargetComponent; @@ -33,8 +34,8 @@ public class ExitAuthorityEditAction extends TemplateComponentAction { return false; } - if (BaseUtils.isAuthorityEditing()) { - BaseUtils.setAuthorityEditing(false); + if (DesignerMode.isAuthorityEditing()) { + DesignerMode.setMode(DesignerMode.NORMARL); WestRegionContainerPane.getInstance().replaceDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshEastPropertiesPane(); DesignerContext.getDesignerFrame().resetToolkitByPlus(tc.getToolBarMenuDockPlus()); diff --git a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java index e25297b110..459b001d55 100644 --- a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java @@ -693,7 +693,7 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M openedTemplate.get(selectedIndex).stopEditing(); selectedIndex = getTemplateIndex(evtX); //如果在权限编辑情况下,不允许切换到表单类型的工作簿 - if (BaseUtils.isAuthorityEditing() && !openedTemplate.get(selectedIndex).isJWorkBook()) { + if (DesignerMode.isAuthorityEditing() && !openedTemplate.get(selectedIndex).isJWorkBook()) { DesignerContext.getDesignerFrame().addAndActivateJTemplate(openedTemplate.get(tempSelectedIndex)); JOptionPane.showMessageDialog(this, Inter.getLocText("FR-Designer_Form-AuthorityEdited_Cannot_be_Supported") + "!", Inter.getLocText("FR-Designer_Alert"), JOptionPane.WARNING_MESSAGE); diff --git a/designer_base/src/com/fr/design/file/NewTemplatePane.java b/designer_base/src/com/fr/design/file/NewTemplatePane.java index 1cfea84999..9bca4f0b4a 100644 --- a/designer_base/src/com/fr/design/file/NewTemplatePane.java +++ b/designer_base/src/com/fr/design/file/NewTemplatePane.java @@ -148,7 +148,7 @@ public abstract class NewTemplatePane extends JComponent implements MouseListene } private boolean needGrayNewCpt() { - return BaseUtils.isAuthorityEditing() || DesignerMode.isVcsMode(); + return DesignerMode.isAuthorityEditing() || DesignerMode.isVcsMode(); } diff --git a/designer_base/src/com/fr/design/gui/ibutton/UISliderButtonUI.java b/designer_base/src/com/fr/design/gui/ibutton/UISliderButtonUI.java index be6f570aca..b61cd5a2c6 100644 --- a/designer_base/src/com/fr/design/gui/ibutton/UISliderButtonUI.java +++ b/designer_base/src/com/fr/design/gui/ibutton/UISliderButtonUI.java @@ -12,7 +12,7 @@ import javax.swing.plaf.basic.BasicButtonUI; import javax.swing.plaf.basic.BasicHTML; import javax.swing.text.View; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.roleAuthority.ReportAndFSManagePane; import com.fr.stable.Constants; @@ -174,7 +174,7 @@ public class UISliderButtonUI extends BasicButtonUI { private void fillNormal(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted) { GradientPaint gp; - if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.AUTHORITY_DARK_BLUE); } else if (isPressedPainted) { gp = new GradientPaint(1, 1, UIConstants.SELECT_TAB, 1, height - 1, UIConstants.SELECT_TAB); @@ -187,7 +187,7 @@ public class UISliderButtonUI extends BasicButtonUI { private void fillRollOver(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted) { GradientPaint gp; - if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.HOVER_BLUE); } else if (isPressedPainted) { gp = new GradientPaint(1, 1, UIConstants.POP_DIALOG_BORDER, 1, height - 1, UIConstants.POP_DIALOG_BORDER); @@ -199,7 +199,7 @@ public class UISliderButtonUI extends BasicButtonUI { private void fillPressed(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited) { Color oldColor = g2d.getColor(); - if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { g2d.setColor(UIConstants.AUTHORITY_PRESS_BLUE); } else { g2d.setColor(UIConstants.POP_DIALOG_BORDER); diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIEastResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIEastResizableContainer.java index 81b291f41d..e84e4f7a23 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIEastResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIEastResizableContainer.java @@ -1,11 +1,10 @@ package com.fr.design.gui.icontainer; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.mainframe.DesignerContext; import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.stable.Constants; import javax.swing.*; import java.awt.*; @@ -281,7 +280,7 @@ public class UIEastResizableContainer extends JPanel { } onResize(); refreshContainer(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { DesignerContext.getDesignerFrame().doResize(); } } diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIModeControlContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIModeControlContainer.java index fad42d9754..709b3cbecb 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIModeControlContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIModeControlContainer.java @@ -1,6 +1,6 @@ package com.fr.design.gui.icontainer; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; @@ -72,7 +72,7 @@ public class UIModeControlContainer extends JLayeredPane { public void needToShowCoverAndHidPane() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { this.remove(coverPane); this.remove(hidePane); } else { @@ -115,7 +115,7 @@ public class UIModeControlContainer extends JLayeredPane { if (isHideMode || !upEditMode) { return; } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } setCursor(Cursor.getPredefinedCursor(Cursor.N_RESIZE_CURSOR)); @@ -142,7 +142,7 @@ public class UIModeControlContainer extends JLayeredPane { @Override public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } boolean notUpEditMode = isHideMode || !upEditMode; @@ -183,7 +183,7 @@ public class UIModeControlContainer extends JLayeredPane { setUpPaneHeight(0); } - if (BaseUtils.isAuthorityEditing() && isSheeetCovered) { + if (DesignerMode.isAuthorityEditing() && isSheeetCovered) { sheetInvisibleCoverPane.setBounds(0, toolPaneY + toolPaneHeight + UIConstants.SIZE, getWidth(), getHeight() - toolPaneY - toolPaneHeight - sheetCorverGap); UIModeControlContainer.this.add(sheetInvisibleCoverPane); UIModeControlContainer.this.setLayer(sheetInvisibleCoverPane, 2); diff --git a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java index 5f28fadde0..97855bff4d 100644 --- a/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java +++ b/designer_base/src/com/fr/design/gui/icontainer/UIResizableContainer.java @@ -1,11 +1,10 @@ package com.fr.design.gui.icontainer; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.mainframe.DesignerContext; import com.fr.stable.Constants; import com.fr.design.utils.gui.GUICoreUtils; -import com.fr.stable.collections.utils.MathUtils; import javax.swing.*; import java.awt.*; @@ -443,7 +442,7 @@ public class UIResizableContainer extends JPanel { containerWidth = toolPaneHeight; } refreshContainer(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { DesignerContext.getDesignerFrame().doResize(); } @@ -476,7 +475,7 @@ public class UIResizableContainer extends JPanel { containerWidth = toolPaneHeight; } refreshContainer(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { DesignerContext.getDesignerFrame().doResize(); } } diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index 28e4e03446..14957d1775 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -6,6 +6,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.base.Env; import com.fr.base.FRContext; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; @@ -185,8 +186,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta } public void mouseReleased(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { - BaseUtils.setAuthorityEditing(false); + if (DesignerMode.isAuthorityEditing()) { + DesignerMode.setMode(DesignerMode.NORMARL); WestRegionContainerPane.getInstance().replaceDownPane( TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshEastPropertiesPane(); @@ -262,7 +263,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta this.addComponentListener(new ComponentAdapter() { public void componentResized(ComponentEvent e) { reCalculateFrameSize(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { doResize(); } } @@ -456,7 +457,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta * 刷新 */ public void refreshDottedLine() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { populateAuthorityArea(); populateCloseButton(); addDottedLine(); @@ -515,7 +516,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta for (int i = 0; i < fixButtons.length; i++) { combineUp.add(fixButtons[i]); } - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { combineUp.addSeparator(new Dimension(2, 16)); if (toolbar4Form != null) { for (int i = 0; i < toolbar4Form.length; i++) { @@ -626,13 +627,13 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta */ public void needToAddAuhtorityPaint() { - newWorkBookPane.setButtonGray(BaseUtils.isAuthorityEditing()); + newWorkBookPane.setButtonGray(DesignerMode.isAuthorityEditing()); // 进入或退出权限编辑模式,通知插件 Set extraShortCuts = ExtraDesignClassManager.getInstance().getExtraShortCuts(); for (ShortCut shortCut : extraShortCuts) { if (shortCut instanceof AbstractTemplateTreeShortCutProvider) { - ((AbstractTemplateTreeShortCutProvider) shortCut).notifyFromAuhtorityChange(BaseUtils.isAuthorityEditing()); + ((AbstractTemplateTreeShortCutProvider) shortCut).notifyFromAuhtorityChange(DesignerMode.isAuthorityEditing()); } } diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java index c8a4b231de..77423aa7f3 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrameFileDealerPane.java @@ -2,6 +2,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; import com.fr.base.FRContext; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; @@ -119,7 +120,7 @@ public class DesignerFrameFileDealerPane extends JPanel implements FileToolbarSt HistoryTemplateListPane.getInstance().setCurrentEditingTemplate(jt); //处理自动新建的模板 MutilTempalteTabPane.getInstance().doWithtemTemplate(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { RolesAlreadyEditedPane.getInstance().refreshDockingView(); } diff --git a/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java b/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java index 0c9d536d99..357bab937f 100644 --- a/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignerEnvManager; import com.fr.design.constants.UIConstants; import com.fr.design.gui.ibutton.UIButton; @@ -436,7 +437,7 @@ public class EastRegionContainerPane extends UIEastResizableContainer { // 无可用 tab 时,显示提示文字 if (!hasAvailableTab) { resetPropertyIcons(); - if (!hasEnabledTab && BaseUtils.isAuthorityEditing()) { + if (!hasEnabledTab && DesignerMode.isAuthorityEditing()) { propertyCard.show(rightPane, DEFAULT_AUTHORITY_PANE); } else { propertyCard.show(rightPane, DEFAULT_PANE); diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 76c1bb8aa9..e0389eb881 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -281,7 +281,7 @@ public abstract class JTemplate> ex * @return 是则返回true */ public boolean isSaved() { - return BaseUtils.isAuthorityEditing() ? this.authoritySaved : this.saved; + return DesignerMode.isAuthorityEditing() ? this.authoritySaved : this.saved; } /** @@ -304,7 +304,7 @@ public abstract class JTemplate> ex } public void setSaved(boolean isSaved) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { authoritySaved = isSaved; } else { saved = isSaved; @@ -315,7 +315,7 @@ public abstract class JTemplate> ex * @return */ public UndoManager getUndoManager() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { if (this.authorityUndoManager == null) { this.authorityUndoManager = new UndoManager(); int limit = DesignerEnvManager.getEnvManager().getUndoLimit(); @@ -389,7 +389,7 @@ public abstract class JTemplate> ex return; } //如果是在不同的模式下产生的 - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { this.getUndoManager().addEdit(new UndoStateEdit(authorityUndoState, newState)); authorityUndoState = newState; } else { @@ -418,7 +418,7 @@ public abstract class JTemplate> ex } private void fireSuperTargetModified() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { this.authoritySaved = false; } else { this.saved = false; @@ -621,7 +621,7 @@ public abstract class JTemplate> ex return false; } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { //触发保存服务器工具栏 try { FRContext.getCurrentEnv().writeResource(ConfigManager.getProviderInstance()); @@ -687,7 +687,7 @@ public abstract class JTemplate> ex public ShortCut[] shortcut4FileMenu() { if (DesignerMode.isVcsMode()) { return VcsScene.shortcut4FileMenu(this); - } else if (BaseUtils.isAuthorityEditing()) { + } else if (DesignerMode.isAuthorityEditing()) { return new ShortCut[]{new SaveTemplateAction(this), new UndoAction(this), new RedoAction(this)}; } else { return new ShortCut[]{new SaveTemplateAction(this), new SaveAsTemplateAction(this), new UndoAction(this), new RedoAction(this)}; @@ -703,7 +703,7 @@ public abstract class JTemplate> ex public MenuDef[] menus4Target() { MenuDef tplMenu = new MenuDef(Inter.getLocText("FR-Designer_M-Template"), 'T'); tplMenu.setAnchor(MenuHandler.TEMPLATE); - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { tplMenu.addShortCut(new NameSeparator(Inter.getLocText("FR-Designer_WorkBook"))); tplMenu.addShortCut(new TableDataSourceAction(this)); tplMenu.addShortCut(shortcut4TemplateMenu()); diff --git a/designer_base/src/com/fr/design/mainframe/UndoStateEdit.java b/designer_base/src/com/fr/design/mainframe/UndoStateEdit.java index 3fc8f0436f..3a717fe363 100644 --- a/designer_base/src/com/fr/design/mainframe/UndoStateEdit.java +++ b/designer_base/src/com/fr/design/mainframe/UndoStateEdit.java @@ -1,7 +1,7 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.roleAuthority.RolesAlreadyEditedPane; import com.fr.general.Inter; @@ -52,7 +52,7 @@ public class UndoStateEdit extends AbstractUndoableEdit { if (this.old != null) { this.old.applyState(); } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { RolesAlreadyEditedPane.getInstance().refreshDockingView(); } } @@ -67,7 +67,7 @@ public class UndoStateEdit extends AbstractUndoableEdit { if (this.cur != null) { this.cur.applyState(); } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { RolesAlreadyEditedPane.getInstance().refreshDockingView(); } } diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 37eded3911..f28caf8ccf 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -3,7 +3,6 @@ */ package com.fr.design.mainframe.toolbar; -import com.fr.base.BaseUtils; import com.fr.base.FRContext; import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; @@ -336,7 +335,7 @@ public abstract class ToolBarMenuDock { } MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_File"), 'F'); ShortCut[] scs = new ShortCut[0]; - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { scs = createNewFileShortCuts(); } if (!ArrayUtils.isEmpty(scs)) { @@ -367,13 +366,13 @@ public abstract class ToolBarMenuDock { } protected void addCloseCurrentTemplateAction(MenuDef menuDef) { - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut(new CloseCurrentTemplateAction()); } } protected void addPreferenceAction(MenuDef menuDef) { - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut(new PreferenceAction()); } } @@ -409,7 +408,7 @@ public abstract class ToolBarMenuDock { protected MenuDef createServerMenuDef(ToolBarMenuDockPlus plus) { MenuDef menuDef = new MenuDef(Inter.getLocText("FR-Designer_M-Server"), 'S'); - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut( new ConnectionListAction(), createGlobalTDAction() @@ -421,7 +420,7 @@ public abstract class ToolBarMenuDock { new PlatformManagerAction() ); - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { if (shouldShowPlugin()) { menuDef.addShortCut( new PluginManagerAction() diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java b/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java index 1e7d9e88b3..b60de389ea 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/VcsScene.java @@ -1,6 +1,6 @@ package com.fr.design.mainframe.toolbar; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.edit.RedoAction; import com.fr.design.actions.edit.UndoAction; import com.fr.design.actions.file.ExitDesignerAction; @@ -32,7 +32,7 @@ public class VcsScene { menuDef.addShortCut(SeparatorDef.DEFAULT); } - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { menuDef.addShortCut(new PreferenceAction()); } diff --git a/designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java b/designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java index 8b406de1d2..94256af272 100644 --- a/designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java +++ b/designer_base/src/com/fr/design/roleAuthority/ReportAndFSManagePane.java @@ -1,6 +1,7 @@ package com.fr.design.roleAuthority; import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.UpdateAction; import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; @@ -265,7 +266,7 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo DesignTableDataManager.addDsChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { roleTree.refreshTreeNode(); expandTree(roleTree, true); roleTree.updateUI(); diff --git a/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java b/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java index fcff66e07f..e02d2dd0e1 100644 --- a/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java +++ b/designer_base/src/com/fr/design/utils/gui/GUIPaintUtils.java @@ -1,6 +1,6 @@ package com.fr.design.utils.gui; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.stable.Constants; @@ -17,7 +17,7 @@ public class GUIPaintUtils { public static final void drawBorder(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited) { Color oldColor = g2d.getColor(); Shape oldClip = g2d.getClip(); - if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { g2d.setColor(UIConstants.AUTHORITY_LINE_COLOR); } else { g2d.setColor(UIConstants.POP_DIALOG_BORDER); @@ -67,7 +67,7 @@ public class GUIPaintUtils { public static final void fillNormal(Graphics2D g2d, int x, int y, int width, int height, boolean isRound, int rectDirection, boolean isAuthorityEdited, boolean isPressedPainted, Color color) { GradientPaint gp; - if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.AUTHORITY_DARK_BLUE); } else if (isPressedPainted) { gp = new GradientPaint(1, 1, color, 1, height - 1, color); @@ -99,7 +99,7 @@ public class GUIPaintUtils { GradientPaint gp; if (hoverColor != null) { gp = new GradientPaint(1, 1, hoverColor, 1, height - 1, hoverColor); - } else if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + } else if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { gp = new GradientPaint(1, 1, UIConstants.AUTHORITY_BLUE, 1, height - 1, UIConstants.HOVER_BLUE); } else if (isPressedPainted) { gp = new GradientPaint(1, 1, UIConstants.ATTRIBUTE_HOVER, 1, height - 1, UIConstants.ATTRIBUTE_HOVER); @@ -129,7 +129,7 @@ public class GUIPaintUtils { Color oldColor = g2d.getColor(); if (pressedColor != null) { g2d.setColor(pressedColor); - } else if (BaseUtils.isAuthorityEditing() && isAuthorityEdited) { + } else if (DesignerMode.isAuthorityEditing() && isAuthorityEdited) { g2d.setColor(UIConstants.AUTHORITY_PRESS_BLUE); } else { g2d.setColor(UIConstants.ATTRIBUTE_PRESS); diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index d934ecf57f..a5461b3574 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -3,7 +3,7 @@ */ package com.fr.design.designer.creator; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -279,7 +279,7 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo */ @Override public JComponent createToolPane(BaseJForm jform, FormDesigner formEditor) { - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { if (isDedicateContainer()) { // 图表块和报表块由于控件树处不显示,但对应的属性表要显示,此处处理下 XCreator child = ((XLayoutContainer) this).getXCreator(0); diff --git a/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java b/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java index 0b39f987d2..f4339c4eb9 100644 --- a/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java +++ b/designer_form/src/com/fr/design/form/parameter/FormParaDesigner.java @@ -13,7 +13,6 @@ import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; -import javax.swing.Action; import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JPanel; @@ -21,6 +20,7 @@ import javax.swing.JPanel; import com.fr.base.BaseUtils; import com.fr.base.Parameter; import com.fr.base.parameter.ParameterUI; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignModelAdapter; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.beans.actions.CopyAction; @@ -107,7 +107,7 @@ public class FormParaDesigner extends FormDesigner implements ParameterDesignerP EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.REPORT_PARA); EastRegionContainerPane.getInstance().replaceWidgetLibPane( FormWidgetDetailPane.getInstance(this)); - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { ParameterPropertyPane parameterPropertyPane = ParameterPropertyPane.getInstance(this); parameterPropertyPane.refreshState(); EastRegionContainerPane.getInstance().addParameterPane(parameterPropertyPane); diff --git a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java index 5f45afa501..4738b565d8 100644 --- a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java +++ b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.events.DesignerEditor; @@ -145,7 +146,7 @@ public class EditingMouseListener extends MouseInputAdapter { if (e.getButton() == MouseEvent.BUTTON1) { Direction dir = selectionModel.getDirectionAt(e); - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { stateModel.setDirection(dir); } @@ -284,7 +285,7 @@ public class EditingMouseListener extends MouseInputAdapter { if (designer.isDrawLineMode() && stateModel.getDirection() == Location.outer) { designer.updateDrawLineMode(e); } - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { stateModel.setDirection(dir); } @@ -412,7 +413,7 @@ public class EditingMouseListener extends MouseInputAdapter { * @param e 鼠标事件 */ public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } // 如果当前是左键拖拽状态,拖拽组件 diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index 41ff874712..f0d5803b89 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -1,8 +1,8 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.base.Parameter; import com.fr.base.ScreenResolution; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.TargetComponent; @@ -1035,7 +1035,7 @@ public class FormDesigner extends TargetComponent
implements TreeSelection selected.add((XCreator) path.getLastPathComponent()); } - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { selectionModel.setSelectedCreators(selected); if (formArea != null) { @@ -1433,7 +1433,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection @Override public void fireCreatorModified(DesignerEvent evt) { - if (!BaseUtils.isAuthorityEditing()) { + if (!DesignerMode.isAuthorityEditing()) { return; } if (evt.getCreatorEventID() == DesignerEvent.CREATOR_EDITED @@ -1445,7 +1445,7 @@ public class FormDesigner extends TargetComponent implements TreeSelection if (paths == null) { return; } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { showAuthorityEditPane(); } diff --git a/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java b/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java index 8a40928c36..0df15215a6 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesignerUI.java @@ -7,17 +7,16 @@ import java.awt.Graphics2D; import java.awt.Rectangle; import java.awt.geom.Area; import java.awt.geom.Rectangle2D; -import java.awt.image.BufferedImage; import java.util.ArrayList; import javax.swing.JComponent; import javax.swing.SwingUtilities; import javax.swing.plaf.ComponentUI; -import com.fr.base.BaseUtils; import com.fr.base.GraphHelper; import com.fr.base.ScreenResolution; import com.fr.base.Utils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.constants.UIConstants; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -33,7 +32,6 @@ import com.fr.design.utils.ComponentUtils; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; -import com.fr.stable.CoreGraphHelper; /** * FormDesigner的UI类,是一个有状态的UI类,它根据FormDesigner的当前状态画出 @@ -85,7 +83,7 @@ public class FormDesignerUI extends ComponentUI { paintSelection(g); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { paintAuthorityDetails(g, designer.getRootComponent()); } diff --git a/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java index a9651c7fa8..6ea8962ef5 100644 --- a/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java @@ -1,6 +1,6 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.core.WidgetOption; @@ -102,7 +102,7 @@ public class FormToolBarButton extends JButton implements MouseListener { //该button只在报表块工具栏中使用, //parent只有FormToolBarPane一种,故可以直接强转 final FormToolBarPane toolBarPane = (FormToolBarPane) this.getParent(); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { auhtorityMouseAction(); return; } diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index f4d5a30b8f..6e3618dad4 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -330,7 +330,7 @@ public class JForm extends JTemplate implements BaseJForm { ParameterPropertyPane.getInstance().setAddParaPaneVisible(isAddParaPaneVisible(comp), this); editingComponent = comp.createToolPane(this, formDesign); EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.FORM); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { EastRegionContainerPane.getInstance().replaceWidgetSettingsPane( ComparatorUtils.equals(editingComponent.getClass(), NoSupportAuthorityEdit.class) ? editingComponent : createAuthorityEditPane()); } else { @@ -568,7 +568,7 @@ public class JForm extends JTemplate implements BaseJForm { throw new RuntimeException(e); } - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { this.authorityUndoState = u; } else { this.undoState = u; @@ -644,7 +644,7 @@ public class JForm extends JTemplate implements BaseJForm { public JPanel getEastUpPane() { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { if (formDesign.isSupportAuthority()) { return new AuthorityPropertyPane(this); } else { @@ -703,7 +703,7 @@ public class JForm extends JTemplate implements BaseJForm { DesignerContext.getDesignerFrame().resetToolkitByPlus(JForm.this); //表单切换后拖不进去组件是因为找不到designer WidgetToolBarPane.getInstance(formDesign); - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { if (formDesign.isSupportAuthority()) { EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.AUTHORITY_EDITION); EastRegionContainerPane.getInstance().replaceAuthorityEditionPane(new AuthorityPropertyPane(this)); diff --git a/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java b/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java index 1c0e8603fa..4379d517b3 100644 --- a/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java +++ b/designer_form/src/com/fr/design/mainframe/ShareWidgetButton.java @@ -1,6 +1,6 @@ package com.fr.design.mainframe; -import com.fr.base.*; +import com.fr.base.vcs.DesignerMode; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.gui.ilable.UILabel; @@ -178,7 +178,7 @@ public class ShareWidgetButton extends JPanel implements MouseListener, MouseMot @Override public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } if (lastPressEvent == null) { diff --git a/designer_form/src/com/fr/design/mainframe/ToolBarButton.java b/designer_form/src/com/fr/design/mainframe/ToolBarButton.java index 770bfecb33..3dd88ab532 100644 --- a/designer_form/src/com/fr/design/mainframe/ToolBarButton.java +++ b/designer_form/src/com/fr/design/mainframe/ToolBarButton.java @@ -1,6 +1,6 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.core.WidgetOption; import com.fr.design.designer.creator.XCreatorUtils; @@ -70,7 +70,7 @@ public class ToolBarButton extends UIButton implements MouseListener, MouseMotio @Override public void mouseDragged(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } if (lastPressEvent == null) { diff --git a/designer_form/src/com/fr/design/mainframe/WidgetToolBarPane.java b/designer_form/src/com/fr/design/mainframe/WidgetToolBarPane.java index e627de1397..3895755b09 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetToolBarPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetToolBarPane.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.vcs.DesignerMode; import com.fr.design.bridge.DesignToolbarProvider; import com.fr.design.dialog.BasicPane; import com.fr.design.gui.core.FormWidgetOption; @@ -110,7 +111,7 @@ public class WidgetToolBarPane extends BasicPane implements DesignToolbarProvide private void checkEnable() { for (JComponent comp : componentsList4Form) { - comp.setEnabled(!BaseUtils.isAuthorityEditing()); + comp.setEnabled(!DesignerMode.isAuthorityEditing()); } } @@ -137,7 +138,7 @@ public class WidgetToolBarPane extends BasicPane implements DesignToolbarProvide chartButton.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { - if (BaseUtils.isAuthorityEditing()) { + if (DesignerMode.isAuthorityEditing()) { return; } if (chartWindow == null) { From 48502c2ab1cb385a49e855d74c651d71877d65f2 Mon Sep 17 00:00:00 2001 From: zack Date: Tue, 27 Feb 2018 17:43:04 +0800 Subject: [PATCH 57/75] =?UTF-8?q?RREPORT-6974=20=E5=90=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 31 +++------- .../design/locale/designer_en_US.properties | 31 +++------- .../design/locale/designer_ja_JP.properties | 28 +++------ .../design/locale/designer_ko_KR.properties | 31 +++------- .../design/locale/designer_zh_CN.properties | 35 +++--------- .../design/locale/designer_zh_TW.properties | 35 +++--------- .../fr/design/designer/creator/XCreator.java | 10 ---- .../src/com/fr/design/mainframe/JForm.java | 57 +++++++------------ 8 files changed, 68 insertions(+), 190 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 76e68d31f4..f5aea0212b 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2160,28 +2160,11 @@ FR-Designer_Move_Down=Move down(B) FR-Designer_Move_To_Top=Move to top(T) FR-Designer_Move_To_Bottom=Move to bottom(K) FR-Designer_Tab_Style_Template=Style Template -FR-Designer_Tab_Template_One=Template One -FR-Designer_Tab_Template_Two=Template Two -FR-Designer_Tab_Template_Three=Template Three -FR-Designer_Tab_Template_Four=Template Four -FR-Designer_Tab_Template_Five=Template Five -FR-Designer_Tab_Template_Six=Template Six +FR-Designer_Tab_Banner_Style=Banner Style +FR-Designer_Tab_BookMark_Style=BookMark Style +FR-Designer_Tab_Card_Style=Card Style +FR-Designer_Tab_Menu_Style=Menu Style +FR-Designer_Tab_Pentagon_Style=Pentagon Style +FR-Designer_Tab_Trapezoid_Style=Trapezoid Style FR-Designer_Tab_Display_Position=Display Position -FR-Designer_Set_Mobile_Only_Template=Set as mobile only template -FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size -FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match -FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable -FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit -FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in -FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out -FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" -FR-Designer_Template_Settings=Template Settings -FR-Designer_Form_Widget_Rename_Failure=There are the same components, please set the other name -FR-Designer_Joption_News=news -FR-Designer_Zoom_In_Logic=zoom in logic -FR-Designer_Zoom_Out_Logic=zoom out logic -FR-Designer_Chart_Adaptivity=chart adaptivity -FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, the chart does not support the setting of self-adaptive -FR-Designer_Official_Website=Official Website: -FR-Designer_Support_Email=Email: -FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive +FR-Designer_Background_Select=Select Background diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 3b825643dc..5f4e32a5ab 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2159,28 +2159,11 @@ FR-Designer_Move_Down=Move down(B) FR-Designer_Move_To_Top=Move to top(T) FR-Designer_Move_To_Bottom=Move to bottom(K) FR-Designer_Tab_Style_Template=Style Template -FR-Designer_Tab_Template_One=Template One -FR-Designer_Tab_Template_Two=Template Two -FR-Designer_Tab_Template_Three=Template Three -FR-Designer_Tab_Template_Four=Template Four -FR-Designer_Tab_Template_Five=Template Five -FR-Designer_Tab_Template_Six=Template Six +FR-Designer_Tab_Banner_Style=Banner Style +FR-Designer_Tab_BookMark_Style=BookMark Style +FR-Designer_Tab_Card_Style=Card Style +FR-Designer_Tab_Menu_Style=Menu Style +FR-Designer_Tab_Pentagon_Style=Pentagon Style +FR-Designer_Tab_Trapezoid_Style=Trapezoid Style FR-Designer_Tab_Display_Position=Display Position -FR-Designer_Set_Mobile_Only_Template=Set as mobile only template -FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size -FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match -FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable -FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit -FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in -FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out -FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" -FR-Designer_Template_Settings=Template Settings -FR-Designer_Form_Widget_Rename_Failure=There are the same components, please set the other name -FR-Designer_Joption_News=news -FR-Designer_Zoom_In_Logic=zoom in logic -FR-Designer_Zoom_Out_Logic=zoom out logic -FR-Designer_Chart_Adaptivity=chart adaptivity -FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, the chart does not support the setting of self-adaptive -FR-Designer_Official_Website=Official Website: -FR-Designer_Support_Email=Email: -FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive +FR-Designer_Background_Select=Select Background diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 8151fed1e1..c776cd0b10 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2160,25 +2160,11 @@ FR-Designer_Preference_CachingTemplate=\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u30E FR-Designer_Preference_MaxCachingTemplate=\u8BBE\u8BA1\u5668\u6700\u5927\u30AD\u30E3\u30C3\u30B7\u30E5\u30C6\u30F3\u30D7\u30EC\u30FC\u30C8\u306E\u6570\uFF1A FR-Designer_Preference_CachingTemplateTip=\u8A2D\u7F6E\u30920\u8868\u793A\u6A5F\u80FD\u8BBE\u8BA1\u5668\u9589\u9396;\u518D\u958B\u5F8C\u767A\u52B9\u3059\u308B FR-Designer_Tab_Style_Template= -FR-Designer_Tab_Template_One= -FR-Designer_Tab_Template_Two= -FR-Designer_Tab_Template_Three= -FR-Designer_Tab_Template_Four= -FR-Designer_Tab_Template_Five= -FR-Designer_Tab_Template_Six= +FR-Designer_Tab_Banner_Style= +FR-Designer_Tab_BookMark_Style= +FR-Designer_Tab_Card_Style= +FR-Designer_Tab_Menu_Style= +FR-Designer_Tab_Pentagon_Style= +FR-Designer_Tab_Trapezoid_Style= FR-Designer_Tab_Display_Position= -FR-Designer_Set_Mobile_Only_Template= -FR-Designer_Set_Mobile_Canvas_Size= -FR-Designer_Mobile_Screen_Zoom_In= -FR-Designer_Mobile_Screen_Zoom_Out= -FR-Designer_Adaptive_Property_Auto_Match_Desc= -FR-Designer_Template_Settings= -FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u30EA\u30CD\u30FC\u30E0\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u3001\u4ED6\u306E\u540D\u79F0\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 -FR-Designer_Joption_News=\u30CB\u30E5\u30FC\u30B9 -FR-Designer_Zoom_In_Logic= -FR-Designer_Zoom_Out_Logic= -FR-Designer_Chart_Adaptivity= -FR-Designer_Tip_Chart_Adaptivity_Unavailable= -FR-Designer_Official_Website= -FR-Designer_Support_Email= -FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= +FR-Designer_Background_Select= \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 4adc4ca518..6ec5b92e26 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2152,6 +2152,7 @@ FR-Designer_Format_JavaScript=Format Code FR-Designer_Tip_Content= FR-Designer_Chart_Empty_Data= FR-Designer-Vcs_tab_click= +FR-Designer_Move_Up= FR-Designer_Move_Down= FR-Designer_Move_To_Top= FR-Designer_Move_To_Bottom= @@ -2159,27 +2160,11 @@ FR-Designer_Preference_CachingTemplate=\uD15C\uD50C\uB9BF \uBA54\uBAA8\uB9AC \uC FR-Designer_Preference_MaxCachingTemplate=\uB514\uC790\uC774\uB108 \uCD5C\uB300 \uCE90\uC2DC \uD15C\uD50C\uB9BF \uAC1C\uC218: FR-Designer_Preference_CachingTemplateTip=\uC124\uC815 \uC744 0 \uD45C\uC2DC \uB2EB\uAE30 \uC774 \uAE30\uB2A5; \uB2E4\uC2DC \uB514\uC790\uC774\uB108 \uD6C4 \uBC1C\uD6A8\uB41C\uB2E4 FR-Designer_Tab_Style_Template= -FR-Designer_Tab_Template_One= -FR-Designer_Tab_Template_Two= -FR-Designer_Tab_Template_Three= -FR-Designer_Tab_Template_Four= -FR-Designer_Tab_Template_Five= -FR-Designer_Tab_Template_Six= +FR-Designer_Tab_Banner_Style= +FR-Designer_Tab_BookMark_Style= +FR-Designer_Tab_Card_Style= +FR-Designer_Tab_Menu_Style= +FR-Designer_Tab_Pentagon_Style= +FR-Designer_Tab_Trapezoid_Style= FR-Designer_Tab_Display_Position= -FR-Designer_Set_Mobile_Only_Template= -FR-Designer_Set_Mobile_Canvas_Size= -FR-Designer_Adaptive_Property_Auto_Match= -FR-Designer_Mobile_Screen_Zoom_In= -FR-Designer_Mobile_Screen_Zoom_Out= -FR-Designer_Mobile_Screen_Zoom_Out_Desc= -FR-Designer_Adaptive_Property_Auto_Match_Desc= -FR-Designer_Template_Settings= -FR-Designer_Form_Widget_Rename_Failure=\uC874\uC7AC \uB3D9\uBA85 \uAD6C\uC131 \uC694\uC18C \uC124\uC815 \uC880 \uB2E4\uB978 \uC774\uB984 -FR-Designer_Joption_News=\uC18C\uC2DD -FR-Designer_Zoom_In_Logic= -FR-Designer_Zoom_Out_Logic= -FR-Designer_Chart_Adaptivity= -FR-Designer_Tip_Chart_Adaptivity_Unavailable= -FR-Designer_Official_Website= -FR-Designer_Support_Email= -FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= +FR-Designer_Background_Select= \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index ec163bacd5..dfb3080380 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -60,9 +60,9 @@ FR-Designer-Widget-Title_border_color=\u989C\u8272 FR-Designer_AbsoluteLayout=\u7EDD\u5BF9\u5E03\u5C40 FR-Designer_Allow_Decimals=\u5141\u8BB8\u5C0F\u6570 FR-Designer_Allow_Negative=\u5141\u8BB8\u8D1F\u503C -FR-Designer_Background-Click=\u9F20\u6807\u70B9\u51FB\u80CC\u666F +FR-Designer_Background-Click=\u70B9\u51FB\u80CC\u666F FR-Designer_Background-Initial=\u521D\u59CB\u80CC\u666F -FR-Designer_Background-Over=\u9F20\u6807\u6D6E\u52A8\u80CC\u666F +FR-Designer_Background-Over=\u60AC\u6D6E\u80CC\u666F FR-Designer_Bar-Code-Exception-Tip=\u6570\u636E\u4E0D\u80FD\u4E3A\u7A7A FR-Designer_Block-intersect=\u7981\u6B62\u5757\u4E0E\u5757\u4E4B\u95F4\u7684\u91CD\u53E0 FR-Designer_BorderLayout=\u8FB9\u754C\u5E03\u5C40 @@ -2160,28 +2160,11 @@ FR-Designer_Move_Down=\u4E0B\u79FB\u4E00\u5C42(B) FR-Designer_Move_To_Top=\u7F6E\u4E8E\u9876\u5C42(T) FR-Designer_Move_To_Bottom=\u7F6E\u4E8E\u5E95\u5C42(K) FR-Designer_Tab_Style_Template=\u6837\u5F0F\u6A21\u677F -FR-Designer_Tab_Template_One=\u6A21\u677F\u4E00 -FR-Designer_Tab_Template_Two=\u6A21\u677F\u4E8C -FR-Designer_Tab_Template_Three=\u6A21\u677F\u4E09 -FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB -FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 -FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D +FR-Designer_Tab_Banner_Style=\u9526\u65D7 +FR-Designer_Tab_BookMark_Style=\u4E66\u7B7E\u5F0F +FR-Designer_Tab_Card_Style=\u5361\u7247\u5F0F +FR-Designer_Tab_Menu_Style=\u83DC\u5355\u5F0F +FR-Designer_Tab_Pentagon_Style=\u4E94\u8FB9\u5F62 +FR-Designer_Tab_Trapezoid_Style=\u68AF\u5F62 FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E -FR-Designer_Set_Mobile_Only_Template=\u8BBE\u7F6E\u4E3A\u624B\u673A\u7AEF\u4E13\u5C5E\u6A21\u7248 -FR-Designer_Set_Mobile_Canvas_Size=\u8BBE\u7F6E\u4E3A\u624B\u673A\u6A21\u7248\u753B\u5E03\u5927\u5C0F -FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u9002\u5E94\u5C5E\u6027\u81EA\u52A8\u5339\u914D -FR-Designer_Canvas_Size_Lock_Desc=\u753B\u5E03\u5927\u5C0F375*560\uFF0C\u5BBD\u5EA6\u9501\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u4E49 -FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u5C4F\u5E55\u624B\u673A\uFF1A\u9002\u914D -FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u673A\uFF1A\u653E\u5927 -FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u673A\uFF1A\u538B\u7F29 -FR-Designer_Adaptive_Property_Auto_Match_Desc=\u4E3A\u63D0\u5347\u624B\u673A\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u5E03\u5C40\u529F\u80FD\u65F6\uFF0C\u8BBE\u7F6E\u81EA\u9002\u5E94\u5E03\u5C40\u65B9\u5F0F\u4E0B\u7684\u7EC4\u4EF6\u7F29\u653E\u903B\u8F91\u4E3A"\u6A2A\u5411\u81EA\u9002\u5E94" -FR-Designer_Template_Settings=\u6A21\u7248\u8BBE\u7F6E -FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u91CD\u540D\u7EC4\u4EF6\uFF0C\u8BF7\u8BBE\u7F6E\u5176\u4ED6\u540D\u79F0 -FR-Designer_Joption_News=\u6D88\u606F -FR-Designer_Zoom_In_Logic=\u653E\u5927\u903B\u8F91 -FR-Designer_Zoom_Out_Logic=\u7F29\u5C0F\u903B\u8F91 -FR-Designer_Chart_Adaptivity=\u56FE\u8868\u81EA\u9002\u5E94 -FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 -FR-Designer_Official_Website=\u5B98\u65B9\u7F51\u7AD9\uFF1A -FR-Designer_Support_Email=\u652F\u6301\u90AE\u7BB1\uFF1A -FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7EDD\u5BF9\u753B\u5E03\u5757\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 +FR-Designer_Background_Select=\u9009\u4E2D\u80CC\u666F \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 50363e3e65..780d341cb7 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -59,9 +59,9 @@ FR-Designer-Widget-Title_border_color=\u6A19\u984C\u6846\u7DDA\u984F\u8272 FR-Designer_AbsoluteLayout=\u7D55\u5C0D\u4F48\u5C40 FR-Designer_Allow_Decimals=\u5141\u8A31\u5C0F\u6578 FR-Designer_Allow_Negative=\u5141\u8A31\u8CA0\u503C -FR-Designer_Background-Click=\u6ED1\u9F20\u9EDE\u64CA\u80CC\u666F +FR-Designer_Background-Click=\u9EDE\u64CA\u80CC\u666F FR-Designer_Background-Initial=\u521D\u59CB\u80CC\u666F -FR-Designer_Background-Over=\u6ED1\u9F20\u61F8\u6D6E\u80CC\u666F +FR-Designer_Background-Over=\u61F8\u6D6E\u80CC\u666F FR-Designer_Bar-Code-Exception-Tip=\u689D\u78BC\u4F8B\u5916\u63D0\u793A FR-Designer_Block-intersect=\u5340\u584A\u91CD\u758A FR-Designer_BorderLayout=\u908A\u754C\u5E03\u5C40 @@ -2159,28 +2159,11 @@ FR-Designer_Move_Down=\u4E0B\u79FB\u4E00\u5C64(B) FR-Designer_Move_To_Top=\u7F6E\u65BC\u9802\u5C64(T) FR-Designer_Move_To_Bottom=\u7F6E\u65BC\u5E95\u5C64(K) FR-Designer_Tab_Style_Template=\u6A23\u5F0F\u6A21\u677F -FR-Designer_Tab_Template_One=\u6A21\u677F\u4E00 -FR-Designer_Tab_Template_Two=\u6A21\u677F\u4E8C -FR-Designer_Tab_Template_Three=\u6A21\u677F\u4E09 -FR-Designer_Tab_Template_Four=\u6A21\u677F\u56DB -FR-Designer_Tab_Template_Five=\u6A21\u677F\u4E94 -FR-Designer_Tab_Template_Six=\u6A21\u677F\u516D +FR-Designer_Tab_Banner_Style=\u9326\u65D7 +FR-Designer_Tab_BookMark_Style=\u66F8\u7C64\u5F0F +FR-Designer_Tab_Card_Style=\u5361\u7247\u5F0F +FR-Designer_Tab_Menu_Style=\u83DC\u55AE\u5F0F +FR-Designer_Tab_Pentagon_Style=\u4E94\u908A\u5F62 +FR-Designer_Tab_Trapezoid_Style=\u68AF\u5F62 FR-Designer_Tab_Display_Position=\u986F\u793A\u4F4D\u7F6E -FR-Designer_Set_Mobile_Only_Template=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u7AEF\u5C08\u5C6C\u6A21\u7248 -FR-Designer_Set_Mobile_Canvas_Size=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u6A21\u7248\u756B\u5E03\u5927\u5C0F -FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u6211\u8ABF\u6574\u5185\u5BB9\u81EA\u52D5\u5339\u914D -FR-Designer_Canvas_Size_Lock_Desc=\u756B\u5E03\u5927\u5C0F375*560\uFF0C\u5BEC\u5EA6\u9396\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u7FA9 -FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u8367\u5E55\u624B\u6A5F\uFF1A\u9069\u914D -FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u6A5F\uFF1A\u653E\u5927 -FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u6A5F\uFF1A\u58D3\u7E2E -FR-Designer_Adaptive_Property_Auto_Match_Desc=\u70BA\u63D0\u5347\u624B\u6A5F\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u4F48\u5C40\u529F\u80FD\u6642\uFF0C\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574\u4F48\u5C40\u7BA1\u9053\u4E0B\u7684\u7D44\u4EF6\u7E2E\u653E\u908F\u8F2F\u70BA\u201C\u6A6B\u5411\u81EA\u6211\u8ABF\u6574\u201D -FR-Designer_Template_Settings=\u6A21\u7248\u8A2D\u5B9A -FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u91CD\u540D\u7D44\u4EF6\uFF0C\u8ACB\u8A2D\u5B9A\u5176\u4ED6\u540D\u7A31 -FR-Designer_Joption_News=\u6D88\u606F -FR-Designer_Zoom_In_Logic=\u653E\u5927\u908F\u8F2F -FR-Designer_Zoom_Out_Logic=\u7E2E\u5C0F\u908F\u8F2F -FR-Designer_Chart_Adaptivity=\u5716\u8868\u81EA\u6211\u8ABF\u6574 -FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 -FR-Designer_Official_Website=\u5B98\u65B9\u7DB2\u7AD9\uFF1A -FR-Designer_Support_Email=\u652F\u6301\u90F5\u7BB1\uFF1A -FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7D55\u5C0D\u756B\u5E03\u584A\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 +FR-Designer_Background_Select=\u9078\u4E2D\u80CC\u666F \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index fbc14ff3bd..d934ecf57f 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -4,7 +4,6 @@ package com.fr.design.designer.creator; import com.fr.base.BaseUtils; -import com.fr.base.GraphHelper; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; @@ -17,7 +16,6 @@ import com.fr.design.mainframe.*; import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; -import com.fr.stable.Constants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; @@ -692,14 +690,6 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo // do nothing } - /** - * 编辑状态的时候需要重新绘制下边框 - * - */ - public void paintBorder(Graphics g, Rectangle bounds){ - GraphHelper.draw(g, bounds, Constants.LINE_MEDIUM); - } - /** * 创建右击弹出菜单 * diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index be07525a00..f4d5a30b8f 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -1,8 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; -import com.fr.base.PaperSize; -import com.fr.base.Parameter; +import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; import com.fr.design.actions.file.WebPreviewUtils; @@ -57,23 +56,12 @@ import com.fr.form.ui.container.WLayout; import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; -import com.fr.page.PaperSettingProvider; -import com.fr.report.worksheet.FormElementCase; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.bridge.StableFactory; -import javax.swing.BorderFactory; -import javax.swing.Icon; -import javax.swing.JComponent; -import javax.swing.JPanel; -import javax.swing.SwingConstants; -import java.awt.BorderLayout; -import java.awt.CardLayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Font; +import javax.swing.*; +import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; @@ -140,7 +128,7 @@ public class JForm extends JTemplate implements BaseJForm { return processInfo; } - public FormECCompositeProvider getReportComposite(){ + public FormECCompositeProvider getReportComposite() { return this.reportComposite; } @@ -203,7 +191,8 @@ public class JForm extends JTemplate implements BaseJForm { */ public ShortCut[] shortcut4FileMenu() { return (ShortCut[]) ArrayUtils.addAll( - super.shortcut4FileMenu(), new ShortCut[]{this.createWorkBookExportMenu()} + super.shortcut4FileMenu(), + DesignerMode.isVcsMode() ? new ShortCut[0] : new ShortCut[]{this.createWorkBookExportMenu()} ); } @@ -256,11 +245,14 @@ public class JForm extends JTemplate implements BaseJForm { }); formDesign.addDesignerEditListener(new DesignerEditListener() { private XComponent lastAffectedCreator; + @Override public void fireCreatorModified(DesignerEvent evt) { - if (evt.getCreatorEventID() == DesignerEvent.CREATOR_CUTED - || evt.getCreatorEventID() == DesignerEvent.CREATOR_DELETED) { + if (evt.getCreatorEventID() == DesignerEvent.CREATOR_CUTED) { setPropertyPaneChange(formDesign.getRootComponent()); + } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_DELETED) { + // 在 delete 之前,会先 select 父组件。这里直接传入 lastAffectedCreator 就好了 + setPropertyPaneChange(lastAffectedCreator); } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED) { lastAffectedCreator = evt.getAffectedCreator(); setPropertyPaneChange(lastAffectedCreator); @@ -552,9 +544,9 @@ public class JForm extends JTemplate implements BaseJForm { @Override protected void applyUndoState(FormUndoState u) { try { - //JForm的target重置 - this.setTarget((Form) u.getForm().clone()); if (this.index == FORM_TAB) { + //JForm的target重置 + this.setTarget((Form) u.getForm().clone()); JForm.this.refreshRoot(); this.formDesign.getArea().setAreaSize(u.getAreaSize(), u.getHorizontalValue(), u.getVerticalValue(), u.getWidthValue(), u.getHeightValue(), u.getSlideValue()); //撤销的时候要重新选择的body布局 @@ -562,9 +554,12 @@ public class JForm extends JTemplate implements BaseJForm { formDesign.getRootComponent() == selectedBodyLayout() ? u.getSelectWidgets() : new Widget[]{selectedBodyLayout().toData()})); refreshToolArea(); } else { + // 只在报表块里撤销是不需要修改外部form对象的, 因为编辑的是当前报表块. + // 修改了JForm的Target需要同步修改formDesign的Target. + Form undoForm = (Form) u.getForm().clone(); String widgetName = this.formDesign.getElementCaseContainerName(); //这儿太坑了,u.getForm() 与 getTarget内容不一样 - FormElementCaseProvider dataTable = getTarget().getElementCaseByName(widgetName); + FormElementCaseProvider dataTable = undoForm.getElementCaseByName(widgetName); this.reportComposite.setSelectedWidget(dataTable); //下面这句话是防止撤销之后直接退出编辑再编辑撤销的东西会回来,因为撤销不会保存EC formDesign.setElementCase(dataTable); @@ -675,11 +670,6 @@ public class JForm extends JTemplate implements BaseJForm { return UIConstants.RUN_BIG_ICON; } - @Override - public Parameter[] getJTemplateParameters() { - return this.getTarget().getTemplateParameters(); - } - @Override /** * 创建菜单项Preview @@ -738,9 +728,8 @@ public class JForm extends JTemplate implements BaseJForm { EastRegionContainerPane.getInstance().switchMode(EastRegionContainerPane.PropertyMode.FORM); EastRegionContainerPane.getInstance().replaceWidgetSettingsPane(WidgetPropertyPane.getInstance(formDesign)); ParameterPropertyPane parameterPropertyPane = ParameterPropertyPane.getInstance(formDesign); - parameterPropertyPane.setAddParaPaneVisible(false, this); + parameterPropertyPane.refreshState(this); EastRegionContainerPane.getInstance().addParameterPane(parameterPropertyPane); - EastRegionContainerPane.getInstance().setParameterHeight(parameterPropertyPane.getPreferredSize().height); refreshWidgetLibPane(); } @@ -811,6 +800,7 @@ public class JForm extends JTemplate implements BaseJForm { JForm.this.fireTargetModified(); } } + /** * 在Form和ElementCase, 以及ElementCase和ElementCase之间切换 * @@ -836,13 +826,8 @@ public class JForm extends JTemplate implements BaseJForm { HashMap designerClass = new HashMap(); designerClass.put(Constants.ARG_0, FormElementCaseProvider.class); - Object[] designerArg = new Object[]{formDesign.getElementCase(), getTarget()}; - FormECDesignerProvider formECDesigner = StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); - // 如果是移动端专属模版,需要修改页面大小并显示边缘线 - PaperSettingProvider paperSetting = ((FormElementCase)formECDesigner.getEditingElementCase()).getReportSettings().getPaperSetting(); - paperSetting.setPaperSize(getTarget().getFormMobileAttr().isMobileOnly() ? PaperSize.PAPERSIZE_MOBILE : new PaperSize()); - - return formECDesigner; + Object[] designerArg = new Object[]{formDesign.getElementCase()}; + return StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); } /** From 5f9daaee73e2b81328c416d7e2108e1f4854ff26 Mon Sep 17 00:00:00 2001 From: zack Date: Tue, 27 Feb 2018 19:25:30 +0800 Subject: [PATCH 58/75] =?UTF-8?q?RREPORT-6974=20=E5=90=88=E4=BB=A3?= =?UTF-8?q?=E7=A0=81,=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 18 ++++++++++++ .../design/locale/designer_en_US.properties | 18 ++++++++++++ .../design/locale/designer_ja_JP.properties | 17 ++++++++++- .../design/locale/designer_ko_KR.properties | 20 +++++++++++-- .../design/locale/designer_zh_CN.properties | 24 ++++++++++++++-- .../design/locale/designer_zh_TW.properties | 24 ++++++++++++++-- .../fr/design/designer/creator/XCreator.java | 28 +++++++++++++++++-- 7 files changed, 137 insertions(+), 12 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index f5aea0212b..1ef8947ba4 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2168,3 +2168,21 @@ FR-Designer_Tab_Pentagon_Style=Pentagon Style FR-Designer_Tab_Trapezoid_Style=Trapezoid Style FR-Designer_Tab_Display_Position=Display Position FR-Designer_Background_Select=Select Background +FR-Designer_Set_Mobile_Only_Template=Set as mobile only template +FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size +FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match +FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable +FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out +FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" +FR-Designer_Template_Settings=Template Settings +FR-Designer_Form_Widget_Rename_Failure=There are the same components, please set the other name +FR-Designer_Joption_News=news +FR-Designer_Zoom_In_Logic=zoom in logic +FR-Designer_Zoom_Out_Logic=zoom out logic +FR-Designer_Chart_Adaptivity=chart adaptivity +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, the chart does not support the setting of self-adaptive +FR-Designer_Official_Website=Official Website: +FR-Designer_Support_Email=Email: +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 5f4e32a5ab..bbbcbe02b8 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2167,3 +2167,21 @@ FR-Designer_Tab_Pentagon_Style=Pentagon Style FR-Designer_Tab_Trapezoid_Style=Trapezoid Style FR-Designer_Tab_Display_Position=Display Position FR-Designer_Background_Select=Select Background +FR-Designer_Set_Mobile_Only_Template=Set as mobile only template +FR-Designer_Set_Mobile_Canvas_Size=Set as mobile canvas size +FR-Designer_Adaptive_Property_Auto_Match=Adaptive property auto match +FR-Designer_Canvas_Size_Lock_Desc=The size of the canvas is 375*560, the width is locked, the height is customizable +FR-Designer_Mobile_Screen_Match_Desc=4.7 inch screen phone: fit +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7 inch or more mobile phones: zooming in +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7 inch mobile phone: zooming out +FR-Designer_Adaptive_Property_Auto_Match_Desc=In order to improve the end template effect of the mobile phone, when using the reserved layout function, the component scaling logic under the adaptive layout is set as "lateral adaptive" +FR-Designer_Template_Settings=Template Settings +FR-Designer_Form_Widget_Rename_Failure=There are the same components, please set the other name +FR-Designer_Joption_News=news +FR-Designer_Zoom_In_Logic=zoom in logic +FR-Designer_Zoom_Out_Logic=zoom out logic +FR-Designer_Chart_Adaptivity=chart adaptivity +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, the chart does not support the setting of self-adaptive +FR-Designer_Official_Website=Official Website: +FR-Designer_Support_Email=Email: +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index c776cd0b10..6b3f77938d 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2167,4 +2167,19 @@ FR-Designer_Tab_Menu_Style= FR-Designer_Tab_Pentagon_Style= FR-Designer_Tab_Trapezoid_Style= FR-Designer_Tab_Display_Position= -FR-Designer_Background_Select= \ No newline at end of file +FR-Designer_Background_Select= +FR-Designer_Set_Mobile_Only_Template= +FR-Designer_Set_Mobile_Canvas_Size= +FR-Designer_Mobile_Screen_Zoom_In= +FR-Designer_Mobile_Screen_Zoom_Out= +FR-Designer_Adaptive_Property_Auto_Match_Desc= +FR-Designer_Template_Settings= +FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u30EA\u30CD\u30FC\u30E0\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u306F\u3001\u4ED6\u306E\u540D\u79F0\u3092\u8A2D\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 +FR-Designer_Joption_News=\u30CB\u30E5\u30FC\u30B9 +FR-Designer_Zoom_In_Logic= +FR-Designer_Zoom_Out_Logic= +FR-Designer_Chart_Adaptivity= +FR-Designer_Tip_Chart_Adaptivity_Unavailable= +FR-Designer_Official_Website= +FR-Designer_Support_Email= +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 6ec5b92e26..7e5caf3c20 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2152,7 +2152,6 @@ FR-Designer_Format_JavaScript=Format Code FR-Designer_Tip_Content= FR-Designer_Chart_Empty_Data= FR-Designer-Vcs_tab_click= -FR-Designer_Move_Up= FR-Designer_Move_Down= FR-Designer_Move_To_Top= FR-Designer_Move_To_Bottom= @@ -2167,4 +2166,21 @@ FR-Designer_Tab_Menu_Style= FR-Designer_Tab_Pentagon_Style= FR-Designer_Tab_Trapezoid_Style= FR-Designer_Tab_Display_Position= -FR-Designer_Background_Select= \ No newline at end of file +FR-Designer_Background_Select= +FR-Designer_Set_Mobile_Only_Template= +FR-Designer_Set_Mobile_Canvas_Size= +FR-Designer_Adaptive_Property_Auto_Match= +FR-Designer_Mobile_Screen_Zoom_In= +FR-Designer_Mobile_Screen_Zoom_Out= +FR-Designer_Mobile_Screen_Zoom_Out_Desc= +FR-Designer_Adaptive_Property_Auto_Match_Desc= +FR-Designer_Template_Settings= +FR-Designer_Form_Widget_Rename_Failure=\uC874\uC7AC \uB3D9\uBA85 \uAD6C\uC131 \uC694\uC18C \uC124\uC815 \uC880 \uB2E4\uB978 \uC774\uB984 +FR-Designer_Joption_News=\uC18C\uC2DD +FR-Designer_Zoom_In_Logic= +FR-Designer_Zoom_Out_Logic= +FR-Designer_Chart_Adaptivity= +FR-Designer_Tip_Chart_Adaptivity_Unavailable= +FR-Designer_Official_Website= +FR-Designer_Support_Email= +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index dfb3080380..3d85080c0e 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -60,9 +60,9 @@ FR-Designer-Widget-Title_border_color=\u989C\u8272 FR-Designer_AbsoluteLayout=\u7EDD\u5BF9\u5E03\u5C40 FR-Designer_Allow_Decimals=\u5141\u8BB8\u5C0F\u6570 FR-Designer_Allow_Negative=\u5141\u8BB8\u8D1F\u503C -FR-Designer_Background-Click=\u70B9\u51FB\u80CC\u666F +FR-Designer_Background-Click=\u9F20\u6807\u70B9\u51FB\u80CC\u666F FR-Designer_Background-Initial=\u521D\u59CB\u80CC\u666F -FR-Designer_Background-Over=\u60AC\u6D6E\u80CC\u666F +FR-Designer_Background-Over=\u9F20\u6807\u6D6E\u52A8\u80CC\u666F FR-Designer_Bar-Code-Exception-Tip=\u6570\u636E\u4E0D\u80FD\u4E3A\u7A7A FR-Designer_Block-intersect=\u7981\u6B62\u5757\u4E0E\u5757\u4E4B\u95F4\u7684\u91CD\u53E0 FR-Designer_BorderLayout=\u8FB9\u754C\u5E03\u5C40 @@ -2167,4 +2167,22 @@ FR-Designer_Tab_Menu_Style=\u83DC\u5355\u5F0F FR-Designer_Tab_Pentagon_Style=\u4E94\u8FB9\u5F62 FR-Designer_Tab_Trapezoid_Style=\u68AF\u5F62 FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E -FR-Designer_Background_Select=\u9009\u4E2D\u80CC\u666F \ No newline at end of file +FR-Designer_Background_Select=\u9009\u4E2D\u80CC\u666F +FR-Designer_Set_Mobile_Only_Template=\u8BBE\u7F6E\u4E3A\u624B\u673A\u7AEF\u4E13\u5C5E\u6A21\u7248 +FR-Designer_Set_Mobile_Canvas_Size=\u8BBE\u7F6E\u4E3A\u624B\u673A\u6A21\u7248\u753B\u5E03\u5927\u5C0F +FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u9002\u5E94\u5C5E\u6027\u81EA\u52A8\u5339\u914D +FR-Designer_Canvas_Size_Lock_Desc=\u753B\u5E03\u5927\u5C0F375*560\uFF0C\u5BBD\u5EA6\u9501\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u4E49 +FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u5C4F\u5E55\u624B\u673A\uFF1A\u9002\u914D +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u673A\uFF1A\u653E\u5927 +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u673A\uFF1A\u538B\u7F29 +FR-Designer_Adaptive_Property_Auto_Match_Desc=\u4E3A\u63D0\u5347\u624B\u673A\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u5E03\u5C40\u529F\u80FD\u65F6\uFF0C\u8BBE\u7F6E\u81EA\u9002\u5E94\u5E03\u5C40\u65B9\u5F0F\u4E0B\u7684\u7EC4\u4EF6\u7F29\u653E\u903B\u8F91\u4E3A"\u6A2A\u5411\u81EA\u9002\u5E94" +FR-Designer_Template_Settings=\u6A21\u7248\u8BBE\u7F6E +FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u91CD\u540D\u7EC4\u4EF6\uFF0C\u8BF7\u8BBE\u7F6E\u5176\u4ED6\u540D\u79F0 +FR-Designer_Joption_News=\u6D88\u606F +FR-Designer_Zoom_In_Logic=\u653E\u5927\u903B\u8F91 +FR-Designer_Zoom_Out_Logic=\u7F29\u5C0F\u903B\u8F91 +FR-Designer_Chart_Adaptivity=\u56FE\u8868\u81EA\u9002\u5E94 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 +FR-Designer_Official_Website=\u5B98\u65B9\u7F51\u7AD9\uFF1A +FR-Designer_Support_Email=\u652F\u6301\u90AE\u7BB1\uFF1A +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7EDD\u5BF9\u753B\u5E03\u5757\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 780d341cb7..7aa4ffb563 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -59,9 +59,9 @@ FR-Designer-Widget-Title_border_color=\u6A19\u984C\u6846\u7DDA\u984F\u8272 FR-Designer_AbsoluteLayout=\u7D55\u5C0D\u4F48\u5C40 FR-Designer_Allow_Decimals=\u5141\u8A31\u5C0F\u6578 FR-Designer_Allow_Negative=\u5141\u8A31\u8CA0\u503C -FR-Designer_Background-Click=\u9EDE\u64CA\u80CC\u666F +FR-Designer_Background-Click=\u6ED1\u9F20\u9EDE\u64CA\u80CC\u666F FR-Designer_Background-Initial=\u521D\u59CB\u80CC\u666F -FR-Designer_Background-Over=\u61F8\u6D6E\u80CC\u666F +FR-Designer_Background-Over=\u6ED1\u9F20\u61F8\u6D6E\u80CC\u666F FR-Designer_Bar-Code-Exception-Tip=\u689D\u78BC\u4F8B\u5916\u63D0\u793A FR-Designer_Block-intersect=\u5340\u584A\u91CD\u758A FR-Designer_BorderLayout=\u908A\u754C\u5E03\u5C40 @@ -2166,4 +2166,22 @@ FR-Designer_Tab_Menu_Style=\u83DC\u55AE\u5F0F FR-Designer_Tab_Pentagon_Style=\u4E94\u908A\u5F62 FR-Designer_Tab_Trapezoid_Style=\u68AF\u5F62 FR-Designer_Tab_Display_Position=\u986F\u793A\u4F4D\u7F6E -FR-Designer_Background_Select=\u9078\u4E2D\u80CC\u666F \ No newline at end of file +FR-Designer_Background_Select=\u9078\u4E2D\u80CC\u666F +FR-Designer_Set_Mobile_Only_Template=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u7AEF\u5C08\u5C6C\u6A21\u7248 +FR-Designer_Set_Mobile_Canvas_Size=\u8A2D\u5B9A\u70BA\u624B\u6A5F\u6A21\u7248\u756B\u5E03\u5927\u5C0F +FR-Designer_Adaptive_Property_Auto_Match=\u81EA\u6211\u8ABF\u6574\u5185\u5BB9\u81EA\u52D5\u5339\u914D +FR-Designer_Canvas_Size_Lock_Desc=\u756B\u5E03\u5927\u5C0F375*560\uFF0C\u5BEC\u5EA6\u9396\u5B9A\uFF0C\u9AD8\u5EA6\u53EF\u81EA\u5B9A\u7FA9 +FR-Designer_Mobile_Screen_Match_Desc=4.7\u5BF8\u8367\u5E55\u624B\u6A5F\uFF1A\u9069\u914D +FR-Designer_Mobile_Screen_Zoom_In_Desc=4.7\u5BF8\u4EE5\u4E0A\u624B\u6A5F\uFF1A\u653E\u5927 +FR-Designer_Mobile_Screen_Zoom_Out_Desc=4.7\u5BF8\u4EE5\u4E0B\u624B\u6A5F\uFF1A\u58D3\u7E2E +FR-Designer_Adaptive_Property_Auto_Match_Desc=\u70BA\u63D0\u5347\u624B\u6A5F\u7AEF\u6A21\u7248\u6548\u679C\uFF0C\u5728\u4F7F\u7528\u4FDD\u7559\u4F48\u5C40\u529F\u80FD\u6642\uFF0C\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574\u4F48\u5C40\u7BA1\u9053\u4E0B\u7684\u7D44\u4EF6\u7E2E\u653E\u908F\u8F2F\u70BA\u201C\u6A6B\u5411\u81EA\u6211\u8ABF\u6574\u201D +FR-Designer_Template_Settings=\u6A21\u7248\u8A2D\u5B9A +FR-Designer_Form_Widget_Rename_Failure=\u5B58\u5728\u91CD\u540D\u7D44\u4EF6\uFF0C\u8ACB\u8A2D\u5B9A\u5176\u4ED6\u540D\u7A31 +FR-Designer_Joption_News=\u6D88\u606F +FR-Designer_Zoom_In_Logic=\u653E\u5927\u908F\u8F2F +FR-Designer_Zoom_Out_Logic=\u7E2E\u5C0F\u908F\u8F2F +FR-Designer_Chart_Adaptivity=\u5716\u8868\u81EA\u6211\u8ABF\u6574 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 +FR-Designer_Official_Website=\u5B98\u65B9\u7DB2\u7AD9\uFF1A +FR-Designer_Support_Email=\u652F\u6301\u90F5\u7BB1\uFF1A +FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7D55\u5C0D\u756B\u5E03\u584A\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index a5461b3574..3592f4671a 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator; +import com.fr.base.GraphHelper; import com.fr.base.vcs.DesignerMode; import com.fr.design.actions.UpdateAction; import com.fr.design.designer.beans.AdapterBus; @@ -12,16 +13,29 @@ import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.mainframe.*; +import com.fr.design.mainframe.AuthorityPropertyPane; +import com.fr.design.mainframe.BaseJForm; +import com.fr.design.mainframe.EditingMouseListener; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.NoSupportAuthorityEdit; +import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WTitleLayout; +import com.fr.stable.Constants; import com.fr.stable.StableUtils; import com.fr.stable.StringUtils; -import javax.swing.*; +import javax.swing.BorderFactory; +import javax.swing.JComponent; +import javax.swing.JPanel; import javax.swing.border.Border; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Rectangle; import java.awt.event.MouseEvent; import java.beans.IntrospectionException; import java.util.ArrayList; @@ -690,6 +704,14 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo // do nothing } + /** + * 编辑状态的时候需要重新绘制下边框 + * + */ + public void paintBorder(Graphics g, Rectangle bounds){ + GraphHelper.draw(g, bounds, Constants.LINE_MEDIUM); + } + /** * 创建右击弹出菜单 * From 080283bff53a7abf2c7a6424eed827c23f72d050 Mon Sep 17 00:00:00 2001 From: zack Date: Tue, 27 Feb 2018 21:25:59 +0800 Subject: [PATCH 59/75] =?UTF-8?q?REPORT-6997=20=E7=BA=B8=E5=BC=A0=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E8=AE=BE=E7=BD=AE=E4=B8=BA=E4=B8=8D=E5=8F=AF=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=92=8C=E6=89=93=E5=8D=B0=E6=97=B6=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E5=87=BAPDF=E8=BF=98=E6=98=AF=E4=BC=9A=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E7=BA=B8=E5=BC=A0=E8=83=8C=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/report/ReportBackgroundPane.java | 27 ++++++++++++------- .../design/locale/designer_en_US.properties | 4 +-- .../design/locale/designer_ko_KR.properties | 4 +-- .../design/locale/designer_zh_CN.properties | 4 +-- .../design/locale/designer_zh_TW.properties | 4 +-- 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/designer/src/com/fr/design/report/ReportBackgroundPane.java b/designer/src/com/fr/design/report/ReportBackgroundPane.java index a3e913fe41..86c1c6785e 100644 --- a/designer/src/com/fr/design/report/ReportBackgroundPane.java +++ b/designer/src/com/fr/design/report/ReportBackgroundPane.java @@ -1,16 +1,18 @@ package com.fr.design.report; -import java.awt.BorderLayout; - -import com.fr.page.ReportSettingsProvider; +import com.fr.design.dialog.BasicPane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.dialog.BasicPane; -import com.fr.general.Inter; import com.fr.design.style.background.BackgroundPane; +import com.fr.general.Inter; +import com.fr.page.ReportSettingsProvider; + +import javax.swing.JPanel; +import java.awt.BorderLayout; public class ReportBackgroundPane extends BasicPane { private UICheckBox isPrintBackgroundCheckBox; + private UICheckBox isExportBackgroundCheckBox; private BackgroundPane backgroundPane; public ReportBackgroundPane() { @@ -19,14 +21,17 @@ public class ReportBackgroundPane extends BasicPane { backgroundPane = new BackgroundPane(); this.add(backgroundPane, BorderLayout.CENTER); - isPrintBackgroundCheckBox = new UICheckBox( - Inter.getLocText("ReportGUI-Print_Background")); - this.add(isPrintBackgroundCheckBox, BorderLayout.SOUTH); + isPrintBackgroundCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Print_Background")); + isExportBackgroundCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Export_Background")); + JPanel sourth = new JPanel(); + sourth.add(isExportBackgroundCheckBox); + sourth.add(isPrintBackgroundCheckBox); + this.add(sourth, BorderLayout.SOUTH); } - + @Override protected String title4PopupWindow() { - return Inter.getLocText(new String[]{"paper", "Background"}); + return Inter.getLocText(new String[]{"paper", "Background"}); } /** @@ -35,6 +40,7 @@ public class ReportBackgroundPane extends BasicPane { public void populate(ReportSettingsProvider reportSettings) { this.backgroundPane.populate(reportSettings.getBackground()); this.isPrintBackgroundCheckBox.setSelected(reportSettings.isPrintBackground()); + this.isExportBackgroundCheckBox.setSelected(reportSettings.isExportBackground()); } /** @@ -43,5 +49,6 @@ public class ReportBackgroundPane extends BasicPane { public void update(ReportSettingsProvider reportSettings) { reportSettings.setBackground(this.backgroundPane.update()); reportSettings.setPrintBackground(this.isPrintBackgroundCheckBox.isSelected()); + reportSettings.setExportBackground(this.isExportBackgroundCheckBox.isSelected()); } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index bbbcbe02b8..4dc38064a5 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2141,8 +2141,8 @@ FR-Designer_Float_Visible=Suspended elements are visible FR-Designer_Widget_String=Character string FR-Designer_Widget_Field=field FR-Designer_Widget_Enabled=Control available -FR-Designer_Export_Background= -FR-Designer_Print_Background= +FR-Designer_Print_Background=Print Background +FR-Designer_Export_Background=Export Background FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 7e5caf3c20..5ced3e6b3e 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2145,8 +2145,8 @@ FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All=\uC81C\uACF5\uBAA8\uB450\uC120\uD0DD FR-Designer_Decimal_Places=\uC18C\uC218\uC218\uB7C9: FR-Base-Load_Resource_File=\uB85C\uB529\uAD6C\uC131\uD30C\uC77C -FR-Designer_Export_Background= -FR-Designer_Print_Background= +FR-Designer_Print_Background=\uC778\uC1C4\uBB38\uC11C\uBC30\uACBD +FR-Designer_Export_Background=\uB0B4\uBCF4\uB0B4\uAE30\uBB38\uC11C\uBC30\uACBD FR-Designer_Env_Des_Https= FR-Designer_Format_JavaScript=Format Code FR-Designer_Tip_Content= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 3d85080c0e..1fc5c34a90 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2142,8 +2142,8 @@ FR-Designer_Widgetname=\u63A7\u4EF6\u540D FR-Designer_Insert_Cell_Element=\u63D2\u5165\u5143\u7D20 FR-Designer-Plugin_Has_Been_Actived= FR-Designer-Plugin_Has_Been_Disabled= -FR-Designer_Export_Background= -FR-Designer_Print_Background= +FR-Designer_Print_Background=\u6253\u5370\u62A5\u8868\u80CC\u666F +FR-Designer_Export_Background=\u5BFC\u51FA\u62A5\u8868\u80CC\u666F FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 7aa4ffb563..f298c98593 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2141,8 +2141,8 @@ FR-Designer_Float_Visible=\u61F8\u6D6E\u5143\u7D20\u53EF\u898B FR-Designer_Widget_String=\u5B57\u4E32 FR-Designer_Widget_Field=\u6B04\u4F4D FR-Designer_Widget_Enabled=\u63A7\u5236\u5143\u4EF6\u53EF\u7528 -FR-Designer_Export_Background= -FR-Designer_Print_Background= +FR-Designer_Print_Background=\u5217\u5370\u5831\u8868\u80CC\u666F +FR-Designer_Export_Background=\u532F\u51FA\u5831\u8868\u80CC\u666F FR-Designer_Sheet_Label_Page_Display_Position= FR-Designer_Provide_Choose_All= FR-Designer_Decimal_Places= From a021cc29efc6324d592b3fb6badc0eff767f4db6 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 28 Feb 2018 11:27:18 +0800 Subject: [PATCH 60/75] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=EF=BC=8Cf?= =?UTF-8?q?eature=20=E5=90=88=E5=88=B0=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/JForm.java | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 6e3618dad4..87c575fd2b 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -1,6 +1,8 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.PaperSize; +import com.fr.base.Parameter; import com.fr.base.vcs.DesignerMode; import com.fr.design.DesignState; import com.fr.design.actions.core.WorkBookSupportable; @@ -56,12 +58,23 @@ import com.fr.form.ui.container.WLayout; import com.fr.general.ComparatorUtils; import com.fr.general.FRLogger; import com.fr.general.Inter; +import com.fr.page.PaperSettingProvider; +import com.fr.report.worksheet.FormElementCase; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.bridge.StableFactory; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import java.awt.BorderLayout; +import java.awt.CardLayout; +import java.awt.Color; +import java.awt.Component; +import java.awt.Dimension; +import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; @@ -670,6 +683,11 @@ public class JForm extends JTemplate implements BaseJForm { return UIConstants.RUN_BIG_ICON; } + @Override + public Parameter[] getJTemplateParameters() { + return this.getTarget().getTemplateParameters(); + } + @Override /** * 创建菜单项Preview @@ -826,8 +844,13 @@ public class JForm extends JTemplate implements BaseJForm { HashMap designerClass = new HashMap(); designerClass.put(Constants.ARG_0, FormElementCaseProvider.class); - Object[] designerArg = new Object[]{formDesign.getElementCase()}; - return StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); + Object[] designerArg = new Object[]{formDesign.getElementCase(), getTarget()}; + FormECDesignerProvider formECDesigner = StableFactory.getMarkedInstanceObjectFromClass(FormECDesignerProvider.XML_TAG, designerArg, designerClass, FormECDesignerProvider.class); + // 如果是移动端专属模版,需要修改页面大小并显示边缘线 + PaperSettingProvider paperSetting = ((FormElementCase)formECDesigner.getEditingElementCase()).getReportSettings().getPaperSetting(); + paperSetting.setPaperSize(getTarget().getFormMobileAttr().isMobileOnly() ? PaperSize.PAPERSIZE_MOBILE : new PaperSize()); + + return formECDesigner; } /** From 8d7f7ae0b24e93a9ad40e7939bffdd0d3b97f970 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 2 Mar 2018 15:10:50 +0800 Subject: [PATCH 61/75] =?UTF-8?q?REPORT-6979=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E2=80=94=20=E8=A1=A8=E5=8D=95=E2=80=94=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E2=80=94=20=E6=89=8B=E6=9C=BA=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=99=90=E5=88=B6=E9=AB=98=E5=BA=A6=E7=9A=84=E6=9C=80=E5=A4=A7?= =?UTF-8?q?=E9=AB=98=E5=BA=A6=E5=8F=AF=E4=BB=A5=E8=BE=93=E5=85=A5=E8=B6=85?= =?UTF-8?q?=E8=BF=870.8=E4=BB=A5=E4=B8=8A=E7=9A=84=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/designer/mobile/ElementCaseDefinePane.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java index afe9027f02..e464d76e9a 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java @@ -42,6 +42,7 @@ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ private UICheckBox heightRestrictCheckBox; // 手机显示限制高度复选框 private UILabel maxHeightLabel; private UISpinner maxHeightSpinner; // 最大高度Spinner + private static final double MAX_HEIGHT_LIMIT = 0.8; private AttributeChangeListener changeListener; public ElementCaseDefinePane (XCreator xCreator) { @@ -56,7 +57,18 @@ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ this.vComboBox = new UIComboBox(ITEMS); this.heightRestrictCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Mobile-Height-Limit")); this.maxHeightLabel = new UILabel(Inter.getLocText("FR-Designer_Mobile-Height-Percent"), SwingConstants.LEFT); - this.maxHeightSpinner = new UISpinner(0, 1, 0.01, 0.75); + this.maxHeightSpinner = new UISpinner(0, MAX_HEIGHT_LIMIT, 0.01, 0.75) { + public void setValue(double value) { + if (value > MAX_HEIGHT_LIMIT) { + //弹窗提示 + JOptionPane.showMessageDialog(null, + Inter.getLocText("FR-Designer_Mobile-Warning"), + Inter.getLocText("FR-Designer_Tooltips"), + JOptionPane.PLAIN_MESSAGE); + } + super.setValue(value); + } + }; maxHeightSpinner.setVisible(false); maxHeightLabel.setVisible(false); From cc158cbc19605df04d29f5ac47705477507ca67d Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Mar 2018 09:12:35 +0800 Subject: [PATCH 62/75] =?UTF-8?q?REPORT-6979=20=E4=BB=A3=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/widget/ui/designer/mobile/ElementCaseDefinePane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java index e464d76e9a..46f449d461 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java @@ -28,6 +28,7 @@ import java.awt.*; * Created by fanglei on 2017/8/8. */ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ + private static final double MAX_HEIGHT_LIMIT = 0.8; private static final Item[] ITEMS = { new Item(MobileFitAttrState.HORIZONTAL.description(), MobileFitAttrState.HORIZONTAL), new Item(MobileFitAttrState.VERTICAL.description(), MobileFitAttrState.VERTICAL), @@ -42,7 +43,6 @@ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ private UICheckBox heightRestrictCheckBox; // 手机显示限制高度复选框 private UILabel maxHeightLabel; private UISpinner maxHeightSpinner; // 最大高度Spinner - private static final double MAX_HEIGHT_LIMIT = 0.8; private AttributeChangeListener changeListener; public ElementCaseDefinePane (XCreator xCreator) { From 36f366df2f650e5b126c7c53da657f0f4a759435 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Mon, 5 Mar 2018 16:44:34 +0800 Subject: [PATCH 63/75] =?UTF-8?q?CHART-2062=20=E9=92=BB=E5=8F=96=E5=9C=B0?= =?UTF-8?q?=E5=9B=BE=20=E4=B8=8A=E9=92=BB=E5=8F=82=E6=95=B0=20=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E7=B3=BB=E5=88=97=E5=90=8D=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../custom/component/VanChartHyperLinkPane.java | 7 ++++++- .../designer/other/VanChartCatalogHyperLinkPane.java | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java b/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java index 70808d1c41..45edfe84fe 100644 --- a/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java +++ b/designer_chart/src/com/fr/plugin/chart/custom/component/VanChartHyperLinkPane.java @@ -1,5 +1,6 @@ package com.fr.plugin.chart.custom.component; +import com.fr.base.BaseFormula; import com.fr.chart.chartattr.Plot; import com.fr.chart.web.ChartHyperPoplink; import com.fr.chart.web.ChartHyperRelateCellLink; @@ -77,7 +78,7 @@ public class VanChartHyperLinkPane extends VanChartUIListControlPane { Constructor constructor = null; try { constructor = creator.getUpdatePane().getConstructor(HashMap.class, boolean.class); - return constructor.newInstance(plot.getHyperLinkEditorMap(), false); + return constructor.newInstance(getHyperLinkEditorMap(), false); } catch (InstantiationException e) { FRLogger.getLogger().error(e.getMessage(), e); @@ -91,6 +92,10 @@ public class VanChartHyperLinkPane extends VanChartUIListControlPane { return null; } + protected Map getHyperLinkEditorMap() { + return plot.getHyperLinkEditorMap(); + } + /** * 弹出列表的标题. diff --git a/designer_chart/src/com/fr/plugin/chart/drillmap/designer/other/VanChartCatalogHyperLinkPane.java b/designer_chart/src/com/fr/plugin/chart/drillmap/designer/other/VanChartCatalogHyperLinkPane.java index 8bf8bdfe6a..d6e5463db2 100644 --- a/designer_chart/src/com/fr/plugin/chart/drillmap/designer/other/VanChartCatalogHyperLinkPane.java +++ b/designer_chart/src/com/fr/plugin/chart/drillmap/designer/other/VanChartCatalogHyperLinkPane.java @@ -1,15 +1,27 @@ package com.fr.plugin.chart.drillmap.designer.other; +import com.fr.base.BaseFormula; import com.fr.chart.chartattr.Plot; +import com.fr.general.Inter; import com.fr.js.NameJavaScriptGroup; import com.fr.plugin.chart.custom.component.VanChartHyperLinkPane; import com.fr.plugin.chart.drillmap.VanChartDrillMapPlot; +import java.util.HashMap; +import java.util.Map; + /** * Created by hufan on 2016/12/13. */ public class VanChartCatalogHyperLinkPane extends VanChartHyperLinkPane{ + @Override + protected Map getHyperLinkEditorMap() { + HashMap map = new HashMap(); + map.put(Inter.getLocText("FR-Chart-Area_Name"), BaseFormula.createFormulaBuilder().build("AREA_NAME")); + return map; + } + protected void updateHotHyperLink(Plot plot, NameJavaScriptGroup nameGroup) { if (plot instanceof VanChartDrillMapPlot) { ((VanChartDrillMapPlot) plot).setDrillUpHyperLink(nameGroup); From cf76103cbe3a488415fc90ed7d3f91e083daf71e Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 6 Mar 2018 11:31:34 +0800 Subject: [PATCH 64/75] =?UTF-8?q?REPORT-6979=20=E6=89=8B=E6=9C=BA=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=99=90=E5=88=B6=E9=AB=98=E5=BA=A6=E7=9A=84=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E9=AB=98=E5=BA=A6=E5=8F=AF=E4=BB=A5=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E8=B6=85=E8=BF=870.8=E4=BB=A5=E4=B8=8A=E7=9A=84=E5=80=BC=3D>?= =?UTF-8?q?=E5=B0=8F=E4=BA=8E0=E6=97=B6=E7=BB=99=E5=87=BA=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/gui/ispinner/UISpinner.java | 2 +- .../src/com/fr/design/locale/designer.properties | 1 + .../com/fr/design/locale/designer_en_US.properties | 1 + .../com/fr/design/locale/designer_ja_JP.properties | 1 + .../com/fr/design/locale/designer_ko_KR.properties | 1 + .../com/fr/design/locale/designer_zh_CN.properties | 1 + .../com/fr/design/locale/designer_zh_TW.properties | 1 + .../ui/designer/mobile/ElementCaseDefinePane.java | 14 ++++++++++++-- 8 files changed, 19 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/ispinner/UISpinner.java b/designer_base/src/com/fr/design/gui/ispinner/UISpinner.java index fc594c6e98..361619ae29 100644 --- a/designer_base/src/com/fr/design/gui/ispinner/UISpinner.java +++ b/designer_base/src/com/fr/design/gui/ispinner/UISpinner.java @@ -23,7 +23,7 @@ import java.awt.event.*; public class UISpinner extends JPanel implements UIObserver, GlobalNameObserver { - protected double value = -1; + protected double value; private static final int SIZE = 20; private static final int LEN = 13; private static final int WIDTH = 13; diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 1ef8947ba4..aeae242e35 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2186,3 +2186,4 @@ FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, th FR-Designer_Official_Website=Official Website: FR-Designer_Support_Email=Email: FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive +FR-Designer_Max_Height_Cannot_Be_Negative=The maximum height cannot be negative diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 4dc38064a5..8702186aad 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2185,3 +2185,4 @@ FR-Designer_Tip_Chart_Adaptivity_Unavailable=Under the reserved layout state, th FR-Designer_Official_Website=Official Website: FR-Designer_Support_Email=Email: FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive +FR-Designer_Max_Height_Cannot_Be_Negative=The maximum height cannot be negative diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 6b3f77938d..265cf79a61 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2183,3 +2183,4 @@ FR-Designer_Tip_Chart_Adaptivity_Unavailable= FR-Designer_Official_Website= FR-Designer_Support_Email= FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= +FR-Designer_Max_Height_Cannot_Be_Negative= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 5ced3e6b3e..08967850cc 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2184,3 +2184,4 @@ FR-Designer_Tip_Chart_Adaptivity_Unavailable= FR-Designer_Official_Website= FR-Designer_Support_Email= FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= +FR-Designer_Max_Height_Cannot_Be_Negative= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 1fc5c34a90..445a306635 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2186,3 +2186,4 @@ FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u5E03\u5C40\u72B6\u600 FR-Designer_Official_Website=\u5B98\u65B9\u7F51\u7AD9\uFF1A FR-Designer_Support_Email=\u652F\u6301\u90AE\u7BB1\uFF1A FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7EDD\u5BF9\u753B\u5E03\u5757\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 +FR-Designer_Max_Height_Cannot_Be_Negative=\u6700\u5927\u9AD8\u5EA6\u4E0D\u53EF\u4E3A\u8D1F\u503C diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index f298c98593..b6da70f375 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2185,3 +2185,4 @@ FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u4FDD\u7559\u4F48\u5C40\u72C0\u614 FR-Designer_Official_Website=\u5B98\u65B9\u7DB2\u7AD9\uFF1A FR-Designer_Support_Email=\u652F\u6301\u90F5\u7BB1\uFF1A FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7D55\u5C0D\u756B\u5E03\u584A\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 +FR-Designer_Max_Height_Cannot_Be_Negative=\u6700\u5927\u9AD8\u5EA6\u4E0D\u53EF\u70BA\u8CA0\u503C diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java index 46f449d461..31498298f1 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java @@ -18,6 +18,9 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.ElementCaseEditor; import com.fr.general.Inter; +import com.fr.stable.StringUtils; +import com.sun.codemodel.internal.JOp; +import jdk.nashorn.internal.scripts.JO; import javax.swing.*; import java.awt.*; @@ -59,10 +62,17 @@ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ this.maxHeightLabel = new UILabel(Inter.getLocText("FR-Designer_Mobile-Height-Percent"), SwingConstants.LEFT); this.maxHeightSpinner = new UISpinner(0, MAX_HEIGHT_LIMIT, 0.01, 0.75) { public void setValue(double value) { + String warningText = StringUtils.EMPTY; if (value > MAX_HEIGHT_LIMIT) { - //弹窗提示 + warningText = Inter.getLocText("FR-Designer_Mobile-Warning"); + } else if (value < 0) { + // 弹窗提示 + warningText = Inter.getLocText("FR-Designer_Max_Height_Cannot_Be_Negative"); + } + if (StringUtils.isNotEmpty(warningText)) { + // 弹窗提示 JOptionPane.showMessageDialog(null, - Inter.getLocText("FR-Designer_Mobile-Warning"), + warningText, Inter.getLocText("FR-Designer_Tooltips"), JOptionPane.PLAIN_MESSAGE); } From eda82abae4c0e149708b224c0de1789302e5ffb2 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 6 Mar 2018 11:32:52 +0800 Subject: [PATCH 65/75] =?UTF-8?q?REPORT-6979=20=E5=8E=BB=E6=8E=89=E6=97=A0?= =?UTF-8?q?=E7=94=A8=20import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/designer/mobile/ElementCaseDefinePane.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java index 31498298f1..cbfbfb68cb 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java @@ -19,11 +19,13 @@ import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.ElementCaseEditor; import com.fr.general.Inter; import com.fr.stable.StringUtils; -import com.sun.codemodel.internal.JOp; -import jdk.nashorn.internal.scripts.JO; -import javax.swing.*; -import java.awt.*; +import javax.swing.BorderFactory; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.SwingConstants; +import java.awt.BorderLayout; +import java.awt.Component; /** * 报表块-移动端属性面板 From f88bc4359baebbf6efc3acb5a8a1d698c8e9ad8f Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 6 Mar 2018 15:57:34 +0800 Subject: [PATCH 66/75] =?UTF-8?q?MOBILE-8070=20=E3=80=90=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E3=80=91=E8=AE=BE=E8=AE=A1=E5=99=A8=E3=80=8B=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E8=87=AA=E9=80=82=E5=BA=94=E3=80=8B=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=A5=BD=E7=9A=84=E7=BB=84=E4=BB=B6=EF=BC=8C=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E6=97=B6=E6=8F=90=E7=A4=BA=E6=96=87=E5=AD=97?= =?UTF-8?q?=E4=B8=8D=E5=AF=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/widget/ui/designer/mobile/ChartEditorDefinePane.java | 1 + 1 file changed, 1 insertion(+) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index ddde0ba21c..c3a7232107 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -157,6 +157,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); + updateTipLabel(); // 数据 populate 完成后,再设置监听 this.bindListeners2Widgets(); From e369617ff81982637be89583acadf2ddf7229f3d Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 6 Mar 2018 15:59:55 +0800 Subject: [PATCH 67/75] =?UTF-8?q?MOBILE-8032=20=E3=80=90=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E3=80=91=E8=AE=BE=E8=AE=A1=E5=99=A8=E3=80=8B=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E8=87=AA=E9=80=82=E5=BA=94=E3=80=8B=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E6=96=87=E5=AD=97=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/gui/ilable/UILabel.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/ilable/UILabel.java b/designer_base/src/com/fr/design/gui/ilable/UILabel.java index c0b921dee1..368bf2383d 100644 --- a/designer_base/src/com/fr/design/gui/ilable/UILabel.java +++ b/designer_base/src/com/fr/design/gui/ilable/UILabel.java @@ -1,9 +1,15 @@ package com.fr.design.gui.ilable; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.stable.StringUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.Icon; +import javax.swing.JFrame; +import javax.swing.JLabel; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Color; +import java.awt.Dimension; /** * Created by IntelliJ IDEA. @@ -13,6 +19,7 @@ import java.awt.*; * Time: 下午3:15 */ public class UILabel extends JLabel { + private static final int HTML_SHIFT_HEIGHT = 3; public UILabel(String text, Icon image, int horizontalAlignment) { super(text, image, horizontalAlignment); @@ -46,6 +53,15 @@ public class UILabel extends JLabel { super(); } + @Override + public Dimension getPreferredSize() { + Dimension preferredSize = super.getPreferredSize(); + // (Windows 下)使用 html 时,文字内容会略微向下偏移,导致文字底部被截断,所以适当增加 UILabel 的高度 + if (StringUtils.isNotEmpty(getText()) && getText().startsWith("")) { + return new Dimension(preferredSize.width, preferredSize.height + HTML_SHIFT_HEIGHT); + } + return preferredSize; + } public static void main(String[] args) { // UILabel label = new UILabel("shishi",SwingConstants.LEFT); From 9995414a980a448d371b879b7c490c0724801764 Mon Sep 17 00:00:00 2001 From: ju Date: Fri, 9 Mar 2018 17:43:47 +0800 Subject: [PATCH 68/75] =?UTF-8?q?REPORT-7118=20=E4=B8=B4=E6=97=B6=E6=8E=88?= =?UTF-8?q?=E6=9D=83=E6=B3=A8=E5=86=8C=E5=A4=B1=E8=B4=A5=20=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E6=8F=90=E5=89=8D=E4=BD=BF=E7=94=A8=E4=BA=86=E8=BF=99?= =?UTF-8?q?=E4=B8=AA=E5=8F=82=E6=95=B0=E7=9A=84=E8=AF=9D=EF=BC=8C=E5=9C=A8?= =?UTF-8?q?lic=E8=A7=A3=E5=AF=86=E7=9A=84=E6=97=B6=E5=80=99=E5=86=8D?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=B0=B1=E4=B8=8D=E4=BC=9A=E7=94=9F=E6=95=88?= =?UTF-8?q?=E4=BA=86=EF=BC=8C=E6=8A=8A=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E8=AE=BE=E7=BD=AE=E5=B0=BD=E5=8F=AF=E8=83=BD=E7=9A=84?= =?UTF-8?q?=E6=8F=90=E5=89=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/start/BaseDesigner.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index 65c31a02b4..37a940ed8d 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -67,7 +67,9 @@ public abstract class BaseDesigner extends ToolBarMenuDock { } private void init(String[] args) { - + + prepare(); + RestartHelper.deleteRecordFilesWhenStart(); ConfigManagerFactory.registerConfigManagerProxy(new ConfigManagerCreatorProxy()); //启动core @@ -108,6 +110,12 @@ public abstract class BaseDesigner extends ToolBarMenuDock { initLookAndFeel(args, splashWindow); } + private void prepare() { + + //屏蔽IBM对私钥公钥的检查 + System.getProperties().setProperty("com.ibm.crypto.provider.DoRSATypeChecking","false"); + } + private void initLookAndFeel(String[] args, SplashWindow splashWindow) { // 初始化look and feel.这个在预加载之前执行是因为lookAndFeel里的东西,预加载时也要用到 From 3fca8d2ad1dd3920855d00633d55c0436a99c795 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 12 Mar 2018 10:12:07 +0800 Subject: [PATCH 69/75] =?UTF-8?q?REPORT-7111=20=E8=AE=BE=E8=AE=A1=E5=99=A8?= =?UTF-8?q?=E2=80=94=20=E8=A1=A8=E5=8D=95=E2=80=94=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E2=80=9C=E8=AE=BE=E8=AE=A1=E6=89=8B=E6=9C=BA=E7=AB=AF=E4=B8=93?= =?UTF-8?q?=E5=B1=9E=E6=A8=A1=E6=9D=BF=E2=80=9D=E5=8A=9F=E8=83=BD=EF=BC=8C?= =?UTF-8?q?=E5=9C=A8=E6=8A=A5=E8=A1=A8=E5=9D=97=E4=B8=AD=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=BA=86=E5=A4=9A=E6=9D=A1=E7=94=BB=E5=B8=83=E8=BE=B9=E7=BC=98?= =?UTF-8?q?=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/FormElementCasePaneDelegate.java | 9 ++++++++- designer/src/com/fr/grid/Grid.java | 14 ++++++++++---- designer/src/com/fr/grid/GridUI.java | 12 +++++++++--- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java index 4549d6d163..fec838578d 100644 --- a/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java @@ -21,6 +21,7 @@ import com.fr.design.menu.ShortCut; import com.fr.design.menu.ToolBarDef; import com.fr.design.present.ConditionAttributesGroupPane; import com.fr.form.main.Form; +import com.fr.grid.Grid; import com.fr.js.NameJavaScriptGroup; import com.fr.page.ReportSettingsProvider; import com.fr.report.elementcase.TemplateElementCase; @@ -34,7 +35,13 @@ public class FormElementCasePaneDelegate extends ElementCasePaneComponent that is handling the editing. */ + public static final int MULTIPLE_PAGINATE_LINE = 1; // 绘制多条分页线 + public static final int SINGLE_HORIZONTAL_PAGINATE_LINE = 2; // 仅绘制一条水平分页线 private static final int VERTICAL_EXTENT_INITIAL_VALUE = 50; private static final int HORIZONTAL_EXTENT_INITIAL_VALUE = 40; transient protected Component editorComponent; @@ -58,6 +60,7 @@ public class Grid extends BaseGridComponent { private Color gridLineColor = UIConstants.RULER_LINE_COLOR; // line color. private boolean isShowPaginateLine = true; + private int paginateLineShowType = MULTIPLE_PAGINATE_LINE; // 如何绘制分页线 private Color paginationLineColor = Color.RED; // line color of paper private boolean isShowVerticalFrozenLine = true; @@ -1432,8 +1435,11 @@ public class Grid extends BaseGridComponent { this.tooltipLocation.setLocation(x, y); } -// @Override -// public void requestFocus() { -// super.requestFocus(); -// } + public int getPaginateLineShowType() { + return paginateLineShowType; + } + + public void setPaginateLineShowType(int paginateLineShowType) { + this.paginateLineShowType = paginateLineShowType; + } } \ No newline at end of file diff --git a/designer/src/com/fr/grid/GridUI.java b/designer/src/com/fr/grid/GridUI.java index d904b7c138..5a38c07899 100644 --- a/designer/src/com/fr/grid/GridUI.java +++ b/designer/src/com/fr/grid/GridUI.java @@ -237,8 +237,10 @@ public class GridUI extends ComponentUI { // 分页线 paginateLineList.clear(); + boolean isShowVerticalPaginateLine = grid.isShowPaginateLine() && grid.getPaginateLineShowType() == Grid.MULTIPLE_PAGINATE_LINE; + new DrawVerticalLineHelper(grid.getVerticalBeginValue(), verticalEndValue, - grid.isShowGridLine(), grid.isShowPaginateLine(), rowHeightList, paperPaintHeight, + grid.isShowGridLine(), isShowVerticalPaginateLine, rowHeightList, paperPaintHeight, paginateLineList, realWidth, resolution).iterateStart2End(g2d); new DrawHorizontalLineHelper(grid.getHorizontalBeginValue(), horizontalEndValue, @@ -607,8 +609,12 @@ public class GridUI extends ComponentUI { //g2d.setXORMode(Utils.getXORColor(grid.getPaginationLineColor())); GraphHelper.setStroke(g2d, GraphHelper.getStroke(Constants.LINE_DASH_DOT)); - for (int i = 0, len = paginateLineList.size(); i < len; i++) { - g2d.draw((Shape) paginateLineList.get(i)); + if (grid.getPaginateLineShowType() == Grid.SINGLE_HORIZONTAL_PAGINATE_LINE) { + g2d.draw((Shape) paginateLineList.get(0)); + } else { + for (int i = 0, len = paginateLineList.size(); i < len; i++) { + g2d.draw((Shape) paginateLineList.get(i)); + } } g2d.setPaintMode(); From 597659add90087ff3d11f90b861fb176875a5808 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 12 Mar 2018 10:30:35 +0800 Subject: [PATCH 70/75] =?UTF-8?q?REPORT-7111=20=E4=BB=A3=E7=A0=81=E8=A7=84?= =?UTF-8?q?=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/FormElementCasePaneDelegate.java | 10 ++++---- designer/src/com/fr/grid/Grid.java | 24 +++---------------- designer/src/com/fr/grid/GridUI.java | 9 +++---- 3 files changed, 12 insertions(+), 31 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java index fec838578d..9762e897dd 100644 --- a/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java @@ -35,12 +35,10 @@ public class FormElementCasePaneDelegate extends ElementCasePaneComponent that is handling the editing. */ + public static final int NO_PAGINATE_LINE = 0; // 不显示分页线 public static final int MULTIPLE_PAGINATE_LINE = 1; // 绘制多条分页线 public static final int SINGLE_HORIZONTAL_PAGINATE_LINE = 2; // 仅绘制一条水平分页线 private static final int VERTICAL_EXTENT_INITIAL_VALUE = 50; @@ -59,8 +60,7 @@ public class Grid extends BaseGridComponent { private boolean showGridLine = true; private Color gridLineColor = UIConstants.RULER_LINE_COLOR; // line color. - private boolean isShowPaginateLine = true; - private int paginateLineShowType = MULTIPLE_PAGINATE_LINE; // 如何绘制分页线 + private int paginateLineShowType = MULTIPLE_PAGINATE_LINE; // 分页线类型 private Color paginationLineColor = Color.RED; // line color of paper private boolean isShowVerticalFrozenLine = true; @@ -205,25 +205,6 @@ public class Grid extends BaseGridComponent { this.getElementCasePane().repaint(); } - /** - * 是否显示分页线 - * - * @return 是否显示分页线 - * @date 2014-12-21-下午6:31:45 - */ - public boolean isShowPaginateLine() { - return isShowPaginateLine; - } - - /** - * Sets to show pagination line. - */ - public void setShowPaginateLine(boolean showPaginateLine) { - this.isShowPaginateLine = showPaginateLine; - - this.getElementCasePane().repaint(); - } - /** * Gets pagination line color. */ @@ -1441,5 +1422,6 @@ public class Grid extends BaseGridComponent { public void setPaginateLineShowType(int paginateLineShowType) { this.paginateLineShowType = paginateLineShowType; + this.getElementCasePane().repaint(); } } \ No newline at end of file diff --git a/designer/src/com/fr/grid/GridUI.java b/designer/src/com/fr/grid/GridUI.java index 5a38c07899..eb4459e258 100644 --- a/designer/src/com/fr/grid/GridUI.java +++ b/designer/src/com/fr/grid/GridUI.java @@ -125,7 +125,7 @@ public class GridUI extends ComponentUI { // richer;聚合报表设计中,最初的ElementCase还没有加到Report中,所以elementCase.getReport()可能为空 ReportSettingsProvider reportSettings = getReportSettings(elementCase); PaperSettingProvider psetting = reportSettings.getPaperSetting(); - if (grid.isShowPaginateLine()) {// paint paper margin line. + if (grid.getPaginateLineShowType() != Grid.NO_PAGINATE_LINE) {// paint paper margin line. PaperSize paperSize = psetting.getPaperSize(); Margin margin = psetting.getMargin(); @@ -171,7 +171,7 @@ public class GridUI extends ComponentUI { private void paintScrollBackground(Graphics2D g2d, Grid grid, Background background, PaperSettingProvider psetting, ReportSettingsProvider reportSettings) { boolean isCanDrawImage = grid.isEditable() || isAuthority; if (isCanDrawImage && (background instanceof ImageBackground)) { - if (!grid.isShowPaginateLine()) { + if (grid.getPaginateLineShowType() == Grid.NO_PAGINATE_LINE) { calculatePaper(psetting, reportSettings); } @@ -237,14 +237,15 @@ public class GridUI extends ComponentUI { // 分页线 paginateLineList.clear(); - boolean isShowVerticalPaginateLine = grid.isShowPaginateLine() && grid.getPaginateLineShowType() == Grid.MULTIPLE_PAGINATE_LINE; + boolean isShowVerticalPaginateLine = grid.getPaginateLineShowType() == Grid.MULTIPLE_PAGINATE_LINE; + boolean isShowHorizontalPaginateLine = grid.getPaginateLineShowType() != Grid.NO_PAGINATE_LINE; new DrawVerticalLineHelper(grid.getVerticalBeginValue(), verticalEndValue, grid.isShowGridLine(), isShowVerticalPaginateLine, rowHeightList, paperPaintHeight, paginateLineList, realWidth, resolution).iterateStart2End(g2d); new DrawHorizontalLineHelper(grid.getHorizontalBeginValue(), horizontalEndValue, - grid.isShowGridLine(), grid.isShowPaginateLine(), columnWidthList, paperPaintWidth, + grid.isShowGridLine(), isShowHorizontalPaginateLine, columnWidthList, paperPaintWidth, paginateLineList, realHeight, resolution).iterateStart2End(g2d); } From 15a732e1480df8fd23f874470529c1eb1b010bba Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Tue, 6 Mar 2018 09:15:16 +0800 Subject: [PATCH 71/75] =?UTF-8?q?REPORT-6973=20=E6=A8=A1=E6=9D=BF=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E4=BA=8B=E4=BB=B6=20=E6=8F=92=E4=BB=B6=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/bbs/UserInfoPane.java | 320 +++++++++--------- designer/src/com/fr/start/Designer.java | 2 +- .../src/com/fr/design/extra/LoginDialog.java | 17 +- .../com/fr/design/extra/WebViewDlgHelper.java | 53 ++- 4 files changed, 224 insertions(+), 168 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/bbs/UserInfoPane.java b/designer/src/com/fr/design/mainframe/bbs/UserInfoPane.java index 4491fef8e5..11e36baef2 100644 --- a/designer/src/com/fr/design/mainframe/bbs/UserInfoPane.java +++ b/designer/src/com/fr/design/mainframe/bbs/UserInfoPane.java @@ -1,5 +1,5 @@ /** - * + * */ package com.fr.design.mainframe.bbs; @@ -27,157 +27,175 @@ import java.util.Date; /** * @author neil - * * @date: 2015-3-5-上午11:19:50 */ -public class UserInfoPane extends BasicPane{ - - //默认未登录颜色 - private static final Color UN_LOGIN_BACKGROUND = UIConstants.TEMPLATE_TAB_PANE_BACKGROUND; - private static final Color LOGIN_BACKGROUND = new Color(184, 220, 242); - private static final int WIDTH = 104; - private static final int HEIGHT = 24; - - //登录成功 - private static final String LOGININ = "0"; - - // 登录框弹出间隔时间 - private static final int LOGIN_DIFF_DAY = 7; - // 等待国际化等相关初始化工作完成之后再弹出登录框 - private static final int WAIT_TIME = 10000; - - private UserInfoLabel userInfoLabel; - - - public UserInfoLabel getUserInfoLabel() { - return userInfoLabel; - } - - public void setUserInfoLabel(UserInfoLabel userInfoLabel) { - this.userInfoLabel = userInfoLabel; - } - - - /** - * 构造函数 - */ - public UserInfoPane() { - this.setPreferredSize(new Dimension(WIDTH,HEIGHT)); - this.setLayout(new BorderLayout()); - - this.userInfoLabel = new UserInfoLabel(this); - - this.markUnSignIn(); - addEnvChangedListener(); - autoPushLoginDialog(); - - this.add(userInfoLabel, BorderLayout.CENTER); - } - - private void addEnvChangedListener(){ - GeneralContext.addEnvChangedListener(new EnvChangedListener() { - @Override - public void envChanged() { - String username = ConfigManager.getProviderInstance().getBbsUsername(); - if (StringUtils.isEmpty(username)){ - markUnSignIn(); - } else { - markSignIn(username); - } - } - }); - } - - - // 计算xml保存的上次弹框时间和当前时间的时间差 - private int getDiffFromLastLogin(){ - String lastBBSTime = DesignerEnvManager.getEnvManager().getLastShowBBSTime(); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - Date lastBBSDate = null; - try { - if(lastBBSTime != null){ - synchronized (this) { - lastBBSDate = sdf.parse(lastBBSTime); - } - Calendar calender = Calendar.getInstance(); - calender.setTime(lastBBSDate); - int dayOld = calender.get(Calendar.DAY_OF_YEAR); - calender.setTime(new Date()); - int dayNew = calender.get(Calendar.DAY_OF_YEAR); - return dayNew - dayOld; - } - } catch (ParseException e) { - FRLogger.getLogger().error(e.getMessage()); - } - return 1; - } - - private void autoPushLoginDialog(){ - Thread showBBSThread = new Thread(new Runnable() { - - @Override - public void run() { - try { - // 等国际化等加载完毕再启动线程弹出登录框 - Thread.sleep(WAIT_TIME); - if(!FRContext.isChineseEnv()){ - return; - } - - //七天弹一次, 如果xml中和当前时间相差小于7天, 就不弹了 - if(getDiffFromLastLogin() < LOGIN_DIFF_DAY){ - return; - } - - } catch (InterruptedException e) { - FRContext.getLogger().error(e.getMessage()); - } - - String userName = ConfigManager.getProviderInstance().getBbsUsername(); - if(StringUtils.isNotEmpty(userName)){ - return; - } - - BBSLoginDialog bbsLoginDialog = userInfoLabel.getBbsLoginDialog(); - if(bbsLoginDialog == null){ - bbsLoginDialog = new BBSLoginDialog(DesignerContext.getDesignerFrame(),userInfoLabel); - userInfoLabel.setBbsLoginDialog(bbsLoginDialog); - } - - bbsLoginDialog.showWindow(); - DesignerEnvManager.getEnvManager().setLastShowBBSTime(DateUtils.DATEFORMAT2.format(new Date())); - } - - }); - showBBSThread.start(); - } - - /** - * 标志未登录状态, 面板设置为灰色 - * - */ - public void markUnSignIn(){ - this.userInfoLabel.setText(Inter.getLocText("FR-Base_UnSignIn")); - this.userInfoLabel.setOpaque(true); - this.userInfoLabel.setBackground(UN_LOGIN_BACKGROUND); - this.userInfoLabel.resetUserName(); - } - - /** - * 标志登陆状态, 面包设置为蓝色 - * @param userName 用户名 - * - */ - public void markSignIn(String userName){ - this.userInfoLabel.setText(userName); - this.userInfoLabel.setUserName(userName); - this.userInfoLabel.setOpaque(true); - this.userInfoLabel.setBackground(LOGIN_BACKGROUND); - } - - @Override - protected String title4PopupWindow() { - return StringUtils.EMPTY; - } +public class UserInfoPane extends BasicPane { + + /** + * 默认未登录颜色 + */ + private static final Color UN_LOGIN_BACKGROUND = UIConstants.TEMPLATE_TAB_PANE_BACKGROUND; + private static final Color LOGIN_BACKGROUND = new Color(184, 220, 242); + private static final int WIDTH = 104; + private static final int HEIGHT = 24; + + /** + * 登录成功 + */ + private static final String LOGININ = "0"; + + /** + * 登录框弹出间隔时间 + */ + private static final int LOGIN_DIFF_DAY = 7; + /** + * 等待国际化等相关初始化工作完成之后再弹出登录框 + */ + private static final int WAIT_TIME = 10000; + + private UserInfoLabel userInfoLabel; + + + private static UserInfoPane instance = new UserInfoPane(); + + + public static UserInfoPane getInstance() { + return instance; + } + + /** + * 构造函数 + */ + private UserInfoPane() { + this.setPreferredSize(new Dimension(WIDTH, HEIGHT)); + this.setLayout(new BorderLayout()); + + this.userInfoLabel = new UserInfoLabel(this); + + this.markUnSignIn(); + addEnvChangedListener(); + autoPushLoginDialog(); + + this.add(userInfoLabel, BorderLayout.CENTER); + } + + public UserInfoLabel getUserInfoLabel() { + return userInfoLabel; + } + + public void setUserInfoLabel(UserInfoLabel userInfoLabel) { + this.userInfoLabel = userInfoLabel; + } + + + /** + * 标志未登录状态, 面板设置为灰色 + */ + public void markUnSignIn() { + this.userInfoLabel.setText(Inter.getLocText("FR-Base_UnSignIn")); + this.userInfoLabel.setOpaque(true); + this.userInfoLabel.setBackground(UN_LOGIN_BACKGROUND); + this.userInfoLabel.resetUserName(); + } + + /** + * 标志登陆状态, 面包设置为蓝色 + * + * @param userName 用户名 + */ + public void markSignIn(String userName) { + this.userInfoLabel.setText(userName); + this.userInfoLabel.setUserName(userName); + this.userInfoLabel.setOpaque(true); + this.userInfoLabel.setBackground(LOGIN_BACKGROUND); + } + + @Override + protected String title4PopupWindow() { + return StringUtils.EMPTY; + } + + private void addEnvChangedListener() { + GeneralContext.addEnvChangedListener(new EnvChangedListener() { + @Override + public void envChanged() { + String username = ConfigManager.getProviderInstance().getBbsUsername(); + if (StringUtils.isEmpty(username)) { + markUnSignIn(); + } else { + markSignIn(username); + } + } + }); + } + + + /** + * 计算xml保存的上次弹框时间和当前时间的时间差 + * + * @return 时间差 + */ + private int getDiffFromLastLogin() { + String lastBBSTime = DesignerEnvManager.getEnvManager().getLastShowBBSTime(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date lastBBSDate; + try { + if (lastBBSTime != null) { + synchronized (this) { + lastBBSDate = sdf.parse(lastBBSTime); + } + Calendar calender = Calendar.getInstance(); + calender.setTime(lastBBSDate); + int dayOld = calender.get(Calendar.DAY_OF_YEAR); + calender.setTime(new Date()); + int dayNew = calender.get(Calendar.DAY_OF_YEAR); + return dayNew - dayOld; + } + } catch (ParseException e) { + FRLogger.getLogger().error(e.getMessage()); + } + return 1; + } + + private void autoPushLoginDialog() { + Thread showBBSThread = new Thread(new Runnable() { + + @Override + public void run() { + try { + // 等国际化等加载完毕再启动线程弹出登录框 + Thread.sleep(WAIT_TIME); + if (!FRContext.isChineseEnv()) { + return; + } + + //七天弹一次, 如果xml中和当前时间相差小于7天, 就不弹了 + if (getDiffFromLastLogin() < LOGIN_DIFF_DAY) { + return; + } + + } catch (InterruptedException e) { + FRContext.getLogger().error(e.getMessage()); + } + + String userName = ConfigManager.getProviderInstance().getBbsUsername(); + if (StringUtils.isNotEmpty(userName)) { + return; + } + + BBSLoginDialog bbsLoginDialog = userInfoLabel.getBbsLoginDialog(); + if (bbsLoginDialog == null) { + bbsLoginDialog = new BBSLoginDialog(DesignerContext.getDesignerFrame(), userInfoLabel); + userInfoLabel.setBbsLoginDialog(bbsLoginDialog); + } + + bbsLoginDialog.showWindow(); + DesignerEnvManager.getEnvManager().setLastShowBBSTime(DateUtils.DATEFORMAT2.format(new Date())); + } + + }); + showBBSThread.start(); + } + } \ No newline at end of file diff --git a/designer/src/com/fr/start/Designer.java b/designer/src/com/fr/start/Designer.java index 8f47abaf41..5be65d3e3a 100644 --- a/designer/src/com/fr/start/Designer.java +++ b/designer/src/com/fr/start/Designer.java @@ -364,7 +364,7 @@ public class Designer extends BaseDesigner { @Override public Component createBBSLoginPane() { if (userInfoPane == null) { - userInfoPane = new UserInfoPane(); + userInfoPane = UserInfoPane.getInstance(); } return userInfoPane; } diff --git a/designer_base/src/com/fr/design/extra/LoginDialog.java b/designer_base/src/com/fr/design/extra/LoginDialog.java index 6ae8a63f96..33983baf21 100644 --- a/designer_base/src/com/fr/design/extra/LoginDialog.java +++ b/designer_base/src/com/fr/design/extra/LoginDialog.java @@ -4,8 +4,12 @@ import com.fr.design.dialog.UIDialog; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.stable.StableUtils; -import javax.swing.*; -import java.awt.*; +import javax.swing.JPanel; +import java.awt.BorderLayout; +import java.awt.Component; +import java.awt.Dialog; +import java.awt.Dimension; +import java.awt.Frame; /** * Created by vito on 2017/5/5. @@ -15,6 +19,15 @@ public class LoginDialog extends UIDialog { public LoginDialog(Frame frame, Component pane) { super(frame); + init(pane); + } + + public LoginDialog(Dialog dialog, Component pane) { + super(dialog); + init(pane); + } + + private void init(Component pane) { if (StableUtils.getMajorJavaVersion() == 8) { setUndecorated(true); } diff --git a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java index 59fb612765..461f950bdb 100644 --- a/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java +++ b/designer_base/src/com/fr/design/extra/WebViewDlgHelper.java @@ -22,6 +22,9 @@ import javax.swing.JOptionPane; import javax.swing.SwingWorker; import java.awt.BorderLayout; import java.awt.Component; +import java.awt.Dialog; +import java.awt.Frame; +import java.awt.Window; import java.io.File; import java.io.IOException; import java.lang.reflect.Constructor; @@ -133,18 +136,22 @@ public class WebViewDlgHelper { if (StableUtils.getMajorJavaVersion() == VERSION_8) { File file = new File(StableUtils.pathJoin(installHome, "scripts")); if (!file.exists()) { - int rv = JOptionPane.showConfirmDialog( - null, - Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"), - Inter.getLocText("FR-Designer-Plugin_Warning"), - JOptionPane.OK_CANCEL_OPTION, - JOptionPane.INFORMATION_MESSAGE - ); - if (rv == JOptionPane.OK_OPTION) { - downloadShopScripts(SHOP_SCRIPTS); - } + confirmDownLoadShopJS(); } else { - showLoginDlg(); + showLoginDlg(DesignerContext.getDesignerFrame()); + updateShopScripts(SHOP_SCRIPTS); + } + } + } + + + public static void createLoginDialog(Window parent) { + if (StableUtils.getMajorJavaVersion() == VERSION_8) { + File file = new File(StableUtils.pathJoin(installHome, "scripts")); + if (!file.exists()) { + confirmDownLoadShopJS(); + } else { + showLoginDlg(parent); updateShopScripts(SHOP_SCRIPTS); } } @@ -164,6 +171,20 @@ public class WebViewDlgHelper { } } + + private static void confirmDownLoadShopJS() { + int rv = JOptionPane.showConfirmDialog( + null, + Inter.getLocText("FR-Designer-Plugin_Shop_Need_Install"), + Inter.getLocText("FR-Designer-Plugin_Warning"), + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.INFORMATION_MESSAGE + ); + if (rv == JOptionPane.OK_OPTION) { + downloadShopScripts(SHOP_SCRIPTS); + } + } + private static void showPluginDlg(String mainJsPath) { try { Class clazz = Class.forName("com.fr.design.extra.PluginWebPane"); @@ -179,13 +200,17 @@ public class WebViewDlgHelper { } } - private static void showLoginDlg() { + private static void showLoginDlg(Window window) { try { Class clazz = Class.forName("com.fr.design.extra.LoginWebPane"); Constructor constructor = clazz.getConstructor(String.class); Component webPane = (Component) constructor.newInstance(installHome); - - UIDialog qqdlg = new LoginDialog(DesignerContext.getDesignerFrame(), webPane); + UIDialog qqdlg; + if (window instanceof Dialog) { + qqdlg = new LoginDialog((Dialog) window, webPane); + } else { + qqdlg = new LoginDialog((Frame) window, webPane); + } LoginWebBridge.getHelper().setDialogHandle(qqdlg); qqdlg.setVisible(true); } catch (Throwable ignored) { From 8124a7ce2261b52d7d63916da891ad47bc639058 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 13 Mar 2018 12:43:16 +0800 Subject: [PATCH 72/75] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9B=B7=E8=BE=BE?= =?UTF-8?q?=E5=9B=BEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../style/background/AlertLineListControlPane.java | 6 +++--- .../style/background/BackgroundListControlPane.java | 6 +++--- .../series/VanChartStackedAndAxisListControlPane.java | 8 ++------ 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java b/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java index 6857302d08..6cca8bff19 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java @@ -51,7 +51,7 @@ public class AlertLineListControlPane extends VanChartUIListControlPane { VanChartRectanglePlot rectanglePlot = (VanChartRectanglePlot) plot; List xAxisList = rectanglePlot.getXAxisList(); List yAxisList = rectanglePlot.getYAxisList(); - String[] axisNames = DefaultAxisHelper.getAllAxisNames(xAxisList, yAxisList); + String[] axisNames = DefaultAxisHelper.getAllAxisNames(rectanglePlot); ChartNameObjectCreator[] creators = {new ChartNameObjectCreator(getAlertAxisName(axisNames), Inter.getLocText("Plugin-ChartF_AlertLine"), VanChartAlertValue.class, getAlertPaneClass())}; @@ -63,7 +63,7 @@ public class AlertLineListControlPane extends VanChartUIListControlPane { List values = axis.getAlertValues(); for (VanChartAlertValue alertValue : values) { alertValue.setAxisNamesArray(axisNames); - alertValue.setAxisName(axis.getAxisName()); + alertValue.setAxisName(rectanglePlot.getXAxisName(axis)); nameObjects.add(new NameObject(alertValue.getAlertPaneSelectName(), alertValue)); } } @@ -72,7 +72,7 @@ public class AlertLineListControlPane extends VanChartUIListControlPane { List values = axis.getAlertValues(); for (VanChartAlertValue alertValue : values) { alertValue.setAxisNamesArray(axisNames); - alertValue.setAxisName(axis.getAxisName()); + alertValue.setAxisName(rectanglePlot.getYAxisName(axis)); nameObjects.add(new NameObject(alertValue.getAlertPaneSelectName(), alertValue)); } } diff --git a/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java b/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java index e288e51a54..d2b9c306b6 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java @@ -53,7 +53,7 @@ public class BackgroundListControlPane extends VanChartUIListControlPane { VanChartRectanglePlot rectanglePlot = (VanChartRectanglePlot) plot; List xAxisList = rectanglePlot.getXAxisList(); List yAxisList = rectanglePlot.getYAxisList(); - String[] axisNames = DefaultAxisHelper.getAllAxisNames(xAxisList, yAxisList); + String[] axisNames = DefaultAxisHelper.getAllAxisNames(rectanglePlot); BackgroundNameObjectCreator[] creators = {new BackgroundNameObjectCreator(getCustomIntervalBackgroundAxisName(axisNames), Inter.getLocText("Plugin-ChartF_CustomIntervalBackground"), VanChartCustomIntervalBackground.class, getIntervalPaneClass())}; @@ -66,7 +66,7 @@ public class BackgroundListControlPane extends VanChartUIListControlPane { List customIntervalBackgrounds = axis.getCustomIntervalBackgroundArray(); for (VanChartCustomIntervalBackground background : customIntervalBackgrounds) { background.setAxisNamesArray(axisNames); - background.setAxisName(axis.getAxisName()); + background.setAxisName((rectanglePlot.getXAxisName(axis))); nameObjects.add(new NameObject(background.getCustomIntervalBackgroundSelectName(), background)); } @@ -75,7 +75,7 @@ public class BackgroundListControlPane extends VanChartUIListControlPane { List customIntervalBackgrounds = axis.getCustomIntervalBackgroundArray(); for (VanChartCustomIntervalBackground background : customIntervalBackgrounds) { background.setAxisNamesArray(axisNames); - background.setAxisName(axis.getAxisName()); + background.setAxisName(rectanglePlot.getXAxisName(axis)); nameObjects.add(new NameObject(background.getCustomIntervalBackgroundSelectName(), background)); } } diff --git a/designer_chart/src/com/fr/plugin/chart/designer/style/series/VanChartStackedAndAxisListControlPane.java b/designer_chart/src/com/fr/plugin/chart/designer/style/series/VanChartStackedAndAxisListControlPane.java index aa7a9b2b5b..60e96f341a 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/style/series/VanChartStackedAndAxisListControlPane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/style/series/VanChartStackedAndAxisListControlPane.java @@ -9,13 +9,11 @@ import com.fr.design.gui.controlpane.ShortCut4JControlPane; import com.fr.general.Inter; import com.fr.general.NameObject; import com.fr.plugin.chart.attr.DefaultAxisHelper; -import com.fr.plugin.chart.attr.axis.VanChartAxis; import com.fr.plugin.chart.attr.plot.VanChartRectanglePlot; import com.fr.plugin.chart.base.AttrSeriesStackAndAxis; import com.fr.plugin.chart.column.VanChartCustomStackAndAxisConditionPane; import com.fr.plugin.chart.designer.component.VanChartUIListControlPane; import com.fr.stable.Nameable; - import java.util.ArrayList; /** @@ -49,10 +47,8 @@ public class VanChartStackedAndAxisListControlPane extends VanChartUIListControl public void populate(VanChartRectanglePlot plot) { this.plot = plot; - java.util.List xAxisList = plot.getXAxisList(); - java.util.List yAxisList = plot.getYAxisList(); - String[] axisXNames = DefaultAxisHelper.getAxisNames(xAxisList); - String[] axisYNames = DefaultAxisHelper.getAxisNames(yAxisList); + String[] axisXNames = DefaultAxisHelper.getXAxisNames(plot); + String[] axisYNames = DefaultAxisHelper.getYAxisNames(plot); java.util.List menuList = new ArrayList(); AttrSeriesStackAndAxis seriesStackAndAxis = new AttrSeriesStackAndAxis(); From 7e7ad08c79fbf9fcc0a4a304a18ea788b017b3c5 Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Tue, 13 Mar 2018 14:02:09 +0800 Subject: [PATCH 73/75] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=9B=B7=E8=BE=BE?= =?UTF-8?q?=E5=9B=BEbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/style/background/AlertLineListControlPane.java | 4 ++-- .../designer/style/background/BackgroundListControlPane.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java b/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java index 6cca8bff19..04114fd724 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/style/background/AlertLineListControlPane.java @@ -93,7 +93,7 @@ public class AlertLineListControlPane extends VanChartUIListControlPane { List axisAlerts = new ArrayList(); for (int i = 0; i < nameables.length; i++) { VanChartAlertValue value = (VanChartAlertValue) ((NameObject) nameables[i]).getObject(); - if (ComparatorUtils.equals(value.getAxisName(), axis.getAxisName())) { + if (ComparatorUtils.equals(value.getAxisName(), rectanglePlot.getXAxisName(axis))) { value.setAlertPaneSelectName(nameables[i].getName()); axisAlerts.add(value); } @@ -104,7 +104,7 @@ public class AlertLineListControlPane extends VanChartUIListControlPane { List axisAlerts = new ArrayList(); for (int i = 0; i < nameables.length; i++) { VanChartAlertValue value = (VanChartAlertValue) ((NameObject) nameables[i]).getObject(); - if (ComparatorUtils.equals(value.getAxisName(), axis.getAxisName())) { + if (ComparatorUtils.equals(value.getAxisName(), rectanglePlot.getYAxisName(axis))) { value.setAlertPaneSelectName(nameables[i].getName()); axisAlerts.add(value); } diff --git a/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java b/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java index d2b9c306b6..0350919334 100644 --- a/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java +++ b/designer_chart/src/com/fr/plugin/chart/designer/style/background/BackgroundListControlPane.java @@ -102,7 +102,7 @@ public class BackgroundListControlPane extends VanChartUIListControlPane { if (!isDefaultIntervalBackground) { for (int i = 0; i < nameables.length; i++) { VanChartCustomIntervalBackground value = (VanChartCustomIntervalBackground) ((NameObject) nameables[i]).getObject(); - if (ComparatorUtils.equals(value.getAxisName(), axis.getAxisName())) { + if (ComparatorUtils.equals(value.getAxisName(), rectanglePlot.getXAxisName(axis))) { value.setCustomIntervalBackgroundSelectName(nameables[i].getName()); axisCustomBackground.add(value); } @@ -115,7 +115,7 @@ public class BackgroundListControlPane extends VanChartUIListControlPane { if (!isDefaultIntervalBackground) { for (int i = 0; i < nameables.length; i++) { VanChartCustomIntervalBackground value = (VanChartCustomIntervalBackground) ((NameObject) nameables[i]).getObject(); - if (ComparatorUtils.equals(value.getAxisName(), axis.getAxisName())) { + if (ComparatorUtils.equals(value.getAxisName(), rectanglePlot.getYAxisName(axis))) { value.setCustomIntervalBackgroundSelectName(nameables[i].getName()); axisCustomBackground.add(value); } From 7098c73a883ee7db7dbfdcb05a92a11dbc57f84b Mon Sep 17 00:00:00 2001 From: vito Date: Tue, 13 Mar 2018 14:55:51 +0800 Subject: [PATCH 74/75] =?UTF-8?q?REPORT-4483=200909=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E5=8A=A0=E5=9B=9E=E9=B8=A3=E8=B0=A2=E5=92=8C=E5=85=B3?= =?UTF-8?q?=E4=BA=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/bbs/BBSConstants.java | 40 +++++- .../fr/design/mainframe/bbs/BBSGuestPane.java | 132 ++++++++++-------- .../fr/design/mainframe/bbs/bbs.properties | 1 + .../com/fr/design/locale/designer.properties | 1 + .../design/locale/designer_en_US.properties | 1 + .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 1 + .../design/locale/designer_zh_TW.properties | 1 + 9 files changed, 117 insertions(+), 62 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java b/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java index d48ce08324..77c5c2da59 100644 --- a/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java +++ b/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java @@ -23,24 +23,35 @@ public class BBSConstants { private static final String GUEST_KEY_ONLINE = "guest.user"; private static final String LINK_KEY = "LINK"; private static final String LINK_KEY_ONLINE = "guest.link"; + private static final String JOIN_LINK_KEY = "JOIN"; + private static final String JOIN_LINK_KEY_ONLINE = "guest.join"; private static Properties PROP = null; public static String[] getAllGuest() { - return loadAllGuestsInfoOnline(GUEST_KEY_ONLINE, loadAllGuestsInfo(GUEST_KEY)); + return loadArrayOnline(GUEST_KEY_ONLINE, loadAttribute(GUEST_KEY)); } public static String[] getAllLink() { - return loadAllGuestsInfoOnline(LINK_KEY_ONLINE, loadAllGuestsInfo(LINK_KEY)); + return loadArrayOnline(LINK_KEY_ONLINE, loadAttribute(LINK_KEY)); } - //加载所有用户的信息, 用户名, 论坛连接 - private static String loadAllGuestsInfo(String key) { + public static String getHowToJoinLink() { + return loadAttributeOnline(JOIN_LINK_KEY_ONLINE, loadAttribute(JOIN_LINK_KEY)); + } + + private static String loadAttribute(String key) { return loadAttribute(key, StringUtils.EMPTY); } - //加载所有用户的信息, 用户名, 论坛连接 - private static String[] loadAllGuestsInfoOnline(String key, String defaultValue) { + /** + * 在线加载数组形式的键值,值使用|分割 + * + * @param key 键 + * @param defaultValue 默认值 + * @return 值 + */ + private static String[] loadArrayOnline(String key, String defaultValue) { String[] allGuests = new String[0]; String guest = SiteCenter.getInstance().acquireUrlByKind(key, defaultValue); if (StringUtils.isNotEmpty(guest)) { @@ -48,7 +59,22 @@ public class BBSConstants { } return allGuests; } - + + /** + * 在线加载建制 + * + * @param key 键 + * @param defaultValue 默认值 + * @return 值 + */ + private static String loadAttributeOnline(String key, String defaultValue) { + String value = SiteCenter.getInstance().acquireUrlByKind(key, defaultValue); + if (StringUtils.isEmpty(value)) { + return StringUtils.EMPTY; + } + return value; + } + //如果要定制, 直接改bbs.properties就行了 private static String loadAttribute(String key, String defaultValue) { if (PROP == null) { diff --git a/designer/src/com/fr/design/mainframe/bbs/BBSGuestPane.java b/designer/src/com/fr/design/mainframe/bbs/BBSGuestPane.java index 2fe20b9015..21937ef4e1 100644 --- a/designer/src/com/fr/design/mainframe/bbs/BBSGuestPane.java +++ b/designer/src/com/fr/design/mainframe/bbs/BBSGuestPane.java @@ -1,5 +1,5 @@ /** - * + * */ package com.fr.design.mainframe.bbs; @@ -20,61 +20,83 @@ import java.net.URI; /** * @author neil - * * @date: 2015-3-13-下午12:54:45 */ -public class BBSGuestPane extends JPanel implements BBSGuestPaneProvider{ - - /** - * 构造函数 - */ - public BBSGuestPane() { - this.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); - initTableContent(); - } - - private void initTableContent(){ - JPanel guestPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - //感谢标签 - JPanel infoPane = initInfoPane(); - guestPane.add(infoPane, BorderLayout.NORTH); - //用户名+超链 - JPanel userPane = initUserPane(); - guestPane.add(userPane, BorderLayout.CENTER); - - this.add(guestPane); - } - - private JPanel initUserPane(){ - double p = TableLayout.PREFERRED; - double[] rowSize = {p, p, p, p, p}; - double[] colSize = {p}; - - Component[][] components = new Component[rowSize.length][colSize.length]; - String[] allGuest = BBSConstants.getAllGuest(); - String[] allLink = BBSConstants.getAllLink(); - int min = Math.min(allGuest.length, components.length); - for (int i = 0; i < min; i++) { - String userName = allGuest[i]; - String url = allLink[i]; - components[i][0] = getURLActionLabel(userName, url); - } - - return TableLayoutHelper.createTableLayoutPane(components, rowSize, colSize); - } - - private JPanel initInfoPane(){ - JPanel infoPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - UILabel infoNorthLabel = new UILabel(Inter.getLocText("FR-Designer_Thank_guest")); - UILabel centerLabel = new UILabel(StringUtils.BLANK); - infoPane.add(infoNorthLabel, BorderLayout.NORTH); - infoPane.add(centerLabel, BorderLayout.CENTER); - - return infoPane; - } - - private ActionLabel getURLActionLabel(final String text, final String url){ - ActionLabel actionLabel = new ActionLabel(text); +public class BBSGuestPane extends JPanel implements BBSGuestPaneProvider { + + /** + * 构造函数 + */ + public BBSGuestPane() { + this.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); + initTableContent(); + } + + private void initTableContent() { + JPanel guestPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + //感谢标签 + JPanel infoPane = initInfoPane(); + guestPane.add(infoPane, BorderLayout.NORTH); + //用户名+超链 + JPanel userPane = initUserPane(); + guestPane.add(userPane, BorderLayout.CENTER); + //如何加入 + JPanel howToJoin = initHowToJoinPane(); + guestPane.add(howToJoin, BorderLayout.SOUTH); + + this.add(guestPane); + } + + private JPanel initUserPane() { + double p = TableLayout.PREFERRED; + double[] rowSize = {p, p, p, p, p}; + double[] colSize = {p}; + + Component[][] components = new Component[rowSize.length][colSize.length]; + String[] allGuest = BBSConstants.getAllGuest(); + String[] allLink = BBSConstants.getAllLink(); + int min = Math.min(allGuest.length, components.length); + for (int i = 0; i < min; i++) { + String userName = allGuest[i]; + String url = allLink[i]; + JPanel sPane = new JPanel(FRGUIPaneFactory.createLeftZeroLayout()); + sPane.add(getURLActionLabel(userName, url)); + components[i][0] = sPane; + } + + return TableLayoutHelper.createTableLayoutPane(components, rowSize, colSize); + } + + private JPanel initInfoPane() { + JPanel infoPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + UILabel infoNorthLabel = new UILabel(Inter.getLocText("FR-Designer_Thank_guest")); + UILabel centerLabel = new UILabel(StringUtils.BLANK); + infoPane.add(infoNorthLabel, BorderLayout.NORTH); + infoPane.add(centerLabel, BorderLayout.CENTER); + + return infoPane; + } + + /** + * Border中嵌套Flow布局。Border布局为了空出间隔, + * Flow布局为了下划线不会超过文字长度 + */ + private JPanel initHowToJoinPane() { + // 超链文字 + JPanel infoPane = FRGUIPaneFactory.createBoxFlowInnerContainer_S_Pane_First0(); + UILabel infoNorthLabel = getURLActionLabel(Inter.getLocText("FR-Designer_How_To_Join"), BBSConstants.getHowToJoinLink()); + infoPane.add(infoNorthLabel); + // 空白行 + UILabel centerLabel = new UILabel(StringUtils.BLANK); + + JPanel borderPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + borderPane.add(centerLabel, BorderLayout.NORTH); + borderPane.add(infoPane, BorderLayout.CENTER); + return borderPane; + } + + private ActionLabel getURLActionLabel(final String text, final String url) { + ActionLabel actionLabel = new ActionLabel(text); actionLabel.addActionListener(new ActionListener() { @Override @@ -86,7 +108,7 @@ public class BBSGuestPane extends JPanel implements BBSGuestPaneProvider{ } } }); - + return actionLabel; } } \ No newline at end of file diff --git a/designer/src/com/fr/design/mainframe/bbs/bbs.properties b/designer/src/com/fr/design/mainframe/bbs/bbs.properties index ae39a3ee33..4c6b27236e 100644 --- a/designer/src/com/fr/design/mainframe/bbs/bbs.properties +++ b/designer/src/com/fr/design/mainframe/bbs/bbs.properties @@ -7,5 +7,6 @@ GET_SIGN_INFO_URL=http\://bbs.finereport.com LINK=http\://bbs.fanruan.com/home.php?mod=space&uid=66470&do=profile|http\://bbs.fanruan.com/home.php?mod=space&uid=67190&do=profile|http\://bbs.fanruan.com/home.php?mod=space&uid=65659&do=profile|http\://bbs.fanruan.com/home.php?mod=space&uid=60352&do=profile|http\://bbs.fanruan.com/home.php?mod=space&uid=78157&do=profile SHARE_URL=http\://bbs.finereport.com USER=cherishdqy\uFF08\u9093\u79CB\u4E91\uFF09|yets11\uFF08\u9676\u5B5D\u6587\uFF09|\u661F\u75D5\uFF08\u71D5\u5B8F\u4F1F\uFF09|\u9759\u542C\u7985\u9E23\uFF08\u674E\u51A0\u519B\uFF09|yiyemeiying\uFF08\u5218\u4F73\uFF09 +JOIN=http\://bbs.fanruan.com/thread-72652-1-1.html VERIFY_URL=http://www.finereporthelp.com:8081/bbs/ReportServer?op=bbs&cmd=verify UPDATE_INFO_URL=http://bbs.finereport.com/source/plugin/infor/infor.html diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index aeae242e35..5420c443c9 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2187,3 +2187,4 @@ FR-Designer_Official_Website=Official Website: FR-Designer_Support_Email=Email: FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive FR-Designer_Max_Height_Cannot_Be_Negative=The maximum height cannot be negative +FR-Designer_How_To_Join= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index 8702186aad..814ca58ed7 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2186,3 +2186,4 @@ FR-Designer_Official_Website=Official Website: FR-Designer_Support_Email=Email: FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=Under the absolute canvas block, the chart does not support the setting of self-adaptive FR-Designer_Max_Height_Cannot_Be_Negative=The maximum height cannot be negative +FR-Designer_How_To_Join=Poke me to learn how to join the thank you list diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 265cf79a61..9dbc2882ff 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2184,3 +2184,4 @@ FR-Designer_Official_Website= FR-Designer_Support_Email= FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= FR-Designer_Max_Height_Cannot_Be_Negative= +FR-Designer_How_To_Join= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 08967850cc..ab9ebead1a 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2185,3 +2185,4 @@ FR-Designer_Official_Website= FR-Designer_Support_Email= FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout= FR-Designer_Max_Height_Cannot_Be_Negative= +FR-Designer_How_To_Join= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 445a306635..e69134f580 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2187,3 +2187,4 @@ FR-Designer_Official_Website=\u5B98\u65B9\u7F51\u7AD9\uFF1A FR-Designer_Support_Email=\u652F\u6301\u90AE\u7BB1\uFF1A FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7EDD\u5BF9\u753B\u5E03\u5757\u72B6\u6001\u4E0B\uFF0C\u56FE\u8868\u4E0D\u652F\u6301\u8BBE\u7F6E\u81EA\u9002\u5E94 FR-Designer_Max_Height_Cannot_Be_Negative=\u6700\u5927\u9AD8\u5EA6\u4E0D\u53EF\u4E3A\u8D1F\u503C +FR-Designer_How_To_Join=\u6233\u6211\u4E86\u89E3\u5982\u4F55\u52A0\u5165\u81F4\u8C22\u540D\u5355 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index b6da70f375..e1e3dc1777 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2186,3 +2186,4 @@ FR-Designer_Official_Website=\u5B98\u65B9\u7DB2\u7AD9\uFF1A FR-Designer_Support_Email=\u652F\u6301\u90F5\u7BB1\uFF1A FR-Designer_Tip_Chart_Adaptivity_Unavailable_In_Absolute_Layout=\u7D55\u5C0D\u756B\u5E03\u584A\u72C0\u614B\u4E0B\uFF0C\u5716\u8868\u4E0D\u652F\u6301\u8A2D\u5B9A\u81EA\u6211\u8ABF\u6574 FR-Designer_Max_Height_Cannot_Be_Negative=\u6700\u5927\u9AD8\u5EA6\u4E0D\u53EF\u70BA\u8CA0\u503C +FR-Designer_How_To_Join=\u6233\u6211\u4E86\u89E3\u5982\u4F55\u52A0\u5165\u81F4\u8B1D\u540D\u55AE From 6c6d040660a615eca250549d7d45d2158af95046 Mon Sep 17 00:00:00 2001 From: vito Date: Tue, 13 Mar 2018 14:57:18 +0800 Subject: [PATCH 75/75] =?UTF-8?q?=E6=97=A0jira=E4=BB=BB=E5=8A=A1:=20?= =?UTF-8?q?=E9=94=99=E5=88=AB=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/mainframe/bbs/BBSConstants.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java b/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java index 77c5c2da59..b12e2b1790 100644 --- a/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java +++ b/designer/src/com/fr/design/mainframe/bbs/BBSConstants.java @@ -61,7 +61,7 @@ public class BBSConstants { } /** - * 在线加载建制 + * 在线加载键值 * * @param key 键 * @param defaultValue 默认值