From d0b778e4e6fb63d353adcb2445952e6068a0519b Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 5 Jan 2018 11:53:15 +0800 Subject: [PATCH 001/116] =?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 002/116] =?UTF-8?q?REPORT-6392=20=E5=86=B3=E7=AD=96?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E7=BB=84=E4=BB=B6=E9=87=8D=E5=90=8D=E6=97=B6?= =?UTF-8?q?=E6=95=B0=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 003/116] =?UTF-8?q?REPORT-6416=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E5=8F=AA=E8=8E=B7=E5=8F=96=E6=A8=A1=E7=89=88=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3=E6=96=B9=E6=B3=95=EF=BC=8Cdesigner-?= =?UTF-8?q?chart=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 004/116] =?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 005/116] =?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 006/116] =?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 007/116] =?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 008/116] =?UTF-8?q?CHART-1922=20=E5=9C=B0=E5=9B=BE&?= =?UTF-8?q?=E7=83=AD=E5=8A=9B=E5=9C=B0=E5=9B=BE=E5=9C=B0=E5=9B=BE=E8=BE=B9?= =?UTF-8?q?=E7=95=8C=E4=B8=AD=E5=8F=AA=E8=8E=B7=E5=8F=96=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E5=8F=82=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 009/116] =?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 010/116] =?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 011/116] =?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 012/116] =?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 013/116] =?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 014/116] =?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 444ed242c1b668aa2514de6d3d52a1e13f4d9a81 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 9 Jan 2018 15:59:44 +0800 Subject: [PATCH 015/116] =?UTF-8?q?REPORT-6463=20=20tabpane=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widget/accessibles/TemplateStylePane.java | 2 +- .../beans/actions/FormDeleteAction.java | 3 - .../designer/beans/models/SelectionModel.java | 3 +- .../creator/cardlayout/TabMoveAction.java | 1 + .../creator/cardlayout/XWCardLayout.java | 7 ++- .../cardlayout/XWCardMainBorderLayout.java | 31 +++++++--- .../creator/cardlayout/XWCardTagLayout.java | 37 ++++++------ .../creator/cardlayout/XWTabFitLayout.java | 60 ++++++++++--------- .../gui/xpane/CardTagLayoutBorderPane.java | 19 +++--- .../gui/xpane/LayoutBorderPreviewPane.java | 2 - .../layout/WCardMainLayoutDefinePane.java | 9 ++- 11 files changed, 105 insertions(+), 69 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePane.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePane.java index e9afb05e9c..b066fab966 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePane.java +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePane.java @@ -43,8 +43,8 @@ public class TemplateStylePane extends BasicPane { listModel.addElement(new CardTemplateStyle()); listModel.addElement(new BannerTemplateStyle()); listModel.addElement(new BookMarkTemplateStyle()); - listModel.addElement(new PentagonTemplateStyle()); listModel.addElement(new MenuTemplateStyle()); + listModel.addElement(new PentagonTemplateStyle()); listModel.addElement(new TrapezoidTemplateStyle()); styleList = new JList(listModel); styleList.setCellRenderer(render); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java index d799fed63b..52d9aa8ea3 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java @@ -48,11 +48,8 @@ public class FormDeleteAction extends FormWidgetEditAction { if (designer == null) { return false; } - FormSelection selection = designer.getSelectionModel().getSelection(); - XCreator creator = selection.getSelectedCreator(); designer.getSelectionModel().deleteSelection(); - creator.deleteRelatedComponent(creator, designer); return false; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index 850b737a36..fe94edc3b2 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -234,7 +234,6 @@ public class SelectionModel { */ public void deleteSelection() { XCreator[] roots = selection.getSelectedCreators(); - if (roots.length > 0) { boolean isInPara = true; // 在参数面板内删除控件 for (XCreator creator : roots) { @@ -245,10 +244,12 @@ public class SelectionModel { designer.removeParaComponent(); } removeCreatorFromContainer(creator, creator.getWidth(), creator.getHeight()); + creator.deleteRelatedComponent(creator, designer); creator.removeAll(); // 清除被选中的组件 selection.reset(); } + setSelectedCreator(isInPara ? designer.getParaComponent() : designer.getRootComponent()); // 触发事件 designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_DELETED); diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java index 354846d91a..008a41fab5 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java @@ -35,6 +35,7 @@ public class TabMoveAction extends FormUndoableAction { moveTabAction(xwCardTagLayout, currentButton, xCurrentTab, currentTab); xwCardTagLayout.setSwitchingTab(false); + xwCardTagLayout.doLayout(); }catch (Exception e){ xwCardTagLayout.setSwitchingTab(false); FRLogger.getLogger().error(e.getMessage()); diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java index 984aac144c..4c1a957fc1 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java @@ -31,6 +31,7 @@ import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WCardTitleLayout; +import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; @@ -59,6 +60,8 @@ public class XWCardLayout extends XLayoutContainer { private static final int LAYOUT_INDEX = 0; + public static final String DEFAULT_NAME = "cardlayout"; + //默认蓝色标题背景 private static final Color TITLE_COLOR = new Color(51, 132, 240); @@ -83,7 +86,7 @@ public class XWCardLayout extends XLayoutContainer { */ @Override public String createDefaultName() { - return "cardlayout"; + return DEFAULT_NAME; } /** @@ -210,6 +213,7 @@ public class XWCardLayout extends XLayoutContainer { Dimension dimension = new Dimension(); //放置标题的tab流式布局 WCardTagLayout tagLayout = new WCardTagLayout("tabpane" + widgetName.replaceAll(createDefaultName(), "")); + tagLayout.setNewTab(true); XWCardTagLayout xTag = new XWCardTagLayout(tagLayout, dimension, this); xTag.setBackupParent(xTitle); @@ -464,6 +468,7 @@ public class XWCardLayout extends XLayoutContainer { selectionModel.setSelectedCreator(mainLayout); selectionModel.deleteSelection(); } + @Override public void setBorder(Border border) { super.setBorder(border); 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..01acaacfef 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 @@ -19,8 +19,11 @@ import com.fr.design.mainframe.FormDesigner; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WBorderLayout; +import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.WTabDisplayPosition; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.form.ui.container.cardlayout.WCardTagLayout; +import com.fr.form.ui.container.cardlayout.WCardTitleLayout; import com.fr.general.ComparatorUtils; import com.fr.general.IOUtils; import com.fr.general.Inter; @@ -126,9 +129,29 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ comp.setBackupParent(this); } } + dealCompatibility(wb); + isRefreshing = false; } + private void dealCompatibility(WBorderLayout wb){ + WCardMainBorderLayout ob = (WCardMainBorderLayout)wb; + WCardLayout cardLayout = ob.getCardPart(); + //tab结构改变需要兼容以前的tab,重新命名tabpane + WCardTitleLayout wCardTitleLayout = ob.getTitlePart(); + if(cardLayout == null || wCardTitleLayout == null){ + return; + } + WCardTagLayout wCardTagLayout = wCardTitleLayout.getTagPart(); + String tabpaneName = cardLayout.getWidgetName(); + if (!wCardTagLayout.isNewTab()) { + wCardTagLayout.setWidgetName(tabpaneName); + cardLayout.setWidgetName(XWCardLayout.DEFAULT_NAME + tabpaneName.replaceAll(XWCardTagLayout.DEFAULT_NAME, "")); + wCardTagLayout.setNewTab(true); + wCardTagLayout.setNewTab(true); + } + } + /** * 切换到非添加状态 * @@ -341,13 +364,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ */ @Override public XLayoutContainer getTopLayout() { - XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout(); - if (xTopLayout != null && !xTopLayout.isEditable()){ - return xTopLayout; - } - else{ return this; - } } @Override @@ -362,7 +379,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ */ @Override public void firePropertyChange(){ - return; + } diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index 8f71b08be7..179864bd57 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -19,6 +19,7 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.imenu.UIPopupMenu; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WCardLayout; @@ -56,6 +57,8 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { private static final int DEFAULT_BUTTON_HEIGHT = 40; + public static final String DEFAULT_NAME = "tabpane"; + public CardSwitchButton getCurrentCard() { return currentCard; } @@ -163,7 +166,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { @Override public String createDefaultName() { - return "tabpane"; + return DEFAULT_NAME; } /** @@ -324,6 +327,8 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { int tabLength = this.getComponentCount(); Map cardWidth = new HashMap(); Map cardHeight = new HashMap(); + XLayoutContainer parent = this.getBackupParent(); + for (int i = 0; i < tabLength; i++) { XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i); CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); @@ -351,17 +356,17 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } } if(isHori()){ - adjustTabsH(tabLength, cardWidth, cardHeight); + adjustTabsH(parent, tabLength, cardWidth, cardHeight); }else { - adjustTabsV(tabLength, cardWidth, cardHeight); + adjustTabsV(parent, tabLength, cardWidth, cardHeight); } + fixTitleLayout(parent); } - public void adjustTabsH(int tabLength, Map width, Map height) { + public void adjustTabsH(XLayoutContainer parent, int tabLength, Map width, Map height) { if (width == null) { return; } - XLayoutContainer parent = this.getBackupParent(); int tabPaneSize = parent.getHeight(); //调整XWCardTagLayout的高度 int tempX = 0; @@ -369,9 +374,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { Rectangle rectangle = this.getComponent(i).getBounds(); Integer cardWidth = width.get(i) + WIDTH_SIDE_OFFSET; Integer cardHeight = tabPaneSize; - if(cardHeight < DEFAULT_BUTTON_HEIGHT){ - cardHeight = DEFAULT_BUTTON_HEIGHT; - } rectangle.setBounds(tempX, 0, cardWidth, cardHeight); tempX += cardWidth; XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i); @@ -394,11 +396,10 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } - public void adjustTabsV(int tabLength, Map width, Map height) { + public void adjustTabsV(XLayoutContainer parent, int tabLength, Map width, Map height) { if (width == null) { return; } - XLayoutContainer parent = this.getBackupParent(); int tabPaneSize = parent.getWidth(); int tempY = 0; for (int i = 0; i < tabLength; i++) { @@ -406,13 +407,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { Integer cardWidth = tabPaneSize; //先用这边的固定高度 Integer cardHeight = height.get(i) + HEIGHT_SIDE_OFFSET; - - if(cardWidth < DEFAULT_BUTTON_HEIGHT){ - cardWidth = DEFAULT_BUTTON_HEIGHT; - } - if(cardHeight < DEFAULT_BUTTON_HEIGHT){ - cardHeight = DEFAULT_BUTTON_HEIGHT; - } rectangle.setBounds(0, tempY, cardWidth, cardHeight); tempY += cardHeight; XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i); @@ -421,4 +415,13 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } + private void fixTitleLayout(XLayoutContainer parent){ + FormDesigner formDesigner = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + LayoutAdapter layoutAdapter = AdapterBus.searchLayoutAdapter(formDesigner, parent); + if (layoutAdapter != null) { + parent.setBackupBound(parent.getBounds()); + layoutAdapter.fix(parent); + } + } + } \ No newline at end of file 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..493982f629 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; @@ -266,21 +271,22 @@ public class XWTabFitLayout extends XWFitLayout { //放置tab按钮的tagLayout XWCardTagLayout tagLayout = titleLayout.getTagPart(); WCardTagLayout tag = (WCardTagLayout) tagLayout.toData(); - + + //先删除对应的tab按钮 + for(int i=0;i index){ - button.setIndex(--buttonIndex); - } - if(currentFitIndex > index){ - tempFitLayout.setIndex(--currentFitIndex); - } - } + + private void refreshIndex(WCardTagLayout tag, XWCardLayout cardLayout, int index) { + for (int i = 0; i < tag.getWidgetCount(); i++) { + CardSwitchButton button = tag.getSwitchButton(i); + XWTabFitLayout tempFit = (XWTabFitLayout) cardLayout.getComponent(i); + WTabFitLayout tempFitLayout = (WTabFitLayout) tempFit.toData(); + int currentFitIndex = tempFitLayout.getIndex(); + int buttonIndex = button.getIndex(); + if (buttonIndex > index) { + button.setIndex(--buttonIndex); + } + if (currentFitIndex > index) { + tempFitLayout.setIndex(--currentFitIndex); + } + } } /** @@ -461,7 +467,7 @@ public class XWTabFitLayout extends XWFitLayout { } //控件树上显示其taglayout层 if ((cardSwitchButton != null)) { - return cardSwitchButton.getTagLayout(); + return cardSwitchButton.getBackupParent(); } return super.getParentShow(); } diff --git a/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPane.java b/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPane.java index e49416356e..89bbd10568 100644 --- a/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPane.java @@ -92,15 +92,18 @@ public class CardTagLayoutBorderPane extends LayoutBorderPane { return; } - public LayoutBorderStyle update() { - LayoutBorderStyle style = new LayoutBorderStyle(); - style.setBorderStyle(this.getBorderStyleCombo().getSelectedIndex()); - style.setBorder(this.getCurrentLineCombo().getSelectedLineStyle()); - style.setColor(this.getCurrentLineColorPane().getColor()); - style.setBackground(this.getBackgroundPane().update()); - style.setAlpha((float)(this.getNumberDragPane().updateBean()/this.getMaxNumber())); - return style; + public LayoutBorderStyle update() { + LayoutBorderStyle style = new LayoutBorderStyle(); + if (this.getBorderStyle() != null) { + style.setStyle(this.getBorderStyle()); } + style.setBorderStyle(this.getBorderStyleCombo().getSelectedIndex()); + style.setBorder(this.getCurrentLineCombo().getSelectedLineStyle()); + style.setColor(this.getCurrentLineColorPane().getColor()); + style.setBackground(this.getBackgroundPane().update()); + style.setAlpha((float) (this.getNumberDragPane().updateBean() / this.getMaxNumber())); + return style; + } protected void populateBorderType(){ return; diff --git a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java index ea75ee3df2..5aa65360a6 100644 --- a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java @@ -92,8 +92,6 @@ public class LayoutBorderPreviewPane extends JPanel{ jp.setBounds(smallGAP,smallGAP, getWidth() - GAP, height); borderStyle.paint(g, new Rectangle2D.Double(smallGAP, smallGAP, getWidth() - GAP, getHeight() - GAP)); jp.setFontObject(borderStyle.getTitle().getFrFont()); - jp.setVisible(borderStyle.getType() == LayoutBorderStyle.TITLE); - } } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java index ff2b139c2a..ffafb9e87f 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java @@ -2,6 +2,8 @@ package com.fr.design.widget.ui.designer.layout; import com.fr.design.designer.IntervalConstants; import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.cardlayout.XWCardLayout; +import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; @@ -13,6 +15,8 @@ import com.fr.design.widget.ui.designer.AbstractDataModify; import com.fr.form.ui.LayoutBorderStyle; import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.form.ui.container.cardlayout.WCardTagLayout; +import com.fr.form.ui.container.cardlayout.WCardTitleLayout; import com.fr.general.Inter; import javax.swing.BorderFactory; @@ -21,6 +25,7 @@ import java.awt.BorderLayout; import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; +import java.util.UUID; /** * Created by ibm on 2017/8/2. @@ -75,7 +80,7 @@ public class WCardMainLayoutDefinePane extends AbstractDataModify Date: Tue, 9 Jan 2018 16:01:17 +0800 Subject: [PATCH 016/116] =?UTF-8?q?=E6=97=A0?= 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, 5 insertions(+), 5 deletions(-) diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index 47e53bd722..70ec3193a4 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -79,11 +79,11 @@ public abstract class BaseDesigner extends ToolBarMenuDock { DesignUtils.setPort(getStartPort()); } // 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了 - if (DesignUtils.isStarted()) { - DesignUtils.clientSend(args); - return; - } - +// if (DesignUtils.isStarted()) { +// DesignUtils.clientSend(args); +// return; +// } +// Register.load(); //标记一下是设计器启动 PluginConversionModule.getInstance().markDesignerStart(); From 0fa79b9bdbb6b058ed2664f059fce2c904e1586d Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 9 Jan 2018 16:02:18 +0800 Subject: [PATCH 017/116] =?UTF-8?q?=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/start/BaseDesigner.java | 10 +++++----- .../creator/cardlayout/XWCardMainBorderLayout.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index 70ec3193a4..eb4b2c6f23 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -79,11 +79,11 @@ public abstract class BaseDesigner extends ToolBarMenuDock { DesignUtils.setPort(getStartPort()); } // 如果端口被占用了 说明程序已经运行了一次,也就是说,已经建立一个监听服务器,现在只要给服务器发送命令就好了 -// if (DesignUtils.isStarted()) { -// DesignUtils.clientSend(args); -// return; -// } -// + if (DesignUtils.isStarted()) { + DesignUtils.clientSend(args); + return; + } + Register.load(); //标记一下是设计器启动 PluginConversionModule.getInstance().markDesignerStart(); 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 01acaacfef..fda713bcf3 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 @@ -379,7 +379,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ */ @Override public void firePropertyChange(){ - + return; } From 321c74125a80dcfc10942aa06b323cbbb91454de Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 9 Jan 2018 16:03:51 +0800 Subject: [PATCH 018/116] =?UTF-8?q?=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/designer/creator/cardlayout/XWTabFitLayout.java | 4 ++-- 1 file changed, 2 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 493982f629..5e85b503a4 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 @@ -43,7 +43,7 @@ import java.beans.IntrospectionException; */ public class XWTabFitLayout extends XWFitLayout { - private static final int MIN_SIZE = 1; + private static final int MIN_SIZE = 0; private static final int WIDTH_SIDE_OFFSET = 57; @@ -281,7 +281,7 @@ public class XWTabFitLayout extends XWFitLayout { } } //删除整个tab布局 - if(tag.getWidgetCount() <= 0){ + if(tag.getWidgetCount() <= MIN_SIZE){ deleteTabLayout(mainLayout,designer); return; } From b405fe077795bbf9ca3a7a9756f591c944b448f9 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 10 Jan 2018 14:47:13 +0800 Subject: [PATCH 019/116] =?UTF-8?q?REPORT-6443=20=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E6=A0=91=E6=B6=88=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/ComponentTree.java | 1 - .../src/com/fr/design/mainframe/FormHierarchyTreePane.java | 2 ++ 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index c7b2412518..22eeb36890 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -52,7 +52,6 @@ public class ComponentTree extends JTree { } private void initListeners() { - this.addTreeSelectionListener(designer); ComponetTreeMouseListener componetTreeMouseListener = new ComponetTreeMouseListener(this); this.addMouseMotionListener(componetTreeMouseListener); this.addMouseListener(componetTreeMouseListener); diff --git a/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java b/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java index c5a27044df..540dd63c23 100644 --- a/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java +++ b/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java @@ -111,6 +111,8 @@ public class FormHierarchyTreePane extends FormDockView implements HierarchyTree // 这里要刷新一下,否则控件树中没有任何一个控件处于选中状态 refreshComponentTree(); + // 初始刷新完成后,再加 listener + componentTree.addTreeSelectionListener(formDesigner); } private void refreshComponentTree() { From 4f06afdd3783777193d582f6f7480315a439551a Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 10 Jan 2018 16:08:23 +0800 Subject: [PATCH 020/116] =?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 8125245303a9082fbcb78b763e64cdc5c1fe936f Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 15 Jan 2018 11:16:47 +0800 Subject: [PATCH 021/116] =?UTF-8?q?REPORT-6270=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84=E7=9B=B8=E5=85=B3bug=3D>?= =?UTF-8?q?=E5=88=A0=E6=8E=A7=E4=BB=B6=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E2=80=9C=E4=BB=A5=E4=B8=8B=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E6=9C=AA=E7=94=9F=E6=88=90=E2=80=9D=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E5=AE=9E=E6=97=B6=E6=98=BE=E7=A4=BA=EF=BC=8C=E8=A6=81=E5=86=8D?= =?UTF-8?q?=E7=82=B9=E4=B8=80=E4=B8=8Bpara=E6=89=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/JForm.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index ff15e6dc75..30f3f5ca07 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -248,9 +248,11 @@ public class JForm extends JTemplate implements BaseJForm { @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); From c565621075af9a4366e4ea3a9a78901a13f5ed08 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 15 Jan 2018 11:43:38 +0800 Subject: [PATCH 022/116] =?UTF-8?q?REPORT-6512=20=20=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=B8=80=E4=BA=9B=E9=81=97=E7=95=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/TabMoveAction.java | 2 ++ .../cardlayout/XWCardMainBorderLayout.java | 19 ++++++++++- .../creator/cardlayout/XWCardTagLayout.java | 33 +++++++++++-------- .../layout/WCardMainLayoutDefinePane.java | 2 +- 4 files changed, 41 insertions(+), 15 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java index 008a41fab5..9b5dd26623 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/TabMoveAction.java @@ -2,6 +2,7 @@ package com.fr.design.designer.creator.cardlayout; import com.fr.design.designer.beans.actions.FormUndoableAction; import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.FormHierarchyTreePane; import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.FRLogger; @@ -36,6 +37,7 @@ public class TabMoveAction extends FormUndoableAction { xwCardTagLayout.setSwitchingTab(false); xwCardTagLayout.doLayout(); + FormHierarchyTreePane.getInstance().refreshDockingView(); }catch (Exception e){ xwCardTagLayout.setSwitchingTab(false); FRLogger.getLogger().error(e.getMessage()); 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 fda713bcf3..fb9510d1a6 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 @@ -16,11 +16,14 @@ import com.fr.design.designer.creator.XWidgetCreator; import com.fr.design.icon.IconPathConstants; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; +import com.fr.form.event.Listener; +import com.fr.form.ui.LayoutBorderStyle; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.WTabDisplayPosition; +import com.fr.form.ui.container.WTitleLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WCardTitleLayout; @@ -146,9 +149,23 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ String tabpaneName = cardLayout.getWidgetName(); if (!wCardTagLayout.isNewTab()) { wCardTagLayout.setWidgetName(tabpaneName); + LayoutBorderStyle borderStyle = cardLayout.getBorderStyle(); + if(borderStyle != null){ + //新tab默认都有标题 + borderStyle.setType(LayoutBorderStyle.TITLE); + } cardLayout.setWidgetName(XWCardLayout.DEFAULT_NAME + tabpaneName.replaceAll(XWCardTagLayout.DEFAULT_NAME, "")); + wCardTitleLayout.setCardName(cardLayout.getWidgetName()); wCardTagLayout.setNewTab(true); - wCardTagLayout.setNewTab(true); + //这边需要设置成默认值兼容之前的title高度(不知道为啥之前的title的高度会改变) + ob.setNorthSize(WTitleLayout.TITLE_HEIGHT); + for(int i = 0 ;i < cardLayout.getListenerSize(); i ++){ + Listener listener = cardLayout.getListener(i); + if(listener != null){ + wCardTagLayout.addListener(listener); + } + } + cardLayout.clearListeners(); } } diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index 179864bd57..7dc69ba5d6 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -21,7 +21,9 @@ import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.CardSwitchButton; +import com.fr.form.ui.LayoutBorderStyle; import com.fr.form.ui.Widget; +import com.fr.form.ui.WidgetTitle; import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.WTabDisplayPosition; import com.fr.form.ui.container.cardlayout.WCardTagLayout; @@ -55,7 +57,7 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { private static final int HEIGHT_SIDE_OFFSET = 20; - private static final int DEFAULT_BUTTON_HEIGHT = 40; + private static final int DEFAULT_VERTICAL_SPACING = 3; public static final String DEFAULT_NAME = "tabpane"; @@ -323,41 +325,46 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } public void setTabsAndAdjust() { - WCardTagLayout wCardTagLayout = (WCardTagLayout)this.toData(); + WCardTagLayout wCardTagLayout = (WCardTagLayout) this.toData(); int tabLength = this.getComponentCount(); Map cardWidth = new HashMap(); Map cardHeight = new HashMap(); - XLayoutContainer parent = this.getBackupParent(); + XLayoutContainer parent = this.getBackupParent(); for (int i = 0; i < tabLength; i++) { XCardSwitchButton temp = (XCardSwitchButton) this.getComponent(i); CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); String tempText = tempCard.getText(); - Font f = tempCard.getFont(); + if (this.cardLayout == null) { + initCardLayout(); + } + LayoutBorderStyle borderStyle = this.cardLayout.toData().getBorderStyle(); + WidgetTitle title = borderStyle.getTitle(); + FRFont f = title.getFrFont(); FontMetrics fm = GraphHelper.getFontMetrics(f); - switch (wCardTagLayout.getTextDirection()){ + switch (wCardTagLayout.getTextDirection()) { case TEXT_HORI_DERECTION: - cardWidth.put(i,fm.stringWidth(tempText)); - cardHeight.put(i,fm.getHeight()); + cardWidth.put(i, fm.stringWidth(tempText)); + cardHeight.put(i, fm.getHeight()); break; case TEXT_VER_DIRECTION: int perHeight = fm.getHeight(); int wordCount = tempText.length(); - if(tempText.length() !=0 ){ - cardWidth.put(i,fm.stringWidth(tempText)/tempText.length()); - }else { + if (tempText.length() != 0) { + cardWidth.put(i, fm.stringWidth(tempText) / tempText.length()); + } else { cardWidth.put(i, 0); } - cardHeight.put(i,(perHeight+3)*wordCount); + cardHeight.put(i, (perHeight + DEFAULT_VERTICAL_SPACING) * wordCount); break; default: break; } } - if(isHori()){ + if (isHori()) { adjustTabsH(parent, tabLength, cardWidth, cardHeight); - }else { + } else { adjustTabsV(parent, tabLength, cardWidth, cardHeight); } fixTitleLayout(parent); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java index ffafb9e87f..68e88bb6b7 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java @@ -78,7 +78,7 @@ public class WCardMainLayoutDefinePane extends AbstractDataModify Date: Mon, 15 Jan 2018 14:45:29 +0800 Subject: [PATCH 023/116] =?UTF-8?q?REPORT-6441=209.0=20feature=E9=87=8C?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=9A=84ctrl=E5=BF=AB=E6=8D=B7=E9=94=AE?= =?UTF-8?q?=E9=83=BD=E6=B2=A1=E7=94=A8=E4=BA=86.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/imenu/UIHeadMenu.java | 8 +- .../src/com/fr/design/gui/imenu/UIMenu.java | 76 ++----------------- 2 files changed, 14 insertions(+), 70 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java index 627982ffe5..6b560ccf49 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIHeadMenu.java @@ -268,7 +268,13 @@ public class UIHeadMenu extends UIMenu { return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); } - + /** + * 得到子元素 + * @return 子元素 + */ + public MenuElement[] getSubElements() { + return popupMenu == null ? new MenuElement[0] : new MenuElement[]{popupMenu}; + } } diff --git a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java index bcdf2ab9f4..3fbc3c9ac1 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java @@ -75,7 +75,9 @@ public class UIMenu extends JMenu { }; popupMenu.setInvoker(this); - + if (popupMenu.getComponentCount() != 0) { + System.out.println(popupMenu.getComponentCount()); + } popupListener = createWinListener(popupMenu); } } @@ -213,75 +215,11 @@ public class UIMenu extends JMenu { popupMenu.insert(new JPopupMenu.Separator(), index); } - /** - * 移除 - * @param item 菜单项 + * 得到子元素 + * @return 子元素 */ - public void remove(JMenuItem item) { - if (popupMenu != null) { - popupMenu.remove(item); - } - } - - /** - * 移除指定位置菜单项 - * @param pos 指定位置 - */ - public void remove(int pos) { - if (pos < 0) { - throw new IllegalArgumentException("index less than zero."); - } - if (pos > getItemCount()) { - throw new IllegalArgumentException("index greater than the number of items."); - } - if (popupMenu != null) { - popupMenu.remove(pos); - } - } - - /** - * 移除组件 - * @param c 组件 - */ - public void remove(Component c) { - if (popupMenu != null) { - popupMenu.remove(c); - } + public MenuElement[] getSubElements() { + return popupMenu == null ? new MenuElement[0] : new MenuElement[]{popupMenu}; } - - /** - * 移除所有 - */ - public void removeAll() { - if (popupMenu != null) { - popupMenu.removeAll(); - } - } - - /** - * 组件总数 - * @return 组件总数 - */ - public int getMenuComponentCount() { - return (popupMenu == null) ? 0 : popupMenu.getComponentCount(); - } - - /** - * 指定位置组件 - * @param n 指定位置 - * @return 组件 - */ - public Component getMenuComponent(int n) { - return (popupMenu == null) ? null : popupMenu.getComponent(n); - } - - /** - * 所有组件 - * @return 所有组件 - */ - public Component[] getMenuComponents() { - return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); - } - } \ No newline at end of file From 9bba8fa942670f45e8aaf61b157e4a2c09f25041 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Mon, 15 Jan 2018 14:47:08 +0800 Subject: [PATCH 024/116] =?UTF-8?q?REPORT-6441=209.0=20feature=E9=87=8C?= =?UTF-8?q?=E6=89=80=E6=9C=89=E7=9A=84ctrl=E5=BF=AB=E6=8D=B7=E9=94=AE?= =?UTF-8?q?=E9=83=BD=E6=B2=A1=E7=94=A8=E4=BA=86.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/gui/imenu/UIMenu.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java index 3fbc3c9ac1..4252656c18 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java @@ -215,6 +215,77 @@ public class UIMenu extends JMenu { popupMenu.insert(new JPopupMenu.Separator(), index); } + + /** + * 移除 + * @param item 菜单项 + */ + public void remove(JMenuItem item) { + if (popupMenu != null) { + popupMenu.remove(item); + } + } + + /** + * 移除指定位置菜单项 + * @param pos 指定位置 + */ + public void remove(int pos) { + if (pos < 0) { + throw new IllegalArgumentException("index less than zero."); + } + if (pos > getItemCount()) { + throw new IllegalArgumentException("index greater than the number of items."); + } + if (popupMenu != null) { + popupMenu.remove(pos); + } + } + + /** + * 移除组件 + * @param c 组件 + */ + public void remove(Component c) { + if (popupMenu != null) { + popupMenu.remove(c); + } + } + + /** + * 移除所有 + */ + public void removeAll() { + if (popupMenu != null) { + popupMenu.removeAll(); + } + } + + /** + * 组件总数 + * @return 组件总数 + */ + public int getMenuComponentCount() { + return (popupMenu == null) ? 0 : popupMenu.getComponentCount(); + } + + /** + * 指定位置组件 + * @param n 指定位置 + * @return 组件 + */ + public Component getMenuComponent(int n) { + return (popupMenu == null) ? null : popupMenu.getComponent(n); + } + + /** + * 所有组件 + * @return 所有组件 + */ + public Component[] getMenuComponents() { + return (popupMenu == null) ? new Component[0] : popupMenu.getComponents(); + } + /** * 得到子元素 * @return 子元素 From fe19f2ec55604162f0295b2d1df1fb262a0b2cd7 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Mon, 15 Jan 2018 14:48:19 +0800 Subject: [PATCH 025/116] =?UTF-8?q?=E5=88=A0=E6=8E=89=E8=B0=83=E8=AF=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/gui/imenu/UIMenu.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java index 4252656c18..140b8e120d 100644 --- a/designer_base/src/com/fr/design/gui/imenu/UIMenu.java +++ b/designer_base/src/com/fr/design/gui/imenu/UIMenu.java @@ -75,9 +75,7 @@ public class UIMenu extends JMenu { }; popupMenu.setInvoker(this); - if (popupMenu.getComponentCount() != 0) { - System.out.println(popupMenu.getComponentCount()); - } + popupListener = createWinListener(popupMenu); } } From 2869ccdf9fa03c66c0f66d8e3e38508ca1bd5251 Mon Sep 17 00:00:00 2001 From: MoMeak Date: Mon, 15 Jan 2018 15:48:43 +0800 Subject: [PATCH 026/116] =?UTF-8?q?REPORT-6386=209.0=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=EF=BC=8C=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8,?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E5=90=8E=EF=BC=8C=E7=BB=84=E4=BB=B6=E5=BA=93=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=A9=BA=E7=99=BD=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormParaWidgetPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java b/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java index ee5a7ab6bc..a0c7925d74 100644 --- a/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormParaWidgetPane.java @@ -371,7 +371,7 @@ public class FormParaWidgetPane extends JPanel { designer.addParaComponent(); JPanel pane = FormWidgetDetailPane.getInstance(designer); - EastRegionContainerPane.getInstance().replaceDownPane(pane); + EastRegionContainerPane.getInstance().replaceWidgetLibPane(pane); this.setEnabled(false); designer.addDesignerEditListener(new paraButtonDesignerAdapter(this)); From 91e58558dd4580d61024ff69b3d968ccef94afdd Mon Sep 17 00:00:00 2001 From: mengao <283296419@qq.com> Date: Mon, 15 Jan 2018 20:50:11 +0800 Subject: [PATCH 027/116] =?UTF-8?q?MOBILE-7509=20=20=E4=BF=AE=E6=94=B9svg?= =?UTF-8?q?=20server=20op=E5=8F=82=E6=95=B0=EF=BC=8C=E4=B8=8E8.0,app?= =?UTF-8?q?=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 614410fdac..147911b01e 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1537,7 +1537,7 @@ public class RemoteEnv extends AbstractEnv { testServerConnection(); HashMap para = new HashMap(); - para.put("op", "svgrelate"); + para.put("op", "svginit"); para.put("cmd", "design_save_svg"); para.put("filePath", svgFile.getFilePath()); para.put("current_uid", this.createUserID()); From 7bd6cf3db7eb1f62d8a57b42879cf64b3db44b5a Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 16 Jan 2018 09:17:26 +0800 Subject: [PATCH 028/116] =?UTF-8?q?REPORT-6512=20=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E9=81=97=E7=95=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/gui/style/FRFontPane.java | 4 ++-- .../cardlayout/XWCardMainBorderLayout.java | 6 ++++-- .../layout/WCardTagLayoutDefinePane.java | 17 ++++++++++++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/style/FRFontPane.java b/designer_base/src/com/fr/design/gui/style/FRFontPane.java index d7d445ddc8..76c9ab36df 100644 --- a/designer_base/src/com/fr/design/gui/style/FRFontPane.java +++ b/designer_base/src/com/fr/design/gui/style/FRFontPane.java @@ -49,7 +49,7 @@ public class FRFontPane extends AbstractBasicStylePane implements GlobalNameObse private JPanel isSuperOrSubPane; private UIComboBox fontNameComboBox; private UIComboBox fontSizeStyleComboBox; - private UIComboBox fontSizeComboBox; + protected UIComboBox fontSizeComboBox; private UIToggleButton bold; private UIToggleButton italic; private UIToggleButton underline; @@ -327,7 +327,7 @@ public class FRFontPane extends AbstractBasicStylePane implements GlobalNameObse return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); } - private JPanel createRightPane() { + protected JPanel createRightPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; double[] columnSize = {f}; 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 fb9510d1a6..dd9a85c78f 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 @@ -138,7 +138,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ } private void dealCompatibility(WBorderLayout wb){ - WCardMainBorderLayout ob = (WCardMainBorderLayout)wb; + WCardMainBorderLayout ob = (WCardMainBorderLayout)wb; WCardLayout cardLayout = ob.getCardPart(); //tab结构改变需要兼容以前的tab,重新命名tabpane WCardTitleLayout wCardTitleLayout = ob.getTitlePart(); @@ -158,7 +158,9 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ wCardTitleLayout.setCardName(cardLayout.getWidgetName()); wCardTagLayout.setNewTab(true); //这边需要设置成默认值兼容之前的title高度(不知道为啥之前的title的高度会改变) - ob.setNorthSize(WTitleLayout.TITLE_HEIGHT); + if(this.toData().getNorthSize() != 0){ + ob.setNorthSize(WTitleLayout.TITLE_HEIGHT); + } for(int i = 0 ;i < cardLayout.getListenerSize(); i ++){ Listener listener = cardLayout.getListener(i); if(listener != null){ diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardTagLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardTagLayoutDefinePane.java index 153d159c05..7fc6ea8a52 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardTagLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardTagLayoutDefinePane.java @@ -1,5 +1,6 @@ package com.fr.design.widget.ui.designer.layout; +import com.fr.design.constants.LayoutConstants; import com.fr.general.ComparatorUtils; import com.fr.general.cardtag.TemplateStyle; import com.fr.design.designer.IntervalConstants; @@ -58,7 +59,21 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify UILabel fontLabel = new UILabel(Inter.getLocText("FR-Designer_Font")); fontLabel.setVerticalAlignment(SwingConstants.TOP); - frFontPane = new FRFontPane(); + frFontPane = new FRFontPane(){ + + protected JPanel createRightPane() { + double p = TableLayout.PREFERRED; + double f = TableLayout.FILL; + double[] columnSize = {f}; + double[] rowSize = {p}; + int[][] rowCount = {{1, 1}}; + Component[][] components = new Component[][]{ + new Component[]{fontSizeComboBox}, + }; + return TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_MEDIUM, LayoutConstants.VGAP_MEDIUM); + } + + }; displayPositionGroup = new UIButtonGroup(WTabDisplayPosition.getStringArray()){ @Override public boolean shouldResponseNameListener() { From b908fad40e3b2780a45db53dd473b01968613e7d Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 16 Jan 2018 14:13:33 +0800 Subject: [PATCH 029/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E6=89=93=E5=8C=85=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E7=9A=84=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: Tue, 16 Jan 2018 14:14:05 +0800 Subject: [PATCH 030/116] REPORT-6575 --- .../impl/AbstractTemplateTreeShortCutProvider.java | 3 +++ .../src/com/fr/design/mainframe/DesignerFrame.java | 12 ++++++++++++ .../src/com/fr/design/mainframe/JTemplate.java | 4 +++- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java index 22fe8aa767..1a05f8dbce 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java @@ -11,6 +11,9 @@ import com.fr.stable.fun.mark.API; @API(level = TemplateTreeShortCutProvider.CURRENT_LEVEL) public abstract class AbstractTemplateTreeShortCutProvider extends UpdateAction implements TemplateTreeShortCutProvider { + public void notifyFromAuhtorityChange(boolean isAuhtority) { + } + @Override public String mark4Provider() { return getClass().getName(); diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index e4ec79ec5d..115980e6c7 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -18,6 +18,7 @@ import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; import com.fr.design.file.*; import com.fr.design.fun.TitlePlaceProcessor; +import com.fr.design.fun.impl.AbstractTemplateTreeShortCutProvider; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.imenu.UIMenuHighLight; import com.fr.design.gui.iscrollbar.UIScrollBar; @@ -27,6 +28,7 @@ import com.fr.design.mainframe.loghandler.LogMessageBar; import com.fr.design.mainframe.toolbar.ToolBarMenuDock; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.menu.MenuManager; +import com.fr.design.menu.ShortCut; import com.fr.design.utils.DesignUtils; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.file.FILE; @@ -77,6 +79,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Set; import java.util.logging.Level; public class DesignerFrame extends JFrame implements JTemplateActionListener, TargetModifiedListener { @@ -601,6 +604,15 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta public void needToAddAuhtorityPaint() { newWorkBookPane.setButtonGray(BaseUtils.isAuthorityEditing()); + + // 进入或退出权限编辑模式,通知插件 + Set extraShortCuts = ExtraDesignClassManager.getInstance().getExtraShortCuts(); + for (ShortCut shortCut : extraShortCuts) { + if (shortCut instanceof AbstractTemplateTreeShortCutProvider) { + ((AbstractTemplateTreeShortCutProvider) shortCut).notifyFromAuhtorityChange(BaseUtils.isAuthorityEditing()); + } + } + } /** diff --git a/designer_base/src/com/fr/design/mainframe/JTemplate.java b/designer_base/src/com/fr/design/mainframe/JTemplate.java index 38b0086dc6..76c1bb8aa9 100644 --- a/designer_base/src/com/fr/design/mainframe/JTemplate.java +++ b/designer_base/src/com/fr/design/mainframe/JTemplate.java @@ -708,7 +708,9 @@ public abstract class JTemplate> ex tplMenu.addShortCut(new TableDataSourceAction(this)); tplMenu.addShortCut(shortcut4TemplateMenu()); } - tplMenu.addShortCut(shortCuts4Authority()); + if (!DesignerMode.isVcsMode()) { + tplMenu.addShortCut(shortCuts4Authority()); + } return new MenuDef[]{tplMenu}; } From 1b8e359b04d5c579b38e13e24e99440401f8b5a0 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 16 Jan 2018 16:51:51 +0800 Subject: [PATCH 031/116] =?UTF-8?q?REPORT-6270=20&=20REPORT-6443=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84=E7=9B=B8?= =?UTF-8?q?=E5=85=B3bug=EF=BC=88=E9=97=AE=E9=A2=982=E3=80=813=EF=BC=89?= =?UTF-8?q?=EF=BC=9B=E6=8E=A7=E4=BB=B6=E6=A0=91=E6=B6=88=E5=A4=B1=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/ComponentTree.java | 1 + .../src/com/fr/design/mainframe/FormHierarchyTreePane.java | 2 -- designer_form/src/com/fr/design/mainframe/JForm.java | 3 +++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index 22eeb36890..c7b2412518 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -52,6 +52,7 @@ public class ComponentTree extends JTree { } private void initListeners() { + this.addTreeSelectionListener(designer); ComponetTreeMouseListener componetTreeMouseListener = new ComponetTreeMouseListener(this); this.addMouseMotionListener(componetTreeMouseListener); this.addMouseListener(componetTreeMouseListener); diff --git a/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java b/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java index 540dd63c23..c5a27044df 100644 --- a/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java +++ b/designer_form/src/com/fr/design/mainframe/FormHierarchyTreePane.java @@ -111,8 +111,6 @@ public class FormHierarchyTreePane extends FormDockView implements HierarchyTree // 这里要刷新一下,否则控件树中没有任何一个控件处于选中状态 refreshComponentTree(); - // 初始刷新完成后,再加 listener - componentTree.addTreeSelectionListener(formDesigner); } private void refreshComponentTree() { diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 30f3f5ca07..01f42d7515 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -248,6 +248,9 @@ public class JForm extends JTemplate implements BaseJForm { @Override public void fireCreatorModified(DesignerEvent evt) { + if (formDesign.getArea() == null || !formDesign.getArea().isValid()) { + return; + } if (evt.getCreatorEventID() == DesignerEvent.CREATOR_CUTED) { setPropertyPaneChange(formDesign.getRootComponent()); } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_DELETED) { From 86475fbc385520da4fbdf66b67ecdf0ad7f564c8 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 16 Jan 2018 17:00:05 +0800 Subject: [PATCH 032/116] REPORT-6575 --- designer/src/com/fr/start/Designer.java | 3 ++- designer_base/src/com/fr/design/file/MutilTempalteTabPane.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/start/Designer.java b/designer/src/com/fr/start/Designer.java index e52530c8e6..4d9154c097 100644 --- a/designer/src/com/fr/start/Designer.java +++ b/designer/src/com/fr/start/Designer.java @@ -3,6 +3,7 @@ package com.fr.start; 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.DesignerEnvManager; import com.fr.design.actions.core.ActionFactory; import com.fr.design.actions.file.WebPreviewUtils; @@ -294,7 +295,7 @@ public class Designer extends BaseDesigner { if (jt == null) { return; } - saveButton.setEnabled(!jt.isSaved()); + saveButton.setEnabled(!jt.isSaved() && !DesignerMode.isVcsMode()); MutilTempalteTabPane.getInstance().refreshOpenedTemplate(HistoryTemplateListPane.getInstance().getHistoryList()); MutilTempalteTabPane.getInstance().repaint(); if (DesignerEnvManager.getEnvManager().isSupportUndo()) { diff --git a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java index 4e7980d6a4..7fa29ea7c7 100644 --- a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java @@ -726,7 +726,7 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M } filename = OperatingSystem.isWindows() ? filename.replaceAll("/", "\\\\") : filename.replaceAll("\\\\", "/"); - if (!specifiedTemplate.isALLSaved()) { + if (!specifiedTemplate.isALLSaved() && !DesignerMode.isVcsMode()) { specifiedTemplate.stopEditing(); int returnVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("Utils-Would_you_like_to_save") + " \"" + specifiedTemplate.getEditingFILE() + "\" ?", ProductConstants.PRODUCT_NAME, JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE); From e1f549cc265231803377923b8f9ed021a7740608 Mon Sep 17 00:00:00 2001 From: hzzz Date: Wed, 17 Jan 2018 09:07:41 +0800 Subject: [PATCH 033/116] REPORT-6575 --- .../fun/impl/AbstractTemplateTreeShortCutProvider.java | 3 --- designer_base/src/com/fr/design/menu/ShortCut.java | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java index 1a05f8dbce..22fe8aa767 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractTemplateTreeShortCutProvider.java @@ -11,9 +11,6 @@ import com.fr.stable.fun.mark.API; @API(level = TemplateTreeShortCutProvider.CURRENT_LEVEL) public abstract class AbstractTemplateTreeShortCutProvider extends UpdateAction implements TemplateTreeShortCutProvider { - public void notifyFromAuhtorityChange(boolean isAuhtority) { - } - @Override public String mark4Provider() { return getClass().getName(); diff --git a/designer_base/src/com/fr/design/menu/ShortCut.java b/designer_base/src/com/fr/design/menu/ShortCut.java index 7f71d9a2c8..4bd84e52cc 100644 --- a/designer_base/src/com/fr/design/menu/ShortCut.java +++ b/designer_base/src/com/fr/design/menu/ShortCut.java @@ -29,6 +29,13 @@ public abstract class ShortCut extends AbstractProvider implements Mutable { private MenuKeySet menuKeySet = null; + /** + * 权限编辑模式变更时候会调用这个方法 + * @param isAuhtority + */ + public void notifyFromAuhtorityChange(boolean isAuhtority) { + } + /** * 将改菜单添加到menul里面去 * @param menu 添加到的menu From 348c7cd81f0ed7fcf7438e0330aa63624e54f266 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 17 Jan 2018 15:11:59 +0800 Subject: [PATCH 034/116] =?UTF-8?q?REPORT-6626=20=E7=BB=9D=E5=AF=B9?= =?UTF-8?q?=E5=B8=83=E5=B1=80=E4=B8=8B=E7=BB=84=E4=BB=B6=E5=A4=8D=E5=88=B6?= =?UTF-8?q?=E7=B2=98=E8=B4=B4=E5=90=8E=E5=B1=9E=E6=80=A7=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/JForm.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 01f42d7515..15c8f73d2e 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -256,7 +256,7 @@ public class JForm extends JTemplate implements BaseJForm { } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_DELETED) { // 在 delete 之前,会先 select 父组件。这里直接传入 lastAffectedCreator 就好了 setPropertyPaneChange(lastAffectedCreator); - } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED) { + } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED || evt.getCreatorEventID() == DesignerEvent.CREATOR_EDITED) { lastAffectedCreator = evt.getAffectedCreator(); setPropertyPaneChange(lastAffectedCreator); } From 1451bee69d14b65743445a8b1fe7a8d72576ba27 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 17 Jan 2018 17:38:19 +0800 Subject: [PATCH 035/116] =?UTF-8?q?REPORT-6558=20=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=8F=A0=E5=8A=A0=E4=BC=98=E5=8C=96=E4=BA=A4=E4=BA=92=E9=AA=8C?= =?UTF-8?q?=E6=94=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/actions/UpdateAction.java | 9 ++++++++- .../design/designer/beans/actions/FormDeleteAction.java | 6 ++++++ .../designer/beans/actions/MoveToBottomAction.java | 8 +++++++- .../design/designer/beans/actions/MoveToTopAction.java | 8 +++++++- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/UpdateAction.java b/designer_base/src/com/fr/design/actions/UpdateAction.java index ffc2e2a2ea..3420d08820 100644 --- a/designer_base/src/com/fr/design/actions/UpdateAction.java +++ b/designer_base/src/com/fr/design/actions/UpdateAction.java @@ -293,13 +293,20 @@ public abstract class UpdateAction extends ShortCut implements Action { button.setEnabled(this.isEnabled()); //peter:产生tooltip - button.setToolTipText(ActionFactory.createButtonToolTipText(this)); + button.setToolTipText(getToolTipText()); object = button; } return (JComponent) object; } + /** + * 重写此方法,可以自定义 action 的提示文字 + */ + protected String getToolTipText() { + return ActionFactory.createButtonToolTipText(this); + } + /** * Equals */ diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java index 52d9aa8ea3..525449eac6 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java @@ -29,6 +29,12 @@ public class FormDeleteAction extends FormWidgetEditAction { this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0)); } + @Override + protected String getToolTipText() { + String originText = super.getToolTipText(); + return originText.replace(KeyEvent.getKeyText(KeyEvent.VK_BACK_SPACE), KeyEvent.getKeyText(KeyEvent.VK_DELETE)); + } + @Override public JComponent createToolBarComponent() { JComponent comp = super.createToolBarComponent(); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/MoveToBottomAction.java b/designer_form/src/com/fr/design/designer/beans/actions/MoveToBottomAction.java index ab8f813282..fe8db81494 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/MoveToBottomAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/MoveToBottomAction.java @@ -27,7 +27,13 @@ public class MoveToBottomAction extends FormWidgetEditAction { this.setName(Inter.getLocText("FR-Designer_Move_To_Bottom")); this.setMnemonic('K'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/to_bottom.png")); - this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, DEFAULT_MODIFIER + InputEvent.ALT_MASK)); + this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_OPEN_BRACKET, DEFAULT_MODIFIER + InputEvent.SHIFT_MASK)); + } + + @Override + protected String getToolTipText() { + String originText = super.getToolTipText(); + return originText.replace(KeyEvent.getKeyText(KeyEvent.VK_OPEN_BRACKET), "["); } @Override diff --git a/designer_form/src/com/fr/design/designer/beans/actions/MoveToTopAction.java b/designer_form/src/com/fr/design/designer/beans/actions/MoveToTopAction.java index 1a2e4be8f6..0c096580a5 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/MoveToTopAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/MoveToTopAction.java @@ -27,7 +27,13 @@ public class MoveToTopAction extends FormWidgetEditAction { this.setName(Inter.getLocText("FR-Designer_Move_To_Top")); this.setMnemonic('T'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/to_top.png")); - this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, DEFAULT_MODIFIER + InputEvent.ALT_MASK)); + this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_CLOSE_BRACKET, DEFAULT_MODIFIER + InputEvent.SHIFT_MASK)); + } + + @Override + protected String getToolTipText() { + String originText = super.getToolTipText(); + return originText.replace(KeyEvent.getKeyText(KeyEvent.VK_CLOSE_BRACKET), "]"); } @Override From 4989dffbf70682b3c09d87af91960603e6b3f590 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 17 Jan 2018 20:10:56 +0800 Subject: [PATCH 036/116] =?UTF-8?q?REPORT-6443=20=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E6=A0=91=E6=B6=88=E5=A4=B1=E9=97=AE=E9=A2=98=3D>=E5=87=8F?= =?UTF-8?q?=E5=B0=91=E5=AF=B9=E5=85=B6=E4=BB=96=E5=9C=B0=E6=96=B9=E7=9A=84?= =?UTF-8?q?=E5=BD=B1=E5=93=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 | 5 +---- .../src/com/fr/design/parameter/ParameterPropertyPane.java | 6 ++++-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 15c8f73d2e..30f3f5ca07 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -248,15 +248,12 @@ public class JForm extends JTemplate implements BaseJForm { @Override public void fireCreatorModified(DesignerEvent evt) { - if (formDesign.getArea() == null || !formDesign.getArea().isValid()) { - return; - } 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 || evt.getCreatorEventID() == DesignerEvent.CREATOR_EDITED) { + } else if (evt.getCreatorEventID() == DesignerEvent.CREATOR_SELECTED) { lastAffectedCreator = evt.getAffectedCreator(); setPropertyPaneChange(lastAffectedCreator); } diff --git a/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java b/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java index 052f7cc2f5..c56cff1a79 100644 --- a/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java +++ b/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java @@ -106,7 +106,7 @@ public class ParameterPropertyPane extends JPanel{ } public void setAddParaPaneVisible(boolean isVisible, JTemplate jt) { - if (isVisible == addParaPane.isVisible() || formHierarchyTreePaneWrapper == null) { + if (formHierarchyTreePaneWrapper == null) { return; } // 表单中,只有添加并选中参数面板时,才显示 @@ -122,7 +122,9 @@ public class ParameterPropertyPane extends JPanel{ this.setPreferredSize(null); } else { addParaPane.setVisible(false); - this.setPreferredSize(new Dimension(getWidth(), formHierarchyTreePaneWrapper.getPreferredSize().height + UIConstants.GAP_NORMAL)); + if (formHierarchyTreePaneWrapper.getPreferredSize().height > 0) { + this.setPreferredSize(new Dimension(getWidth(), formHierarchyTreePaneWrapper.getPreferredSize().height + UIConstants.GAP_NORMAL)); + } } } From 69e7a66759bfb93aeaea91ee914177d698390217 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 17 Jan 2018 22:13:18 +0800 Subject: [PATCH 037/116] =?UTF-8?q?REPORT-6645=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84bug2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/FormDesigner.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index 764f746822..c9b311d502 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -349,11 +349,11 @@ public class FormDesigner extends TargetComponent
implements TreeSelection } parameterArray = null; - refreshParameter(); + //parameter多的时候,不刷新会出现控件边界交叉 refreshRoot(); - //不知道为什么添加完参数后控件树只有一个label,这儿刷新一下控件树好了 - EastRegionContainerPane.getInstance().refreshDownPane(); + // 最后刷新"添加参数面板"和控件树 + refreshParameter(); } private void addParaPaneTooltips() { From b00e90d415b168c2e4b5846d9fcdaad76f426e85 Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 18 Jan 2018 14:00:30 +0800 Subject: [PATCH 038/116] =?UTF-8?q?REPORT-6645=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84bug2=3D>=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E6=9C=89=E6=9C=AA=E7=94=9F=E6=88=90=E7=9A=84=E5=8F=82=E6=95=B0?= =?UTF-8?q?=EF=BC=8C=E5=9C=A8=E6=A8=A1=E6=9D=BF=E5=8F=82=E6=95=B0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=BF=99=E5=8F=82=E6=95=B0=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=EF=BC=8C=E4=B8=8A=E9=9D=A2=E4=BC=9A=E6=9C=89=E4=B8=80=E6=AE=B5?= =?UTF-8?q?=E7=A9=BA=E7=99=BD=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/parameter/ParameterPropertyPane.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java b/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java index c56cff1a79..d166871779 100644 --- a/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java +++ b/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java @@ -72,7 +72,7 @@ public class ParameterPropertyPane extends JPanel{ } }; JPanel scrollPaneWrapperInner = new JPanel(new BorderLayout()); - scrollPaneWrapperInner.setBorder(BorderFactory.createEmptyBorder(0, PADDING_MIDDLE, PADDING_MIDDLE, PADDING_SMALL)); + scrollPaneWrapperInner.setBorder(BorderFactory.createEmptyBorder(PADDING_MIDDLE, PADDING_MIDDLE, PADDING_MIDDLE, PADDING_SMALL)); scrollPaneWrapperInner.add(basicScrollPane, BorderLayout.CENTER); addParaPane = new JPanel(new BorderLayout()); addParaPane.add(scrollPaneWrapperInner, BorderLayout.CENTER); @@ -80,8 +80,8 @@ public class ParameterPropertyPane extends JPanel{ initParameterListener(); this.setLayout(new BorderLayout(0, 6)); - this.setBorder(BorderFactory.createEmptyBorder(PADDING_MIDDLE, 0, PADDING_MIDDLE, 0)); - this.add(addParaPane, BorderLayout.CENTER); + this.setBorder(BorderFactory.createEmptyBorder(0, 0, PADDING_MIDDLE, 0)); + this.add(addParaPane, BorderLayout.NORTH); } // 显示或隐藏添加参数面板 @@ -132,7 +132,7 @@ public class ParameterPropertyPane extends JPanel{ if (formHierarchyTreePaneWrapper == null) { formHierarchyTreePaneWrapper = new JPanel(new BorderLayout()); formHierarchyTreePaneWrapper.setBorder(BorderFactory.createEmptyBorder(0, PADDING_MIDDLE, 0, 0)); - this.add(formHierarchyTreePaneWrapper, BorderLayout.SOUTH); + this.add(formHierarchyTreePaneWrapper, BorderLayout.CENTER); } formHierarchyTreePaneWrapper.remove(FormHierarchyTreePane.getInstance()); formHierarchyTreePaneWrapper.add(FormHierarchyTreePane.getInstance(editor), BorderLayout.CENTER); From 6b454111513a212ac84e55aaf93df17d33d40338 Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 18 Jan 2018 14:32:54 +0800 Subject: [PATCH 039/116] =?UTF-8?q?REPORT-6644=20=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=BA=A4=E4=BA=92=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 12 +-- .../design/locale/designer_en_US.properties | 12 +-- .../design/locale/designer_ja_JP.properties | 12 +-- .../design/locale/designer_ko_KR.properties | 12 +-- .../design/locale/designer_zh_CN.properties | 12 +-- .../design/locale/designer_zh_TW.properties | 12 +-- .../AccessibleTabBackgroundEditor.java | 40 +++++++++ .../accessibles/TemplateStylePreviewPane.java | 5 +- .../style/background/BackgroundFactory.java | 2 +- .../style/background/BackgroundTabPane.java | 88 +++++++++++++++++++ .../creator/cardlayout/XCardSwitchButton.java | 17 ++-- .../mainframe/actions/NewFormAction.java | 2 +- .../layout/WCardMainLayoutDefinePane.java | 4 +- .../layout/WCardTagLayoutDefinePane.java | 17 ++-- 14 files changed, 192 insertions(+), 55 deletions(-) create mode 100644 designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java create mode 100644 designer_base/src/com/fr/design/style/background/BackgroundTabPane.java diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0337a6be1f..4ad4931eb2 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2160,10 +2160,10 @@ 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 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..fb28e02f07 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,10 +2159,10 @@ 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 \ 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..7b9c83d440 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,10 +2160,10 @@ 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= 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..f16116d74a 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 @@ -2160,10 +2160,10 @@ 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= 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..c012f7cdf2 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 @@ -2160,10 +2160,10 @@ 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 \ 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..af70d929c5 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 @@ -2159,10 +2159,10 @@ 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 diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java new file mode 100644 index 0000000000..ade9208565 --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java @@ -0,0 +1,40 @@ +package com.fr.design.mainframe.widget.accessibles; + +import com.fr.base.background.ColorBackground; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.mainframe.widget.wrappers.BackgroundWrapper; +import com.fr.design.style.background.BackgroundTabPane; +import com.fr.general.Background; + +import javax.swing.SwingUtilities; +import java.awt.Dimension; + +/** + * @author kerry + * @date 2018/1/17 + */ +public class AccessibleTabBackgroundEditor extends UneditableAccessibleEditor { + private BackgroundTabPane choosePane; + + public AccessibleTabBackgroundEditor() { + super(new BackgroundWrapper()); + } + + @Override + protected void showEditorPane() { + choosePane = new BackgroundTabPane(); + choosePane.setPreferredSize(new Dimension(600, 400)); + BasicDialog dlg = choosePane.showWindow(SwingUtilities.getWindowAncestor(this)); + dlg.addDialogActionListener(new DialogActionAdapter() { + + @Override + public void doOk() { + setValue(choosePane.update()); + fireStateChanged(); + } + }); + choosePane.populate(getValue() instanceof Background ? (Background) getValue() : new ColorBackground()); + dlg.setVisible(true); + } +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java index 4871bfd1d4..0f684006ae 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/TemplateStylePreviewPane.java @@ -14,7 +14,8 @@ import java.awt.Image; public class TemplateStylePreviewPane extends JPanel { private static final int WIDTH = 540; - private static final int HEIGHT = 500; + private static final int HEIGHT = 400; + private static final int OFFSETY = 50; private TemplateStyle templateStyle; @@ -32,6 +33,6 @@ public class TemplateStylePreviewPane extends JPanel { super.paint(g); Graphics2D g2d = (Graphics2D) g.create(); Image image = BaseUtils.readImage(templateStyle.getPreview()); - g2d.drawImage(image, 0, 0, WIDTH, HEIGHT, null); + g2d.drawImage(image, 0, OFFSETY, WIDTH, HEIGHT, null); } } diff --git a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java index d636eb3a30..7cbff57ffa 100644 --- a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java +++ b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java @@ -139,7 +139,7 @@ public class BackgroundFactory { return new NullBackgroundPane(); } - private static BackgroundDetailPane createByWrapper(BackgroundUIWrapper wrapper) { + public static BackgroundDetailPane createByWrapper(BackgroundUIWrapper wrapper) { Class clazz = wrapper.getType(); if (clazz == null) { clazz = NullBackgroundPane.class; diff --git a/designer_base/src/com/fr/design/style/background/BackgroundTabPane.java b/designer_base/src/com/fr/design/style/background/BackgroundTabPane.java new file mode 100644 index 0000000000..6cc71a074e --- /dev/null +++ b/designer_base/src/com/fr/design/style/background/BackgroundTabPane.java @@ -0,0 +1,88 @@ +package com.fr.design.style.background; + +import com.fr.base.background.ColorBackground; +import com.fr.base.background.GradientBackground; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.style.background.gradient.GradientBackgroundPane; +import com.fr.design.style.background.impl.ColorBackgroundPane; +import com.fr.design.style.background.impl.NullBackgroundPane; +import com.fr.general.Background; +import com.fr.general.Inter; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author kerry + * @date 2018/1/17 + */ +public class BackgroundTabPane extends BackgroundPane { + + private static Map, BackgroundUIWrapper> tabpane = new LinkedHashMap<>(); + + static { + registerTabpaneBackground(tabpane); + } + + + private static void registerTabpaneBackground(Map, BackgroundUIWrapper> map) { + map.put(null, BackgroundUIWrapper.create() + .setType(NullBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Null"))); + map.put(ColorBackground.class, BackgroundUIWrapper.create() + .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Color"))); + map.put(GradientBackground.class, BackgroundUIWrapper.create() + .setType(GradientBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Gradient_Color"))); + + } + + public BackgroundTabPane() { + super(); + } + + protected void initTabPane() { + int index = 0; + for (Class key : tabpane.keySet()) { + BackgroundUIWrapper wrapper = tabpane.get(key); + wrapper.setIndex(index++); + tabbedPane.addTab(Inter.getLocText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + } + } + + protected BackgroundUIWrapper getBackgroundUIWrapper(Background background) { + return tabpane.get(background == null ? null : background.getClass()); + } + + protected BackgroundDetailPane getTabItemPane(Background background, int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + BackgroundUIWrapper uiWrapper = getBackgroundUIWrapper(background); + quickPane = BackgroundFactory.createByWrapper(uiWrapper); + quickPane.addChangeListener(backgroundChangeListener); + cacheMap.put(index, quickPane); + } + tabbedPane.setComponentAt(index, quickPane); + tabbedPane.setSelectedIndex(index); + return quickPane; + } + + protected BackgroundDetailPane getTabItemPaneByIndex(int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + quickPane = createDetailPaneByIndex(index); + tabbedPane.setComponentAt(index, quickPane); + cacheMap.put(index, quickPane); + quickPane.addChangeListener(backgroundChangeListener); + } + return quickPane; + } + + public BackgroundDetailPane createDetailPaneByIndex(int index) { + for (BackgroundUIWrapper wrapper : tabpane.values()) { + if (wrapper.getIndex() == index) { + return BackgroundFactory.createByWrapper(wrapper); + } + } + return new NullBackgroundPane(); + } + +} diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index cfa60b9fc4..fc503b9d82 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -31,6 +31,7 @@ import com.fr.general.Background; import com.fr.general.ComparatorUtils; import com.fr.general.FRFont; import com.fr.general.Inter; +import com.fr.general.cardtag.TemplateStyle; import com.fr.stable.unit.PT; import javax.swing.*; @@ -364,13 +365,15 @@ public class XCardSwitchButton extends XButton { label.setFont(newFont); label.setForeground(font.getForeground()); Background background = title.getBackground(); - if (background != null) { - if(button.isShowButton() && selectBackground != null){ - this.setContentBackground(selectBackground); - }else if (button.isShowButton() && selectBackground == null){ - background = ColorBackground.getInstance(CHOOSED_GRAL); - this.setContentBackground(background); - } else { + TemplateStyle templateStyle = ((WCardTagLayout)tagLayout.toData()).getTemplateStyle(); + Background selectBackground = templateStyle.getSelectBackground(); + if (background != null) { + if(button.isShowButton() && selectBackground != null){ + this.setContentBackground(selectBackground); + }else if (button.isShowButton() && selectBackground == null){ + background = ColorBackground.getInstance(CHOOSED_GRAL); + this.setContentBackground(background); + } else { this.setContentBackground(background); } } diff --git a/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java b/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java index dfcc8805c2..2562bd51eb 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java @@ -22,7 +22,7 @@ public class NewFormAction extends UpdateAction { this.setMenuKeySet(NEW_FORM); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/new_form3.png")); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/imag es/buttonicon/new_form3.png")); this.setAccelerator(getMenuKeySet().getKeyStroke()); } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java index 68e88bb6b7..c03f4c9115 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java @@ -43,7 +43,7 @@ public class WCardMainLayoutDefinePane extends AbstractDataModify { - private AccessibleImgBackgroundEditor backgroundEditor; + private AccessibleTabBackgroundEditor backgroundEditor; private FRFontPane frFontPane; private UIButtonGroup displayPositionGroup; private UIButtonGroup textDirectionGroup; @@ -49,7 +49,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify public void initComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - backgroundEditor = new AccessibleImgBackgroundEditor(); + backgroundEditor = new AccessibleTabBackgroundEditor(); templateStyleEditor = new AccessibleTemplateStyleEditor(); double f = TableLayout.FILL; double p = TableLayout.PREFERRED; @@ -60,7 +60,6 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify UILabel fontLabel = new UILabel(Inter.getLocText("FR-Designer_Font")); fontLabel.setVerticalAlignment(SwingConstants.TOP); frFontPane = new FRFontPane(){ - protected JPanel createRightPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; @@ -124,7 +123,6 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify XLayoutContainer topLayout = creator.getTopLayout(); LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout)topLayout).getCardPart().toData().getBorderStyle(); FRFont frFont = layoutBorderStyle.getTitle().getFrFont() == null ? FRFont.getInstance() : layoutBorderStyle.getTitle().getFrFont(); - layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont)); WCardTagLayout layout = (WCardTagLayout) creator.toData(); boolean isHori = displayPositionGroup.getSelectedIndex() == WTabDisplayPosition.TOP_POSITION.getType() || displayPositionGroup.getSelectedIndex() == WTabDisplayPosition.BOTTOM_POSITION.getType(); @@ -133,7 +131,14 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify textDirectionGroup.setSelectedIndex(isHori? WTabTextDirection.TEXT_HORI_DERECTION.getType():WTabTextDirection.TEXT_VER_DIRECTION.getType()); } layout.setTextDirection(WTabTextDirection.parse(textDirectionGroup.getSelectedIndex())); - layout.setTemplateStyle((TemplateStyle) templateStyleEditor.getValue()); + TemplateStyle templateStyle = (TemplateStyle) templateStyleEditor.getValue(); + if(!ComparatorUtils.equals(layout.getTemplateStyle(), templateStyle)){ + backgroundEditor.setValue(templateStyle.getDefaultBackground()); + layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground()); + layout.setTemplateStyle(templateStyle); + }else{ + layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); + } return layout; } From 1818dcb236f9e614b237c1950c233039134251ff Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 18 Jan 2018 14:35:56 +0800 Subject: [PATCH 040/116] =?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/mainframe/actions/NewFormAction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java b/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java index 2562bd51eb..dfcc8805c2 100644 --- a/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java +++ b/designer_form/src/com/fr/design/mainframe/actions/NewFormAction.java @@ -22,7 +22,7 @@ public class NewFormAction extends UpdateAction { this.setMenuKeySet(NEW_FORM); this.setName(getMenuKeySet().getMenuKeySetName()); this.setMnemonic(getMenuKeySet().getMnemonic()); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/imag es/buttonicon/new_form3.png")); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/buttonicon/new_form3.png")); this.setAccelerator(getMenuKeySet().getKeyStroke()); } From 2ee3cd1b465eea4c9d47afe88f36f0e5b2c7eddb Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 18 Jan 2018 14:48:18 +0800 Subject: [PATCH 041/116] =?UTF-8?q?REPORT-6645=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84bug2=3D>tab=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E5=90=8E=E6=98=BE=E7=A4=BA=E4=B8=8D=E5=87=BA=E5=8F=82?= =?UTF-8?q?=E6=95=B0=EF=BC=9B=E9=80=89=E4=B8=AD=E5=8F=82=E6=95=B0=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E9=87=8C=E7=9A=84=E6=8E=A7=E4=BB=B6=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E6=9C=AA=E7=94=9F=E6=88=90=E5=8F=82=E6=95=B0=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=B8=8D=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/JForm.java | 2 -- .../src/com/fr/design/parameter/ParameterPropertyPane.java | 4 +++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 30f3f5ca07..1f5c17e8cf 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -725,9 +725,7 @@ 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); EastRegionContainerPane.getInstance().addParameterPane(parameterPropertyPane); - EastRegionContainerPane.getInstance().setParameterHeight(parameterPropertyPane.getPreferredSize().height); refreshWidgetLibPane(); } diff --git a/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java b/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java index d166871779..663b7c7620 100644 --- a/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java +++ b/designer_form/src/com/fr/design/parameter/ParameterPropertyPane.java @@ -1,6 +1,7 @@ package com.fr.design.parameter; import com.fr.design.constants.UIConstants; +import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XWParameterLayout; import com.fr.design.dialog.BasicScrollPane; import com.fr.design.gui.ibutton.UIButton; @@ -112,8 +113,9 @@ public class ParameterPropertyPane extends JPanel{ // 表单中,只有添加并选中参数面板时,才显示 boolean hideInJForm; try { + XCreator creator = (XCreator) FormHierarchyTreePane.getInstance().getComponentTree().getSelectionPath().getLastPathComponent(); hideInJForm = jt instanceof JForm && - !(FormHierarchyTreePane.getInstance().getComponentTree().getSelectionPath().getLastPathComponent() instanceof XWParameterLayout); + !(creator instanceof XWParameterLayout || creator.getParent() instanceof XWParameterLayout); } catch (NullPointerException ex) { hideInJForm = true; } From 130d46845916fe3a82fbaaa6611150c049d7015a Mon Sep 17 00:00:00 2001 From: plough Date: Thu, 18 Jan 2018 15:19:28 +0800 Subject: [PATCH 042/116] =?UTF-8?q?REPORT-6645=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84bug2=3D>=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E5=86=85=E7=9A=84=E6=8E=A7=E4=BB=B6=E4=B8=8D?= =?UTF-8?q?=E5=85=81=E8=AE=B8=E8=B0=83=E6=95=B4=E9=A1=BA=E5=BA=8F=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/designer/creator/XWParameterLayout.java | 5 +++++ designer_form/src/com/fr/design/mainframe/JForm.java | 1 + 2 files changed, 6 insertions(+) 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..a397996a30 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java @@ -232,4 +232,9 @@ public class XWParameterLayout extends XWAbsoluteLayout { return false; } + @Override + public boolean supportInnerOrderChangeActions() { + return false; + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 1f5c17e8cf..5c42f39a09 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -725,6 +725,7 @@ 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.refreshState(this); EastRegionContainerPane.getInstance().addParameterPane(parameterPropertyPane); refreshWidgetLibPane(); From 2a044e543111713902bdb5651865ef0359469bff Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 19 Jan 2018 09:13:37 +0800 Subject: [PATCH 043/116] =?UTF-8?q?REPORT-6645=20=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E9=87=8C=E7=9A=84bug2=3D>=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E4=B8=80=E4=B8=AA=E5=8A=A0=E4=BC=9A=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E5=8F=82=E6=95=B0=E9=9D=A2=E6=9D=BF=E5=92=8Cbody?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/ComponentTree.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index c7b2412518..2d7b56d67d 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -125,6 +125,11 @@ public class ComponentTree extends JTree { scrollPathToVisible(treepath[0]); } + @Override + public void paint(Graphics g) { + super.paint(g); + designer.getSelectionModel(); // 否则参数一个一个加会导致参数面板和body结构出问题 + } /** * 刷新 From 3b29cb9066ae2ecbe300eee37fb03bfe3a6dbcfc Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 19 Jan 2018 11:34:55 +0800 Subject: [PATCH 044/116] =?UTF-8?q?REPORT-6558=20=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E5=8F=A0=E5=8A=A0=E4=BC=98=E5=8C=96=E4=BA=A4=E4=BA=92=E9=AA=8C?= =?UTF-8?q?=E6=94=B6=3D>=E9=A1=B6=E9=83=A8=E5=B7=A5=E5=85=B7=E6=A0=8F?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E6=8C=89=E9=92=AE=E7=8A=B6=E6=80=81=EF=BC=8C?= =?UTF-8?q?=E4=B8=8E=E5=8F=B3=E4=BE=A7=E6=8E=A7=E4=BB=B6=E6=A0=91=E7=9A=84?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=8A=B6=E6=80=81=E4=B8=80=E8=87=B4=EF=BC=9B?= =?UTF-8?q?form=EF=BC=8Cbody=EF=BC=8C=E4=B8=8D=E5=8F=AF=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/event/DesignerOpenedListener.java | 13 ++++++++ .../fr/design/mainframe/DesignerFrame.java | 30 +++++++++++++++++++ .../src/com/fr/start/BaseDesigner.java | 4 ++- .../designer/beans/actions/CopyAction.java | 9 ++++++ .../designer/beans/actions/CutAction.java | 10 +++++++ .../beans/actions/FormDeleteAction.java | 10 +++++++ .../com/fr/design/mainframe/FormDesigner.java | 27 +++++++++++++++-- 7 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 designer_base/src/com/fr/design/event/DesignerOpenedListener.java diff --git a/designer_base/src/com/fr/design/event/DesignerOpenedListener.java b/designer_base/src/com/fr/design/event/DesignerOpenedListener.java new file mode 100644 index 0000000000..77c6bcf8f1 --- /dev/null +++ b/designer_base/src/com/fr/design/event/DesignerOpenedListener.java @@ -0,0 +1,13 @@ +package com.fr.design.event; + +import java.util.EventListener; + +/** + * Created by plough on 2018/1/19. + */ +public interface DesignerOpenedListener extends EventListener { + /** + * Invoked when the target of the listener has changed the rpt content. + */ + public void designerOpened(); +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index 115980e6c7..bec8df3b70 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -14,6 +14,7 @@ import com.fr.design.actions.core.ActionFactory; import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.TableDataTreePane; +import com.fr.design.event.DesignerOpenedListener; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; import com.fr.design.file.*; @@ -92,6 +93,10 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta private static final Integer TOP_LAYER = new Integer((200)); private static java.util.List> appList = new java.util.ArrayList>(); + private List designerOpenedListenerList = new ArrayList<>(); + + private boolean isDesignerOpened = false; // 加一个标记。可以通过它来判断设计器是否初始化完成 + private ToolBarMenuDock ad; private DesktopCardPane centerTemplateCardPane; @@ -284,6 +289,31 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta } } + /** + * 注册"设计器初始化完成"的监听 + */ + public void addDesignerOpenedListener(DesignerOpenedListener listener) { + designerOpenedListenerList.add(listener); + } + + /** + * 触发"设计器初始化完成"事件 + */ + public void fireDesignerOpened() { + for (DesignerOpenedListener listener : designerOpenedListenerList) { + listener.designerOpened(); + } + isDesignerOpened = true; + } + + /** + * 判断设计器是否初始化完成 + */ + public boolean isDesignerOpened() { + return isDesignerOpened; + } + + protected DesktopCardPane getCenterTemplateCardPane() { return centerTemplateCardPane; } diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index eb4b2c6f23..65c31a02b4 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -137,7 +137,9 @@ public abstract class BaseDesigner extends ToolBarMenuDock { for (int i = 0; !TemplateTreePane.getInstance().getTemplateFileTree().isTemplateShowing() && i < LOAD_TREE_MAXNUM; i++) { TemplateTreePane.getInstance().getTemplateFileTree().refresh(); } - + + df.fireDesignerOpened(); + splashWindow.setVisible(false); splashWindow.dispose(); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java b/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java index a93da2a60d..940bbbca75 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java @@ -29,4 +29,13 @@ public class CopyAction extends FormWidgetEditAction { return false; } + @Override + public void update() { + FormDesigner designer = getEditingComponent(); + if (designer == null) { + this.setEnabled(false); + return; + } + this.setEnabled(!designer.isRootSelected()); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java b/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java index 39b7ee47d6..3ce0329088 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java @@ -30,4 +30,14 @@ public class CutAction extends FormWidgetEditAction { return editPane.cut(); } + @Override + public void update() { + FormDesigner designer = getEditingComponent(); + if (designer == null) { + this.setEnabled(false); + return; + } + this.setEnabled(!designer.isRootSelected()); + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java index 525449eac6..b1bdef9c56 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java @@ -58,4 +58,14 @@ public class FormDeleteAction extends FormWidgetEditAction { return false; } + + @Override + public void update() { + FormDesigner designer = getEditingComponent(); + if (designer == null) { + this.setEnabled(false); + return; + } + this.setEnabled(!designer.isRootSelected()); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/FormDesigner.java b/designer_form/src/com/fr/design/mainframe/FormDesigner.java index c9b311d502..41ff874712 100644 --- a/designer_form/src/com/fr/design/mainframe/FormDesigner.java +++ b/designer_form/src/com/fr/design/mainframe/FormDesigner.java @@ -21,6 +21,7 @@ import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.beans.models.StateModel; import com.fr.design.designer.creator.*; import com.fr.design.designer.properties.FormWidgetAuthorityEditPane; +import com.fr.design.event.DesignerOpenedListener; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.form.util.XCreatorConstants; import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; @@ -678,6 +679,13 @@ public class FormDesigner extends TargetComponent implements TreeSelection } }); + + DesignerContext.getDesignerFrame().addDesignerOpenedListener(new DesignerOpenedListener() { + @Override + public void designerOpened() { + setToolbarButtons(); + } + }); } /** @@ -1039,8 +1047,21 @@ public class FormDesigner extends TargetComponent implements TreeSelection showAuthorityEditPane(); } //先选中再检查 - setToolbarButtons(paths.length == 1 && tree.getSelectionPath().getParentPath() == null); + setToolbarButtons(); + } + } + + /** + * 是否选中了自适应布局或底层form + */ + public boolean isRootSelected() { + ComponentTree tree = FormHierarchyTreePane.getInstance().getComponentTree(); + TreePath[] paths = tree.getSelectionPaths(); + if (paths == null) { + return true; } + boolean isForm = paths.length == 1 && tree.getSelectionPath().getParentPath() == null; + return isForm || isRoot(getSelectionModel().getSelection().getSelectedCreator()); } /** @@ -1073,9 +1094,9 @@ public class FormDesigner extends TargetComponent implements TreeSelection } - protected void setToolbarButtons(boolean flag) { + protected void setToolbarButtons() { //自适应布局和底层都不能删除 - DesignerContext.getDesignerFrame().checkCombineUp(!(isRoot(getSelectionModel().getSelection().getSelectedCreator()) || flag), NAME_ARRAY_LIST); + DesignerContext.getDesignerFrame().checkCombineUp(!isRootSelected(), NAME_ARRAY_LIST); } private void invalidateLayout() { From 9a5c30bb2c401a1337a46888816f2baf0488ea97 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 19 Jan 2018 11:41:51 +0800 Subject: [PATCH 045/116] =?UTF-8?q?REPORT-6662=20=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E9=AA=8C=E6=94=B6=E5=90=8E=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/locale/designer_zh_CN.properties | 4 ++-- .../fr/design/locale/designer_zh_TW.properties | 4 ++-- .../widget/component/BackgroundCompPane.java | 2 +- .../creator/cardlayout/XCardSwitchButton.java | 15 +++++++-------- .../component/WidgetCardTagBoundPane.java | 1 - 5 files changed, 12 insertions(+), 14 deletions(-) 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 c012f7cdf2..2f6ea58868 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 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 af70d929c5..8f1f273c33 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 diff --git a/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java b/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java index fa0f4a6f9b..41d316145f 100644 --- a/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java +++ b/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java @@ -46,7 +46,7 @@ public abstract class BackgroundCompPane extends BasicPane { new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background-Over")), overBackgroundEditor}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background-Click")), clickBackgroundEditor}, }; - panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W0, IntervalConstants.INTERVAL_L1); + panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L6, IntervalConstants.INTERVAL_L5, 0, 0)); backgroundHead = new UIButtonGroup(titles); JPanel headPane = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{ diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index fc503b9d82..099cc4330d 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -63,7 +63,7 @@ public class XCardSwitchButton extends XButton { // 删除按钮识别区域偏移量 private static final int RIGHT_OFFSET = 15; - private static final int TOP_OFFSET = 25; + private static final int TOP_OFFSET = 15; //这边先不计算button的高度,涉及到layout那边的整体高度,先用之前的固定高度 private static final int DEFAULT_BUTTON_HEIGHT = 36; @@ -283,20 +283,19 @@ public class XCardSwitchButton extends XButton { //减掉tab布局的相对位置 ex -= mainX; ey -= mainY; - + + XLayoutContainer titleLayout = tagLayout.getBackupParent(); + Point titlePoint = titleLayout.getLocation(); // button position XCardSwitchButton button = this; Point position = button.getLocation(); int width = button.getWidth(); - int height = button.getHeight(); - - ey = ey % DEFAULT_BUTTON_HEIGHT; // 鼠标进入按钮右侧删除图标区域 - double recX = position.getX() + (width - RIGHT_OFFSET); - double recY = position.getY() + (height - TOP_OFFSET); + double recX = position.getX() + titlePoint.getX() + (width - RIGHT_OFFSET); + double recY = position.getY() + titlePoint.getY() + TOP_OFFSET; - return (recX < ex && ex < recX + RIGHT_OFFSET && ey < recY); + return (recX < ex && ex < recX + RIGHT_OFFSET && ey < recY && ey > position.getY()); } //将当前switchButton改为选中状态 diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java index c992f7bf30..0a82d216e5 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/WidgetCardTagBoundPane.java @@ -4,7 +4,6 @@ import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.cardlayout.XWCardMainBorderLayout; import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; From 573f856c2481a24edd87d6eb4ed866450a0d38af Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 19 Jan 2018 11:46:42 +0800 Subject: [PATCH 046/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=E7=AD=96=E7=95=A5=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E9=87=8D=E6=9E=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/beans/actions/CopyAction.java | 12 ++--------- .../designer/beans/actions/CutAction.java | 13 ++---------- .../beans/actions/FormDeleteAction.java | 12 ++--------- .../beans/actions/FormWidgetEditAction.java | 13 +++++++++++- .../beans/actions/MoveDownAction.java | 12 ++--------- .../beans/actions/MoveToBottomAction.java | 13 ++---------- .../beans/actions/MoveToTopAction.java | 13 ++---------- .../designer/beans/actions/MoveUpAction.java | 13 ++---------- .../actions/behavior/ComponentEnable.java | 20 +++++++++++++++++++ .../actions/behavior/MovableDownEnable.java | 19 ++++++++++++++++++ .../actions/behavior/MovableUpEnable.java | 19 ++++++++++++++++++ .../actions/behavior/UpdateBehavior.java | 10 ++++++++++ 12 files changed, 94 insertions(+), 75 deletions(-) create mode 100644 designer_form/src/com/fr/design/designer/beans/actions/behavior/ComponentEnable.java create mode 100644 designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableDownEnable.java create mode 100644 designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableUpEnable.java create mode 100644 designer_form/src/com/fr/design/designer/beans/actions/behavior/UpdateBehavior.java diff --git a/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java b/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java index 940bbbca75..96d3970425 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/CopyAction.java @@ -1,6 +1,7 @@ package com.fr.design.designer.beans.actions; import com.fr.base.BaseUtils; +import com.fr.design.designer.beans.actions.behavior.ComponentEnable; import com.fr.design.mainframe.FormDesigner; import com.fr.general.Inter; @@ -18,6 +19,7 @@ public class CopyAction extends FormWidgetEditAction { this.setMnemonic('C'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/copy.png")); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, DEFAULT_MODIFIER)); + setUpdateBehavior(new ComponentEnable()); } @Override @@ -28,14 +30,4 @@ public class CopyAction extends FormWidgetEditAction { } return false; } - - @Override - public void update() { - FormDesigner designer = getEditingComponent(); - if (designer == null) { - this.setEnabled(false); - return; - } - this.setEnabled(!designer.isRootSelected()); - } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java b/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java index 3ce0329088..86d4079385 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/CutAction.java @@ -6,6 +6,7 @@ import java.awt.event.KeyEvent; import javax.swing.KeyStroke; import com.fr.base.BaseUtils; +import com.fr.design.designer.beans.actions.behavior.ComponentEnable; import com.fr.general.Inter; import com.fr.design.mainframe.FormDesigner; @@ -19,6 +20,7 @@ public class CutAction extends FormWidgetEditAction { this.setMnemonic('T'); this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_edit/cut.png")); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, DEFAULT_MODIFIER)); + this.setUpdateBehavior(new ComponentEnable()); } @Override @@ -29,15 +31,4 @@ public class CutAction extends FormWidgetEditAction { } return editPane.cut(); } - - @Override - public void update() { - FormDesigner designer = getEditingComponent(); - if (designer == null) { - this.setEnabled(false); - return; - } - this.setEnabled(!designer.isRootSelected()); - } - } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java index b1bdef9c56..2e9912f1e6 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormDeleteAction.java @@ -8,6 +8,7 @@ import java.awt.event.KeyEvent; import javax.swing.*; import com.fr.base.BaseUtils; +import com.fr.design.designer.beans.actions.behavior.ComponentEnable; import com.fr.general.Inter; import com.fr.design.designer.creator.XCreator; import com.fr.design.mainframe.FormDesigner; @@ -27,6 +28,7 @@ public class FormDeleteAction extends FormWidgetEditAction { // Richie:删除菜单图标 this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_report/delete.png")); this.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_BACK_SPACE, 0)); + this.setUpdateBehavior(new ComponentEnable()); } @Override @@ -58,14 +60,4 @@ public class FormDeleteAction extends FormWidgetEditAction { return false; } - - @Override - public void update() { - FormDesigner designer = getEditingComponent(); - if (designer == null) { - this.setEnabled(false); - return; - } - this.setEnabled(!designer.isRootSelected()); - } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java index 765980b296..88e102a126 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java @@ -1,6 +1,7 @@ package com.fr.design.designer.beans.actions; import com.fr.design.actions.TemplateComponentAction; +import com.fr.design.designer.beans.actions.behavior.UpdateBehavior; import com.fr.design.mainframe.FormDesigner; import com.fr.general.Inter; import com.fr.plugin.ExtraClassManager; @@ -12,13 +13,19 @@ import java.awt.event.ActionEvent; public abstract class FormWidgetEditAction extends TemplateComponentAction { + private UpdateBehavior updateBehavior; + protected FormWidgetEditAction(FormDesigner t) { super(t); } @Override public void update() { - this.setEnabled(true); + if (updateBehavior != null) { + updateBehavior.doUpdate(this); + } else { + this.setEnabled(true); + } } @Override @@ -37,4 +44,8 @@ public abstract class FormWidgetEditAction extends TemplateComponentAction Date: Fri, 19 Jan 2018 12:07:50 +0800 Subject: [PATCH 047/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=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/DesignerFrame.java | 11 ----------- .../beans/actions/FormWidgetEditAction.java | 13 +++++++------ 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index bec8df3b70..ea02476682 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -95,8 +95,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta private List designerOpenedListenerList = new ArrayList<>(); - private boolean isDesignerOpened = false; // 加一个标记。可以通过它来判断设计器是否初始化完成 - private ToolBarMenuDock ad; private DesktopCardPane centerTemplateCardPane; @@ -303,17 +301,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta for (DesignerOpenedListener listener : designerOpenedListenerList) { listener.designerOpened(); } - isDesignerOpened = true; - } - - /** - * 判断设计器是否初始化完成 - */ - public boolean isDesignerOpened() { - return isDesignerOpened; } - protected DesktopCardPane getCenterTemplateCardPane() { return centerTemplateCardPane; } diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java index 88e102a126..2e30ef1d01 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java @@ -13,7 +13,12 @@ import java.awt.event.ActionEvent; public abstract class FormWidgetEditAction extends TemplateComponentAction { - private UpdateBehavior updateBehavior; + private UpdateBehavior updateBehavior = new UpdateBehavior() { + @Override + public void doUpdate(FormWidgetEditAction action) { + action.setEnabled(true); + } + }; protected FormWidgetEditAction(FormDesigner t) { super(t); @@ -21,11 +26,7 @@ public abstract class FormWidgetEditAction extends TemplateComponentAction Date: Fri, 19 Jan 2018 13:52:13 +0800 Subject: [PATCH 048/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=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 --- .../design/designer/beans/actions/FormWidgetEditAction.java | 2 +- .../designer/beans/actions/behavior/ComponentEnable.java | 2 +- .../designer/beans/actions/behavior/MovableDownEnable.java | 2 +- .../designer/beans/actions/behavior/MovableUpEnable.java | 2 +- .../designer/beans/actions/behavior/UpdateBehavior.java | 6 ++---- 5 files changed, 6 insertions(+), 8 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java b/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java index 2e30ef1d01..142d21aaf3 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/FormWidgetEditAction.java @@ -13,7 +13,7 @@ import java.awt.event.ActionEvent; public abstract class FormWidgetEditAction extends TemplateComponentAction { - private UpdateBehavior updateBehavior = new UpdateBehavior() { + private UpdateBehavior updateBehavior = new UpdateBehavior() { @Override public void doUpdate(FormWidgetEditAction action) { action.setEnabled(true); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/behavior/ComponentEnable.java b/designer_form/src/com/fr/design/designer/beans/actions/behavior/ComponentEnable.java index bb16872696..051691e64f 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/behavior/ComponentEnable.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/behavior/ComponentEnable.java @@ -7,7 +7,7 @@ import com.fr.design.mainframe.FormDesigner; * 只对控件有效,对底层布局(form/body)无效 * Created by plough on 2018/1/19. */ -public class ComponentEnable implements UpdateBehavior { +public class ComponentEnable implements UpdateBehavior { @Override public void doUpdate(FormWidgetEditAction action) { FormDesigner designer = action.getEditingComponent(); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableDownEnable.java b/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableDownEnable.java index 0baee302bb..ad73be1b1c 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableDownEnable.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableDownEnable.java @@ -6,7 +6,7 @@ import com.fr.design.mainframe.FormDesigner; /** * Created by plough on 2018/1/19. */ -public class MovableDownEnable implements UpdateBehavior { +public class MovableDownEnable implements UpdateBehavior { @Override public void doUpdate(FormWidgetEditAction action) { FormDesigner designer = action.getEditingComponent(); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableUpEnable.java b/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableUpEnable.java index 5c2ca89780..85c12039ae 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableUpEnable.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/behavior/MovableUpEnable.java @@ -6,7 +6,7 @@ import com.fr.design.mainframe.FormDesigner; /** * Created by plough on 2018/1/19. */ -public class MovableUpEnable implements UpdateBehavior { +public class MovableUpEnable implements UpdateBehavior { @Override public void doUpdate(FormWidgetEditAction action) { FormDesigner designer = action.getEditingComponent(); diff --git a/designer_form/src/com/fr/design/designer/beans/actions/behavior/UpdateBehavior.java b/designer_form/src/com/fr/design/designer/beans/actions/behavior/UpdateBehavior.java index d78edc043c..fa56bca018 100644 --- a/designer_form/src/com/fr/design/designer/beans/actions/behavior/UpdateBehavior.java +++ b/designer_form/src/com/fr/design/designer/beans/actions/behavior/UpdateBehavior.java @@ -1,10 +1,8 @@ package com.fr.design.designer.beans.actions.behavior; -import com.fr.design.designer.beans.actions.FormWidgetEditAction; - /** * Created by plough on 2018/1/19. */ -public interface UpdateBehavior { - public void doUpdate(FormWidgetEditAction action); +public interface UpdateBehavior { + public void doUpdate(T t); } From ff78957bd45b2320b61067d6dab9e8d528431f2e Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 19 Jan 2018 16:10:06 +0800 Subject: [PATCH 049/116] =?UTF-8?q?REPORT-6662=20=E6=9B=BF=E6=8D=A2tab?= =?UTF-8?q?=E5=92=8Ctabpane=E6=8E=A7=E4=BB=B6=E6=A0=91=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/designer/creator/XChartEditor.java | 9 ++++++++- .../designer/creator/cardlayout/XWCardTagLayout.java | 5 +++++ .../designer/creator/cardlayout/XWTabFitLayout.java | 6 ++++++ 3 files changed, 19 insertions(+), 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 260697355d..f6950cd76c 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -14,7 +14,6 @@ import com.fr.design.gui.chart.BaseChartPropertyPane; import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.mainframe.*; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; -import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; import com.fr.design.module.DesignModuleFactory; import com.fr.design.designer.beans.events.DesignerEditor; import com.fr.form.ui.BaseChartEditor; @@ -270,6 +269,14 @@ public class XChartEditor extends XBorderStyleWidgetCreator { return coverPanel; } + /** + * 是否支持设置可用 + * return boolean + */ + public boolean supportSetEnable(){ + return false; + } + /** * data属性改变触发其他操作 * diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index 7dc69ba5d6..9a648a47cb 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -140,6 +140,11 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } + @Override + protected String getIconName() { + return "tabpane.png"; + } + private void initCardLayout() { XWCardTitleLayout titleLayout = (XWCardTitleLayout) this.getBackupParent(); XWCardMainBorderLayout borderLayout = (XWCardMainBorderLayout) titleLayout.getBackupParent(); 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 5e85b503a4..0b32232216 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 @@ -109,6 +109,12 @@ public class XWTabFitLayout extends XWFitLayout { return UIPopupMenu.EMPTY; // 不要菜单 } + @Override + protected String getIconName() { + return "tab_fit_layout.png"; + } + + /** * 得到属性名 * @return 属性名 From 1445ce99e009867a9bcd496a54e726bcd3094bc2 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 22 Jan 2018 09:22:10 +0800 Subject: [PATCH 050/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=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=E5=8A=A8=E7=AB=AF=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=3D>=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 18d2294eb58f7c7ee8735875d19bd0b1b4dbbabb Mon Sep 17 00:00:00 2001 From: hzzz Date: Mon, 22 Jan 2018 09:51:17 +0800 Subject: [PATCH 051/116] =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=AE=A1=E7=90=86=20?= =?UTF-8?q?=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/file/MutilTempalteTabPane.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java index 7fa29ea7c7..e25297b110 100644 --- a/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java +++ b/designer_base/src/com/fr/design/file/MutilTempalteTabPane.java @@ -370,7 +370,9 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M templateStartX += realWidth; } - paintListDown(g2d, maxWidth); + if (!DesignerMode.isVcsMode()) { + paintListDown(g2d, maxWidth); + } paintUnderLine(templateStartX, maxWidth, g2d); } @@ -549,7 +551,9 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M g2d.drawString(sheetName, (int) templateStartX + sheeticon.getIconWidth() + 2 * GAP, getHeight() - GAP * 2); int closePosition = (int) templateStartX + realWidth - CLOSE.getIconWidth() - SMALLGAP; int closeY = (getHeight() - closeIcon.getIconHeight()) / 2; - closeIcon.paintIcon(this, g2d, closePosition, closeY); + if (!DesignerMode.isVcsMode()) { + closeIcon.paintIcon(this, g2d, closePosition, closeY); + } return closePosition; } @@ -605,7 +609,9 @@ public class MutilTempalteTabPane extends JComponent implements MouseListener, M g2d.drawString(sheetName, (int) templateStartX + sheeticon.getIconWidth() + 2 * GAP, getHeight() - GAP * 2); int closeY = (getHeight() - closeIcon.getIconHeight()) / 2; int closePosition = (int) templateStartX + realWidth - CLOSE.getIconWidth() - SMALLGAP; - closeIcon.paintIcon(this, g2d, closePosition, closeY); + if (!DesignerMode.isVcsMode()) { + closeIcon.paintIcon(this, g2d, closePosition, closeY); + } return closePosition; } From 381f13e828ad5fed7d8d3c1c4ac8d451855711b0 Mon Sep 17 00:00:00 2001 From: zack Date: Mon, 22 Jan 2018 15:28:08 +0800 Subject: [PATCH 052/116] =?UTF-8?q?REPORT-6492=20=E5=90=8C=E6=AD=A59.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/fun/SubmitProvider.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/fun/SubmitProvider.java b/designer_base/src/com/fr/design/fun/SubmitProvider.java index 729a0abe1f..32f4db02ae 100644 --- a/designer_base/src/com/fr/design/fun/SubmitProvider.java +++ b/designer_base/src/com/fr/design/fun/SubmitProvider.java @@ -10,7 +10,7 @@ public interface SubmitProvider extends Mutable{ String MARK_STRING = "SubmitProvider"; - int CURRENT_LEVEL = 1; + int CURRENT_LEVEL = 2; /** From fa3b8b84eee7e78672fc57e52f87d8f8d4c0c047 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 22 Jan 2018 17:05:25 +0800 Subject: [PATCH 053/116] =?UTF-8?q?REPORT-6709=20=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E3=80=81=E5=9B=BE=E8=A1=A8=E5=9D=97=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E9=80=89=E4=BA=86=E8=87=AA=E5=AE=9A=E4=B9=89=EF=BC=8C?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E4=B8=8B=E6=96=B9=E6=B2=A1=E6=9C=89=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E5=87=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java | 5 +++++ .../src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java b/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java index 9030ce0aa1..9e9e179128 100644 --- a/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java @@ -11,4 +11,9 @@ public class CardTagLayoutBorderPreviewPane extends LayoutBorderPreviewPane{ public CardTagLayoutBorderPreviewPane(LayoutBorderStyle borderStyle) { super(borderStyle,true); } + + @Override + protected void showTitlePreviewPane(){ + return; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java index 5aa65360a6..8134042fde 100644 --- a/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/LayoutBorderPreviewPane.java @@ -92,9 +92,14 @@ public class LayoutBorderPreviewPane extends JPanel{ jp.setBounds(smallGAP,smallGAP, getWidth() - GAP, height); borderStyle.paint(g, new Rectangle2D.Double(smallGAP, smallGAP, getWidth() - GAP, getHeight() - GAP)); jp.setFontObject(borderStyle.getTitle().getFrFont()); + showTitlePreviewPane(); } } + protected void showTitlePreviewPane(){ + jp.setVisible(borderStyle.getType() == LayoutBorderStyle.TITLE); + } + private class titlePreviewPane extends UITextArea { private FRFont frFont = null; From 6045726f789ff9d7ea7d5a1675adc21a75e5331c Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 22 Jan 2018 17:20:26 +0800 Subject: [PATCH 054/116] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java b/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java index 9e9e179128..6c4d1a6f7a 100644 --- a/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java +++ b/designer_form/src/com/fr/design/gui/xpane/CardTagLayoutBorderPreviewPane.java @@ -14,6 +14,6 @@ public class CardTagLayoutBorderPreviewPane extends LayoutBorderPreviewPane{ @Override protected void showTitlePreviewPane(){ - return; + } } \ No newline at end of file From 7159aff64bc9ae1d7a0273919005651a1ce7679a Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Tue, 23 Jan 2018 11:39:20 +0800 Subject: [PATCH 055/116] =?UTF-8?q?REPORT-5856=20=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=96=B0=E5=88=86=E7=B1=BB=20=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E6=8F=92=E4=BB=B6=E5=88=86=E7=B1=BB=E8=BF=87=E6=BB=A4?= =?UTF-8?q?=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java b/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java index 4b4bddab4a..db10437fdb 100644 --- a/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java +++ b/designer_base/src/com/fr/design/extra/exe/GetPluginFromStoreExecutor.java @@ -23,7 +23,7 @@ public class GetPluginFromStoreExecutor implements Executor { private String scope; public GetPluginFromStoreExecutor(JSONObject info) { - this.category = info.optString("category"); + this.category = info.optString("categories"); this.fee = info.optString("fee"); this.seller = info.optString("seller"); this.scope = info.optString("scope"); From 4a804f4f7803f77a8908f55118fbcf95c758c24b Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 24 Jan 2018 13:56:53 +0800 Subject: [PATCH 056/116] =?UTF-8?q?REPORT-6260=20=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E5=B8=83=E5=B1=80=E4=B8=8B=EF=BC=8C=E9=80=89=E4=B8=AD?= =?UTF-8?q?body=EF=BC=8C=E6=97=A0=E6=B3=95=E7=B2=98=E8=B4=B4=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/ComponentTree.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/designer_form/src/com/fr/design/mainframe/ComponentTree.java b/designer_form/src/com/fr/design/mainframe/ComponentTree.java index 2d7b56d67d..9b9343c59d 100644 --- a/designer_form/src/com/fr/design/mainframe/ComponentTree.java +++ b/designer_form/src/com/fr/design/mainframe/ComponentTree.java @@ -20,6 +20,8 @@ import java.awt.Container; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Point; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; @@ -56,6 +58,12 @@ public class ComponentTree extends JTree { ComponetTreeMouseListener componetTreeMouseListener = new ComponetTreeMouseListener(this); this.addMouseMotionListener(componetTreeMouseListener); this.addMouseListener(componetTreeMouseListener); + this.addKeyListener(new KeyAdapter() { + @Override + public void keyPressed(KeyEvent e) { + designer.dispatchEvent(e); + } + }); } public FormDesigner getDesigner() { From 360d5c8cbf170d68259cf20f9ed5e39dd89a4f0d Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 24 Jan 2018 14:18:54 +0800 Subject: [PATCH 057/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E9=80=BB=E8=BE=91=3D>=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=9A=84=E7=A7=BB=20=E5=8A=A8=E7=AB=AF=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E7=95=8C=E9=9D=A2=3D>=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E7=BB=93=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 058/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=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>=E4=B8=8Ebody=E7=9A=84=E2=80=9C=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E9=87=8D=E5=B8=83=E5=B1=80=E2=80=9D=E9=80=89=E9=A1=B9?= =?UTF-8?q?=E8=81=94=E5=8A=A8=EF=BC=8C=E5=8E=BB=E5=8B=BE=E9=80=89=E6=97=B6?= =?UTF-8?q?=E6=98=BE=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 059/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=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>=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=8F=AF?= =?UTF-8?q?=E5=AD=98=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 060/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=86=B3=E7=AD=96=20=E6=8A=A5=E8=A1=A8=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E9=80=BB=E8=BE=91=3D>=E5=8A=9F=E8=83=BD=E5=9F=8B?= =?UTF-8?q?=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 061/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=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>=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 2c9a60b280967e24788e3f399f8c458d0a9d7275 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 29 Jan 2018 14:58:57 +0800 Subject: [PATCH 062/116] =?UTF-8?q?REPORT-6733=20=E6=96=B0tab=E5=B8=83?= =?UTF-8?q?=E5=B1=80vic=E9=AA=8C=E6=94=B6=E9=97=AE=E9=A2=98=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardAddButton.java | 3 - .../creator/cardlayout/XCardSwitchButton.java | 257 +++++++++--------- .../creator/cardlayout/XWCardLayout.java | 4 - .../creator/cardlayout/XWTabFitLayout.java | 57 +--- .../component/TabFitLayoutBackgroundPane.java | 29 +- .../layout/WCardTagLayoutDefinePane.java | 34 ++- .../layout/WTabFitLayoutDefinePane.java | 4 +- 7 files changed, 177 insertions(+), 211 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index 3d52b2beff..a2b8b05ba1 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -1,7 +1,6 @@ package com.fr.design.designer.creator.cardlayout; import com.fr.base.BaseUtils; -import com.fr.base.background.ColorBackground; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; @@ -151,9 +150,7 @@ public class XCardAddButton extends XButton{ CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); //设置标题 titleButton.setText(getTabTitleName()); - titleButton.setInitialBackground(ColorBackground.getInstance(Color.WHITE)); XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); - titleButton.setCustomStyle(true); titleButton.setShowButton(true); showButton.setBackupParent(tagLayout); this.tagLayout.setCurrentCard(titleButton); diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index 099cc4330d..bdc2f533f0 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -5,7 +5,6 @@ package com.fr.design.designer.creator.cardlayout; import com.fr.base.BaseUtils; import com.fr.base.GraphHelper; -import com.fr.base.background.ColorBackground; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; @@ -34,9 +33,19 @@ import com.fr.general.Inter; import com.fr.general.cardtag.TemplateStyle; import com.fr.stable.unit.PT; -import javax.swing.*; +import javax.swing.Action; +import javax.swing.Icon; +import javax.swing.JComponent; +import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; +import javax.swing.SwingUtilities; import javax.swing.plaf.basic.BasicLabelUI; -import java.awt.*; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.FontMetrics; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; import java.util.ArrayList; @@ -62,11 +71,8 @@ public class XCardSwitchButton extends XButton { private static final int MIN_SIZE = 1; // 删除按钮识别区域偏移量 - private static final int RIGHT_OFFSET = 15; - private static final int TOP_OFFSET = 15; - - //这边先不计算button的高度,涉及到layout那边的整体高度,先用之前的固定高度 - private static final int DEFAULT_BUTTON_HEIGHT = 36; + private static final int CLOSE_ICON_RIGHT_OFFSET = 15; + private static final int CLOSE_ICON_TOP_OFFSET = 15; // tab按钮里的字体因为按钮内部的布局看起来比正常的要小,加个调整量 private static final int FONT_SIZE_ADJUST = 2; @@ -74,13 +80,12 @@ public class XCardSwitchButton extends XButton { //文字竖排时用来计算文字大小 private static final int RESLUTION = 120; - private static final int DOTSLINESPACE = 6; private XWCardLayout cardLayout; private XWCardTagLayout tagLayout; private Background selectBackground; - private boolean isCustomStyle; + private UILabel label; private Icon closeIcon = MOUSE_CLOSE; @@ -101,14 +106,6 @@ public class XCardSwitchButton extends XButton { this.cardLayout = cardLayout; } - public boolean isCustomStyle() { - return isCustomStyle; - } - - public void setCustomStyle(boolean customStyle) { - isCustomStyle = customStyle; - } - public Background getSelectBackground() { return selectBackground; } @@ -157,8 +154,7 @@ public class XCardSwitchButton extends XButton { } //获取当前tab的index - XCardSwitchButton button = this; - CardSwitchButton currentButton = (CardSwitchButton) button.toData(); + CardSwitchButton currentButton = (CardSwitchButton) this.toData(); int index = currentButton.getIndex(); int maxIndex = cardLayout.getComponentCount() - 1; @@ -169,14 +165,13 @@ public class XCardSwitchButton extends XButton { deleteTabLayout(selectionModel, designer); return; } - deleteCard(button,index); - this.tagLayout.adjustComponentWidth(); + deleteCard(this, index); designer.fireTargetModified(); LayoutUtils.layoutRootContainer(designer.getRootComponent()); FormHierarchyTreePane.getInstance().refreshRoot(); return; } - + //将当前tab按钮改为选中状态 changeButtonState(index); @@ -222,7 +217,7 @@ public class XCardSwitchButton extends XButton { } //删除card,同时修改其他switchbutton和tabfit的index - private void deleteCard(XCardSwitchButton button,int index){ + private void deleteCard(XCardSwitchButton button, int index){ String titleName = button.getContentLabel().getText(); int value = JOptionPane.showConfirmDialog(null, Inter.getLocText("FR-Designer_ConfirmDialog_Content") + "“" + titleName + "”", Inter.getLocText("FR-Designer_ConfirmDialog_Title"), JOptionPane.YES_NO_OPTION); @@ -292,18 +287,18 @@ public class XCardSwitchButton extends XButton { int width = button.getWidth(); // 鼠标进入按钮右侧删除图标区域 - double recX = position.getX() + titlePoint.getX() + (width - RIGHT_OFFSET); - double recY = position.getY() + titlePoint.getY() + TOP_OFFSET; + double recX = position.getX() + titlePoint.getX() + (width - CLOSE_ICON_RIGHT_OFFSET); + double recY = position.getY() + titlePoint.getY() + CLOSE_ICON_TOP_OFFSET; - return (recX < ex && ex < recX + RIGHT_OFFSET && ey < recY && ey > position.getY()); + return (recX < ex && ex < recX + CLOSE_ICON_RIGHT_OFFSET && ey < recY && ey > position.getY()); } //将当前switchButton改为选中状态 - private void changeButtonState(int index){ - for(int i=0;i height - textHeight && i < verticalTextList.size()-1) { - textY -= 10; - paintDots(g2d, textY, (width - fm.stringWidth(paint_str)) / 2); - break; - } - } - }else{ - super.paint(g, c); - } - } - - public void paintDots(Graphics2D g2d, int startY, int startX){ - for (int i = 0; i < 3; i++) { - String paint_str = "."; - GraphHelper.drawString(g2d, paint_str, startX, startY); - startY += DOTSLINESPACE;// - startY += PT.pt2pix(0, RESLUTION); - } - } + public class CardSwitchBtnLabelUI extends BasicLabelUI { + private static final int DOT_COUNT = 3; + private static final String DOT = "."; + private static final int DOTS_LINESPACE = 6; + private static final int DOTS_HEIGHT = 10; + + @Override + public void paint(Graphics g, JComponent c) { + WCardTagLayout wCardTagLayout = (WCardTagLayout) tagLayout.toData(); + if (ComparatorUtils.equals(wCardTagLayout.getTextDirection(), WTabTextDirection.TEXT_VER_DIRECTION)) { + //绘制文本竖排展示 + paintVerticalText(g); + } else { + super.paint(g, c); + } + } + + private void paintVerticalText(Graphics g) { + Graphics2D g2d = (Graphics2D) g; + int width = XCardSwitchButton.this.getWidth(); + int height = XCardSwitchButton.this.getHeight(); + CardSwitchButton button = (CardSwitchButton) XCardSwitchButton.this.toData(); + String titleText = button.getText(); + java.util.List verticalTextList = new ArrayList(); + StringBuilder titleStringBuf = new StringBuilder(); + WidgetTitle title = getWidgetTitle(); + FRFont font = title.getFrFont(); + FRFont newFont = FRFont.getInstance(font.getName(), font.getStyle(), font.getSize() + FONT_SIZE_ADJUST); + FontMetrics fm = GraphHelper.getFontMetrics(newFont); + for (int i = 0; i < titleText.length(); i++) { + titleStringBuf.append(titleText.charAt(i)); + verticalTextList.add(titleStringBuf.substring(0, titleStringBuf.length())); + titleStringBuf.delete(0, titleStringBuf.length()); + } + int textAscent = fm.getAscent(); + int textHeight = fm.getHeight(); + int textY = 0; + textY += textAscent; + for (int i = 0; i < verticalTextList.size(); i++) { + String paint_str = (String) verticalTextList.get(i); + + GraphHelper.drawString(g2d, paint_str, (width - fm.stringWidth(paint_str)) / 2, textY); + textY += textHeight; + textY += PT.pt2pix(0, RESLUTION); + if (textY > height - textHeight && i < verticalTextList.size() - 1) { + textY -= DOTS_HEIGHT; + paintDots(g2d, textY, (width - fm.stringWidth(paint_str)) / 2); + break; + } + } + } + + public void paintDots(Graphics2D g2d, int startY, int startX) { + for (int i = 0; i < DOT_COUNT; i++) { + GraphHelper.drawString(g2d, DOT, startX, startY); + startY += DOTS_LINESPACE; + startY += PT.pt2pix(0, RESLUTION); + } + } } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java index 4c1a957fc1..b1c9863b4f 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java @@ -31,7 +31,6 @@ import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WCardTitleLayout; -import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; @@ -227,12 +226,9 @@ public class XWCardLayout extends XLayoutContainer { private XCardSwitchButton initFirstButton(String widgetName, XWCardTagLayout xTag){ CardSwitchButton firstBtn = new CardSwitchButton(widgetName); firstBtn.setText(Inter.getLocText("FR-Designer_Title") + 0); - firstBtn.setInitialBackground(ColorBackground.getInstance(Color.WHITE)); - firstBtn.setCustomStyle(true); xTag.setCurrentCard(firstBtn); XCardSwitchButton xFirstBtn = new XCardSwitchButton(firstBtn, new Dimension(CardSwitchButton.DEF_WIDTH, -1), this, xTag); xFirstBtn.setBackupParent(xTag); - return xFirstBtn; } 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 0b32232216..6a77c95de3 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 @@ -1,7 +1,6 @@ package com.fr.design.designer.creator.cardlayout; import com.fr.base.GraphHelper; -import com.fr.base.background.ColorBackground; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRTabFitLayoutAdapter; import com.fr.design.designer.beans.models.SelectionModel; @@ -22,7 +21,6 @@ import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; -import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; import com.fr.stable.core.PropertyChangeAdapter; @@ -213,40 +211,27 @@ public class XWTabFitLayout extends XWFitLayout { } private void checkButonType() { - if (this.xCardSwitchButton == null) { - //假如为空,默认获取第一个tab的cardBtn属性 - try { - xCardSwitchButton = (XCardSwitchButton) ((XWCardMainBorderLayout) this.getTopLayout()).getTitlePart().getTagPart().getComponent(0); - }catch (Exception e){ - FRLogger.getLogger().error(e.getMessage()); - } - return; - } - boolean isStyle = ((WTabFitLayout) data).isCustomStyle(); - Background bg; - bg = ColorBackground.getInstance(NORMAL_GRAL); + WTabFitLayout wTabFitLayout = ((WTabFitLayout) data); CardSwitchButton cardSwitchButton = (CardSwitchButton) this.xCardSwitchButton.toData(); + boolean isStyle = wTabFitLayout.isCustomStyle(); + Background initialBackground = wTabFitLayout.getInitialBackground(); + Background overBackground = wTabFitLayout.getOverBackground(); + Background clickBackground = wTabFitLayout.getClickBackground(); if (!isStyle) { - this.xCardSwitchButton.setCustomStyle(false); - this.xCardSwitchButton.setSelectBackground(bg); + cardSwitchButton.setCustomStyle(false); cardSwitchButton.setInitialBackground(null); cardSwitchButton.setClickBackground(null); cardSwitchButton.setOverBackground(null); } else { - Background initialBackground = cardSwitchButton.getInitialBackground(); - bg = initialBackground == null ? bg : initialBackground; - this.xCardSwitchButton.setSelectBackground(bg); - this.xCardSwitchButton.setCustomStyle(true); cardSwitchButton.setCustomStyle(true); - if (this.initialBackground != null){ - this.xCardSwitchButton.setSelectBackground(this.initialBackground); - cardSwitchButton.setInitialBackground(this.initialBackground); + if (initialBackground != null){ + cardSwitchButton.setInitialBackground(initialBackground); } - if (this.overBackground != null){ - cardSwitchButton.setOverBackground(this.overBackground); + if (overBackground != null){ + cardSwitchButton.setOverBackground(overBackground); } - if (this.clickBackground != null) { - cardSwitchButton.setClickBackground(this.clickBackground); + if (clickBackground != null) { + cardSwitchButton.setClickBackground(clickBackground); } } } @@ -601,30 +586,14 @@ public class XWTabFitLayout extends XWFitLayout { @Override public void firePropertyChange(){ - checkButonType(); //根据字体长度设置tab宽度 setCardSwitchBtnSize(); XWCardLayout cardLayout = (XWCardLayout) this.getBackupParent(); XWCardMainBorderLayout mainLayout = (XWCardMainBorderLayout) cardLayout.getBackupParent(); XWCardTitleLayout titleLayout = mainLayout.getTitlePart(); -// //放置tab按钮的tagLayout + //放置tab按钮的tagLayout XWCardTagLayout tagLayout = titleLayout.getTagPart(); tagLayout.setTabsAndAdjust(); - - initialBackground = ((WTabFitLayout) data).getInitialBackground(); - overBackground = ((WTabFitLayout) data).getOverBackground(); - clickBackground = ((WTabFitLayout)data).getClickBackground(); - CardSwitchButton cardSwitchButton = (CardSwitchButton) xCardSwitchButton.toData(); - if(initialBackground != null){ - xCardSwitchButton.setSelectBackground(initialBackground); - cardSwitchButton.setInitialBackground(initialBackground); - } - if(overBackground != null){ - cardSwitchButton.setOverBackground(overBackground); - } - if(clickBackground != null){ - cardSwitchButton.setClickBackground(clickBackground); - } } public void setCardSwitchBtnSize(){ diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java index b2c79c9223..12a6e3c26a 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java @@ -2,6 +2,7 @@ package com.fr.design.widget.ui.designer.component; import com.fr.design.gui.ilable.UILabel; import com.fr.design.widget.component.BackgroundCompPane; +import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; import com.fr.general.Inter; @@ -15,33 +16,33 @@ public class TabFitLayoutBackgroundPane extends BackgroundCompPane UILabel fontLabel = new UILabel(Inter.getLocText("FR-Designer_Font")); fontLabel.setVerticalAlignment(SwingConstants.TOP); - frFontPane = new FRFontPane(){ + frFontPane = new FRFontPane() { protected JPanel createRightPane() { double p = TableLayout.PREFERRED; double f = TableLayout.FILL; @@ -73,7 +75,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify } }; - displayPositionGroup = new UIButtonGroup(WTabDisplayPosition.getStringArray()){ + displayPositionGroup = new UIButtonGroup(WTabDisplayPosition.getStringArray()) { @Override public boolean shouldResponseNameListener() { return true; @@ -105,7 +107,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify public void populateBean(WCardTagLayout ob) { //标题背景和字体属性设置在WCardLayout上做兼容 XLayoutContainer topLayout = creator.getTopLayout(); - LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout)topLayout).getCardPart().toData().getBorderStyle(); + LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout) topLayout).getCardPart().toData().getBorderStyle(); displayPositionGroup.setSelectedIndex(ob.getDisplayPosition().getType()); textDirectionGroup.setSelectedIndex(ob.getTextDirection().getType()); @@ -121,25 +123,41 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify public WCardTagLayout updateBean() { //标题背景和字体属性设置在WCardLayout上做兼容 XLayoutContainer topLayout = creator.getTopLayout(); - LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout)topLayout).getCardPart().toData().getBorderStyle(); + LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout) topLayout).getCardPart().toData().getBorderStyle(); FRFont frFont = layoutBorderStyle.getTitle().getFrFont() == null ? FRFont.getInstance() : layoutBorderStyle.getTitle().getFrFont(); layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont)); WCardTagLayout layout = (WCardTagLayout) creator.toData(); boolean isHori = displayPositionGroup.getSelectedIndex() == WTabDisplayPosition.TOP_POSITION.getType() || displayPositionGroup.getSelectedIndex() == WTabDisplayPosition.BOTTOM_POSITION.getType(); - if(ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Tab_Style_Template"))){ + if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Tab_Style_Template"))) { layout.setDisplayPosition(WTabDisplayPosition.parse(displayPositionGroup.getSelectedIndex())); - textDirectionGroup.setSelectedIndex(isHori? WTabTextDirection.TEXT_HORI_DERECTION.getType():WTabTextDirection.TEXT_VER_DIRECTION.getType()); + textDirectionGroup.setSelectedIndex(isHori ? WTabTextDirection.TEXT_HORI_DERECTION.getType() : WTabTextDirection.TEXT_VER_DIRECTION.getType()); + layout.setHgap(isHori ? WCardTagLayout.DESIGNER_DEFAULT_GAP : 0); + layout.setVgap(isHori ? 0 : WCardTagLayout.DESIGNER_DEFAULT_GAP); } layout.setTextDirection(WTabTextDirection.parse(textDirectionGroup.getSelectedIndex())); TemplateStyle templateStyle = (TemplateStyle) templateStyleEditor.getValue(); - if(!ComparatorUtils.equals(layout.getTemplateStyle(), templateStyle)){ + if (!ComparatorUtils.equals(layout.getTemplateStyle(), templateStyle)) { backgroundEditor.setValue(templateStyle.getDefaultBackground()); layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground()); + //重置内部tab的默认背景 + resetTabBackground(layout, templateStyle); layout.setTemplateStyle(templateStyle); - }else{ + } else { layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); } return layout; } + + private void resetTabBackground(WCardTagLayout layout, TemplateStyle templateStyle) { + for (int i = 0, len = layout.getWidgetCount(); i < len; i++) { + CardSwitchButton button = layout.getSwitchButton(i); + //兼容默认样式 + boolean defaultStyle = ComparatorUtils.equals(templateStyle.getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE); + button.setInitialBackground(defaultStyle ? null : templateStyle.getTabDefaultBackground()); + button.setOverBackground(null); + button.setClickBackground(null); + button.setCustomStyle(true); + } + } } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java index 77452e07b9..b9a2358695 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java @@ -78,7 +78,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify { @Override public void populateBean(WTabFitLayout ob) { - borderStyle.populate(ob); + borderStyle.populate(ob.getCurrentCard()); paddingBoundPane.populate(ob); componentInterval.setValue(ob.getCompInterval()); if(ob.getCurrentCard() == null){ @@ -118,7 +118,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify { @Override public WTabFitLayout updateBean() { WTabFitLayout layout = (WTabFitLayout) creator.toData(); - borderStyle.update(layout); + borderStyle.update(layout.getCurrentCard()); if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Layout-Padding"))) { paddingBoundPane.update(layout); } From a6042f39966a9f1b69785d36d3aafac131b31d45 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 29 Jan 2018 15:01:23 +0800 Subject: [PATCH 063/116] =?UTF-8?q?=E6=97=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/cardlayout/XCardSwitchButton.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index bdc2f533f0..9866e272e7 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -331,9 +331,6 @@ public class XCardSwitchButton extends XButton { this.setContentBackground(defaultSelectBackground); } else { this.setContentBackground(initialBackground == null ? background : initialBackground); -// if(templateStyle instanceof DefaultTemplateStyle){ -// this.setContentBackground(initialBackground == null ? background : initialBackground); -// } } } From 59b23599b543b4de4aa1b38e7b197d5fb63377cf Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 15:15:30 +0800 Subject: [PATCH 064/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=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>=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 5fd24993b919aaa2595ad99ba4d974ccbf5b2811 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 29 Jan 2018 15:54:47 +0800 Subject: [PATCH 065/116] =?UTF-8?q?tab=E6=8C=89=E9=92=AE=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B8=90=E5=8F=98=E8=89=B2=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AccessibleImgBackgroundEditor.java | 7 +- .../AccessibleTabBackgroundEditor.java | 39 ++------ .../AccessibleTabPaneBackgroundEditor.java | 40 ++++++++ .../BackgroundCardSwitchButtonPane.java | 95 +++++++++++++++++++ .../widget/component/BackgroundCompPane.java | 10 +- .../component/TabFitLayoutBackgroundPane.java | 8 ++ .../layout/WCardTagLayoutDefinePane.java | 6 +- 7 files changed, 167 insertions(+), 38 deletions(-) create mode 100644 designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabPaneBackgroundEditor.java create mode 100644 designer_base/src/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java index 931793aab2..71cc16bdce 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java @@ -18,7 +18,7 @@ public class AccessibleImgBackgroundEditor extends UneditableAccessibleEditor { @Override protected void showEditorPane() { - choosePane = new BackgroundButtonPane(); + choosePane = initBackgroundPane(); choosePane.setPreferredSize(new Dimension(600, 400)); BasicDialog dlg = choosePane.showWindow(SwingUtilities.getWindowAncestor(this)); dlg.addDialogActionListener(new DialogActionAdapter() { @@ -32,4 +32,9 @@ public class AccessibleImgBackgroundEditor extends UneditableAccessibleEditor { choosePane.populate(getValue() instanceof Background ? (Background) getValue() : new ColorBackground()); dlg.setVisible(true); } + + protected BackgroundButtonPane initBackgroundPane(){ + return new BackgroundButtonPane(); + } + } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java index ade9208565..d4d8a5493c 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabBackgroundEditor.java @@ -1,40 +1,17 @@ package com.fr.design.mainframe.widget.accessibles; -import com.fr.base.background.ColorBackground; -import com.fr.design.dialog.BasicDialog; -import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.mainframe.widget.wrappers.BackgroundWrapper; -import com.fr.design.style.background.BackgroundTabPane; -import com.fr.general.Background; - -import javax.swing.SwingUtilities; -import java.awt.Dimension; - +import com.fr.design.style.background.BackgroundButtonPane; +import com.fr.design.style.background.BackgroundCardSwitchButtonPane; /** * @author kerry - * @date 2018/1/17 + * @date 2018/1/29 */ -public class AccessibleTabBackgroundEditor extends UneditableAccessibleEditor { - private BackgroundTabPane choosePane; - +public class AccessibleTabBackgroundEditor extends AccessibleImgBackgroundEditor { public AccessibleTabBackgroundEditor() { - super(new BackgroundWrapper()); + super(); } - @Override - protected void showEditorPane() { - choosePane = new BackgroundTabPane(); - choosePane.setPreferredSize(new Dimension(600, 400)); - BasicDialog dlg = choosePane.showWindow(SwingUtilities.getWindowAncestor(this)); - dlg.addDialogActionListener(new DialogActionAdapter() { - - @Override - public void doOk() { - setValue(choosePane.update()); - fireStateChanged(); - } - }); - choosePane.populate(getValue() instanceof Background ? (Background) getValue() : new ColorBackground()); - dlg.setVisible(true); + protected BackgroundButtonPane initBackgroundPane(){ + return new BackgroundCardSwitchButtonPane(); } -} \ No newline at end of file +} diff --git a/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabPaneBackgroundEditor.java b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabPaneBackgroundEditor.java new file mode 100644 index 0000000000..ee0d7634f7 --- /dev/null +++ b/designer_base/src/com/fr/design/mainframe/widget/accessibles/AccessibleTabPaneBackgroundEditor.java @@ -0,0 +1,40 @@ +package com.fr.design.mainframe.widget.accessibles; + +import com.fr.base.background.ColorBackground; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.mainframe.widget.wrappers.BackgroundWrapper; +import com.fr.design.style.background.BackgroundTabPane; +import com.fr.general.Background; + +import javax.swing.SwingUtilities; +import java.awt.Dimension; + +/** + * @author kerry + * @date 2018/1/17 + */ +public class AccessibleTabPaneBackgroundEditor extends UneditableAccessibleEditor { + private BackgroundTabPane choosePane; + + public AccessibleTabPaneBackgroundEditor() { + super(new BackgroundWrapper()); + } + + @Override + protected void showEditorPane() { + choosePane = new BackgroundTabPane(); + choosePane.setPreferredSize(new Dimension(600, 400)); + BasicDialog dlg = choosePane.showWindow(SwingUtilities.getWindowAncestor(this)); + dlg.addDialogActionListener(new DialogActionAdapter() { + + @Override + public void doOk() { + setValue(choosePane.update()); + fireStateChanged(); + } + }); + choosePane.populate(getValue() instanceof Background ? (Background) getValue() : new ColorBackground()); + dlg.setVisible(true); + } +} \ No newline at end of file diff --git a/designer_base/src/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java b/designer_base/src/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java new file mode 100644 index 0000000000..b5a2aeffad --- /dev/null +++ b/designer_base/src/com/fr/design/style/background/BackgroundCardSwitchButtonPane.java @@ -0,0 +1,95 @@ +package com.fr.design.style.background; + +import com.fr.base.background.ColorBackground; +import com.fr.base.background.GradientBackground; +import com.fr.base.background.ImageBackground; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.style.background.gradient.GradientBackgroundPane; +import com.fr.design.style.background.impl.ColorBackgroundPane; +import com.fr.design.style.background.impl.ImageBackgroundPane; +import com.fr.design.style.background.impl.NullBackgroundPane; +import com.fr.general.Background; +import com.fr.general.Inter; + +import java.util.LinkedHashMap; +import java.util.Map; + +/** + * @author kerry + * @date 2018/1/29 + */ +public class BackgroundCardSwitchButtonPane extends BackgroundButtonPane { + + private static Map, BackgroundUIWrapper> cardSwitchButton = new LinkedHashMap<>(); + + static { + registerCardSwitchBtnBackground(cardSwitchButton); + } + + + private static void registerCardSwitchBtnBackground(Map, BackgroundUIWrapper> map) { + map.put(ColorBackground.class, BackgroundUIWrapper.create() + .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Color"))); + map.put(ImageBackground.class, BackgroundUIWrapper.create() + .setType(ImageBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Image"))); + map.put(GradientBackground.class, BackgroundUIWrapper.create() + .setType(GradientBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Gradient_Color"))); + + } + + public BackgroundCardSwitchButtonPane() { + super(); + } + + @Override + protected void initTabPane() { + int index = 0; + for (Class key : cardSwitchButton.keySet()) { + BackgroundUIWrapper wrapper = cardSwitchButton.get(key); + wrapper.setIndex(index++); + tabbedPane.addTab(Inter.getLocText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + } + } + + @Override + protected BackgroundUIWrapper getBackgroundUIWrapper(Background background) { + return cardSwitchButton.get(background == null ? null : background.getClass()); + } + + + @Override + protected BackgroundDetailPane getTabItemPane(Background background, int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + BackgroundUIWrapper uiWrapper = getBackgroundUIWrapper(background); + quickPane = BackgroundFactory.createByWrapper(uiWrapper); + quickPane.addChangeListener(backgroundChangeListener); + cacheMap.put(index, quickPane); + } + tabbedPane.setComponentAt(index, quickPane); + tabbedPane.setSelectedIndex(index); + return quickPane; + } + + @Override + protected BackgroundDetailPane getTabItemPaneByIndex(int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + quickPane = createDetailPaneByIndex(index); + tabbedPane.setComponentAt(index, quickPane); + cacheMap.put(index, quickPane); + quickPane.addChangeListener(backgroundChangeListener); + } + return quickPane; + } + + public BackgroundDetailPane createDetailPaneByIndex(int index) { + for (BackgroundUIWrapper wrapper : cardSwitchButton.values()) { + if (wrapper.getIndex() == index) { + return BackgroundFactory.createByWrapper(wrapper); + } + } + return new NullBackgroundPane(); + } + +} diff --git a/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java b/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java index 41d316145f..645abdf18a 100644 --- a/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java +++ b/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java @@ -31,9 +31,7 @@ public abstract class BackgroundCompPane extends BasicPane { public void initComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); UILabel headLabel = createUILable(); - initalBackgroundEditor = new AccessibleImgBackgroundEditor(); - overBackgroundEditor = new AccessibleImgBackgroundEditor(); - clickBackgroundEditor = new AccessibleImgBackgroundEditor(); + initBackgroundEditor(); String [] titles = new String[]{Inter.getLocText("FR-Designer_DEFAULT"), Inter.getLocText("FR-Designer_Custom")}; double f = TableLayout.FILL; @@ -57,6 +55,12 @@ public abstract class BackgroundCompPane extends BasicPane { } + protected void initBackgroundEditor(){ + initalBackgroundEditor = new AccessibleImgBackgroundEditor(); + overBackgroundEditor = new AccessibleImgBackgroundEditor(); + clickBackgroundEditor = new AccessibleImgBackgroundEditor(); + } + protected UILabel createUILable(){ return new UILabel(Inter.getLocText("FR-Designer_Background")); } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java index 12a6e3c26a..8bd816293a 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java @@ -1,6 +1,7 @@ package com.fr.design.widget.ui.designer.component; import com.fr.design.gui.ilable.UILabel; +import com.fr.design.mainframe.widget.accessibles.AccessibleTabBackgroundEditor; import com.fr.design.widget.component.BackgroundCompPane; import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WTabFitLayout; @@ -16,6 +17,13 @@ public class TabFitLayoutBackgroundPane extends BackgroundCompPane { - private AccessibleTabBackgroundEditor backgroundEditor; + private AccessibleTabPaneBackgroundEditor backgroundEditor; private FRFontPane frFontPane; private UIButtonGroup displayPositionGroup; private UIButtonGroup textDirectionGroup; @@ -51,7 +51,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify public void initComponent() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); - backgroundEditor = new AccessibleTabBackgroundEditor(); + backgroundEditor = new AccessibleTabPaneBackgroundEditor(); templateStyleEditor = new AccessibleTemplateStyleEditor(); double f = TableLayout.FILL; double p = TableLayout.PREFERRED; From 82fc86da68aee8876550f2b6e003e25f07beee9b Mon Sep 17 00:00:00 2001 From: loy Date: Mon, 29 Jan 2018 16:21:19 +0800 Subject: [PATCH 066/116] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E8=A1=A8=E5=90=8D=E5=B8=A6.=E5=BC=95=E8=B5=B7?= =?UTF-8?q?=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/data/datapane/ChoosePane.java | 7 +++++-- .../com/fr/design/gui/icombobox/FRTreeComboBox.java | 13 +++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/designer_base/src/com/fr/design/data/datapane/ChoosePane.java b/designer_base/src/com/fr/design/data/datapane/ChoosePane.java index b6cfc25a7a..eaa04114da 100644 --- a/designer_base/src/com/fr/design/data/datapane/ChoosePane.java +++ b/designer_base/src/com/fr/design/data/datapane/ChoosePane.java @@ -466,9 +466,12 @@ public class ChoosePane extends BasicBeanPane implements Refresha protected String getTableName() { String tableName = ""; - Object obj = this.tableNameComboBox.getSelectedItem(); + Object obj = this.tableNameComboBox.getSelectedItemObject(); if (obj == null) { - obj = this.tableNameComboBox.getEditor().getItem(); + obj = this.tableNameComboBox.getSelectedItem(); + if (obj == null) { + obj = this.tableNameComboBox.getEditor().getItem(); + } } if (obj instanceof TreePath) { Object tp = ((ExpandMutableTreeNode) ((TreePath) obj).getLastPathComponent()).getUserObject(); diff --git a/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java b/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java index ed8ffb16c7..4e8dc22303 100644 --- a/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java +++ b/designer_base/src/com/fr/design/gui/icombobox/FRTreeComboBox.java @@ -57,6 +57,7 @@ public class FRTreeComboBox extends UIComboBox { // richer:下拉展示用的tree protected JTree tree; private boolean onlyLeafSelectable = true; + private Object selectedObject = null; public FRTreeComboBox() { this(new JTree()); @@ -162,6 +163,7 @@ public class FRTreeComboBox extends UIComboBox { } public void setSelectedItem(Object o) { + selectedObject = o; if (o instanceof String) { this.setSelectedItemString((String) o); return; @@ -173,6 +175,10 @@ public class FRTreeComboBox extends UIComboBox { this.getModel().setSelectedItem(o); } } + + public Object getSelectedItemObject() { + return selectedObject; + } private boolean validTreePath(String treePath){ return StringUtils.isNotEmpty(treePath) && treePath.charAt(0) == '[' && treePath.endsWith("]"); @@ -183,12 +189,7 @@ public class FRTreeComboBox extends UIComboBox { if (validTreePath(temp)) { temp = temp.substring(2, temp.length() - 1); String[] selectedtable = temp.split(","); - String table = selectedtable[selectedtable.length - 1].trim(); - if (table.contains(".")) { - String[] temp2 = table.split("\\."); - table = temp2[temp2.length - 1].trim(); - } - return table; + return selectedtable[selectedtable.length - 1].trim(); } return ""; } From 0fc75f9afc876bf7cdcd377a76594ed9a644de86 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 29 Jan 2018 16:24:17 +0800 Subject: [PATCH 067/116] =?UTF-8?q?=E8=A7=86=E8=A7=89=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/designer/layout/WCardMainLayoutDefinePane.java | 6 +----- .../widget/ui/designer/layout/WTabFitLayoutDefinePane.java | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java index c03f4c9115..b0f33769a4 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WCardMainLayoutDefinePane.java @@ -2,8 +2,6 @@ package com.fr.design.widget.ui.designer.layout; import com.fr.design.designer.IntervalConstants; import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.cardlayout.XWCardLayout; -import com.fr.design.designer.creator.cardlayout.XWCardTagLayout; import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; @@ -15,8 +13,6 @@ import com.fr.design.widget.ui.designer.AbstractDataModify; import com.fr.form.ui.LayoutBorderStyle; import com.fr.form.ui.container.WCardLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; -import com.fr.form.ui.container.cardlayout.WCardTagLayout; -import com.fr.form.ui.container.cardlayout.WCardTitleLayout; import com.fr.general.Inter; import javax.swing.BorderFactory; @@ -56,7 +52,7 @@ public class WCardMainLayoutDefinePane extends AbstractDataModify { @Override public void populateBean(WTabFitLayout ob) { - borderStyle.populate(ob.getCurrentCard()); paddingBoundPane.populate(ob); componentInterval.setValue(ob.getCompInterval()); if(ob.getCurrentCard() == null){ ob.setCurrentCard(getRelateSwitchButton(ob)); } + borderStyle.populate(ob.getCurrentCard()); titleField.setText(ob.getCurrentCard().getText()); } From e64f1a9d2262bd25510b8e87b7ea98c941f9ff01 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 30 Jan 2018 11:42:24 +0800 Subject: [PATCH 068/116] =?UTF-8?q?REPORT-6740=209.0=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=9B=AE=E5=BD=95=E5=92=8C=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=EF=BC=8C=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/SwitchExistEnv.java | 10 +++ .../fr/design/mainframe/DesignerFrame.java | 67 ++++++++++--------- .../src/com/fr/design/utils/DesignUtils.java | 3 +- 3 files changed, 49 insertions(+), 31 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java b/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java index 6b26887671..66d70b5345 100644 --- a/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java @@ -36,6 +36,9 @@ import java.util.logging.Level; public class SwitchExistEnv extends MenuDef { + // 标志开始切换环境 + private static boolean isSwitching = false; + public SwitchExistEnv() { this.setMenuKeySet(KeySetUtils.SWITCH_ENV); this.setName(getMenuKeySet().getMenuName()); @@ -101,6 +104,7 @@ public class SwitchExistEnv extends MenuDef { * @param e 事件 */ public void actionPerformed(ActionEvent e) { + isSwitching = true; DesignerEnvManager envManager = DesignerEnvManager.getEnvManager(); Env selectedEnv = envManager.getEnv(this.getName()); try { @@ -123,7 +127,13 @@ public class SwitchExistEnv extends MenuDef { FRContext.getLogger().error(em.getMessage(), em); JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText(new String[]{"M-SwitchWorkspace", "Failed"})); TemplatePane.getInstance().editItems(); + } finally { + isSwitching = false; } } } + + public static boolean isSwitching() { + return isSwitching; + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index ea02476682..bc03700d8d 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -11,13 +11,18 @@ import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.core.ActionFactory; +import com.fr.design.actions.file.SwitchExistEnv; import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.TableDataTreePane; import com.fr.design.event.DesignerOpenedListener; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; -import com.fr.design.file.*; +import com.fr.design.file.HistoryTemplateListPane; +import com.fr.design.file.MutilTempalteTabPane; +import com.fr.design.file.NewTemplatePane; +import com.fr.design.file.SaveSomeTemplatePane; +import com.fr.design.file.TemplateTreePane; import com.fr.design.fun.TitlePlaceProcessor; import com.fr.design.fun.impl.AbstractTemplateTreeShortCutProvider; import com.fr.design.gui.ibutton.UIButton; @@ -53,27 +58,25 @@ import com.fr.stable.StableUtils; import com.fr.stable.image4j.codec.ico.ICODecoder; import com.fr.stable.project.ProjectConstants; -import javax.swing.Icon; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JLayeredPane; -import javax.swing.JMenuBar; -import javax.swing.JOptionPane; -import javax.swing.JPanel; -import javax.swing.WindowConstants; +import javax.swing.*; import javax.swing.border.MatteBorder; -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.Graphics; -import java.awt.Insets; -import java.awt.Point; -import java.awt.Rectangle; -import java.awt.Toolkit; +import java.awt.*; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; -import java.awt.dnd.*; -import java.awt.event.*; +import java.awt.dnd.DnDConstants; +import java.awt.dnd.DropTarget; +import java.awt.dnd.DropTargetDragEvent; +import java.awt.dnd.DropTargetDropEvent; +import java.awt.dnd.DropTargetEvent; +import java.awt.dnd.DropTargetListener; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.awt.event.WindowListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; @@ -95,7 +98,10 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta private List designerOpenedListenerList = new ArrayList<>(); - private ToolBarMenuDock ad; + //顶部日志+登陆按钮 + private static final JPanel northEastPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + + private static ToolBarMenuDock ad; private DesktopCardPane centerTemplateCardPane; @@ -313,41 +319,39 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta protected void initMenuPane() { menuPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); menuPane.add(new UIMenuHighLight(), BorderLayout.SOUTH); - menuPane.add(initNorthEastPane(ad), BorderLayout.EAST); + menuPane.add(initNorthEastPane(), BorderLayout.EAST); basePane.add(menuPane, BorderLayout.NORTH); this.resetToolkitByPlus(null); } /** - * @param ad * @return */ - protected JPanel initNorthEastPane(final ToolBarMenuDock ad) { + protected JPanel initNorthEastPane() { //hugh: private修改为protected方便oem的时候修改右上的组件构成 - //顶部日志+登陆按钮 - final JPanel northEastPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + //优先级为-1,保证最后全面刷新一次 GeneralContext.listenPluginRunningChanged(new PluginEventListener(-1) { @Override public void on(PluginEvent event) { - refreshNorthEastPane(northEastPane, ad); + refreshNorthEastPane(); DesignUtils.refreshDesignerFrame(FRContext.getCurrentEnv()); } }, new PluginFilter() { @Override public boolean accept(PluginContext context) { - - return context.contain(PluginModule.ExtraDesign); + return !SwitchExistEnv.isSwitching() + && context.contain(PluginModule.ExtraDesign); } }); - refreshNorthEastPane(northEastPane, ad); + refreshNorthEastPane(); return northEastPane; } - private void refreshNorthEastPane(JPanel northEastPane, ToolBarMenuDock ad) { + public static void refreshNorthEastPane() { northEastPane.removeAll(); northEastPane.setLayout(new FlowLayout(FlowLayout.RIGHT, 0, 0)); northEastPane.add(LogMessageBar.getInstance()); @@ -711,6 +715,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta * @param env 环境 */ public void refreshEnv(Env env) { + long start = System.currentTimeMillis(); this.setTitle(); DesignerFrameFileDealerPane.getInstance().refreshDockingView(); @@ -722,6 +727,8 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta if (template != null) { template.refreshToolArea(); } + System.out.println("hzzzzzz end: " + (System.currentTimeMillis() - start)); + } /** diff --git a/designer_base/src/com/fr/design/utils/DesignUtils.java b/designer_base/src/com/fr/design/utils/DesignUtils.java index 9dc0399d51..573f2cb446 100644 --- a/designer_base/src/com/fr/design/utils/DesignUtils.java +++ b/designer_base/src/com/fr/design/utils/DesignUtils.java @@ -9,6 +9,7 @@ import com.fr.design.ExtraDesignClassManager; import com.fr.design.fun.DesignerEnvProcessor; import com.fr.design.gui.UILookAndFeel; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.DesignerFrame; import com.fr.env.RemoteEnv; import com.fr.file.FileFILE; import com.fr.general.*; @@ -181,7 +182,7 @@ public class DesignUtils { // 更新CurrentEnv于FRContext & DesignerEnvManager FRContext.setCurrentEnv(env); - + DesignerFrame.refreshNorthEastPane(); refreshDesignerFrame(env); // 当换了运行环境,重置服务器,让它下次预览时重启 if (env instanceof LocalEnv && !ComparatorUtils.equals(env.getPath(), oldEnvPath)) { From 065994145a158d5afdf735205c61394d5b08fcc4 Mon Sep 17 00:00:00 2001 From: hzzz Date: Tue, 30 Jan 2018 11:44:56 +0800 Subject: [PATCH 069/116] =?UTF-8?q?REPORT-6740=209.0=E5=88=87=E6=8D=A2?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E7=9B=AE=E5=BD=95=E5=92=8C=E8=BF=9C=E7=A8=8B?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=EF=BC=8C=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/actions/file/SwitchExistEnv.java | 1 - designer_base/src/com/fr/design/mainframe/DesignerFrame.java | 4 ---- 2 files changed, 5 deletions(-) diff --git a/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java b/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java index 66d70b5345..99ba3e08f7 100644 --- a/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java +++ b/designer_base/src/com/fr/design/actions/file/SwitchExistEnv.java @@ -121,7 +121,6 @@ public class SwitchExistEnv extends MenuDef { return; } SignIn.signIn(selectedEnv); - HistoryTemplateListPane.getInstance().getCurrentEditingTemplate().refreshToolArea(); fireDSChanged(); } catch (Exception em) { FRContext.getLogger().error(em.getMessage(), em); diff --git a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java index bc03700d8d..28e4e03446 100644 --- a/designer_base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer_base/src/com/fr/design/mainframe/DesignerFrame.java @@ -715,8 +715,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta * @param env 环境 */ public void refreshEnv(Env env) { - long start = System.currentTimeMillis(); - this.setTitle(); DesignerFrameFileDealerPane.getInstance().refreshDockingView(); TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()); @@ -727,8 +725,6 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta if (template != null) { template.refreshToolArea(); } - System.out.println("hzzzzzz end: " + (System.currentTimeMillis() - start)); - } /** From 14a899fcc94ec4d05457ca9ed0c6287939c61fc5 Mon Sep 17 00:00:00 2001 From: kerry Date: Tue, 30 Jan 2018 14:58:01 +0800 Subject: [PATCH 070/116] =?UTF-8?q?REPORT-6769=20tab=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E9=80=89=E4=B8=AD=E8=83=8C=E6=99=AF?= 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 | 3 ++- .../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 | 3 ++- .../src/com/fr/design/locale/designer_zh_TW.properties | 1 + .../com/fr/design/widget/component/BackgroundCompPane.java | 6 +++++- .../designer/creator/cardlayout/XCardSwitchButton.java | 5 ++--- .../ui/designer/component/TabFitLayoutBackgroundPane.java | 5 +++++ .../widget/ui/designer/layout/WCardTagLayoutDefinePane.java | 2 +- 10 files changed, 21 insertions(+), 7 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 4ad4931eb2..f5aea0212b 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2167,3 +2167,4 @@ 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_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 fb28e02f07..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 @@ -2165,4 +2165,5 @@ 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 \ No newline at end of file +FR-Designer_Tab_Display_Position=Display Position +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 7b9c83d440..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 @@ -2167,3 +2167,4 @@ 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 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 f16116d74a..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 @@ -2167,3 +2167,4 @@ 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 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 2f6ea58868..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 @@ -2166,4 +2166,5 @@ 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 \ No newline at end of file +FR-Designer_Tab_Display_Position=\u663E\u793A\u4F4D\u7F6E +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 8f1f273c33..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 @@ -2166,3 +2166,4 @@ 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 diff --git a/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java b/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java index 645abdf18a..5c567279a2 100644 --- a/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java +++ b/designer_base/src/com/fr/design/widget/component/BackgroundCompPane.java @@ -42,7 +42,7 @@ public abstract class BackgroundCompPane extends BasicPane { Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background-Initial")), initalBackgroundEditor}, new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background-Over")), overBackgroundEditor}, - new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background-Click")), clickBackgroundEditor}, + new Component[]{getClickLabel(), clickBackgroundEditor}, }; panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, IntervalConstants.INTERVAL_W1, IntervalConstants.INTERVAL_L1); panel.setBorder(BorderFactory.createEmptyBorder(IntervalConstants.INTERVAL_L6, IntervalConstants.INTERVAL_L5, 0, 0)); @@ -61,6 +61,10 @@ public abstract class BackgroundCompPane extends BasicPane { clickBackgroundEditor = new AccessibleImgBackgroundEditor(); } + protected UILabel getClickLabel(){ + return new UILabel(Inter.getLocText("FR-Designer_Background-Click")); + } + protected UILabel createUILable(){ return new UILabel(Inter.getLocText("FR-Designer_Background")); } diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index 9866e272e7..4de670ef60 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -325,10 +325,9 @@ public class XCardSwitchButton extends XButton { Background background = widgetTitle.getBackground(); TemplateStyle templateStyle = ((WCardTagLayout) tagLayout.toData()).getTemplateStyle(); Background initialBackground = button.getInitialBackground(); - Background defaultSelectBackground = templateStyle.getSelectBackground(); - //todo 这边先这么改,之后会加一个选中背景设置再做调整 + Background selectBackground = button.getClickBackground(); if (button.isShowButton()) { - this.setContentBackground(defaultSelectBackground); + this.setContentBackground(selectBackground == null ? templateStyle.getSelectBackground() : selectBackground); } else { this.setContentBackground(initialBackground == null ? background : initialBackground); } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java index 8bd816293a..7a079146a1 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java @@ -24,6 +24,11 @@ public class TabFitLayoutBackgroundPane extends BackgroundCompPane button.setInitialBackground(defaultStyle ? null : templateStyle.getTabDefaultBackground()); button.setOverBackground(null); button.setClickBackground(null); - button.setCustomStyle(true); + button.setCustomStyle(!defaultStyle); } } } From 81367e5f66f053eaa499eebb4e1b9abdab8f3401 Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 30 Jan 2018 19:42:04 +0800 Subject: [PATCH 071/116] =?UTF-8?q?REPORT-6681=20=E3=80=90=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E3=80=91=E6=8A=A5=E8=A1=A8=E3=80=8B=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E8=AE=BE=E7=BD=AE=E6=89=8B=E6=9C=BA=E7=AB=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=94=BB=E5=B8=83=E5=A4=A7=E5=B0=8F=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=8B=E9=A1=B5=E9=9D=A2=E8=AE=BE=E7=BD=AE=E3=80=8B=E2=80=9C?= =?UTF-8?q?=E7=BA=B8=E5=BC=A0=E5=A4=A7=E5=B0=8F-=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E2=80=9D=E4=B8=AD=E5=AE=BD=E5=BA=A6=E5=80=BC=E4=B8=BA?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=BC=E6=97=B6=EF=BC=8C=E5=90=91=E4=B8=8B?= =?UTF-8?q?=E7=AE=AD=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 072/116] =?UTF-8?q?REPORT-6687=20=E3=80=90=E8=AE=BE?= =?UTF-8?q?=E8=AE=A1=E5=99=A8=E3=80=91=E8=A1=A8=E5=8D=95=E3=80=8B=E4=B8=80?= =?UTF-8?q?=E9=94=AE=E8=AE=BE=E7=BD=AE=E6=89=8B=E6=9C=BA=E7=AB=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E7=94=BB=E5=B8=83=E5=A4=A7=E5=B0=8F=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=8B=E5=BC=80=E5=90=AF=E8=87=AA=E9=80=82=E5=BA=94=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E8=87=AA=E5=8A=A8=E5=8C=B9=E9=85=8D=E7=9A=84=E5=AD=90?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=BB=98=E8=AE=A4=E6=B2=A1=E6=9C=89=E5=8B=BE?= =?UTF-8?q?=E9=80=89=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 073/116] =?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 074/116] =?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 075/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8C=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 076/116] =?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 077/116] =?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 078/116] =?UTF-8?q?REPORT-5907=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=8A=B6=E6=80=81=EF=BC=88=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E3=80=81=E6=82=AC=E5=81=9C=E3=80=81=E9=80=89=E4=B8=AD=E3=80=81?= =?UTF-8?q?=E7=BC=96=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 079/116] =?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 a02fb06c9eca562610aa333e640c6f9a1d5a0916 Mon Sep 17 00:00:00 2001 From: zack Date: Thu, 1 Feb 2018 16:37:02 +0800 Subject: [PATCH 080/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E5=85=B1=E4=BA=ABreadme=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/env/RemoteEnv.java | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index 147911b01e..0a4921b46d 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -2205,19 +2205,7 @@ public class RemoteEnv extends AbstractEnv { @Override public String getSharePath() { - try { - HashMap para = new HashMap(); - para.put("op", "fr_remote_design"); - para.put("cmd", "design_get_share_path"); - para.put("current_uid", this.createUserID()); - para.put("currentUsername", this.getUser()); - - HttpClient client = createHttpMethod(para); - InputStream input = execute4InputStream(client); - return stream2String(input); - } catch (Exception e) { - return StringUtils.EMPTY; - } + return StringUtils.EMPTY; } public void doWhenServerShutDown() { From 45d8382b556cb0c83d2091ab33803db88cf3d0f9 Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 2 Feb 2018 16:05:44 +0800 Subject: [PATCH 081/116] =?UTF-8?q?REPORT-6769=20=20tab=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E5=90=8E=E8=83=8C=E6=99=AF=E5=8F=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardAddButton.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index a2b8b05ba1..6db9f953ae 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -16,9 +16,13 @@ import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.general.cardtag.DefaultTemplateStyle; -import javax.swing.*; -import java.awt.*; + +import javax.swing.Icon; +import java.awt.Dimension; +import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.event.MouseEvent; public class XCardAddButton extends XButton{ @@ -80,7 +84,8 @@ public class XCardAddButton extends XButton{ * @param e 点击事件 * */ - public void respondClick(EditingMouseListener editingMouseListener,MouseEvent e){ + @Override + public void respondClick(EditingMouseListener editingMouseListener, MouseEvent e){ FormDesigner designer = editingMouseListener.getDesigner(); designer.fireTargetModified(); @@ -120,7 +125,8 @@ public class XCardAddButton extends XButton{ this.cardLayout = borderLayout.getCardPart(); } - public void paintComponent(Graphics g) { + @Override + public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; drawAddIcon(g2d); @@ -148,8 +154,14 @@ public class XCardAddButton extends XButton{ String cardLayoutName = cardLayout.toData().getWidgetName(); CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); + WCardTagLayout layout = (WCardTagLayout) this.tagLayout.toData(); + + if(!ComparatorUtils.equals(layout.getTemplateStyle().getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE)){ + titleButton.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); + titleButton.setCustomStyle(true); + } //设置标题 - titleButton.setText(getTabTitleName()); + titleButton.setText(getTabTitleName(layout)); XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); titleButton.setShowButton(true); showButton.setBackupParent(tagLayout); @@ -168,8 +180,7 @@ public class XCardAddButton extends XButton{ } //新增时去tabFitLayout名字中最大的Index+1,防止重名 - private String getTabTitleName(){ - WCardTagLayout layout = (WCardTagLayout) this.tagLayout.toData(); + private String getTabTitleName(WCardTagLayout layout){ int size = layout.getWidgetCount(); String prefix = Inter.getLocText("FR-Designer_Title"); String newTextName = prefix + size; From 9119e2230080255855f3a49058737e9f8bb47ed0 Mon Sep 17 00:00:00 2001 From: plough Date: Sun, 4 Feb 2018 08:19:27 +0800 Subject: [PATCH 082/116] =?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 8ac3017353d2fa4b5ec3722311860f9770b6d0b9 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 5 Feb 2018 11:43:33 +0800 Subject: [PATCH 083/116] =?UTF-8?q?REPORT-6883=20=20(=E8=BF=99=E8=BE=B9?= =?UTF-8?q?=E5=8F=96=E7=9A=84=E6=98=AFfitlayout=E4=B8=8D=E6=98=AF=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E7=9A=84button=E4=B8=8A=E7=9A=84=E8=83=8C=E6=99=AF?= =?UTF-8?q?=EF=BC=8C=E5=85=BC=E5=AE=B9=E6=80=A7=E4=B8=8D=E5=A5=BD=E5=A4=84?= =?UTF-8?q?=E7=90=86)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardAddButton.java | 6 ---- .../creator/cardlayout/XCardSwitchButton.java | 9 ++++-- .../creator/cardlayout/XWCardLayout.java | 16 ++++++++++ .../creator/cardlayout/XWCardTagLayout.java | 8 +++++ .../creator/cardlayout/XWTabFitLayout.java | 11 ++++++- .../component/TabFitLayoutBackgroundPane.java | 31 ++++++++++--------- .../layout/WCardTagLayoutDefinePane.java | 20 +++--------- .../layout/WTabFitLayoutDefinePane.java | 4 +-- 8 files changed, 63 insertions(+), 42 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index 6db9f953ae..96f533a023 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -16,7 +16,6 @@ import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; -import com.fr.general.cardtag.DefaultTemplateStyle; import javax.swing.Icon; @@ -155,11 +154,6 @@ public class XCardAddButton extends XButton{ String cardLayoutName = cardLayout.toData().getWidgetName(); CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); WCardTagLayout layout = (WCardTagLayout) this.tagLayout.toData(); - - if(!ComparatorUtils.equals(layout.getTemplateStyle().getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE)){ - titleButton.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); - titleButton.setCustomStyle(true); - } //设置标题 titleButton.setText(getTabTitleName(layout)); XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index 4de670ef60..d8fdbce92f 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -324,8 +324,13 @@ public class XCardSwitchButton extends XButton { private void drawBackground(CardSwitchButton button, WidgetTitle widgetTitle){ Background background = widgetTitle.getBackground(); TemplateStyle templateStyle = ((WCardTagLayout) tagLayout.toData()).getTemplateStyle(); - Background initialBackground = button.getInitialBackground(); - Background selectBackground = button.getClickBackground(); + //获取当前tab的index + CardSwitchButton currentButton = (CardSwitchButton) this.toData(); + int index = currentButton.getIndex(); + XWTabFitLayout tabFitLayout = (XWTabFitLayout) cardLayout.getComponent(index); + WTabFitLayout wTabFitLayout = tabFitLayout.getWTabFitLayout(); + Background initialBackground = wTabFitLayout.getInitialBackground(); + Background selectBackground = wTabFitLayout.getClickBackground(); if (button.isShowButton()) { this.setContentBackground(selectBackground == null ? templateStyle.getSelectBackground() : selectBackground); } else { diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java index b1c9863b4f..adc2031294 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java @@ -31,8 +31,11 @@ import com.fr.form.ui.container.WLayout; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WCardTitleLayout; +import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.general.cardtag.DefaultTemplateStyle; +import com.fr.general.cardtag.TemplateStyle; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.core.PropertyChangeAdapter; @@ -493,4 +496,17 @@ public class XWCardLayout extends XLayoutContainer { initStyle(); } + public void resetTabBackground(TemplateStyle templateStyle){ + for (int i = 0; i < this.getXCreatorCount(); i++) { + XWTabFitLayout xCreator = (XWTabFitLayout)this.getXCreator(i); + WTabFitLayout wTabFitLayout = (WTabFitLayout)xCreator.toData(); + boolean defaultStyle = ComparatorUtils.equals(templateStyle.getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE); + wTabFitLayout.setInitialBackground(defaultStyle ? null : templateStyle.getTabDefaultBackground()); + wTabFitLayout.setOverBackground(null); + wTabFitLayout.setClickBackground(null); + wTabFitLayout.setCustomStyle(!defaultStyle); + xCreator.checkButonType(); + } + } + } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index 9a648a47cb..0eef782ef2 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -30,6 +30,7 @@ import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.ComparatorUtils; import com.fr.general.FRFont; +import com.fr.general.cardtag.DefaultTemplateStyle; import javax.swing.border.Border; import java.awt.*; @@ -132,7 +133,14 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { WTabFitLayout fitLayout = new WTabFitLayout(widgetName, tabFitIndex, currentCard); fitLayout.setTabNameIndex(getTabNameIndex()); XWTabFitLayout tabFitLayout = new XWTabFitLayout(fitLayout, new Dimension()); + WCardTagLayout layout = (WCardTagLayout) this.toData(); + + if(!ComparatorUtils.equals(layout.getTemplateStyle().getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE)){ + fitLayout.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); + fitLayout.setCustomStyle(true); + } tabFitLayout.setxCardSwitchButton((XCardSwitchButton)this.getComponent(0)); + tabFitLayout.checkButonType(); tabFitLayout.setBackupParent(cardLayout); cardLayout.add(tabFitLayout, widgetName); this.cardLayout.toData().setShowIndex(index); 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 6a77c95de3..9e1938817c 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 @@ -102,6 +102,10 @@ public class XWTabFitLayout extends XWFitLayout { super(widget, initSize); } + public WTabFitLayout getWTabFitLayout(){ + return (WTabFitLayout)data; + } + @Override public UIPopupMenu createPopupMenu(FormDesigner formDesigner) { return UIPopupMenu.EMPTY; // 不要菜单 @@ -210,8 +214,12 @@ public class XWTabFitLayout extends XWFitLayout { return crPropertyDescriptors; } - private void checkButonType() { + public void checkButonType() { WTabFitLayout wTabFitLayout = ((WTabFitLayout) data); + XCardSwitchButton xCardSwitchButton = this.getxCardSwitchButton(); + if(xCardSwitchButton == null){ + initRelateSwitchButton(); + } CardSwitchButton cardSwitchButton = (CardSwitchButton) this.xCardSwitchButton.toData(); boolean isStyle = wTabFitLayout.isCustomStyle(); Background initialBackground = wTabFitLayout.getInitialBackground(); @@ -586,6 +594,7 @@ public class XWTabFitLayout extends XWFitLayout { @Override public void firePropertyChange(){ + checkButonType(); //根据字体长度设置tab宽度 setCardSwitchBtnSize(); XWCardLayout cardLayout = (XWCardLayout) this.getBackupParent(); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java index 7a079146a1..94194a232b 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/component/TabFitLayoutBackgroundPane.java @@ -3,7 +3,6 @@ package com.fr.design.widget.ui.designer.component; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.widget.accessibles.AccessibleTabBackgroundEditor; import com.fr.design.widget.component.BackgroundCompPane; -import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; import com.fr.general.Inter; @@ -29,33 +28,35 @@ public class TabFitLayoutBackgroundPane extends BackgroundCompPane public WCardTagLayout updateBean() { //标题背景和字体属性设置在WCardLayout上做兼容 XLayoutContainer topLayout = creator.getTopLayout(); - LayoutBorderStyle layoutBorderStyle = ((XWCardMainBorderLayout) topLayout).getCardPart().toData().getBorderStyle(); + XWCardLayout xCardLayout = ((XWCardMainBorderLayout) topLayout).getCardPart(); + LayoutBorderStyle layoutBorderStyle = xCardLayout.toData().getBorderStyle(); FRFont frFont = layoutBorderStyle.getTitle().getFrFont() == null ? FRFont.getInstance() : layoutBorderStyle.getTitle().getFrFont(); layoutBorderStyle.getTitle().setFrFont(frFontPane.update(frFont)); WCardTagLayout layout = (WCardTagLayout) creator.toData(); @@ -140,7 +140,7 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify backgroundEditor.setValue(templateStyle.getDefaultBackground()); layoutBorderStyle.getTitle().setBackground(templateStyle.getDefaultBackground()); //重置内部tab的默认背景 - resetTabBackground(layout, templateStyle); + xCardLayout.resetTabBackground(templateStyle); layout.setTemplateStyle(templateStyle); } else { layoutBorderStyle.getTitle().setBackground((Background) backgroundEditor.getValue()); @@ -148,16 +148,4 @@ public class WCardTagLayoutDefinePane extends AbstractDataModify return layout; } - - private void resetTabBackground(WCardTagLayout layout, TemplateStyle templateStyle) { - for (int i = 0, len = layout.getWidgetCount(); i < len; i++) { - CardSwitchButton button = layout.getSwitchButton(i); - //兼容默认样式 - boolean defaultStyle = ComparatorUtils.equals(templateStyle.getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE); - button.setInitialBackground(defaultStyle ? null : templateStyle.getTabDefaultBackground()); - button.setOverBackground(null); - button.setClickBackground(null); - button.setCustomStyle(!defaultStyle); - } - } } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java index 3582ca1a26..46906925f0 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/layout/WTabFitLayoutDefinePane.java @@ -83,7 +83,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify { if(ob.getCurrentCard() == null){ ob.setCurrentCard(getRelateSwitchButton(ob)); } - borderStyle.populate(ob.getCurrentCard()); + borderStyle.populate(ob); titleField.setText(ob.getCurrentCard().getText()); } @@ -118,7 +118,7 @@ public class WTabFitLayoutDefinePane extends AbstractDataModify { @Override public WTabFitLayout updateBean() { WTabFitLayout layout = (WTabFitLayout) creator.toData(); - borderStyle.update(layout.getCurrentCard()); + borderStyle.update(layout); if (ComparatorUtils.equals(getGlobalName(), Inter.getLocText("FR-Designer_Layout-Padding"))) { paddingBoundPane.update(layout); } From 5f993e58aa6d8ae3506f303227b4b09f25e2cee9 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 13:53:15 +0800 Subject: [PATCH 084/116] =?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 9f77d5d2abc8ae7006edc65f3c9a16d99a30b523 Mon Sep 17 00:00:00 2001 From: kerry Date: Mon, 5 Feb 2018 14:01:56 +0800 Subject: [PATCH 085/116] =?UTF-8?q?REPORT-6883=20=20=E6=BC=8F=E4=BC=A0?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/cardlayout/XCardAddButton.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index 96f533a023..b086ad9cc7 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -16,6 +16,7 @@ import com.fr.form.ui.CardSwitchButton; import com.fr.form.ui.container.cardlayout.WCardTagLayout; import com.fr.general.ComparatorUtils; import com.fr.general.Inter; +import com.fr.general.cardtag.DefaultTemplateStyle; import javax.swing.Icon; @@ -154,6 +155,10 @@ public class XCardAddButton extends XButton{ String cardLayoutName = cardLayout.toData().getWidgetName(); CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); WCardTagLayout layout = (WCardTagLayout) this.tagLayout.toData(); + if(!ComparatorUtils.equals(layout.getTemplateStyle().getStyle(), DefaultTemplateStyle.DEFAULT_TEMPLATE_STYLE)){ + titleButton.setInitialBackground(layout.getTemplateStyle().getTabDefaultBackground()); + titleButton.setCustomStyle(true); + } //设置标题 titleButton.setText(getTabTitleName(layout)); XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); From e2b4dfb70b34b9ec8b161206319bd6473f3bedbc Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 15:30:43 +0800 Subject: [PATCH 086/116] =?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 3508ad8de1eb5812156ef33cae66c5b131e2b1d7 Mon Sep 17 00:00:00 2001 From: neil <459208047@qq.com> Date: Mon, 5 Feb 2018 15:56:42 +0800 Subject: [PATCH 087/116] =?UTF-8?q?REPORT-3272=20=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A2=AB=E5=86=B2=E7=AA=81=E8=A6=86=E7=9B=96?= =?UTF-8?q?=E4=BA=86.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_form/src/com/fr/design/mainframe/JForm.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/JForm.java b/designer_form/src/com/fr/design/mainframe/JForm.java index 5c42f39a09..f4d5a30b8f 100644 --- a/designer_form/src/com/fr/design/mainframe/JForm.java +++ b/designer_form/src/com/fr/design/mainframe/JForm.java @@ -544,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布局 @@ -554,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); From c9b7354701a29848509c6f87138bb53bacf788e5 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 5 Feb 2018 15:57:38 +0800 Subject: [PATCH 088/116] =?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 089/116] =?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 090/116] =?UTF-8?q?REPORT-5907=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=8A=B6=E6=80=81=EF=BC=88=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E3=80=81=E6=82=AC=E5=81=9C=E3=80=81=E9=80=89=E4=B8=AD=E3=80=81?= =?UTF-8?q?=E7=BC=96=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 091/116] =?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 adfd2a3ecc80beaf03efe9fe48d68e60a814c7a4 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Mon, 5 Feb 2018 10:10:03 +0800 Subject: [PATCH 092/116] =?UTF-8?q?REPORT-6868=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E6=95=B0=E6=8D=AE=E5=88=97=E5=8D=95=E5=85=83=E6=A0=BC?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E9=A2=91=E7=B9=81=E5=BC=B9=E5=87=BAsql?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=9B=20?= =?UTF-8?q?=E6=97=A0=E4=BB=BB=E5=8A=A1=EF=BC=8C=E5=88=A0=E9=99=A4=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=97=A0=E7=94=A8=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SelectedConfirmedDataColumnPane.java | 3 +- .../dscolumn/SelectedDataColumnPane.java | 161 ++++--- .../cellquick/CellDSColumnEditor.java | 4 +- .../com/fr/design/gui/demo/ComboBoxDemo.java | 48 +- .../design/gui/demo/SwingComponentsDemo.java | 17 +- .../fr/design/gui/icombobox/LazyComboBox.java | 401 ++++++++--------- .../fr/design/gui/icombobox/UIComboBox.java | 410 +++++++++--------- 7 files changed, 531 insertions(+), 513 deletions(-) diff --git a/designer/src/com/fr/design/dscolumn/SelectedConfirmedDataColumnPane.java b/designer/src/com/fr/design/dscolumn/SelectedConfirmedDataColumnPane.java index 9552f6ba95..ca13b4a59b 100644 --- a/designer/src/com/fr/design/dscolumn/SelectedConfirmedDataColumnPane.java +++ b/designer/src/com/fr/design/dscolumn/SelectedConfirmedDataColumnPane.java @@ -17,6 +17,7 @@ public class SelectedConfirmedDataColumnPane extends SelectedDataColumnPane { super(false); } + @Override protected void initTableNameComboBox() { tableNameComboBox = new TableDataComboBox(new WorkBook()); tableNameComboBox.addItemListener(new ItemListener() { @@ -39,7 +40,7 @@ public class SelectedConfirmedDataColumnPane extends SelectedDataColumnPane { TemplateTableDataWrapper wrapper = new TemplateTableDataWrapper(source.getTableData(name), name); tableNameComboBox.setSelectedItem(wrapper); tableNameComboBox.getModel().setSelectedItem(wrapper); - } catch (Exception e) { + } catch (Exception ignored) { } } } \ No newline at end of file diff --git a/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java b/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java index 62538e7d05..9b1ad0088f 100644 --- a/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java +++ b/designer/src/com/fr/design/dscolumn/SelectedDataColumnPane.java @@ -37,8 +37,7 @@ import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; +import java.util.Objects; import java.util.regex.Pattern; /** @@ -50,29 +49,83 @@ import java.util.regex.Pattern; * @since 8.0 */ public class SelectedDataColumnPane extends BasicPane { + + /** + * 参数编辑器面板 + */ private UITableEditorPane editorPane; + /** + * 参数 + */ private Parameter[] ps; - + /** + * 数据集下拉框 + */ TableDataComboBox tableNameComboBox; + /** + * 动态参数注入按钮 + */ + private UIButton paramButton; + /** + * 数据列下拉框 + */ LazyComboBox columnNameComboBox; + + /** + * 数据集下拉框和数据列下拉框监听器 + */ private ItemListener itemListener; - private UIButton paramButton; + + /** + * 当前编辑的模板面板,用于触发保存操作 + */ private ElementCasePane casePane; - private CellElement cellElement; // 保存当前选中的 CE + /** + * 保存当前选中的 CE + */ + private CellElement cellElement; + + private static final Pattern COLUMN_NAME_PATTERN = Pattern.compile("[^\\d]"); + + /** + * 数据集下拉框变动后修改数据列下拉框加载状态的监听器 + */ + private ItemListener loadInstantListener = new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (e.getStateChange() == ItemEvent.SELECTED) { + columnNameComboBox.setLoaded(false); + } + } + }; - public SelectedDataColumnPane() { - this(true, false, null); + /** + * 创建横向布局附带显示动态参数注入按钮的数据集数据列选择面板 + */ + SelectedDataColumnPane() { + this(true, false); } - public SelectedDataColumnPane(boolean showParameterButton) { - this(showParameterButton, false, null); + /** + * 创建横向布局的数据集数据列选择面板 + * + * @param showParameterButton 是否显示动态参数注入按钮 + */ + SelectedDataColumnPane(boolean showParameterButton) { + this(showParameterButton, false); } - public SelectedDataColumnPane(boolean showParameterButton, boolean verticalLayout, TemplateCellElement cellElement) { + /** + * 创建数据集数据列选择面板 + * + * @param showParameterButton 是否显示动态参数注入按钮 + * @param verticalLayout 是否是垂直布局 + */ + public SelectedDataColumnPane(boolean showParameterButton, boolean verticalLayout) { if (verticalLayout) { - initComponentVerticalLayout(cellElement); + initComponentVerticalLayout(); } else { initComponent(showParameterButton); } @@ -86,7 +139,7 @@ public class SelectedDataColumnPane extends BasicPane { public void initComponent(boolean showParameterButton) { initTableNameComboBox(); if (showParameterButton) { - initWithParameterButton(); + initParameterButton(); } columnNameComboBox = new LazyComboBox() { @@ -126,9 +179,9 @@ public class SelectedDataColumnPane extends BasicPane { /** * 初始化竖直布局的组件 */ - private void initComponentVerticalLayout(TemplateCellElement cellElement) { + private void initComponentVerticalLayout() { initTableNameComboBox(); - initWithParameterButton(cellElement); + initVerticalParameterButton(); columnNameComboBox = new LazyComboBox() { @Override public Object[] load() { @@ -156,6 +209,13 @@ public class SelectedDataColumnPane extends BasicPane { } + /** + * 更新面板数据 + * + * @param source 数据源 + * @param cellElement 单元格 + * @param casePane 当前编辑的模板面板 + */ public void populate(TableDataSource source, TemplateCellElement cellElement, ElementCasePane casePane) { tableNameComboBox.refresh(source); this.casePane = casePane; @@ -163,9 +223,8 @@ public class SelectedDataColumnPane extends BasicPane { return; } this.cellElement = cellElement; - if (itemListener != null) { - removeListener(itemListener); - } + removeListener(); + Object value = cellElement.getValue(); if (!(value instanceof DSColumn)) { return; @@ -176,9 +235,14 @@ public class SelectedDataColumnPane extends BasicPane { columnNameComboBox.setSelectedItem(TableDataColumn.getColumnName(dsColumn.getColumn())); ps = dsColumn.getParameters(); - addListener(itemListener); + addListener(); } + /** + * 保存数据到单元格对象中 + * + * @param cellElement 单元格 + */ public void update(CellElement cellElement) { if (cellElement == null) { return; @@ -187,7 +251,7 @@ public class SelectedDataColumnPane extends BasicPane { if (this.tableNameComboBox.getSelectedItem() == null && this.columnNameComboBox.getSelectedItem() == null) { return; } - DSColumn dsColumn = null; + DSColumn dsColumn; if (value == null || !(value instanceof DSColumn)) { dsColumn = new DSColumn(); cellElement.setValue(dsColumn); @@ -195,7 +259,7 @@ public class SelectedDataColumnPane extends BasicPane { dsColumn = (DSColumn) cellElement.getValue(); SimpleDSColumn simpleDSColumn = updateColumnPane(); - dsColumn.setDSName(simpleDSColumn.getDsName()); + dsColumn.setDSName(Objects.requireNonNull(simpleDSColumn).getDsName()); dsColumn.setColumn(simpleDSColumn.getColumn()); dsColumn.setParameters((ps != null && ps.length > 0) ? ps : null); @@ -205,6 +269,7 @@ public class SelectedDataColumnPane extends BasicPane { * 释放模板对象 */ public void release() { + this.cellElement = null; this.casePane = null; this.tableNameComboBox.setModel(new DefaultComboBoxModel()); } @@ -214,7 +279,7 @@ public class SelectedDataColumnPane extends BasicPane { * * @return 更新后的值 */ - public SimpleDSColumn updateColumnPane() { + private SimpleDSColumn updateColumnPane() { SimpleDSColumn dsColumn = new SimpleDSColumn(); TableDataWrapper tableDataWrappe = this.tableNameComboBox.getSelectedItem(); if (tableDataWrappe == null) { @@ -224,9 +289,8 @@ public class SelectedDataColumnPane extends BasicPane { TableDataColumn column; String columnExp = (String) this.columnNameComboBox.getSelectedItem(); if (isColumnName(columnExp)) { - String number = columnExp.substring(1); - Pattern pattern = Pattern.compile("[^\\d]"); - if (pattern.matcher(number).find()) { + String number = Objects.requireNonNull(columnExp).substring(1); + if (COLUMN_NAME_PATTERN.matcher(number).find()) { column = TableDataColumn.createColumn(columnExp); } else { int serialNumber = Integer.parseInt(columnExp.substring(1)); @@ -239,47 +303,31 @@ public class SelectedDataColumnPane extends BasicPane { return dsColumn; } + public void setListener(ItemListener i) { + this.itemListener = i; + } + /** * 添加监听事件 - * - * @param i 监听事件 */ - public void addListener(ItemListener i) { - itemListener = i; - tableNameComboBox.addItemListener(i); - columnNameComboBox.addItemListener(i); + private void addListener() { + tableNameComboBox.addItemListener(this.itemListener); + columnNameComboBox.addItemListener(this.itemListener); } /** * 移除监听事件 - * - * @param i 监听事件 */ - public void removeListener(ItemListener i) { - tableNameComboBox.removeItemListener(i); - columnNameComboBox.removeItemListener(i); + private void removeListener() { + tableNameComboBox.removeItemListener(this.itemListener); + columnNameComboBox.removeItemListener(this.itemListener); } protected void initTableNameComboBox() { tableNameComboBox = new TableDataComboBox(DesignTableDataManager.getEditingTableDataSource()); - final ExecutorService executorService = Executors.newSingleThreadExecutor(); - tableNameComboBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (e.getStateChange() == ItemEvent.SELECTED) { - executorService.execute(new Runnable() { - @Override - public void run() { - synchronized (columnNameComboBox) { - columnNameComboBox.loadInstant(); - } - } - }); - } - } - }); tableNameComboBox.setPreferredSize(new Dimension(100, 20)); + tableNameComboBox.addItemListener(this.loadInstantListener); } @Override @@ -288,8 +336,8 @@ public class SelectedDataColumnPane extends BasicPane { } - private void initWithParameterButton() { - editorPane = new UITableEditorPane(new ParameterTableModel()); + private void initParameterButton() { + editorPane = new UITableEditorPane<>(new ParameterTableModel()); paramButton = new UIButton(Inter.getLocText("TableData_Dynamic_Parameter_Setting")); paramButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { @@ -307,10 +355,11 @@ public class SelectedDataColumnPane extends BasicPane { }); } - private void initWithParameterButton(final TemplateCellElement cellElement) { - editorPane = new UITableEditorPane(new ParameterTableModel()); + private void initVerticalParameterButton() { + editorPane = new UITableEditorPane<>(new ParameterTableModel()); paramButton = new UIButton(Inter.getLocText("FR-Designer-Basic_Dynamic_Parameter_Injection")); paramButton.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { BasicDialog paramDialog = editorPane.showSmallWindow(DesignerContext.getDesignerFrame(), new DialogActionAdapter() { @Override @@ -337,6 +386,6 @@ public class SelectedDataColumnPane extends BasicPane { if (this.tableNameComboBox.getSelectedItem() != null) { return this.tableNameComboBox.getSelectedItem().calculateColumnNameList(); } - return new ArrayList(); + return new ArrayList<>(); } } \ No newline at end of file diff --git a/designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java b/designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java index ea872d01cf..be8c7c962f 100644 --- a/designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java +++ b/designer/src/com/fr/quickeditor/cellquick/CellDSColumnEditor.java @@ -247,9 +247,9 @@ public class CellDSColumnEditor extends CellQuickEditor { }; DSColumnBasicEditorPane() { - dataPane = new SelectedDataColumnPane(true, true, cellElement); + dataPane = new SelectedDataColumnPane(true, true); groupPane = new ResultSetGroupDockingPane(); - dataPane.addListener(dataListener); + dataPane.setListener(dataListener); groupPane.setListener(groupListener); double[] rowSize = {P}, columnSize = {P, F}; diff --git a/designer_base/src/com/fr/design/gui/demo/ComboBoxDemo.java b/designer_base/src/com/fr/design/gui/demo/ComboBoxDemo.java index 499243b45f..da7657d079 100644 --- a/designer_base/src/com/fr/design/gui/demo/ComboBoxDemo.java +++ b/designer_base/src/com/fr/design/gui/demo/ComboBoxDemo.java @@ -1,34 +1,37 @@ package com.fr.design.gui.demo; -import java.awt.BorderLayout; -import java.awt.Component; -import java.util.ArrayList; - -import javax.swing.DefaultListCellRenderer; -import com.fr.design.gui.ilable.UILabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JTree; -import javax.swing.ListCellRenderer; -import javax.swing.tree.DefaultMutableTreeNode; -import javax.swing.tree.DefaultTreeCellRenderer; -import javax.swing.tree.TreeCellRenderer; -import javax.swing.tree.TreePath; - import com.fr.base.FRContext; -import com.fr.design.gui.icombobox.filter.Filter; +import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.icombobox.ComboCheckBox; import com.fr.design.gui.icombobox.DictionaryComboBox; import com.fr.design.gui.icombobox.ExtendedComboBox; import com.fr.design.gui.icombobox.FRTreeComboBox; import com.fr.design.gui.icombobox.FilterComboBox; import com.fr.design.gui.icombobox.LazyComboBox; +import com.fr.design.gui.icombobox.filter.Filter; +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.design.mainframe.DesignerContext; +import com.fr.design.parameter.ParameterInputPane; import com.fr.general.Inter; +import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; +import javax.swing.DefaultListCellRenderer; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JTree; +import javax.swing.ListCellRenderer; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.DefaultTreeCellRenderer; +import javax.swing.tree.TreeCellRenderer; +import javax.swing.tree.TreePath; +import java.awt.BorderLayout; +import java.awt.Component; +import java.util.ArrayList; + /** * Created by IntelliJ IDEA. * User: Richer @@ -42,12 +45,12 @@ public class ComboBoxDemo extends JPanel { double f = TableLayout.FILL; Component[][] coms = new Component[][]{ - {new UILabel(Inter.getLocText("Form-ComboCheckBox")+":"), createComboCheckBox()}, - {new UILabel(Inter.getLocText(new String[]{"DS-Dictionary", "Form-ComboBox"})+":"), createDictComboBox()}, - {new UILabel(Inter.getLocText("long_data_can_not_show_fully")+":"), createExtendedComboBox()}, - {new UILabel(Inter.getLocText(new String[]{"Filter", "Form-ComboBox"})+":"), createFilterComboBox()}, - {new UILabel(Inter.getLocText("Form-ComboBox")+":"), createTreeComboBox()}, - {new UILabel(Inter.getLocText(new String[]{"Delay", "Load", "Form-ComboBox"})+":"), createLazyComboBox()} + {new UILabel(Inter.getLocText("Form-ComboCheckBox") + ":"), createComboCheckBox()}, + {new UILabel(Inter.getLocText(new String[]{"DS-Dictionary", "Form-ComboBox"}) + ":"), createDictComboBox()}, + {new UILabel(Inter.getLocText("long_data_can_not_show_fully") + ":"), createExtendedComboBox()}, + {new UILabel(Inter.getLocText(new String[]{"Filter", "Form-ComboBox"}) + ":"), createFilterComboBox()}, + {new UILabel(Inter.getLocText("Form-ComboBox") + ":"), createTreeComboBox()}, + {new UILabel(Inter.getLocText(new String[]{"Delay", "Load", "Form-ComboBox"}) + ":"), createLazyComboBox()} }; double[] rowSize = new double[coms.length]; double[] columnSize = {p, f}; @@ -165,6 +168,7 @@ public class ComboBoxDemo extends JPanel { // 睡5秒 try { Thread.sleep(5000); + } catch (InterruptedException e) { FRContext.getLogger().error(e.getMessage(), e); } diff --git a/designer_base/src/com/fr/design/gui/demo/SwingComponentsDemo.java b/designer_base/src/com/fr/design/gui/demo/SwingComponentsDemo.java index b819c337fc..eb026a5699 100644 --- a/designer_base/src/com/fr/design/gui/demo/SwingComponentsDemo.java +++ b/designer_base/src/com/fr/design/gui/demo/SwingComponentsDemo.java @@ -1,16 +1,15 @@ package com.fr.design.gui.demo; -import java.awt.BorderLayout; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.utils.DesignUtils; +import com.fr.design.utils.gui.GUICoreUtils; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; - -import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.utils.DesignUtils; -import com.fr.design.utils.gui.GUICoreUtils; +import java.awt.BorderLayout; /** * Created by IntelliJ IDEA. @@ -19,10 +18,10 @@ import com.fr.design.utils.gui.GUICoreUtils; * Time: 下午4:54 */ public class SwingComponentsDemo extends JFrame { - public SwingComponentsDemo() { - this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + private SwingComponentsDemo() { + this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); init(); - JPanel contentPane = (JPanel)getContentPane(); + JPanel contentPane = (JPanel) getContentPane(); contentPane.setLayout(FRGUIPaneFactory.createBorderLayout()); JTabbedPane tab = new JTabbedPane(); contentPane.add(tab, BorderLayout.CENTER); @@ -40,12 +39,12 @@ public class SwingComponentsDemo extends JFrame { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { JFrame f = new SwingComponentsDemo(); f.setSize(500, 500); f.setVisible(true); GUICoreUtils.centerWindow(f); - f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); } }); } diff --git a/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java b/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java index 43711b0118..2ec5590f64 100644 --- a/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java +++ b/designer_base/src/com/fr/design/gui/icombobox/LazyComboBox.java @@ -1,211 +1,192 @@ -/* - * Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. - */ -package com.fr.design.gui.icombobox; - -import java.awt.Dimension; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.*; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.event.PopupMenuEvent; -import javax.swing.event.PopupMenuListener; -import javax.swing.plaf.basic.BasicComboPopup; - -import com.fr.general.Inter; - -/** - * @author richer - * @since 6.5.5 创建于2011-6-15 延迟加载的下拉框 - */ -public abstract class LazyComboBox extends UIComboBox implements PopupMenuListener { - protected boolean loaded = false; - private List ls = new ArrayList(); - private Object initialSelected = null; - private static final int NUM=80; - - public static final Object PENDING = new Object() { - - @Override - public String toString() { - return Inter.getLocText("Loading") + "..."; - } - }; - - public LazyComboBox() { - super(); - this.setEditor(new FilterComboBoxEditor()); - addPopupMenuListener(this); -// updateUI(); - } - - public void setLoaded(boolean loaded) { - this.loaded = loaded; - } - - public abstract Object[] load(); - - public void setSelectedItem(Object anObject) { - initialSelected = anObject; - if (loaded) { - super.setSelectedItem(anObject); - } else { - - setModel(new DefaultComboBoxModel(new Object[] { anObject })); - super.setSelectedItem(anObject); - } - } - - /** - * 通过调用该方法,在点击下拉框按钮之前就加载好数据,不需要出现loading了 - */ - public void loadInstant() { - setLoaded(true); - loadList(); - } - - @Override - public void popupMenuWillBecomeVisible(PopupMenuEvent e) { - if (loaded) { - return; - } - DefaultComboBoxModel loadingModel = new DefaultComboBoxModel(new String[]{"", Inter.getLocText("Loading") + "..."}); - LazyComboBox.this.setModel(loadingModel); - new SwingWorker() { - - @Override - protected Void doInBackground() throws Exception { - final Object selectedObj = getSelectedItem(); - loadList(); - return null; - } - - @Override - public void done() { - LazyComboBox.this.updateUI(); - LazyComboBox.this.fireEvent(); - LazyComboBox.this.showPopup(); - } - - }.execute(); - - - } - - /** - * 计算加载下拉列表 - */ - public void loadList() { - DefaultComboBoxModel model = new DefaultComboBoxModel(load()); - model.setSelectedItem(initialSelected); - LazyComboBox.this.setModel(model); - LazyComboBox.this.selectedItemReminder = initialSelected ; - loaded = true; - } - - @Override - public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { - - } - - @Override - public void popupMenuCanceled(PopupMenuEvent e) { - - } - - public void addClickListener(EventListener l) { - if (ls == null) { - ls = new ArrayList(); - } - ls.add(l); - } - - public void fireEvent() { - for (int i = 0, n = ls.size(); i < n; i++) { - ls.get(i).fireEvent(); - } - } - - @Override - public Dimension getPreferredSize() { - Dimension dim = super.getPreferredSize(); - dim.width = NUM; - return dim; - } - - private static class LazyPopMenu extends BasicComboPopup { - - public LazyPopMenu(final JComboBox combo) { - super(combo); - LazyComboBox comboc = (LazyComboBox) combo; - comboc.addClickListener(new EventListener() { - - @Override - public void fireEvent() { - LazyPopMenu.this.show(); - combo.showPopup(); - } - }); - } - } - - private interface EventListener { - void fireEvent(); - } - - class FilterComboBoxEditor extends UIComboBoxEditor implements DocumentListener { - private Object item; - private volatile boolean filtering = false; - private volatile boolean setting = false; - - public FilterComboBoxEditor() { - super(); - textField.getDocument().addDocumentListener(this); - } - - public void setItem(Object item) { - if (filtering) { - return; - } - this.item = item; - - this.setting = true; - textField.setSetting(true); - String newText = (item == null) ? "" : item.toString(); - textField.setText(newText); - textField.setSetting(false); - this.setting = false; - } - - public Object getItem() { - return this.item; - } - - public void insertUpdate(DocumentEvent e) { - handleChange(); - } - - public void removeUpdate(DocumentEvent e) { - handleChange(); - } - - public void changedUpdate(DocumentEvent e) { - handleChange(); - } - - protected void handleChange() { - if (setting) { - return; - } - filtering = true; - String xx = textField.getText(); - LazyComboBox.this.setSelectedItem(xx); - this.item = textField.getText(); - - setPopupVisible(true); - filtering = false; - } - } +/* + * Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. + */ +package com.fr.design.gui.icombobox; + +import com.fr.general.FRLogger; +import com.fr.general.Inter; + +import javax.swing.DefaultComboBoxModel; +import javax.swing.SwingWorker; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; +import javax.swing.event.PopupMenuEvent; +import javax.swing.event.PopupMenuListener; +import java.awt.Dimension; +import java.util.concurrent.ExecutionException; + +/** + * @author richer + * @version 2018年2月6日14点43分 by @yaoh.wu + * @since 6.5.5 创建于2011-6-15 延迟加载的下拉框 + */ +public abstract class LazyComboBox extends UIComboBox implements PopupMenuListener { + + private static final int NUM = 80; + private static final String[] PENDING_CONTENT = new String[]{"", Inter.getLocText("Loading") + "..."}; + + /** + * 是否加载完成 + */ + protected boolean loaded = false; + + /** + * 初始化选项 + */ + private Object initialSelected = null; + + + protected LazyComboBox() { + super(); + this.setEditor(new FilterComboBoxEditor()); + addPopupMenuListener(this); + } + + public void setLoaded(boolean loaded) { + this.loaded = loaded; + } + + /** + * 加载下拉框中的选项 + * + * @return 下拉框中的选项 + */ + public abstract Object[] load(); + + @Override + public void setSelectedItem(Object anObject) { + initialSelected = anObject; + if (loaded) { + super.setSelectedItem(anObject); + } else { + this.setModel(new DefaultComboBoxModel<>(new Object[]{anObject})); + super.setSelectedItem(anObject); + } + } + + @Override + public void popupMenuWillBecomeVisible(PopupMenuEvent e) { + if (loaded) { + return; + } + DefaultComboBoxModel loadingModel = new DefaultComboBoxModel<>(PENDING_CONTENT); + this.setModel(loadingModel); + new SwingWorker() { + + @Override + protected Object[] doInBackground() { + return load(); + } + + @Override + public void done() { + try { + LazyComboBox.this.loadList(get()); + } catch (InterruptedException | ExecutionException exception) { + FRLogger.getLogger().debug(exception.getMessage()); + } + LazyComboBox.this.showPopup(); + } + }.execute(); + } + + + /** + * 加载下拉列表 + */ + public void loadList() { + DefaultComboBoxModel model = new DefaultComboBoxModel<>(load()); + model.setSelectedItem(initialSelected); + this.setModel(model); + this.selectedItemReminder = initialSelected; + loaded = true; + } + + /** + * 加载下拉列表 + * + * @param contents 下拉列表内容 + */ + private void loadList(Object[] contents) { + DefaultComboBoxModel model = new DefaultComboBoxModel<>(contents); + model.setSelectedItem(initialSelected); + this.setModel(model); + this.selectedItemReminder = initialSelected; + loaded = true; + } + + @Override + public void popupMenuWillBecomeInvisible(PopupMenuEvent e) { + + } + + @Override + public void popupMenuCanceled(PopupMenuEvent e) { + + } + + @Override + public Dimension getPreferredSize() { + Dimension dim = super.getPreferredSize(); + dim.width = NUM; + return dim; + } + + class FilterComboBoxEditor extends UIComboBoxEditor implements DocumentListener { + private Object item; + private volatile boolean filtering = false; + private volatile boolean setting = false; + + public FilterComboBoxEditor() { + super(); + textField.getDocument().addDocumentListener(this); + } + + @Override + public void setItem(Object item) { + if (filtering) { + return; + } + this.item = item; + this.setting = true; + textField.setSetting(true); + String newText = (item == null) ? "" : item.toString(); + textField.setText(newText); + textField.setSetting(false); + this.setting = false; + } + + @Override + public Object getItem() { + return this.item; + } + + @Override + public void insertUpdate(DocumentEvent e) { + handleChange(); + } + + @Override + public void removeUpdate(DocumentEvent e) { + handleChange(); + } + + @Override + public void changedUpdate(DocumentEvent e) { + handleChange(); + } + + void handleChange() { + if (setting) { + return; + } + filtering = true; + String xx = textField.getText(); + LazyComboBox.this.setSelectedItem(xx); + this.item = textField.getText(); + + setPopupVisible(true); + filtering = false; + } + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/gui/icombobox/UIComboBox.java b/designer_base/src/com/fr/design/gui/icombobox/UIComboBox.java index 350b99eadc..14a90da7b2 100644 --- a/designer_base/src/com/fr/design/gui/icombobox/UIComboBox.java +++ b/designer_base/src/com/fr/design/gui/icombobox/UIComboBox.java @@ -1,214 +1,198 @@ -package com.fr.design.gui.icombobox; - -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.design.utils.gui.GUICoreUtils; - -import javax.swing.*; -import javax.swing.plaf.ComboBoxUI; -import javax.swing.plaf.basic.ComboPopup; -import java.awt.*; -import java.awt.event.FocusAdapter; -import java.awt.event.FocusEvent; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.util.Vector; - -/** - * august:非常beautiful的ComboBox,不支持编辑状态. 内容过长时,鼠标移动过去会有ToolTips,不会有横向滚动条 - * 假如支持编辑,因为UIComboBox的TextField 的绘制 并不是靠Renderer来控制 , - * 它会通过paintCurrentValueBackground()来绘制背景, - * 然后通过paintCurrentValue(),去绘制UIComboBox里显示的值。所考虑情况比现在复杂多多多多多了,所以暂时不支持 - * 另外,项的内容最好不要有图标 - * - * @author zhou - * @since 2012-5-9下午3:18:58 - */ -public class UIComboBox extends JComboBox implements UIObserver, GlobalNameObserver { - - /** - * - */ - private static final long serialVersionUID = 1L; - - private static final int SIZE = 20; - - private static final int SIZE5 = 5; - - protected UIObserverListener uiObserverListener; - - private String comboBoxName = ""; - - private GlobalNameListener globalNameListener = null; - - public UIComboBox() { - super(); - init(); - } - - public UIComboBox(ComboBoxModel model) { - super(model); - init(); - } - - public UIComboBox(Object[] items) { - super(items); - init(); - } - - public UIComboBox(Vector items) { - super(items); - init(); - } - - private void init() { - setOpaque(false); - setUI(getUIComboBoxUI()); - setRenderer(new UIComboBoxRenderer()); - setEditor(new UIComboBoxEditor()); - initListener(); - } - - protected void initListener() { - if (shouldResponseChangeListener()) { - this.addFocusListener(new FocusAdapter() { - @Override - public void focusGained(FocusEvent e) { - fireSetGlobalName(); - } - }); - this.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - if (uiObserverListener == null) { - return; - } - fireSetGlobalName(); - if (e.getStateChange() == ItemEvent.SELECTED) { - uiObserverListener.doChange(); - } - } - }); - } - } - - protected void fireSetGlobalName() { - if (globalNameListener != null && shouldResponseNameListener()) { - globalNameListener.setGlobalName(comboBoxName); - } - } - - - protected ComboBoxUI getUIComboBoxUI() { - return new UIComboBoxUI(); - } - - /** - * 只允许设置为UIComboBoxRenderer,所以要继承UIComboBoxRenderer - */ - @Override - public void setRenderer(ListCellRenderer aRenderer) { - if (aRenderer instanceof UIComboBoxRenderer) { - super.setRenderer(aRenderer); - } else { - //throw new IllegalArgumentException("Must be UIComboBoxRenderer"); - } - } - - protected ComboPopup createPopup() { - return null; - } - - public void setGlobalName(String name) { - comboBoxName = name; - } - - @Override - public Dimension getPreferredSize() { - return new Dimension(super.getPreferredSize().width + SIZE5, SIZE);//加5的原因在于:render里,每一个项前面了空了一格,要多几像素 - } - - /** - * 鼠标进入事件 - */ - public void mouseEnterEvent() { - - } - - /** - * 鼠标离开事件 - */ - public void mouseExitEvent() { - - } - - /** - * - */ - public void updateUI() { - setUI(getUIComboBoxUI()); - } - - - /** - * - * @param listener 观察者监听事件 - */ - public void registerChangeListener(UIObserverListener listener) { - uiObserverListener = listener; - } - - public void removeChangeListener(){ - uiObserverListener = null; - } - - public UIObserverListener getUiObserverListener(){ - return uiObserverListener; - } - - /** - * @return - */ - public boolean shouldResponseChangeListener() { - return true; - } - - /** - * - * @param listener 观察者监听事件 - */ - public void registerNameListener(GlobalNameListener listener) { - globalNameListener = listener; - } - - /** - * - * @return - */ - public boolean shouldResponseNameListener() { - return true; - } - - - /** - * @param args - */ - public static void main(String... args) { - LayoutManager layoutManager = null; - JFrame jf = new JFrame("test"); - jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - JPanel content = (JPanel) jf.getContentPane(); - content.setLayout(layoutManager); - UIComboBox bb = new UIComboBox(new String[]{"", "jerry", "kunsnat", "richer"}); - bb.setEditable(true); - bb.setBounds(20, 20, bb.getPreferredSize().width, bb.getPreferredSize().height); - content.add(bb); - GUICoreUtils.centerWindow(jf); - jf.setSize(400, 400); - jf.setVisible(true); - } - - +package com.fr.design.gui.icombobox; + +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 javax.swing.ComboBoxModel; +import javax.swing.JComboBox; +import javax.swing.ListCellRenderer; +import javax.swing.plaf.ComboBoxUI; +import javax.swing.plaf.basic.ComboPopup; +import java.awt.Dimension; +import java.awt.event.FocusAdapter; +import java.awt.event.FocusEvent; +import java.awt.event.ItemEvent; +import java.awt.event.ItemListener; +import java.util.Vector; + +/** + * august:非常beautiful的ComboBox,不支持编辑状态. 内容过长时,鼠标移动过去会有ToolTips,不会有横向滚动条 + * 假如支持编辑,因为UIComboBox的TextField 的绘制 并不是靠Renderer来控制 , + * 它会通过paintCurrentValueBackground()来绘制背景, + * 然后通过paintCurrentValue(),去绘制UIComboBox里显示的值。所考虑情况比现在复杂多多多多多了,所以暂时不支持 + * 另外,项的内容最好不要有图标 + * + * @author zhou + * @since 2012-5-9下午3:18:58 + */ +public class UIComboBox extends JComboBox implements UIObserver, GlobalNameObserver { + + /** + * + */ + private static final long serialVersionUID = 1L; + + private static final int SIZE = 20; + + private static final int SIZE5 = 5; + + protected UIObserverListener uiObserverListener; + + private String comboBoxName = ""; + + private GlobalNameListener globalNameListener = null; + + public UIComboBox() { + super(); + init(); + } + + public UIComboBox(ComboBoxModel model) { + super(model); + init(); + } + + public UIComboBox(Object[] items) { + super(items); + init(); + } + + public UIComboBox(Vector items) { + super(items); + init(); + } + + private void init() { + setOpaque(false); + setUI(getUIComboBoxUI()); + setRenderer(new UIComboBoxRenderer()); + setEditor(new UIComboBoxEditor()); + initListener(); + } + + protected void initListener() { + if (shouldResponseChangeListener()) { + this.addFocusListener(new FocusAdapter() { + @Override + public void focusGained(FocusEvent e) { + fireSetGlobalName(); + } + }); + this.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + if (uiObserverListener == null) { + return; + } + fireSetGlobalName(); + if (e.getStateChange() == ItemEvent.SELECTED) { + uiObserverListener.doChange(); + } + } + }); + } + } + + protected void fireSetGlobalName() { + if (globalNameListener != null && shouldResponseNameListener()) { + globalNameListener.setGlobalName(comboBoxName); + } + } + + + protected ComboBoxUI getUIComboBoxUI() { + return new UIComboBoxUI(); + } + + /** + * 只允许设置为UIComboBoxRenderer,所以要继承UIComboBoxRenderer + */ + @Override + public void setRenderer(ListCellRenderer aRenderer) { + if (aRenderer instanceof UIComboBoxRenderer) { + super.setRenderer(aRenderer); + } + } + + protected ComboPopup createPopup() { + return null; + } + + @Override + public void setGlobalName(String name) { + comboBoxName = name; + } + + @Override + public Dimension getPreferredSize() { + //加5的原因在于:render里,每一个项前面了空了一格,要多几像素 + return new Dimension(super.getPreferredSize().width + SIZE5, SIZE); + } + + /** + * 鼠标进入事件 + */ + public void mouseEnterEvent() { + + } + + /** + * 鼠标离开事件 + */ + public void mouseExitEvent() { + + } + + /** + * + */ + @Override + public void updateUI() { + setUI(getUIComboBoxUI()); + } + + + /** + * @param listener 观察者监听事件 + */ + @Override + public void registerChangeListener(UIObserverListener listener) { + uiObserverListener = listener; + } + + public void removeChangeListener() { + uiObserverListener = null; + } + + public UIObserverListener getUiObserverListener() { + return uiObserverListener; + } + + /** + * @return 是否响应变更事件 + */ + @Override + public boolean shouldResponseChangeListener() { + return true; + } + + /** + * @param listener 观察者监听事件 + */ + @Override + public void registerNameListener(GlobalNameListener listener) { + globalNameListener = listener; + } + + /** + * @return 是否响应名称事件 + */ + @Override + public boolean shouldResponseNameListener() { + return true; + } + + } \ No newline at end of file From 2128fd6925b5312edb8763980f7ce1599fc3cc31 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 7 Feb 2018 09:02:11 +0800 Subject: [PATCH 093/116] =?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 094/116] =?UTF-8?q?REPORT-6691=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E4=B8=AD=E9=83=A8=E5=88=86=E5=95=86?= =?UTF-8?q?=E5=8A=A1=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 2fa3ae42c63649aec90a7b108b0de84e8ad64e45 Mon Sep 17 00:00:00 2001 From: ju Date: Wed, 7 Feb 2018 15:23:53 +0800 Subject: [PATCH 095/116] =?UTF-8?q?REPORT-6932=20=E6=B0=B4=E5=8D=B0?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E5=AE=89=E8=A3=85=E5=90=8E=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E9=87=8D=E5=90=AF=E7=94=9F=E6=95=88=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=9B=91=E5=90=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/gui/style/BorderPane.java | 57 ++++++++++++----- .../style/background/BackgroundFactory.java | 64 ++++++++++++++++++- 2 files changed, 103 insertions(+), 18 deletions(-) diff --git a/designer_base/src/com/fr/design/gui/style/BorderPane.java b/designer_base/src/com/fr/design/gui/style/BorderPane.java index e05d7f5292..06f836dc9e 100644 --- a/designer_base/src/com/fr/design/gui/style/BorderPane.java +++ b/designer_base/src/com/fr/design/gui/style/BorderPane.java @@ -11,6 +11,7 @@ import com.fr.design.constants.LayoutConstants; import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameObserver; import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.fun.BackgroundQuickUIProvider; import com.fr.design.gui.ibutton.UIToggleButton; import com.fr.design.gui.icombobox.LineComboBox; import com.fr.design.gui.ilable.UILabel; @@ -20,7 +21,12 @@ import com.fr.design.mainframe.backgroundpane.ColorBackgroundQuickPane; import com.fr.design.style.color.NewColorSelectBox; import com.fr.design.utils.gui.GUICoreUtils; import com.fr.general.ComparatorUtils; +import com.fr.general.GeneralContext; import com.fr.general.Inter; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.manage.PluginFilter; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; import com.fr.stable.Constants; import com.fr.stable.CoreConstants; @@ -62,8 +68,9 @@ public class BorderPane extends AbstractBasicStylePane implements GlobalNameObse public BorderPane() { this.initComponents(); } - + protected void initComponents() { + initButtonsWithIcon(); this.setLayout(new BorderLayout(0, 0)); JPanel externalPane = new JPanel(new GridLayout(0, 4)); @@ -77,17 +84,17 @@ public class BorderPane extends AbstractBasicStylePane implements GlobalNameObse double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ - new Component[]{null, null}, - new Component[]{new UILabel(Inter.getLocText("FR-Designer_Style") + " ", SwingConstants.LEFT), currentLineCombo}, - new Component[]{null, null}, - new Component[]{new UILabel(Inter.getLocText("FR-Designer_Color") + " ", SwingConstants.LEFT), currentLineColorPane}, - new Component[]{null, null}, - new Component[]{new UILabel(Inter.getLocText("FR-Designer_outBorder") + " ", SwingConstants.LEFT), outerToggleButton = new UIToggleButton(new Icon[]{BaseUtils.readIcon("com/fr/design/images/m_format/out.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/out_white.png")}, false)}, - new Component[]{null, externalPane}, - new Component[]{null, null}, - new Component[]{new UILabel(Inter.getLocText("FR-Designer_inBorder") + " ", SwingConstants.LEFT), innerToggleButton = new UIToggleButton(new Icon[]{BaseUtils.readIcon("com/fr/design/images/m_format/in.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/in_white.png")}, false)}, - new Component[]{null, insidePane}, - new Component[]{null, null} + new Component[]{null, null}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Style") + " ", SwingConstants.LEFT), currentLineCombo}, + new Component[]{null, null}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_Color") + " ", SwingConstants.LEFT), currentLineColorPane}, + new Component[]{null, null}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_outBorder") + " ", SwingConstants.LEFT), outerToggleButton = new UIToggleButton(new Icon[]{BaseUtils.readIcon("com/fr/design/images/m_format/out.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/out_white.png")}, false)}, + new Component[]{null, externalPane}, + new Component[]{null, null}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_inBorder") + " ", SwingConstants.LEFT), innerToggleButton = new UIToggleButton(new Icon[]{BaseUtils.readIcon("com/fr/design/images/m_format/in.png"), BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/in_white.png")}, false)}, + new Component[]{null, insidePane}, + new Component[]{null, null} }; double[] rowSize = {p, p, p, p, p, p, p, p, p, p, p}; double[] columnSize = {p, f}; @@ -95,15 +102,35 @@ public class BorderPane extends AbstractBasicStylePane implements GlobalNameObse panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, LayoutConstants.VGAP_SMALL, LayoutConstants.VGAP_MEDIUM); borderPanel = new UIExpandablePane(Inter.getLocText("FR-Designer_Border"), 280, 24, panel); this.add(borderPanel, BorderLayout.NORTH); - - backgroundPane = new BackgroundPane(); + + initBackgroundPane(); backgroundPanel = new UIExpandablePane(Inter.getLocText("FR-Designer_Background"), 280, 24, backgroundPane); this.add(backgroundPanel, BorderLayout.CENTER); initAllNames(); outerToggleButton.addChangeListener(outerToggleButtonChangeListener); innerToggleButton.addChangeListener(innerToggleButtonChangeListener); } - + + private void initBackgroundPane() { + //初始化背景pane并监听插件 + backgroundPane = new BackgroundPane(); + GeneralContext.listenPluginRunningChanged(new PluginEventListener() { + + @Override + public void on(PluginEvent event) { + + backgroundPane = new BackgroundPane(); + } + }, new PluginFilter() { + + @Override + public boolean accept(PluginContext context) { + + return context.contain(BackgroundQuickUIProvider.MARK_STRING); + } + }); + } + ChangeListener outerToggleButtonChangeListener = new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { diff --git a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java index 7cbff57ffa..8489f7d889 100644 --- a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java +++ b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java @@ -1,13 +1,29 @@ package com.fr.design.style.background; -import com.fr.base.background.*; +import com.fr.base.background.ColorBackground; +import com.fr.base.background.GradientBackground; +import com.fr.base.background.ImageBackground; +import com.fr.base.background.PatternBackground; +import com.fr.base.background.TextureBackground; import com.fr.design.ExtraDesignClassManager; import com.fr.design.fun.BackgroundUIProvider; import com.fr.design.style.background.gradient.GradientBackgroundPane; -import com.fr.design.style.background.impl.*; +import com.fr.design.style.background.impl.ColorBackgroundPane; +import com.fr.design.style.background.impl.ImageBackgroundPane; +import com.fr.design.style.background.impl.ImageBackgroundPane4Browser; +import com.fr.design.style.background.impl.ImageButtonBackgroundPane; +import com.fr.design.style.background.impl.NullBackgroundPane; +import com.fr.design.style.background.impl.PatternBackgroundPane; +import com.fr.design.style.background.impl.TextureBackgroundPane; import com.fr.general.Background; +import com.fr.general.GeneralContext; import com.fr.general.Inter; +import com.fr.plugin.context.PluginContext; +import com.fr.plugin.manage.PluginFilter; +import com.fr.plugin.observer.PluginEvent; +import com.fr.plugin.observer.PluginEventListener; +import com.fr.plugin.observer.PluginEventType; import java.util.LinkedHashMap; import java.util.Map; @@ -29,9 +45,51 @@ public class BackgroundFactory { registerBrowserImageBackground(browser); registerExtra(map); registerExtra(browser); + listenPlugin(); registerButtonBackground(button); } - + + private static void listenPlugin() { + + PluginFilter filter = new PluginFilter() { + + @Override + public boolean accept(PluginContext context) { + + return context.contain(BackgroundUIProvider.MARK_STRING); + } + }; + GeneralContext.listenPlugin(PluginEventType.BeforeStop, new PluginEventListener() { + + @Override + public void on(PluginEvent event) { + + Set set = event.getContext().getRuntime().get(BackgroundUIProvider.MARK_STRING); + for (BackgroundUIProvider provider : set) { + map.remove(provider.targetClass()); + browser.remove(provider.targetClass()); + } + } + }, filter); + GeneralContext.listenPlugin(PluginEventType.AfterRun, new PluginEventListener() { + + @Override + public void on(PluginEvent event) { + + Set set = event.getContext().getRuntime().get(BackgroundUIProvider.MARK_STRING); + Class clazz; + BackgroundUIWrapper wrapper; + for (BackgroundUIProvider provider : set) { + clazz = provider.targetClass(); + wrapper = BackgroundUIWrapper.create().setType(provider.targetUIClass()).setTitle(provider.targetTitle()); + map.put(clazz, wrapper); + browser.put(clazz, wrapper); + } + } + }); + + } + private static void registerUniversal(Map, BackgroundUIWrapper> map) { map.put(null, BackgroundUIWrapper.create() .setType(NullBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Null"))); From 7fb189412c0319fe8078e2a66d3be8494059e5b9 Mon Sep 17 00:00:00 2001 From: "yaoh.wu" Date: Wed, 7 Feb 2018 16:40:00 +0800 Subject: [PATCH 096/116] =?UTF-8?q?REPORT-6868=20=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=A0=BC=E9=A2=91=E7=B9=81=E5=BC=B9=E6=A1=86=EF=BC=8C=E5=8F=8C?= =?UTF-8?q?=E5=87=BB=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 097/116] =?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 098/116] =?UTF-8?q?REPORT-6563=20=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E8=A1=A8=E5=8D=95=EF=BC=8C=E6=8E=A7=E4=BB=B6=E6=9C=80?= =?UTF-8?q?=E5=B0=8F=E9=AB=98=E5=BA=A6=E5=90=8E=E5=AF=BC=E8=87=B4frm?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9body=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=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 099/116] =?UTF-8?q?REPORT-6563=20=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E8=A1=A8=E5=8D=95=EF=BC=8C=E6=8E=A7=E4=BB=B6=E6=9C=80?= =?UTF-8?q?=E5=B0=8F=E9=AB=98=E5=BA=A6=E5=90=8E=20=E5=AF=BC=E8=87=B4frm?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9body=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=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 --- .../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 100/116] =?UTF-8?q?REPORT-6868=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E5=8D=95=E5=85=83=E6=A0=BC=E5=8F=8C=E5=87=BB=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=95=B0=E6=8D=AE=E9=9B=86=E5=8F=82=E6=95=B0=E9=97=AE?= =?UTF-8?q?=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 101/116] =?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 102/116] =?UTF-8?q?REPORT-6949=20=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E7=9A=84=E8=B6=85=E7=BA=A7=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E5=90=8E=E4=BC=9A=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=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 103/116] =?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 104/116] =?UTF-8?q?REPORT-6457=20=E5=B0=86=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=A1=AB=E6=8A=A5=E7=9A=84=E5=8A=9F=E8=83=BD=E4=BB=A5?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E5=BD=A2=E6=88=90=E6=8B=86=E8=A7=A3=E5=87=BA?= =?UTF-8?q?=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 105/116] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.?= =?UTF-8?q?0=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=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>=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 106/116] =?UTF-8?q?MOBILE-7394=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=A0=87=E7=AD=BE=E6=8E=A7=E4=BB=B6?= =?UTF-8?q?=E8=B5=8B=E5=80=BC=E5=90=8E=EF=BC=8C=E6=8E=A7=E4=BB=B6=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=90=8D=E7=A7=B0=E7=9A=84=E8=B5=8B=E5=80=BC=E9=97=AE?= =?UTF-8?q?=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 107/116] =?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 108/116] . --- .../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 109/116] 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 110/116] 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 111/116] =?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 112/116] =?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 113/116] =?UTF-8?q?REPORT-6997=20=E7=BA=B8=E5=BC=A0?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E8=AE=BE=E7=BD=AE=E4=B8=BA=E4=B8=8D=E5=8F=AF?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=92=8C=E6=89=93=E5=8D=B0=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=AF=BC=E5=87=BAPDF=E8=BF=98=E6=98=AF=E4=BC=9A=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=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 114/116] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=EF=BC=8Cfeature=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 115/116] =?UTF-8?q?REPORT-6979=20=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E2=80=94=20=E8=A1=A8=E5=8D=95=E2=80=94=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E2=80=94=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?= 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 116/116] =?UTF-8?q?REPORT-6979=20=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A7=84=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) {