From 7482b3f9e6f06bbadfce85a6721dc820fa9d3a7b Mon Sep 17 00:00:00 2001 From: rinoux Date: Fri, 16 Dec 2016 16:22:38 +0800 Subject: [PATCH 01/48] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E8=AE=BE=E8=AE=A1?= =?UTF-8?q?=E5=99=A8=E5=90=AF=E5=8A=A8=E6=89=93=E5=BC=80=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fun/DesignerStartOpenFileProcessor.java | 20 +++++++++++++++++++ ...bstractDesignerStartOpenFileProcessor.java | 20 +++++++++++++++++++ .../src/com/fr/start/BaseDesigner.java | 12 +++++++++++ 3 files changed, 52 insertions(+) create mode 100644 designer_base/src/com/fr/design/fun/DesignerStartOpenFileProcessor.java create mode 100644 designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java diff --git a/designer_base/src/com/fr/design/fun/DesignerStartOpenFileProcessor.java b/designer_base/src/com/fr/design/fun/DesignerStartOpenFileProcessor.java new file mode 100644 index 0000000000..bbc9f0ac8c --- /dev/null +++ b/designer_base/src/com/fr/design/fun/DesignerStartOpenFileProcessor.java @@ -0,0 +1,20 @@ +package com.fr.design.fun; + +import com.fr.file.FILE; +import com.fr.stable.fun.mark.Immutable; + +/** + * 指定设计器启动时默认打开的文件 + * Created by rinoux on 2016/12/16. + */ +public interface DesignerStartOpenFileProcessor extends Immutable { + + int CURRENT_LEVEL = 1; + + String XML_TAG = "DesignerStartOpenFileProcessor"; + + /** + * 显示需要打开的报表文件 + */ + FILE fileToShow(); +} diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java b/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java new file mode 100644 index 0000000000..5053b0f426 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java @@ -0,0 +1,20 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.DesignerStartOpenFileProcessor; +import com.fr.stable.fun.mark.API; + +import static com.fr.stable.fun.mark.Layer.DEFAULT_LAYER_INDEX; + +/** + * Created by rinoux on 2016/12/16. + */ +@API(level = DesignerStartOpenFileProcessor.CURRENT_LEVEL) +public class AbstractDesignerStartOpenFileProcessor { + public int currentAPILevel() { + return DesignerStartOpenFileProcessor.CURRENT_LEVEL; + } + + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } +} diff --git a/designer_base/src/com/fr/start/BaseDesigner.java b/designer_base/src/com/fr/start/BaseDesigner.java index 5af9856c28..016ad604dd 100644 --- a/designer_base/src/com/fr/start/BaseDesigner.java +++ b/designer_base/src/com/fr/start/BaseDesigner.java @@ -11,6 +11,7 @@ import com.fr.design.extra.WebDialog; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.file.MutilTempalteTabPane; import com.fr.design.file.TemplateTreePane; +import com.fr.design.fun.DesignerStartOpenFileProcessor; import com.fr.design.fun.GlobalListenerProvider; import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.TemplatePane; @@ -224,6 +225,17 @@ public abstract class BaseDesigner extends ToolBarMenuDock { file = FILEFactory.createFILE(FILEFactory.ENV_PREFIX + DesignerEnvManager.getEnvManager().getLastOpenFile()); } + + //启动时打开指定文件的接口 + DesignerStartOpenFileProcessor processor = ExtraDesignClassManager.getInstance().getSingle(DesignerStartOpenFileProcessor.XML_TAG); + if (processor != null) { + FILE f = processor.fileToShow(); + if (f != null) { + file = f;//避免null + } else { + isException = true;//此时有文件nullpointer异常,执行打开空文件 + } + } if (file.exists() && !isException) { df.openTemplate(file); } else { From 4ded7b5fec713a9583cccdf5fffd02d339217524 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Tue, 27 Dec 2016 13:58:32 +0800 Subject: [PATCH 02/48] =?UTF-8?q?=E5=B0=86=E2=80=9Capp=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E2=80=9D=E6=94=B9=E6=88=90=E2=80=9C=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/report/mobile/AppFitBrowserPane.java | 2 +- .../report/mobile/MobileRadioGroupPane.java | 1 + .../report/mobile/ReportMobileAttrPane.java | 2 +- .../com/fr/design/images/dialog/appfit/H4.png | Bin 0 -> 1581 bytes .../com/fr/design/images/dialog/appfit/V4.png | Bin 0 -> 1645 bytes .../src/com/fr/design/locale/designer.properties | 2 +- .../fr/design/locale/designer_en_US.properties | 2 +- .../fr/design/locale/designer_ja_JP.properties | 2 +- .../fr/design/locale/designer_ko_KR.properties | 4 ++-- .../fr/design/locale/designer_zh_CN.properties | 4 ++-- .../fr/design/locale/designer_zh_TW.properties | 2 +- .../mobile/ElementCasePropertyTable.java | 8 ++++---- 12 files changed, 15 insertions(+), 14 deletions(-) create mode 100644 designer_base/src/com/fr/design/images/dialog/appfit/H4.png create mode 100644 designer_base/src/com/fr/design/images/dialog/appfit/V4.png diff --git a/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java b/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java index 2b1f44f389..d51a237fe8 100644 --- a/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java +++ b/designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java @@ -75,7 +75,7 @@ public class AppFitBrowserPane extends BasicBeanPane { @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Fit-App"); + return Inter.getLocText("FR-Designer_Fit"); } private ActionListener getAppPreviewActionListener() { diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java index 85cee58e8f..7a8b020126 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java @@ -34,6 +34,7 @@ public class MobileRadioGroupPane extends BasicBeanPane{ defaultRadio.setSelected(true); UIRadioButton horizonRadio = new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()); UIRadioButton verticalRadio = new UIRadioButton(MobileFitAttrState.VERTICAL.description()); +// UIRadioButton bidirectionalRadio = new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()); UIRadioButton notFitRadio = new UIRadioButton(MobileFitAttrState.NONE.description()); addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, notFitRadio); diff --git a/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java b/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java index 5b97137102..8f8f74437f 100644 --- a/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java +++ b/designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java @@ -65,6 +65,6 @@ public class ReportMobileAttrPane extends BasicBeanPane{ @Override protected String title4PopupWindow() { - return Inter.getLocText("FR-Designer_Fit-App"); + return Inter.getLocText("FR-Designer_Mobile-Attr"); } } diff --git a/designer_base/src/com/fr/design/images/dialog/appfit/H4.png b/designer_base/src/com/fr/design/images/dialog/appfit/H4.png new file mode 100644 index 0000000000000000000000000000000000000000..4712003bdf4e0111f9bc7763fab0e60a5b937b18 GIT binary patch literal 1581 zcmeAS@N?(olHy`uVBq!ia0vp^AAooP2NRIoyR*y)NJ*BsMwA5Srr5%(GQ`zk9!uLS~AsQn;zFfp39xYDT62(s|s5su(?)1Hb_`sNdc^+B->UA;;0DU00rm#qErP_JyYFe10zEPb4xu# zQ&V$uBOL`J149#i14Dg7V_ic_D-#nd0|NypPy*Ukl#*r@PvvothxHM4ZHG^MGl-2$;B+|7EaktaqG?9K)+@O5r@F+h}i2#F zDT`j&t-HS3QRY?IZplxU#s5rLy_7Ooc$?T9n->V0a7clf${7L>rrQMt2(x#ABa{hL z2VsJ>I9?FYd9f|`d)2@E_*ZM+m_Glec*Q?_@6W4ApXa>ZHE%uZU)>{rEdA3xiYqMU zJ*Y68_v}fvWyv|grBmJ+n)q(sbFTa3VflEiCJX0#<>xNC-95XLYv1&q(%nug%C`sQ zU%GbQ^1;&%=`S@wl{K^YjGoUBe{|{Xr9wW-+Nyl>`^Ifw|J=*lbf0Br#g@q_-1Cap zEbxAs@#ONeH}cvdt{2Ggi~=Mm4yXN{D6-7K@K^8#ng4|*>1*bgrEizn(GChEN0_-} zgxC5@+urJ(&zFz6>->Dr+pB$HQ_Hu$0)|rOhut6D9G_o&a(?Hb#E8R(3s*iqx+98p zzVY*iGat_K)4ZFUF)OWduK48k^>JAbS3mDIezN!3o@ZKrPR?0f|D|l&_h!@T4>g+; zzgzZye{WIT2MjQ`!_{{V{cx!{H|Oxbg_q`km3@BY-tzBdpKX&P_V3!>U1l%)HseX` zGZ}*ydFM7Z=}q0d&wuvj`ZWO}j?l=*9plhI!V(m-zq$v_U^@CkD1o76@|6H_V+Po~;1FfeOmhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Keo~drKfsvttxuu?= zsj0cSk&c3qfuV`MfuX*kv96(|m5GU!fq?=PC;@FNN=dT{a&d#&1?1T(Wt5Z@Sn2DR zmzV368|&p4rRy77T3YHG80i}s=>k>g7FXt#Bv$C=6)VF`a7isrF3Kz@$;{7F0GXJW zlwVq6s|0i@#0$9vaAWg|p}_R zVB+2x*2K%ez;xTw#WAGf)|#fNhDN0wPs@&NB{7W(4 z@mlI!4ae+zXWYGBF8F)xY5eiWA8Xm{=K8%i&X@ak*>vA~24=AYMhIflIlu%#JP{47 zFvQ5cfdPWBsnj`uqVk?>h0O64-~WGI92azD&*P;xF2DY^F)LdC{O#|5KmGV$yJQMe zIg@tcvdwe;r_@FI1^v7IG-TsqzoYMJ#H{mwT&cX_%=V8fSEB9r@yiFVo{qQIS~cxC zue>GyZQK88v-QtQ#h*=+*XutYogBG}`Tnkt@2*yS-7{58<%eWU+|ls!OP+4Ek)Qtl z|K-Q8o}Pbj?D^TlVT^f}w@;tqw_<^KM*`*-ppUS5hv$Y61L5$9dbek7U+9g(=X1}$ znZ4z4;@w5I&3MC0ECCj>XyFA7S#ASZ96(jBdCS!QSmM*ak3o;MB~0J%^8dYc-ObR~ zzw0XZyw8d`8`~Q^r*3}8v&r+~rxiVQT)9K^;)=@W<;SF#Pub@r-S+U`$C84tpRT#z z{dv1|tL1y;)f@9}y!*L*?n|rMC)T_E2<3b<`~6_g)9=;=_g)=1T|D=_Yx%Jo?~2Rs z?)m!faN#|Bi<;e6<>z~z&aSlE_tj_BN1JsU_vW0~W7_a}Luf defaultList = new ArrayList<>(); @@ -96,7 +96,7 @@ public class ElementCasePropertyTable extends AbstractPropertyTable{ } - groups.add(new PropertyGroup(new ReportAppPropertyGroupModel(Inter.getLocText("FR-Designer_Fit-App"), xCreator, propertyTableEditor, designer))); + groups.add(new PropertyGroup(new ReportAppPropertyGroupModel(Inter.getLocText("FR-Designer_Fit"), xCreator, propertyTableEditor, designer))); TableModel model = new BeanTableModel(); setModel(model); From 41191d8024398fa024a6fd1ed9168e41adc9f2e4 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Tue, 27 Dec 2016 14:00:11 +0800 Subject: [PATCH 03/48] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/locale/designer_ko_KR.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 a84ff40a60..981cffc7b0 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 @@ -100,7 +100,7 @@ FR-Designer_FS_Close_Other_Templates=\uAE30\uD0C0\uD15C\uD50C\uB9BF\uB2EB\uAE30 FR-Designer_File=\uD30C\uC77C FR-Designer_Filter_Conditions=\uD544\uD130\uC870\uAC74 FR-Designer_Finish-Modify-Share=\uC218\uC815\uC644\uB8CC\uBC0F\uACF5\uC720 -FR-Designer_Fit-App=App\uC790\uAE30\uC801\uC751 +FR-Designer_Fit=App\uC790\uAE30\uC801\uC751 FR-Designer_Font-Family=\uAE00\uAF34\uBA85\uCE6D FR-Designer_Font-Size=\uAE00\uAF34\uD06C\uAE30 FR-Designer_Forbid_Drag_into_Adapt_Pane=\uD574\uB2F9\uAC1D\uCCB4\uB294\uD3FC\uD14C\uC774\uBE14\uBC14\uB514\uB4DC\uB798\uADF8\uB97C\uD5C8\uC6A9\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. @@ -466,4 +466,4 @@ FR-Designer_Exported_successfully=\uB0B4\uBCF4\uB0B4\uAE30\uC131\uACF5 FR-Designer_Exporting=\uB0B4\uBCF4\uB0B4\uAE30\uC911 FR-Designer_Export-PDF=PDF\uC11C\uC2DDFR-Designer_Properties=\uFFFD FR-Designer_Button_OK=\uD655\uC778FR-Designer_Button_Cancel=\uCDE8\uC18C -\ \ No newline at end of file +\uFFFD \ No newline at end of file From 9309c76f1a03cd9355d695a89ddd0a8dfec1169e Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 27 Dec 2016 17:56:59 +0800 Subject: [PATCH 04/48] =?UTF-8?q?oracle=20=E5=AD=98=E5=82=A8=E8=BF=87?= =?UTF-8?q?=E7=A8=8B=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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index a0bdc0e132..e3fefd04e8 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1656,12 +1656,12 @@ public class RemoteEnv implements Env { } @Override - public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String databaseName, String parameterDefaultValue) throws Exception { + public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String[] databaseName, String parameterDefaultValue) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); HashMap para = new HashMap(); para.put("op", "fr_remote_design"); para.put("cmd", "design_get_sp_parameters"); - para.put("__name__", databaseName); + para.put("__name__", StringUtils.join(".", databaseName)); para.put("__default_value__", parameterDefaultValue); para.put("connectionName", connectionName); From 57ebd42fcbfa769c2aa328552b2dab1e5d0fd8e9 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 27 Dec 2016 17:58:14 +0800 Subject: [PATCH 05/48] rt --- .../design/data/tabledata/tabledatapane/ProcedureDataPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index 600481428e..f3e8dcd5ae 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -316,7 +316,7 @@ public class ProcedureDataPane extends AbstractTableDataPane imp } StoreProcedureParameter[] newparameters; - newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, tableName[tableName.length - 1], parameterDefaultValue); + newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, tableName, parameterDefaultValue); editorPane.populate(newparameters); From efda5a486ffdca44437e9c84bbd830784823e7d1 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Wed, 28 Dec 2016 14:26:18 +0800 Subject: [PATCH 06/48] rt --- .../tabledata/tabledatapane/ProcedureDataPane.java | 13 ++++++------- designer_base/src/com/fr/env/RemoteEnv.java | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java index f3e8dcd5ae..6f2ee4da33 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/ProcedureDataPane.java @@ -299,7 +299,6 @@ public class ProcedureDataPane extends AbstractTableDataPane imp text = StringUtils.EMPTY; } text = text.trim(); - String[] tableName = text.split("\\."); String connectionname = this.connectionTableProcedurePane.getSelectedDatabaseConnnectonName(); try { String procedureText = FRContext.getCurrentEnv().getProcedureText(this.connectionTableProcedurePane.getSelectedDatabaseConnnectonName(), text); @@ -307,16 +306,16 @@ public class ProcedureDataPane extends AbstractTableDataPane imp // 获取参数默认值,例如:NAME in varchar2 default 'SCOTT',默认值为SCOTT String parameterDefaultValue = ""; if (StringUtils.isNotEmpty(procedureText)) { - int index_begin = procedureText.indexOf("BEGIN"); - - //from sam: 默认值只会在begin之前声明, 不然会把所有的存储过程里带'xx'的都作为默认值 - String defaulValueStr = index_begin == -1 ? procedureText : procedureText.substring(0, index_begin); - String[] strs = defaulValueStr.split("\'"); + int index_begin = procedureText.indexOf("BEGIN"); + + //from sam: 默认值只会在begin之前声明, 不然会把所有的存储过程里带'xx'的都作为默认值 + String defaulValueStr = index_begin == -1 ? procedureText : procedureText.substring(0, index_begin); + String[] strs = defaulValueStr.split("\'"); parameterDefaultValue = strs.length > 1 ? strs[1] : parameterDefaultValue; } StoreProcedureParameter[] newparameters; - newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, tableName, parameterDefaultValue); + newparameters = FRContext.getCurrentEnv().getStoreProcedureDeclarationParameters(connectionname, text, parameterDefaultValue); editorPane.populate(newparameters); diff --git a/designer_base/src/com/fr/env/RemoteEnv.java b/designer_base/src/com/fr/env/RemoteEnv.java index e3fefd04e8..a0bdc0e132 100644 --- a/designer_base/src/com/fr/env/RemoteEnv.java +++ b/designer_base/src/com/fr/env/RemoteEnv.java @@ -1656,12 +1656,12 @@ public class RemoteEnv implements Env { } @Override - public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String[] databaseName, String parameterDefaultValue) throws Exception { + public StoreProcedureParameter[] getStoreProcedureDeclarationParameters(String connectionName, String databaseName, String parameterDefaultValue) throws Exception { ByteArrayOutputStream out = new ByteArrayOutputStream(); HashMap para = new HashMap(); para.put("op", "fr_remote_design"); para.put("cmd", "design_get_sp_parameters"); - para.put("__name__", StringUtils.join(".", databaseName)); + para.put("__name__", databaseName); para.put("__default_value__", parameterDefaultValue); para.put("connectionName", connectionName); From 276a06350e02cf755b15632ad66c94f50e983bf3 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Wed, 28 Dec 2016 15:44:14 +0800 Subject: [PATCH 07/48] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=86=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E5=B1=9E=E6=80=A7->=E5=8F=8C=E5=90=91?= =?UTF-8?q?=E8=87=AA=E9=80=82=E5=BA=94=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mobile/AppFitPreviewPane.java | 2 ++ .../report/mobile/MobileRadioGroupPane.java | 11 +++++------ .../com/fr/design/images/dialog/appfit/H3.png | Bin 779 -> 1581 bytes .../com/fr/design/images/dialog/appfit/H4.png | Bin 1581 -> 779 bytes .../com/fr/design/images/dialog/appfit/V3.png | Bin 842 -> 1645 bytes .../com/fr/design/images/dialog/appfit/V4.png | Bin 1645 -> 842 bytes 6 files changed, 7 insertions(+), 6 deletions(-) diff --git a/designer/src/com/fr/design/report/mobile/AppFitPreviewPane.java b/designer/src/com/fr/design/report/mobile/AppFitPreviewPane.java index 3625e4ba4e..bbb44f6122 100644 --- a/designer/src/com/fr/design/report/mobile/AppFitPreviewPane.java +++ b/designer/src/com/fr/design/report/mobile/AppFitPreviewPane.java @@ -35,10 +35,12 @@ public class AppFitPreviewPane extends BasicPane{ cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V1.png"))); cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V2.png"))); cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V3.png"))); + cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V4.png"))); cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H0.png"))); cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H1.png"))); cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H2.png"))); cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H3.png"))); + cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H4.png"))); } private void initComponents() { diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java index 7a8b020126..25571c8110 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java @@ -1,11 +1,11 @@ package com.fr.design.report.mobile; +import com.fr.base.mobile.MobileFitAttrState; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.base.mobile.MobileFitAttrState; import com.fr.stable.StringUtils; import javax.swing.*; @@ -28,23 +28,22 @@ public class MobileRadioGroupPane extends BasicBeanPane{ private void initComponents(String title) { double p = TableLayout.PREFERRED; double[] rowSize = {p}; - double[] columnSize = {p, p, p, p, p}; + double[] columnSize = {p, p, p, p, p, p}; UIRadioButton defaultRadio = new UIRadioButton(MobileFitAttrState.DEFAULT.description()); defaultRadio.setSelected(true); UIRadioButton horizonRadio = new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()); UIRadioButton verticalRadio = new UIRadioButton(MobileFitAttrState.VERTICAL.description()); -// UIRadioButton bidirectionalRadio = new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()); + UIRadioButton bidirectionalRadio = new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()); UIRadioButton notFitRadio = new UIRadioButton(MobileFitAttrState.NONE.description()); - addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, notFitRadio); + addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, bidirectionalRadio, notFitRadio); Component[][] components = new Component[][]{ - new Component[]{new UILabel(title), defaultRadio, horizonRadio, verticalRadio, notFitRadio} + new Component[]{new UILabel(title), defaultRadio, horizonRadio, verticalRadio, bidirectionalRadio, notFitRadio} }; JPanel fitOpsPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); fitOpsPane.setBorder(BorderFactory.createEmptyBorder(10, 13, 10, 10)); - this.add(fitOpsPane); } diff --git a/designer_base/src/com/fr/design/images/dialog/appfit/H3.png b/designer_base/src/com/fr/design/images/dialog/appfit/H3.png index 16dfca0da437d151dbe329966246ea5f026b255e..4712003bdf4e0111f9bc7763fab0e60a5b937b18 100644 GIT binary patch literal 1581 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 Date: Wed, 28 Dec 2016 15:52:36 +0800 Subject: [PATCH 08/48] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E6=96=87=E4=BB=B6=E5=86=B2=E7=AA=81=E4=B9=8B=E5=90=8E?= =?UTF-8?q?=E2=80=9Capp=E2=80=9D=E5=BF=98=E8=AE=B0=E5=8E=BB=E6=8E=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/locale/designer_ko_KR.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 644cdf8f98..42c24b7dfe 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 @@ -100,7 +100,7 @@ FR-Designer_FS_Close_Other_Templates=\uAE30\uD0C0\uD15C\uD50C\uB9BF\uB2EB\uAE30 FR-Designer_File=\uD30C\uC77C FR-Designer_Filter_Conditions=\uD544\uD130\uC870\uAC74 FR-Designer_Finish-Modify-Share=\uC218\uC815\uC644\uB8CC\uBC0F\uACF5\uC720 -FR-Designer_Fit=App\uC790\uAE30\uC801\uC751 +FR-Designer_Fit=\uC790\uAE30\uC801\uC751 FR-Designer_Font-Family=\uAE00\uAF34\uBA85\uCE6D FR-Designer_Font-Size=\uAE00\uAF34\uD06C\uAE30 FR-Designer_Forbid_Drag_into_Adapt_Pane=\uD574\uB2F9\uAC1D\uCCB4\uB294\uD3FC\uD14C\uC774\uBE14\uBC14\uB514\uB4DC\uB798\uADF8\uB97C\uD5C8\uC6A9\uD558\uC9C0\uC54A\uC2B5\uB2C8\uB2E4. From 84518414e4d9d379cb2d3969b8779de662ed5411 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Wed, 28 Dec 2016 17:28:28 +0800 Subject: [PATCH 09/48] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E7=AB=AF=E5=B1=9E=E6=80=A7->=E8=87=AA=E9=80=82=E5=BA=94->?= =?UTF-8?q?=E5=8F=8C=E5=90=91=E8=87=AA=E9=80=82=E5=BA=94=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=92=8C=E4=B8=8D=E8=87=AA=E9=80=82=E5=BA=94=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/report/mobile/MobileRadioGroupPane.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java index 25571c8110..f03b726260 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java @@ -37,10 +37,10 @@ public class MobileRadioGroupPane extends BasicBeanPane{ UIRadioButton bidirectionalRadio = new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()); UIRadioButton notFitRadio = new UIRadioButton(MobileFitAttrState.NONE.description()); - addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, bidirectionalRadio, notFitRadio); + addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, notFitRadio, bidirectionalRadio); Component[][] components = new Component[][]{ - new Component[]{new UILabel(title), defaultRadio, horizonRadio, verticalRadio, bidirectionalRadio, notFitRadio} + new Component[]{new UILabel(title), defaultRadio, horizonRadio, verticalRadio, notFitRadio, bidirectionalRadio} }; JPanel fitOpsPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); fitOpsPane.setBorder(BorderFactory.createEmptyBorder(10, 13, 10, 10)); From 42cb8251b6d809f669cee597004cfa938b0398c3 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Wed, 28 Dec 2016 17:38:13 +0800 Subject: [PATCH 10/48] =?UTF-8?q?=E7=95=8C=E9=9D=A2=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E9=A1=BA=E5=BA=8F=E4=BF=AE=E6=94=B9=E4=BA=86=EF=BC=8C=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E5=9B=BE=E7=89=87=E7=9A=84=E9=A1=BA=E5=BA=8F=E4=B9=9F?= =?UTF-8?q?=E8=A6=81=E7=9B=B8=E5=BA=94=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/images/dialog/appfit/H3.png | Bin 1581 -> 779 bytes .../com/fr/design/images/dialog/appfit/H4.png | Bin 779 -> 1581 bytes .../com/fr/design/images/dialog/appfit/V3.png | Bin 1645 -> 842 bytes .../com/fr/design/images/dialog/appfit/V4.png | Bin 842 -> 1645 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/designer_base/src/com/fr/design/images/dialog/appfit/H3.png b/designer_base/src/com/fr/design/images/dialog/appfit/H3.png index 4712003bdf4e0111f9bc7763fab0e60a5b937b18..16dfca0da437d151dbe329966246ea5f026b255e 100644 GIT binary patch delta 572 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 Tt$Cs>$N&VMu6{1-oD!M Date: Thu, 29 Dec 2016 11:18:55 +0800 Subject: [PATCH 11/48] =?UTF-8?q?=E5=9C=A8=E8=A1=A8=E5=8D=95->=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E8=8F=9C=E5=8D=95->=E7=A7=BB=E5=8A=A8=E7=AB=AF?= =?UTF-8?q?=E5=B1=9E=E6=80=A7=E4=B8=AD=E5=8A=A0=E5=85=A5=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E6=96=B9=E5=BC=8F=E7=9A=84=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mobile/MobileUseHtmlGroupPane.java | 106 +---------------- .../mobile/MobileUseHtmlGroupBeanPane.java | 112 ++++++++++++++++++ .../form/mobile/FormMobileAttrPane.java | 33 ++++-- .../form/mobile/MobileUseHtmlGroupPane.java | 29 +++++ 4 files changed, 167 insertions(+), 113 deletions(-) create mode 100644 designer_base/src/com/fr/design/dialog/mobile/MobileUseHtmlGroupBeanPane.java create mode 100644 designer_form/src/com/fr/design/form/mobile/MobileUseHtmlGroupPane.java diff --git a/designer/src/com/fr/design/report/mobile/MobileUseHtmlGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileUseHtmlGroupPane.java index 50c5e32381..0e0ec087d1 100644 --- a/designer/src/com/fr/design/report/mobile/MobileUseHtmlGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileUseHtmlGroupPane.java @@ -1,109 +1,12 @@ package com.fr.design.report.mobile; -import com.fr.design.beans.BasicBeanPane; -import com.fr.design.border.UITitledBorder; -import com.fr.design.gui.ibutton.UIRadioButton; -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.design.dialog.mobile.MobileUseHtmlGroupBeanPane; import com.fr.report.mobile.ElementCaseMobileAttr; -import javax.swing.*; -import java.awt.*; -import java.awt.event.ActionListener; -import java.util.ArrayList; -import java.util.List; - /** * Created by kunsnat on 2016/8/3. */ -public class MobileUseHtmlGroupPane extends BasicBeanPane { - - private List radioButtons = new ArrayList(); - - public MobileUseHtmlGroupPane() { - initComponents(); - } - - private void initComponents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(UITitledBorder.createBorderWithTitle(this.title4PopupWindow())); - - double p = TableLayout.PREFERRED; - double[] rowSize = {p, p}; - double[] columnSize = {p, p, p}; - - UIRadioButton useApp = new UIRadioButton(Inter.getLocText("FR-mobile_native_analysis")); - useApp.setSelected(true); - UIRadioButton useHTML5 = new UIRadioButton(Inter.getLocText("FR-mobile_html_analysis")); - - addToButtonGroup(useApp, useHTML5); - - Component[][] components = new Component[][]{ - new Component[]{new UILabel(Inter.getLocText("FR-mobile_analysis_style")), useApp, useHTML5}, - new Component[]{new UILabel(Inter.getLocText("FR-mobile_analysis_annotation")), null, null} - }; - JPanel usePane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); - usePane.setBorder(BorderFactory.createEmptyBorder(10, 13, 10, 10)); - - this.add(usePane); - } - - private void addToButtonGroup(UIRadioButton... radios) { - ButtonGroup buttonGroup = new ButtonGroup(); - for (UIRadioButton radio : radios) { - radioButtons.add(radio); - buttonGroup.add(radio); - } - } - - /** - * 设置按钮状态 - */ - public void setEnabled(boolean enabled) { - for (UIRadioButton radioButton : radioButtons) { - radioButton.setEnabled(enabled); - } - } - - /** - * 获取当前选中的按钮index - * - * @return 按钮index - */ - public int getSelectRadioIndex() { - for (int i = 0, len = radioButtons.size(); i < len; i++) { - if (radioButtons.get(i).isSelected()) { - return i; - } - } - - return 0; - } - - /** - * 选中指定index的按钮 - */ - public void selectIndexButton(int index) { - if (index < 0 || index > radioButtons.size() - 1) { - return; - } - - UIRadioButton button = radioButtons.get(index); - button.setSelected(true); - } - - /** - * 给所有的按钮加上监听 - */ - public void addActionListener(ActionListener actionListener) { - for (UIRadioButton radioButton : radioButtons) { - radioButton.addActionListener(actionListener); - } - } - +public class MobileUseHtmlGroupPane extends MobileUseHtmlGroupBeanPane { @Override public void populateBean(ElementCaseMobileAttr mobileAttr) { if(mobileAttr != null) { @@ -122,9 +25,4 @@ public class MobileUseHtmlGroupPane extends BasicBeanPane mobileAttr.setUseHTML(getSelectRadioIndex() == 1); } } - - @Override - protected String title4PopupWindow() { - return Inter.getLocText("FR-mobile_report_analysis"); - } } diff --git a/designer_base/src/com/fr/design/dialog/mobile/MobileUseHtmlGroupBeanPane.java b/designer_base/src/com/fr/design/dialog/mobile/MobileUseHtmlGroupBeanPane.java new file mode 100644 index 0000000000..5ddf61e560 --- /dev/null +++ b/designer_base/src/com/fr/design/dialog/mobile/MobileUseHtmlGroupBeanPane.java @@ -0,0 +1,112 @@ +package com.fr.design.dialog.mobile; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.border.UITitledBorder; +import com.fr.design.gui.ibutton.UIRadioButton; +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 javax.swing.*; +import java.awt.*; +import java.awt.event.ActionListener; +import java.util.ArrayList; +import java.util.List; + +/** + * 由于MobileUserHtmlGroupPane 现在在report和form中均会用到,会出现重复代码,故放入base中 + * Created by fanglei on 2016/12/28. + */ +public abstract class MobileUseHtmlGroupBeanPane extends BasicBeanPane { + + private List radioButtons = new ArrayList(); + + public MobileUseHtmlGroupBeanPane() { + initComponents(); + } + + private void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setBorder(UITitledBorder.createBorderWithTitle(this.title4PopupWindow())); + + double p = TableLayout.PREFERRED; + double[] rowSize = {p, p}; + double[] columnSize = {p, p, p}; + + UIRadioButton useApp = new UIRadioButton(Inter.getLocText("FR-mobile_native_analysis")); + useApp.setSelected(true); + UIRadioButton useHTML5 = new UIRadioButton(Inter.getLocText("FR-mobile_html_analysis")); + + addToButtonGroup(useApp, useHTML5); + + Component[][] components = new Component[][]{ + new Component[]{new UILabel(Inter.getLocText("FR-mobile_analysis_style")), useApp, useHTML5}, + new Component[]{new UILabel(Inter.getLocText("FR-mobile_analysis_annotation")), null, null} + }; + JPanel usePane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); + usePane.setBorder(BorderFactory.createEmptyBorder(10, 13, 10, 10)); + + this.add(usePane); + } + + private void addToButtonGroup(UIRadioButton... radios) { + ButtonGroup buttonGroup = new ButtonGroup(); + for (UIRadioButton radio : radios) { + radioButtons.add(radio); + buttonGroup.add(radio); + } + } + + /** + * 设置按钮状态 + */ + public void setEnabled(boolean enabled) { + for (UIRadioButton radioButton : radioButtons) { + radioButton.setEnabled(enabled); + } + } + + /** + * 获取当前选中的按钮index + * + * @return 按钮index + */ + public int getSelectRadioIndex() { + for (int i = 0, len = radioButtons.size(); i < len; i++) { + if (radioButtons.get(i).isSelected()) { + return i; + } + } + + return 0; + } + + /** + * 选中指定index的按钮 + */ + public void selectIndexButton(int index) { + if (index < 0 || index > radioButtons.size() - 1) { + return; + } + + UIRadioButton button = radioButtons.get(index); + button.setSelected(true); + } + + /** + * 给所有的按钮加上监听 + */ + public void addActionListener(ActionListener actionListener) { + for (UIRadioButton radioButton : radioButtons) { + radioButton.addActionListener(actionListener); + } + } + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("FR-mobile_report_analysis"); + } +} + 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 0aafd8258c..2431ebc8dc 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -1,6 +1,7 @@ package com.fr.design.form.mobile; import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.form.main.mobile.FormMobileAttr; import com.fr.general.Inter; @@ -15,22 +16,34 @@ public class FormMobileAttrPane extends BasicBeanPane{ //工具栏容器 private MobileToolBarPane mobileToolBarPane; + //h5解析容器 + private MobileUseHtmlGroupPane mobileUseHtmlGroupPane; + static final int paddingHeight = 10; public FormMobileAttrPane() { this.initComponents(); } + //现在只有两个panel,填不满自适应对话框,只能为工具栏Panel和h5解析方式panel分别包裹上一层Panel再计算高度,不然会自动 + //拉长两个Panel的高度去填满整个对话框。 private void initComponents() { - JPanel jPanel = new JPanel(); + JPanel jPanel1 = new JPanel(); + JPanel jPanel2 = new JPanel(); this.setLayout(FRGUIPaneFactory.createBorderLayout()); - this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); - jPanel.setLayout(FRGUIPaneFactory.createBorderLayout()); + jPanel1.setLayout(FRGUIPaneFactory.createBorderLayout()); + jPanel1.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); + jPanel2.setLayout(FRGUIPaneFactory.createBorderLayout()); + jPanel2.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); this.mobileToolBarPane = new MobileToolBarPane(); + this.mobileUseHtmlGroupPane = new MobileUseHtmlGroupPane(); //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 - jPanel.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + paddingHeight)); - jPanel.add("North", mobileToolBarPane); - this.add(jPanel); + jPanel1.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + paddingHeight)); + jPanel2.setPreferredSize(new Dimension(0, (int)this.mobileUseHtmlGroupPane.getPreferredSize().getHeight() + paddingHeight)); + jPanel1.add("North", this.mobileUseHtmlGroupPane); + jPanel2.add("North", this.mobileToolBarPane); + this.add("North", jPanel1); + this.add("Center", jPanel2); } @Override @@ -39,13 +52,15 @@ public class FormMobileAttrPane extends BasicBeanPane{ ob = new FormMobileAttr(); } this.mobileToolBarPane.populateBean(ob); + this.mobileUseHtmlGroupPane.populateBean(ob); } @Override public FormMobileAttr updateBean() { - FormMobileAttr caseMobileAttr = new FormMobileAttr(); - this.mobileToolBarPane.updateBean(caseMobileAttr); - return caseMobileAttr; + FormMobileAttr formMobileAttr = new FormMobileAttr(); + this.mobileToolBarPane.updateBean(formMobileAttr); + this.mobileUseHtmlGroupPane.updateBean(formMobileAttr); + return formMobileAttr; } @Override diff --git a/designer_form/src/com/fr/design/form/mobile/MobileUseHtmlGroupPane.java b/designer_form/src/com/fr/design/form/mobile/MobileUseHtmlGroupPane.java new file mode 100644 index 0000000000..45550a8420 --- /dev/null +++ b/designer_form/src/com/fr/design/form/mobile/MobileUseHtmlGroupPane.java @@ -0,0 +1,29 @@ +package com.fr.design.form.mobile; + +import com.fr.design.dialog.mobile.MobileUseHtmlGroupBeanPane; +import com.fr.form.main.mobile.FormMobileAttr; + +/** + * 直接copyreport中的MobileUseHtmlGroupPane + * Created by fanglei on 2016/12/28. + */ +public class MobileUseHtmlGroupPane extends MobileUseHtmlGroupBeanPane { + @Override + public void populateBean(FormMobileAttr mobileAttr) { + if(mobileAttr != null) { + selectIndexButton(mobileAttr.isUseHTML() ? 1 : 0); + } + } + + @Override + public FormMobileAttr updateBean() { + return null; + } + + @Override + public void updateBean(FormMobileAttr mobileAttr) { + if(mobileAttr != null) { + mobileAttr.setUseHTML(getSelectRadioIndex() == 1); + } + } +} From 0be0c5ee7558fa7342a02b926f706a2439f269a8 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Fri, 30 Dec 2016 09:27:33 +0800 Subject: [PATCH 12/48] =?UTF-8?q?=E5=B8=B8=E9=87=8F=E6=94=B9=E6=88=90?= =?UTF-8?q?=E5=A4=A7=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/form/mobile/FormMobileAttrPane.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 2431ebc8dc..eb53e8f8cc 100644 --- a/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java +++ b/designer_form/src/com/fr/design/form/mobile/FormMobileAttrPane.java @@ -19,7 +19,7 @@ public class FormMobileAttrPane extends BasicBeanPane{ //h5解析容器 private MobileUseHtmlGroupPane mobileUseHtmlGroupPane; - static final int paddingHeight = 10; + static final int PADDINGHEIGHT = 10; public FormMobileAttrPane() { this.initComponents(); @@ -38,8 +38,8 @@ public class FormMobileAttrPane extends BasicBeanPane{ this.mobileToolBarPane = new MobileToolBarPane(); this.mobileUseHtmlGroupPane = new MobileUseHtmlGroupPane(); //设置一个JPanel包裹mobileToolBarPane这个Panel,让jPanel的高度等于mobileToolBarPane高度加10,再放入this中 - jPanel1.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + paddingHeight)); - jPanel2.setPreferredSize(new Dimension(0, (int)this.mobileUseHtmlGroupPane.getPreferredSize().getHeight() + paddingHeight)); + jPanel1.setPreferredSize(new Dimension(0, (int)this.mobileToolBarPane.getPreferredSize().getHeight() + PADDINGHEIGHT)); + jPanel2.setPreferredSize(new Dimension(0, (int)this.mobileUseHtmlGroupPane.getPreferredSize().getHeight() + PADDINGHEIGHT)); jPanel1.add("North", this.mobileUseHtmlGroupPane); jPanel2.add("North", this.mobileToolBarPane); this.add("North", jPanel1); From f2ba828f5fdde39e607cb8e84636c8233c65f208 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 30 Dec 2016 10:39:06 +0800 Subject: [PATCH 13/48] =?UTF-8?q?REPORT-1096=20=E5=8F=96=E8=89=B2=E6=9D=BF?= =?UTF-8?q?=3D=E3=80=8B=E6=94=B9=E4=B8=BA=E5=8F=AA=E5=9C=A8=E6=8C=89?= =?UTF-8?q?=E4=B8=8B=E9=BC=A0=E6=A0=87=E5=B7=A6=E9=94=AE=E6=97=B6=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/style/color/ColorPicker.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/style/color/ColorPicker.java b/designer_base/src/com/fr/design/style/color/ColorPicker.java index cb30c186dd..8503c7f1ee 100644 --- a/designer_base/src/com/fr/design/style/color/ColorPicker.java +++ b/designer_base/src/com/fr/design/style/color/ColorPicker.java @@ -94,9 +94,11 @@ public class ColorPicker extends JDialog implements ActionListener validate(); // 更新所有子控件 } - public void pickComplete() { + public void pickComplete(Boolean setColor) { timer.stop(); - colorSelectable.setColor(colorToSet); + if (setColor) { + colorSelectable.setColor(colorToSet); + } this.dispose(); } @@ -111,7 +113,11 @@ public class ColorPicker extends JDialog implements ActionListener { public void mousePressed(MouseEvent e) { - pickComplete(); + if (e.getButton() == e.BUTTON1) { // 左键确定 + pickComplete(true); + } else { + pickComplete(false); + } } } } From 874d88ca75d993d45b407b99122d94f09d302175 Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 30 Dec 2016 15:23:42 +0800 Subject: [PATCH 14/48] =?UTF-8?q?REPORT-1096=20=E5=8F=96=E8=89=B2=E6=9D=BF?= =?UTF-8?q?=3D=E3=80=8B=E5=B0=86=E5=8F=96=E8=89=B2=E6=A1=86=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E6=A8=A1=E6=80=81=E5=AF=B9=E8=AF=9D=E6=A1=86=EF=BC=9B?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BC=A0=E6=A0=87=E4=BA=8B=E4=BB=B6=E5=93=8D?= =?UTF-8?q?=E5=BA=94=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/report/ReportBackgroundAction.java | 6 ++---- .../src/com/fr/design/style/color/ColorPicker.java | 3 +++ .../com/fr/design/style/color/ColorSelectDialog.java | 2 +- .../fr/design/style/color/PickColorButtonFactory.java | 10 ++++------ 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/designer/src/com/fr/design/actions/report/ReportBackgroundAction.java b/designer/src/com/fr/design/actions/report/ReportBackgroundAction.java index 3c3940ddad..4a381d4d08 100644 --- a/designer/src/com/fr/design/actions/report/ReportBackgroundAction.java +++ b/designer/src/com/fr/design/actions/report/ReportBackgroundAction.java @@ -37,16 +37,14 @@ public class ReportBackgroundAction extends ReportComponentAction Date: Fri, 30 Dec 2016 16:11:06 +0800 Subject: [PATCH 15/48] =?UTF-8?q?REPORT-1096=20=E5=8F=96=E8=89=B2=E6=9D=BF?= =?UTF-8?q?=3D=E3=80=8B=E8=A7=A3=E5=86=B3=E4=B8=80=E4=BA=9Bbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/style/color/ColorPicker.java | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/style/color/ColorPicker.java b/designer_base/src/com/fr/design/style/color/ColorPicker.java index 605474230b..74e5514e19 100644 --- a/designer_base/src/com/fr/design/style/color/ColorPicker.java +++ b/designer_base/src/com/fr/design/style/color/ColorPicker.java @@ -61,6 +61,18 @@ public class ColorPicker extends JDialog implements ActionListener timer = new Timer(timeCycle, this); timer.start(); hideCursor(); + + // 如果要求实时变化,确保先关闭弹窗,再截屏 + // 主要针对"图案"选项卡中的"前景"、"背景" + if (this.setColorRealTime) { + colorSelectable.setColor(Color.WHITE); // setColor 可以关闭弹窗 + try { + Thread.sleep(100); // 等待弹窗关闭 + } catch (InterruptedException e) { + e.printStackTrace(); + } + colorPickerPanel.captureScreen(); + } // System.out.println(KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusedWindow()); } @@ -71,7 +83,7 @@ public class ColorPicker extends JDialog implements ActionListener public void actionPerformed(ActionEvent e) { updateLocation(); colorToSet = colorPickerPanel.getPixelColor(mousePos); - if (setColorRealTime && !colorSelectable.getColor().equals(colorToSet)) { + if (setColorRealTime && (colorSelectable.getColor() == null || !colorSelectable.getColor().equals(colorToSet))) { colorSelectable.setColor(colorToSet); } } @@ -147,6 +159,15 @@ class ColorPickerPanel extends JPanel */ public ColorPickerPanel(int scaleFactor) { + colorPickerFrame = BaseUtils.readImage("/com/fr/design/images/gui/colorPicker/colorPickerFrame.png"); + this.scaleFactor = scaleFactor; + captureScreen(); + } + + /** + * 截屏 + */ + public void captureScreen() { try { robot = new Robot(); @@ -158,8 +179,6 @@ class ColorPickerPanel extends JPanel screenImage = robot.createScreenCapture(new Rectangle(0, 0, Toolkit .getDefaultToolkit().getScreenSize().width, Toolkit .getDefaultToolkit().getScreenSize().height)); - colorPickerFrame = BaseUtils.readImage("/com/fr/design/images/gui/colorPicker/colorPickerFrame.png"); - this.scaleFactor = scaleFactor; } /** From 7f11d02a532889841526b5aeb276612497ba76db Mon Sep 17 00:00:00 2001 From: plough Date: Fri, 30 Dec 2016 16:16:26 +0800 Subject: [PATCH 16/48] =?UTF-8?q?=E6=97=A0JIRA=E4=BB=BB=E5=8A=A1=E3=80=82?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=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/style/color/ColorPicker.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/style/color/ColorPicker.java b/designer_base/src/com/fr/design/style/color/ColorPicker.java index 74e5514e19..6fc5706037 100644 --- a/designer_base/src/com/fr/design/style/color/ColorPicker.java +++ b/designer_base/src/com/fr/design/style/color/ColorPicker.java @@ -5,6 +5,7 @@ package com.fr.design.style.color; */ import com.fr.base.BaseUtils; +import com.fr.general.FRLogger; import java.awt.*; import java.awt.event.*; @@ -69,7 +70,7 @@ public class ColorPicker extends JDialog implements ActionListener try { Thread.sleep(100); // 等待弹窗关闭 } catch (InterruptedException e) { - e.printStackTrace(); + FRLogger.getLogger().error(e.getMessage()); } colorPickerPanel.captureScreen(); } From 10204d76da102c1f85c333f8c42d1f14f6c6960b Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 3 Jan 2017 14:00:37 +0800 Subject: [PATCH 17/48] =?UTF-8?q?REPORT-1096=20=E5=8F=96=E8=89=B2=E6=9D=BF?= =?UTF-8?q?=3D=E3=80=8B=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 --- .../src/com/fr/design/style/color/ColorPicker.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/designer_base/src/com/fr/design/style/color/ColorPicker.java b/designer_base/src/com/fr/design/style/color/ColorPicker.java index 6fc5706037..cf63c500be 100644 --- a/designer_base/src/com/fr/design/style/color/ColorPicker.java +++ b/designer_base/src/com/fr/design/style/color/ColorPicker.java @@ -127,13 +127,8 @@ public class ColorPicker extends JDialog implements ActionListener private class MouseFunctions extends MouseAdapter { - public void mousePressed(MouseEvent e) - { - if (e.getButton() == e.BUTTON1) { // 左键确定 - pickComplete(true); - } else { - pickComplete(false); - } + public void mousePressed(MouseEvent e) { + pickComplete(e.getButton() == e.BUTTON1); // 左键确定 } } } From a7fafda5a41b5f8b74206a4b24be38e03b26ac5e Mon Sep 17 00:00:00 2001 From: plough Date: Tue, 3 Jan 2017 14:01:58 +0800 Subject: [PATCH 18/48] =?UTF-8?q?REPORT-1096=20=E5=8F=96=E8=89=B2=E6=9D=BF?= =?UTF-8?q?=3D=E3=80=8B=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 --- designer_base/src/com/fr/design/style/color/ColorPicker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/style/color/ColorPicker.java b/designer_base/src/com/fr/design/style/color/ColorPicker.java index cf63c500be..8807e1f402 100644 --- a/designer_base/src/com/fr/design/style/color/ColorPicker.java +++ b/designer_base/src/com/fr/design/style/color/ColorPicker.java @@ -110,7 +110,7 @@ public class ColorPicker extends JDialog implements ActionListener validate(); // 更新所有子控件 } - public void pickComplete(Boolean setColor) { + public void pickComplete(boolean setColor) { timer.stop(); if (setColor) { colorSelectable.setColor(colorToSet); From 11abf16bb8352e57316b12aa4f520d1d4f4179fd Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 4 Jan 2017 10:29:06 +0800 Subject: [PATCH 19/48] =?UTF-8?q?REPORT-576=20tab=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=A1=86=E5=8A=9F=E8=83=BD=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/locale/designer.properties | 2 ++ .../src/com/fr/design/locale/designer_en_US.properties | 3 ++- .../src/com/fr/design/locale/designer_ja_JP.properties | 4 +++- .../src/com/fr/design/locale/designer_ko_KR.properties | 4 +++- .../src/com/fr/design/locale/designer_zh_CN.properties | 2 ++ .../src/com/fr/design/locale/designer_zh_TW.properties | 4 +++- .../designer/creator/cardlayout/XCardSwitchButton.java | 9 ++++++++- 7 files changed, 23 insertions(+), 5 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 13613ee578..9f7923265c 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -508,3 +508,5 @@ FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= +FR-Designer_ConfirmDialog_Content= +FR-Designer_ConfirmDialog_Title= 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 ae110ae601..b21847d0e4 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 @@ -508,4 +508,5 @@ FR-Designer_Form_Basic_Properties=Basic Property FR-Designer_DS_Dictionary=Data Dictionary FR-Designer_Create_Tree=Build Tree FR-Designer_Set_Callback_Function=Set Callback Function - +FR-Designer_ConfirmDialog_Content= +FR-Designer_ConfirmDialog_Title= 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 fc69c2e921..5ec06064b1 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 @@ -486,4 +486,6 @@ FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= FR-Designer_Create_Tree= -FR-Designer_Set_Callback_Function= \ No newline at end of file +FR-Designer_Set_Callback_Function= +FR-Designer_ConfirmDialog_Content= +FR-Designer_ConfirmDialog_Title= 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 42c24b7dfe..3e27c558fb 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 @@ -481,4 +481,6 @@ FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= FR-Designer_Create_Tree= -FR-Designer_Set_Callback_Function= \ No newline at end of file +FR-Designer_Set_Callback_Function= +FR-Designer_ConfirmDialog_Content= +FR-Designer_ConfirmDialog_Title= 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 7cc34b2b0a..d43f8746bb 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 @@ -512,3 +512,5 @@ FR-Designer_Form_Basic_Properties=\u57FA\u672C\u5C5E\u6027 FR-Designer_DS_Dictionary=\u6570\u636E\u5B57\u5178 FR-Designer_Create_Tree=\u6784\u5EFA\u6811 FR-Designer_Set_Callback_Function=\u8BBE\u7F6E\u56DE\u8C03\u51FD\u6570 +FR-Designer_ConfirmDialog_Content=\u662F\u5426\u786E\u5B9A\u5220\u9664tab\u63A7\u4EF6 +FR-Designer_ConfirmDialog_Title=FineReport 8.0 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 6d7aa5d172..58868eb0db 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 @@ -499,4 +499,6 @@ FR-Designer_Form_Editing_Listeners= FR-Designer_Form_Basic_Properties= FR-Designer_DS_Dictionary= FR-Designer_Create_Tree= -FR-Designer_Set_Callback_Function= \ No newline at end of file +FR-Designer_Set_Callback_Function= +FR-Designer_ConfirmDialog_Content= +FR-Designer_ConfirmDialog_Title= 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 c75fc2542b..fc9ee25853 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 @@ -11,7 +11,7 @@ import java.awt.Point; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; -import javax.swing.Icon; +import javax.swing.*; import com.fr.base.BaseUtils; import com.fr.base.background.ColorBackground; @@ -33,6 +33,7 @@ import com.fr.form.ui.WidgetTitle; import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; import com.fr.general.FRFont; +import com.fr.general.Inter; /** * @@ -146,6 +147,12 @@ public class XCardSwitchButton extends XButton { //删除card,同时修改其他switchbutton和tabfit的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); + if (value != JOptionPane.OK_OPTION) { + return; + } tagLayout.remove(button); // 先清除该tab内部组件,否在再显示上有样式的残留 XWTabFitLayout tabLayout = (XWTabFitLayout)cardLayout.getComponent(index); From bfd06483b75b55abbcde732cbd8d913893410823 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 4 Jan 2017 16:06:14 +0800 Subject: [PATCH 20/48] =?UTF-8?q?REPORT-576=20tab=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardAddButton.java | 3 +- .../creator/cardlayout/XCardSwitchButton.java | 59 ++++-- .../creator/cardlayout/XWTabFitLayout.java | 174 ++++++++++++++++-- 3 files changed, 206 insertions(+), 30 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 0c459b61cd..0e8fb4ce45 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 @@ -148,7 +148,6 @@ public class XCardAddButton extends XButton{ //设置标题 titleButton.setText(getTabTitleName()); XCardSwitchButton showButton = new XCardSwitchButton(titleButton,dimension,cardLayout,tagLayout); - titleButton.setCustomStyle(true); titleButton.setShowButton(true); showButton.setBackupParent(tagLayout); @@ -162,6 +161,8 @@ public class XCardAddButton extends XButton{ private void showNewTab(EditingMouseListener editingMouseListener,int index){ SelectionModel selectionModel = editingMouseListener.getSelectionModel(); XWTabFitLayout tabFitLayout = (XWTabFitLayout) cardLayout.getComponent(index); + XCardSwitchButton xCardSwitchButton = (XCardSwitchButton) this.tagLayout.getComponent(index); + tabFitLayout.setxCardSwitchButton(xCardSwitchButton); selectionModel.setSelectedCreator(tabFitLayout); } 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 fc9ee25853..5f8385aadb 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 @@ -57,10 +57,16 @@ public class XCardSwitchButton extends XButton { // tab按钮里的字体因为按钮内部的布局看起来比正常的要小,加个调整量 private static final int FONT_SIZE_ADJUST = 2; + + private Background selectBackground; + protected boolean isCustomStyle; private static Icon MOUSE_COLSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/close_icon.png"); + private static String COLORBACKGROUNDTYPE = "ColorBackground"; + private static String DEFAULTTYPE = "default"; + private Icon closeIcon = MOUSE_COLSE; public XWCardTagLayout getTagLayout() { @@ -79,6 +85,22 @@ 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; + } + + public void setSelectBackground(Background selectBackground) { + this.selectBackground = selectBackground; + } + public XCardSwitchButton(CardSwitchButton widget, Dimension initSize) { super(widget, initSize); } @@ -134,6 +156,7 @@ public class XCardSwitchButton extends XButton { // 切换到当前tab按钮对应的tabFitLayout XWTabFitLayout tabFitLayout = (XWTabFitLayout) cardLayout.getComponent(index); + tabFitLayout.setxCardSwitchButton(this); selectionModel.setSelectedCreator(tabFitLayout); if (editingMouseListener.stopEditing()) { @@ -248,16 +271,22 @@ public class XCardSwitchButton extends XButton { //画背景 private void drawBackgorund(){ CardSwitchButton button = (CardSwitchButton)this.toData(); - ColorBackground background; - if(button.isShowButton()){ - this.rebuid(); - background = ColorBackground.getInstance(CHOOSED_GRAL); - this.setContentBackground(background); - }else{ - this.rebuid(); - background = ColorBackground.getInstance(NORMAL_GRAL); - this.setContentBackground(background); - } + Background currentBackground; + currentBackground = this.getSelectBackground(); + //这边就是button的背景图片,图片的是image,默认的是color,所以不应该是针对null的判断 + String type = currentBackground != null? currentBackground.getBackgroundType() : DEFAULTTYPE; + if (type.equals(COLORBACKGROUNDTYPE) || type.equals(DEFAULTTYPE)) { + ColorBackground background; + if(button.isShowButton()){ + this.rebuid(); + background = ColorBackground.getInstance(CHOOSED_GRAL); + this.setContentBackground(background); + }else{ + this.rebuid(); + background = ColorBackground.getInstance(NORMAL_GRAL); + this.setContentBackground(background); + } + } } //画标题 @@ -279,10 +308,12 @@ public class XCardSwitchButton extends XButton { label.setForeground(font.getForeground()); Background background = title.getBackground(); if (background != null) { - if(button.isShowButton()){ - background = ColorBackground.getInstance(CHOOSED_GRAL); - this.setContentBackground(background); - }else{ + 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/designer/creator/cardlayout/XWTabFitLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java index 71df9b059e..775d4c38c8 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,12 +1,11 @@ package com.fr.design.designer.creator.cardlayout; -import java.awt.Component; -import java.awt.Dimension; -import java.awt.Rectangle; +import java.awt.*; import java.beans.IntrospectionException; import javax.swing.border.Border; +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; @@ -14,19 +13,24 @@ import com.fr.design.designer.creator.CRPropertyDescriptor; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWFitLayout; -import com.fr.design.designer.properties.mobile.BodyMobilePropertyUI; import com.fr.design.form.util.XCreatorConstants; import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormHierarchyTreePane; -import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; -import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; +import com.fr.design.mainframe.widget.editors.ButtonTypeEditor; +import com.fr.design.mainframe.widget.editors.FontEditor; +import com.fr.design.mainframe.widget.editors.ImgBackgroundEditor; +import com.fr.design.mainframe.widget.renderer.FontCellRenderer; import com.fr.design.utils.gui.LayoutUtils; import com.fr.form.ui.CardSwitchButton; 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.Inter; +import com.fr.stable.ArrayUtils; +import com.fr.stable.core.PropertyChangeAdapter; + /** * @author focus @@ -37,8 +41,13 @@ public class XWTabFitLayout extends XWFitLayout { private static final int MIN_SIZE = 1; // tab布局在拖拽导致的缩放里(含间隔时),如果拖拽宽高大于组件宽高,会导致调整的时候找不到原来的组件 // 这里先将拖拽之前的宽高先做备份 + public static final Color NORMAL_GRAL = new Color(236,236,236); + public static final Color CHOOSED_GRAL = new Color(222,222,222); private Dimension referDim; - + private Background initialBackground; + private Background overBackground; + private Background clickBackground; + private XCardSwitchButton xCardSwitchButton; public Dimension getReferDim() { return referDim; @@ -48,6 +57,38 @@ public class XWTabFitLayout extends XWFitLayout { this.referDim = referDim; } + public Background getInitialBackground() { + return initialBackground; + } + + public void setInitialBackground(Background initialBackground) { + this.initialBackground = initialBackground; + } + + public Background getOverBackground() { + return overBackground; + } + + public void setOverBackground(Background overBackground) { + this.overBackground = overBackground; + } + + public Background getClickBackground() { + return clickBackground; + } + + public void setClickBackground(Background clickBackground) { + this.clickBackground = clickBackground; + } + + public XCardSwitchButton getxCardSwitchButton() { + return xCardSwitchButton; + } + + public void setxCardSwitchButton(XCardSwitchButton xCardSwitchButton) { + this.xCardSwitchButton = xCardSwitchButton; + } + public XWTabFitLayout(){ this(new WTabFitLayout(), new Dimension()); } @@ -62,15 +103,118 @@ public class XWTabFitLayout extends XWFitLayout { * @throws IntrospectionException */ public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - return new CRPropertyDescriptor[] { - new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter - .getLocText("FR-Designer_Form-Widget_Name")), - new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) - .setI18NName(Inter.getLocText("FR-Designer_Layout-Padding")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - }; + checkButonType(); + CRPropertyDescriptor[] crp = ((WTabFitLayout) data).isCustomStyle() ? getisCustomStyle() : getisnotCustomStyle(); + return ArrayUtils.addAll(super.supportedDescriptor(), crp); } - + + protected CRPropertyDescriptor[] getisCustomStyle() throws IntrospectionException { + return new CRPropertyDescriptor[]{ + //标题样式 + creatNonListenerStyle(0).setPropertyChangeListener(new PropertyChangeAdapter() { + @Override + public void propertyChange() { + checkButonType(); + } + }), + //初始背景 + creatNonListenerStyle(1).setPropertyChangeListener(new PropertyChangeAdapter() { + @Override + public void propertyChange() { + initialBackground = ((WTabFitLayout) data).getInitialBackground(); + xCardSwitchButton.setSelectBackground(null); + xCardSwitchButton.setSelectBackground(initialBackground); + CardSwitchButton cardSwitchButton = (CardSwitchButton) xCardSwitchButton.toData(); + cardSwitchButton.setInitialBackground(initialBackground); + } + }), + //鼠标浮动背景 + creatNonListenerStyle(2).setPropertyChangeListener( + new PropertyChangeAdapter() { + @Override + public void propertyChange() { + overBackground = ((WTabFitLayout) data).getOverBackground(); + CardSwitchButton cardSwitchButton = (CardSwitchButton) xCardSwitchButton.toData(); + cardSwitchButton.setOverBackground(overBackground); + } + }), + //鼠标点击背景 + creatNonListenerStyle(3).setPropertyChangeListener( + new PropertyChangeAdapter() { + @Override + public void propertyChange() { + clickBackground = ((WTabFitLayout) data).getClickBackground(); + CardSwitchButton cardSwitchButton = (CardSwitchButton) xCardSwitchButton.toData(); + cardSwitchButton.setClickBackground(clickBackground); + } + } + ), + //字体 + creatNonListenerStyle(4).setPropertyChangeListener( + new PropertyChangeAdapter() { + @Override + public void propertyChange() { + } + }), + }; + } + + protected CRPropertyDescriptor[] getisnotCustomStyle() throws IntrospectionException { + return new CRPropertyDescriptor[]{ + new CRPropertyDescriptor("customStyle", this.data.getClass()).setI18NName( + Inter.getLocText(new String[]{"Title", "Style"})).setEditorClass( + ButtonTypeEditor.class).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") + .setPropertyChangeListener(new PropertyChangeAdapter() { + @Override + public void propertyChange() { + checkButonType(); + } + }) + }; + + } + + protected CRPropertyDescriptor creatNonListenerStyle(int i) throws IntrospectionException{ + CRPropertyDescriptor[] crPropertyDescriptors = { + new CRPropertyDescriptor("customStyle", this.data.getClass()).setI18NName( + Inter.getLocText(new String[]{"Title", "Style"})).setEditorClass( + ButtonTypeEditor.class).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("initialBackground", this.data.getClass()).setEditorClass( + ImgBackgroundEditor.class).setI18NName(Inter.getLocText("FR-Designer_Background-Initial")).putKeyValue( + XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("overBackground", this.data.getClass()).setEditorClass( + ImgBackgroundEditor.class).setI18NName(Inter.getLocText("FR-Designer_Background-Over")).putKeyValue( + XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("clickBackground", this.data.getClass()).setEditorClass( + ImgBackgroundEditor.class).setI18NName(Inter.getLocText("FR-Designer_Background-Click")).putKeyValue( + XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("font", this.data.getClass()).setI18NName(Inter.getLocText("FR-Designer_FRFont")) + .setEditorClass(FontEditor.class).setRendererClass(FontCellRenderer.class).putKeyValue( + XCreatorConstants.PROPERTY_CATEGORY, "Advanced") + }; + return crPropertyDescriptors[i]; + } + + private void checkButonType() { + if (this.xCardSwitchButton == null) { + return; + } + boolean isStyle = ((WTabFitLayout) data).isCustomStyle(); + Background bg; + bg = ColorBackground.getInstance(NORMAL_GRAL); + if (!isStyle) { + this.xCardSwitchButton.setCustomStyle(false); + this.xCardSwitchButton.setSelectBackground(bg); + } else { + CardSwitchButton cardSwitchButton = (CardSwitchButton) this.xCardSwitchButton.toData(); + Background initialBackground = cardSwitchButton.getInitialBackground(); + bg = initialBackground == null ? bg : initialBackground; + this.xCardSwitchButton.setSelectBackground(bg); + this.xCardSwitchButton.setCustomStyle(true); + cardSwitchButton.setCustomStyle(true); + } + } + @Override public LayoutAdapter getLayoutAdapter() { return new FRTabFitLayoutAdapter(this); From a73679be40d4ce5bbdeddb1f4459976403fb3243 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 4 Jan 2017 16:10:48 +0800 Subject: [PATCH 21/48] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/cardlayout/XCardSwitchButton.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5f8385aadb..c5b51560c1 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 @@ -59,7 +59,7 @@ public class XCardSwitchButton extends XButton { private static final int FONT_SIZE_ADJUST = 2; private Background selectBackground; - protected boolean isCustomStyle; + private boolean isCustomStyle; From 80b069f065fbc14770c7b7c421ac31c26703f088 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 4 Jan 2017 16:12:30 +0800 Subject: [PATCH 22/48] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardSwitchButton.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 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 c5b51560c1..596b9224f6 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 @@ -46,6 +46,10 @@ public class XCardSwitchButton extends XButton { private XWCardTagLayout tagLayout; private static final int LEFT_GAP = 16; + private static Icon MOUSE_COLSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/close_icon.png"); + private static String COLORBACKGROUNDTYPE = "ColorBackground"; + private static String DEFAULTTYPE = "default"; + public static final Color NORMAL_GRAL = new Color(236,236,236); public static final Color CHOOSED_GRAL = new Color(222,222,222); @@ -60,12 +64,7 @@ public class XCardSwitchButton extends XButton { private Background selectBackground; private boolean isCustomStyle; - - - - private static Icon MOUSE_COLSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/close_icon.png"); - private static String COLORBACKGROUNDTYPE = "ColorBackground"; - private static String DEFAULTTYPE = "default"; + private Icon closeIcon = MOUSE_COLSE; From f08d6748e234d3f14da7b8f7ad9a2331a977be2a Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 4 Jan 2017 16:16:38 +0800 Subject: [PATCH 23/48] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/cardlayout/XCardSwitchButton.java | 4 ++-- 1 file changed, 2 insertions(+), 2 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 596b9224f6..a6e4790b13 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 @@ -47,8 +47,8 @@ public class XCardSwitchButton extends XButton { private static final int LEFT_GAP = 16; private static Icon MOUSE_COLSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/close_icon.png"); - private static String COLORBACKGROUNDTYPE = "ColorBackground"; - private static String DEFAULTTYPE = "default"; + private static final String COLORBACKGROUNDTYPE = "ColorBackground"; + private static final String DEFAULTTYPE = "default"; public static final Color NORMAL_GRAL = new Color(236,236,236); public static final Color CHOOSED_GRAL = new Color(222,222,222); From 36624f09ce9a2b5a40dbb021943d8387ea02e348 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 4 Jan 2017 16:34:26 +0800 Subject: [PATCH 24/48] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardSwitchButton.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 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 a6e4790b13..bcd38dbf2a 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 @@ -42,26 +42,29 @@ import com.fr.general.Inter; */ public class XCardSwitchButton extends XButton { - private XWCardLayout cardLayout; - private XWCardTagLayout tagLayout; - private static final int LEFT_GAP = 16; private static Icon MOUSE_COLSE = BaseUtils.readIcon("/com/fr/design/images/buttonicon/close_icon.png"); + + //设置的图片类型 private static final String COLORBACKGROUNDTYPE = "ColorBackground"; private static final String DEFAULTTYPE = "default"; + //默认颜色 public static final Color NORMAL_GRAL = new Color(236,236,236); public static final Color CHOOSED_GRAL = new Color(222,222,222); - + private static final int MIN_SIZE = 1; - + // 删除按钮识别区域偏移量 private static final int RIGHT_OFFSET = 15; private static final int TOP_OFFSET = 25; - + // tab按钮里的字体因为按钮内部的布局看起来比正常的要小,加个调整量 private static final int FONT_SIZE_ADJUST = 2; + private XWCardLayout cardLayout; + private XWCardTagLayout tagLayout; + private Background selectBackground; private boolean isCustomStyle; From 1067c1241d2fe80052005aa1aaaf7c8a69d53192 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Thu, 5 Jan 2017 19:57:10 +0800 Subject: [PATCH 25/48] =?UTF-8?q?REPORT-576=20button=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=9B=BE=E7=89=87=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=EF=BC=8C=E9=BB=98=E8=AE=A4=E8=83=8C=E6=99=AF=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 与参数面板中的button的设置保持一致。 --- .../design/designer/creator/cardlayout/XCardAddButton.java | 6 +++--- 1 file changed, 3 insertions(+), 3 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 0e8fb4ce45..83427316a5 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,13 +1,12 @@ package com.fr.design.designer.creator.cardlayout; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; +import java.awt.*; import java.awt.event.MouseEvent; import javax.swing.Icon; 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; @@ -147,6 +146,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.setShowButton(true); showButton.setBackupParent(tagLayout); From 7fb57025562d552440813e48f08dae55e15f8c3b Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 6 Jan 2017 10:01:37 +0800 Subject: [PATCH 26/48] =?UTF-8?q?REPORT-1384=20=E6=8C=89=E9=92=AE=E6=8E=A7?= =?UTF-8?q?=E4=BB=B6=E8=87=AA=E5=AE=9A=E4=B9=89=E9=A2=9C=E8=89=B2=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../background/BackgroundButtonPane.java | 53 ++++++++++++ .../style/background/BackgroundFactory.java | 34 +++++++- .../background/impl/ImageBackgroundPane.java | 29 ++++--- .../impl/ImageButtonBackgroundPane.java | 80 +++++++++++++++++++ .../AccessibleImgBackgroundEditor.java | 13 ++- 5 files changed, 190 insertions(+), 19 deletions(-) create mode 100644 designer_base/src/com/fr/design/style/background/BackgroundButtonPane.java create mode 100644 designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java diff --git a/designer_base/src/com/fr/design/style/background/BackgroundButtonPane.java b/designer_base/src/com/fr/design/style/background/BackgroundButtonPane.java new file mode 100644 index 0000000000..296ee746e3 --- /dev/null +++ b/designer_base/src/com/fr/design/style/background/BackgroundButtonPane.java @@ -0,0 +1,53 @@ +package com.fr.design.style.background; + +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.general.Background; +import com.fr.general.Inter; + +/** + * Created by ibm on 2017/1/5. + */ +public class BackgroundButtonPane extends BackgroundPane { + + + public BackgroundButtonPane() { + super(); + } + + protected void initTabPane() { + int index = 0; + for (Class key : BackgroundFactory.buttonKindsOfKey()) { + BackgroundUIWrapper wrapper = BackgroundFactory.getButtonWrapper(key); + wrapper.setIndex(index++); + tabbedPane.addTab(Inter.getLocText(wrapper.getTitle()), FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane()); + } + } + + protected BackgroundUIWrapper getBackgroundUIWrapper(Background background) { + return BackgroundFactory.getButtonWrapper(background == null ? null : background.getClass()); + } + + protected BackgroundDetailPane getTabItemPane(Background background, int index) { + BackgroundDetailPane quickPane = cacheMap.get(index); + if (quickPane == null) { + quickPane = BackgroundFactory.createButtonIfAbsent(background == null ? null : background.getClass()); + 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 = BackgroundFactory.createButtonIfAbsent(index); + tabbedPane.setComponentAt(index, quickPane); + cacheMap.put(index, quickPane); + quickPane.addChangeListener(backgroundChangeListener); + } + return quickPane; + } + +} 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 25bf0b5b53..db495bed75 100644 --- a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java +++ b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java @@ -3,7 +3,6 @@ package com.fr.design.style.background; import com.fr.base.background.*; import com.fr.design.ExtraDesignClassManager; -import com.fr.design.fun.BackgroundQuickUIProvider; import com.fr.design.fun.BackgroundUIProvider; import com.fr.design.style.background.gradient.GradientBackgroundPane; import com.fr.design.style.background.impl.*; @@ -21,6 +20,7 @@ public class BackgroundFactory { private static Map, BackgroundUIWrapper> map = new LinkedHashMap<>(); private static Map, BackgroundUIWrapper> browser = new LinkedHashMap<>(); + private static Map, BackgroundUIWrapper> button = new LinkedHashMap<>(); static { registerUniversal(map); @@ -29,6 +29,7 @@ public class BackgroundFactory { registerBrowserImageBackground(browser); registerExtra(map); registerExtra(browser); + registerButtonBackground(button); } private static void registerUniversal(Map, BackgroundUIWrapper> map) { @@ -54,6 +55,14 @@ public class BackgroundFactory { .setType(ImageBackgroundPane4Browser.class).setTitle(Inter.getLocText("Image"))); } + private static void registerButtonBackground(Map, BackgroundUIWrapper> map){ + map.put(ColorBackground.class, BackgroundUIWrapper.create() + .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("Color"))); + map.put(ImageBackground.class, BackgroundUIWrapper.create() + .setType(ImageButtonBackgroundPane.class).setTitle(Inter.getLocText("Image"))); + + } + private static void registerExtra(Map, BackgroundUIWrapper> map) { Set set = ExtraDesignClassManager.getInstance().getArray(BackgroundUIProvider.MARK_STRING); for (BackgroundUIProvider provider : set) { @@ -85,6 +94,29 @@ public class BackgroundFactory { return new NullBackgroundPane(); } + public static Set> buttonKindsOfKey() { + return button.keySet(); + } + + public static BackgroundUIWrapper getButtonWrapper(Class category) { + return button.get(category); + } + + public static BackgroundDetailPane createButtonIfAbsent(Class category) { + BackgroundUIWrapper wrapper = button.get(category); + return createByWrapper(wrapper); + } + + public static BackgroundDetailPane createButtonIfAbsent(int index) { + for (BackgroundUIWrapper wrapper : button.values()) { + if (wrapper.getIndex() == index) { + return createByWrapper(wrapper); + } + } + return new NullBackgroundPane(); + } + + public static Set> browserKindsOfKey() { return browser.keySet(); } diff --git a/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java b/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java index 62ad05485f..0e05c82726 100644 --- a/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java +++ b/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java @@ -28,11 +28,11 @@ import java.io.File; */ public class ImageBackgroundPane extends BackgroundDetailPane { - private ImagePreviewPane previewPane = null; + protected ImagePreviewPane previewPane = null; private Style imageStyle = null; private ChangeListener changeListener = null; private ImageFileChooser imageFileChooser = null; - private UILabel imageSizeLabel = new UILabel(); + protected UILabel imageSizeLabel = new UILabel(); protected JRadioButton defaultRadioButton = null; protected JRadioButton tiledRadioButton = null; @@ -49,14 +49,20 @@ public class ImageBackgroundPane extends BackgroundDetailPane { JPanel previewOwnerPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("Preview")); previewOwnerPane.setLayout(new BorderLayout()); previewContainerPane.add(previewOwnerPane, BorderLayout.CENTER); - - + previewContainerPane.add(initSelectFilePane(), BorderLayout.EAST); previewPane = new ImagePreviewPane(); previewOwnerPane.add(new JScrollPane(previewPane)); previewPane.addChangeListener(imageSizeChangeListener); + + // init image file chooser. + imageFileChooser = new ImageFileChooser(); + imageFileChooser.setMultiSelectionEnabled(false); + } + + public JPanel initSelectFilePane(){ JPanel selectFilePane = FRGUIPaneFactory.createBorderLayout_L_Pane(); - previewContainerPane.add(selectFilePane, BorderLayout.EAST); + selectFilePane.setBorder(BorderFactory.createEmptyBorder(8, 2, 4, 0)); UIButton selectPictureButton = new UIButton( @@ -91,10 +97,7 @@ public class ImageBackgroundPane extends BackgroundDetailPane { layoutBG.add(adjustRadioButton); defaultRadioButton.setSelected(true); - - // init image file chooser. - imageFileChooser = new ImageFileChooser(); - imageFileChooser.setMultiSelectionEnabled(false); + return selectFilePane; } protected JRadioButton[] imageLayoutButtons() { @@ -121,8 +124,7 @@ public class ImageBackgroundPane extends BackgroundDetailPane { CoreGraphHelper.waitForImage(image); previewPane.setImage(image); - setImageStyle(); - previewPane.setImageStyle(imageStyle); + imageStyleRepaint(); previewPane.repaint(); } else { previewPane.setImage(null); @@ -133,6 +135,11 @@ public class ImageBackgroundPane extends BackgroundDetailPane { } }; + public void imageStyleRepaint(){ + setImageStyle(); + previewPane.setImageStyle(imageStyle); + } + private void setImageStyle() { if (tiledRadioButton.isSelected()) { imageStyle = Style.DEFAULT_STYLE.deriveImageLayout(Constants.IMAGE_TILED); diff --git a/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java b/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java new file mode 100644 index 0000000000..12fb981414 --- /dev/null +++ b/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java @@ -0,0 +1,80 @@ +package com.fr.design.style.background.impl; + +import com.fr.base.BaseUtils; +import com.fr.base.Style; +import com.fr.base.background.ImageBackground; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.general.Background; +import com.fr.general.Inter; +import com.fr.stable.Constants; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/** + * Created by ibm on 2017/1/5. + */ +public class ImageButtonBackgroundPane extends ImageBackgroundPane { + private UIButton chooseButton; + private UIButton clearButton; + + public ImageButtonBackgroundPane(){ + super(); + Style imageStyle = Style.DEFAULT_STYLE.deriveImageLayout(Constants.IMAGE_CENTER); + previewPane.setImageStyle(imageStyle); + } + + public JPanel initSelectFilePane(){ + + JPanel choosePane = new JPanel(new BorderLayout(0, 10)); + choosePane.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); + JPanel choosePane1 = new JPanel(new BorderLayout(0, 10)); + initButton(); + + choosePane.add(chooseButton, BorderLayout.NORTH); + + choosePane1.add(clearButton,BorderLayout.NORTH); + choosePane.add(choosePane1,BorderLayout.CENTER); + + imageSizeLabel.setHorizontalAlignment(SwingConstants.CENTER); + choosePane1.add(imageSizeLabel,BorderLayout.CENTER); + this.add(choosePane,BorderLayout.EAST); + + return choosePane; + } + + private void initButton() { + chooseButton = new UIButton(Inter.getLocText("Image-Select_Picture")); + chooseButton.addActionListener(selectPictureActionListener); + clearButton = new UIButton(Inter.getLocText("Clear")); + clearButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + previewPane.setImage(null); + previewPane.repaint(); + } + }); + } + + public void imageStyleRepaint(){ + + } + + + public void populate(Background background) { + if(background != null && background instanceof ImageBackground){ + ImageBackground imageBackground = (ImageBackground) background; + if(imageBackground.getImage() != null) { + previewPane.setImage(imageBackground.getImage()); + } + } + + } + + public Background update() { + if(previewPane.getImage() == null) { + return null; + } + return new ImageBackground(previewPane.getImage()); + } +} diff --git a/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java b/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java index 0350704960..8def747683 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java +++ b/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleImgBackgroundEditor.java @@ -1,17 +1,16 @@ package com.fr.design.mainframe.widget.accessibles; import java.awt.Dimension; - import javax.swing.SwingUtilities; - -import com.fr.base.background.ImageBackground; +import com.fr.base.background.ColorBackground; import com.fr.design.mainframe.widget.wrappers.BackgroundWrapper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; -import com.fr.design.gui.frpane.ImgChoosePane; +import com.fr.design.style.background.BackgroundButtonPane; +import com.fr.general.Background; public class AccessibleImgBackgroundEditor extends UneditableAccessibleEditor { - private ImgChoosePane choosePane; + private BackgroundButtonPane choosePane; public AccessibleImgBackgroundEditor() { super(new BackgroundWrapper()); @@ -20,7 +19,7 @@ public class AccessibleImgBackgroundEditor extends UneditableAccessibleEditor { @Override protected void showEditorPane() { if (choosePane == null) { - choosePane = new ImgChoosePane(); + choosePane = new BackgroundButtonPane(); choosePane.setPreferredSize(new Dimension(600, 400)); } BasicDialog dlg = choosePane.showWindow(SwingUtilities.getWindowAncestor(this)); @@ -32,7 +31,7 @@ public class AccessibleImgBackgroundEditor extends UneditableAccessibleEditor { fireStateChanged(); } }); - choosePane.populate(getValue() instanceof ImageBackground ? (ImageBackground) getValue() : null); + choosePane.populate(getValue() instanceof Background ? (Background) getValue() : new ColorBackground()); dlg.setVisible(true); } } \ No newline at end of file From 3e1bf1e4bac1eafd54054d69df43a8900ab54fbf Mon Sep 17 00:00:00 2001 From: kerry Date: Fri, 6 Jan 2017 13:50:43 +0800 Subject: [PATCH 27/48] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=EF=BC=8C=E4=BF=AE=E6=94=B9PMD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 8 ++++++ .../design/locale/designer_en_US.properties | 8 ++++++ .../design/locale/designer_ja_JP.properties | 8 ++++++ .../design/locale/designer_ko_KR.properties | 8 ++++++ .../design/locale/designer_zh_CN.properties | 8 ++++++ .../design/locale/designer_zh_TW.properties | 8 ++++++ .../style/background/BackgroundFactory.java | 18 ++++++------- .../background/impl/ImageBackgroundPane.java | 26 +++++++++---------- .../impl/ImageBackgroundPane4Browser.java | 5 ++-- .../impl/ImageButtonBackgroundPane.java | 5 ++-- 10 files changed, 75 insertions(+), 27 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 9f7923265c..f97208a310 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -510,3 +510,11 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= +FR-Designer_Background_Null= +FR-Designer_Background_Color= +FR-Designer_Background_Texture= +FR-Designer_Background_Pattern= +FR-Designer_Background_Gradient_Color= +FR-Designer_Background_Image= +FR-Designer_Background_Clear= +FR-Designer_Background_Image_Select= 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 b21847d0e4..495ebed06d 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 @@ -510,3 +510,11 @@ FR-Designer_Create_Tree=Build Tree FR-Designer_Set_Callback_Function=Set Callback Function FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= +FR-Designer_Background_Null=No Background +FR-Designer_Background_Color=Color +FR-Designer_Background_Texture=Texture +FR-Designer_Background_Pattern=Pattern +FR-Designer_Background_Gradient_Color=Gradient Color +FR-Designer_Background_Image=Image +FR-Designer_Background_Clear=Clear +FR-Designer_Background_Image_Select=Select Picture 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 5ec06064b1..c60ce8891d 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 @@ -489,3 +489,11 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= +FR-Designer_Background_Null= +FR-Designer_Background_Color= +FR-Designer_Background_Texture= +FR-Designer_Background_Pattern= +FR-Designer_Background_Gradient_Color= +FR-Designer_Background_Image= +FR-Designer_Background_Clear= +FR-Designer_Background_Image_Select= 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 3e27c558fb..079af536db 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 @@ -484,3 +484,11 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= +FR-Designer_Background_Null= +FR-Designer_Background_Color= +FR-Designer_Background_Texture= +FR-Designer_Background_Pattern= +FR-Designer_Background_Gradient_Color= +FR-Designer_Background_Image= +FR-Designer_Background_Clear= +FR-Designer_Background_Image_Select= 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 d43f8746bb..a40f6d3a4c 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 @@ -514,3 +514,11 @@ FR-Designer_Create_Tree=\u6784\u5EFA\u6811 FR-Designer_Set_Callback_Function=\u8BBE\u7F6E\u56DE\u8C03\u51FD\u6570 FR-Designer_ConfirmDialog_Content=\u662F\u5426\u786E\u5B9A\u5220\u9664tab\u63A7\u4EF6 FR-Designer_ConfirmDialog_Title=FineReport 8.0 +FR-Designer_Background_Null=\u6CA1\u6709\u80CC\u666F +FR-Designer_Background_Color=\u989C\u8272 +FR-Designer_Background_Texture=\u7EB9\u7406 +FR-Designer_Background_Pattern=\u56FE\u6848 +FR-Designer_Background_Gradient_Color=\u6E10\u53D8\u8272 +FR-Designer_Background_Image=\u56FE\u7247 +FR-Designer_Background_Clear=\u6E05\u9664 +FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 \ 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 58868eb0db..8392f1fdb1 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 @@ -502,3 +502,11 @@ FR-Designer_Create_Tree= FR-Designer_Set_Callback_Function= FR-Designer_ConfirmDialog_Content= FR-Designer_ConfirmDialog_Title= +FR-Designer_Background_Null= +FR-Designer_Background_Color= +FR-Designer_Background_Texture= +FR-Designer_Background_Pattern= +FR-Designer_Background_Gradient_Color= +FR-Designer_Background_Image= +FR-Designer_Background_Clear= +FR-Designer_Background_Image_Select= 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 db495bed75..d636eb3a30 100644 --- a/designer_base/src/com/fr/design/style/background/BackgroundFactory.java +++ b/designer_base/src/com/fr/design/style/background/BackgroundFactory.java @@ -34,32 +34,32 @@ public class BackgroundFactory { private static void registerUniversal(Map, BackgroundUIWrapper> map) { map.put(null, BackgroundUIWrapper.create() - .setType(NullBackgroundPane.class).setTitle(Inter.getLocText("Background-Null"))); + .setType(NullBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Null"))); map.put(ColorBackground.class, BackgroundUIWrapper.create() - .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("Color"))); + .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Color"))); map.put(TextureBackground.class, BackgroundUIWrapper.create() - .setType(TextureBackgroundPane.class).setTitle(Inter.getLocText("Background-Texture"))); + .setType(TextureBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Texture"))); map.put(PatternBackground.class, BackgroundUIWrapper.create() - .setType(PatternBackgroundPane.class).setTitle(Inter.getLocText("Background-Pattern"))); + .setType(PatternBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Pattern"))); map.put(GradientBackground.class, BackgroundUIWrapper.create() - .setType(GradientBackgroundPane.class).setTitle(Inter.getLocText("Gradient-Color"))); + .setType(GradientBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Gradient_Color"))); } private static void registerImageBackground(Map, BackgroundUIWrapper> map) { map.put(ImageBackground.class, BackgroundUIWrapper.create() - .setType(ImageBackgroundPane.class).setTitle(Inter.getLocText("Image"))); + .setType(ImageBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Image"))); } private static void registerBrowserImageBackground(Map, BackgroundUIWrapper> map) { map.put(ImageBackground.class, BackgroundUIWrapper.create() - .setType(ImageBackgroundPane4Browser.class).setTitle(Inter.getLocText("Image"))); + .setType(ImageBackgroundPane4Browser.class).setTitle(Inter.getLocText("FR-Designer_Background_Image"))); } private static void registerButtonBackground(Map, BackgroundUIWrapper> map){ map.put(ColorBackground.class, BackgroundUIWrapper.create() - .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("Color"))); + .setType(ColorBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Color"))); map.put(ImageBackground.class, BackgroundUIWrapper.create() - .setType(ImageButtonBackgroundPane.class).setTitle(Inter.getLocText("Image"))); + .setType(ImageButtonBackgroundPane.class).setTitle(Inter.getLocText("FR-Designer_Background_Image"))); } diff --git a/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java b/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java index 0e05c82726..ced818426c 100644 --- a/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java +++ b/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane.java @@ -34,10 +34,10 @@ public class ImageBackgroundPane extends BackgroundDetailPane { private ImageFileChooser imageFileChooser = null; protected UILabel imageSizeLabel = new UILabel(); - protected JRadioButton defaultRadioButton = null; - protected JRadioButton tiledRadioButton = null; - private JRadioButton extendRadioButton = null; - private JRadioButton adjustRadioButton = null; + protected UIRadioButton defaultRadioButton = null; + protected UIRadioButton tiledRadioButton = null; + private UIRadioButton extendRadioButton = null; + private UIRadioButton adjustRadioButton = null; public ImageBackgroundPane() { this.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -46,7 +46,7 @@ public class ImageBackgroundPane extends BackgroundDetailPane { JPanel previewContainerPane = FRGUIPaneFactory.createBorderLayout_L_Pane(); this.add(previewContainerPane, BorderLayout.CENTER); - JPanel previewOwnerPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("Preview")); + JPanel previewOwnerPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Preview")); previewOwnerPane.setLayout(new BorderLayout()); previewContainerPane.add(previewOwnerPane, BorderLayout.CENTER); previewContainerPane.add(initSelectFilePane(), BorderLayout.EAST); @@ -66,7 +66,7 @@ public class ImageBackgroundPane extends BackgroundDetailPane { selectFilePane.setBorder(BorderFactory.createEmptyBorder(8, 2, 4, 0)); UIButton selectPictureButton = new UIButton( - Inter.getLocText("Image-Select_Picture")); + Inter.getLocText("FR-Designer_Background_Image_Select")); selectFilePane.add(selectPictureButton, BorderLayout.NORTH); selectPictureButton.setMnemonic('S'); selectPictureButton.addActionListener(selectPictureActionListener); @@ -74,10 +74,10 @@ public class ImageBackgroundPane extends BackgroundDetailPane { selectFilePane.add(layoutPane, BorderLayout.CENTER); //布局 - defaultRadioButton = new UIRadioButton(Inter.getLocText("Default")); - tiledRadioButton = new UIRadioButton(Inter.getLocText("Image-Titled")); - extendRadioButton = new UIRadioButton(Inter.getLocText("Image-Extend")); - adjustRadioButton = new UIRadioButton(Inter.getLocText("Image-Adjust")); + defaultRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer-StyleAlignment_Layout_Default")); + tiledRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer-StyleAlignment_Layout_Image_Titled")); + extendRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer-StyleAlignment_Layout_Image_Extend")); + adjustRadioButton = new UIRadioButton(Inter.getLocText("FR-Designer-StyleAlignment_Layout_Image_Adjust")); defaultRadioButton.addActionListener(layoutActionListener); tiledRadioButton.addActionListener(layoutActionListener); @@ -85,7 +85,7 @@ public class ImageBackgroundPane extends BackgroundDetailPane { adjustRadioButton.addActionListener(layoutActionListener); JPanel jp = new JPanel(new GridLayout(4, 1, 15, 15)); - for (JRadioButton button : imageLayoutButtons()) { + for (UIRadioButton button : imageLayoutButtons()) { jp.add(button); } layoutPane.add(jp); @@ -100,8 +100,8 @@ public class ImageBackgroundPane extends BackgroundDetailPane { return selectFilePane; } - protected JRadioButton[] imageLayoutButtons() { - return new JRadioButton[]{ + protected UIRadioButton[] imageLayoutButtons() { + return new UIRadioButton[]{ defaultRadioButton, tiledRadioButton, extendRadioButton, diff --git a/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane4Browser.java b/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane4Browser.java index 4d15f18ac3..431ad2c0d1 100644 --- a/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane4Browser.java +++ b/designer_base/src/com/fr/design/style/background/impl/ImageBackgroundPane4Browser.java @@ -1,5 +1,6 @@ package com.fr.design.style.background.impl; +import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.stable.ArrayUtils; import javax.swing.*; @@ -15,9 +16,9 @@ public class ImageBackgroundPane4Browser extends ImageBackgroundPane { } @Override - protected JRadioButton[] imageLayoutButtons() { + protected UIRadioButton[] imageLayoutButtons() { - return (JRadioButton[]) ArrayUtils.addAll(super.imageLayoutButtons(), new JRadioButton[] { + return (UIRadioButton[]) ArrayUtils.addAll(super.imageLayoutButtons(), new UIRadioButton[] { defaultRadioButton, tiledRadioButton, }); diff --git a/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java b/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java index 12fb981414..b72e67bae7 100644 --- a/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java +++ b/designer_base/src/com/fr/design/style/background/impl/ImageButtonBackgroundPane.java @@ -1,6 +1,5 @@ package com.fr.design.style.background.impl; -import com.fr.base.BaseUtils; import com.fr.base.Style; import com.fr.base.background.ImageBackground; import com.fr.design.gui.ibutton.UIButton; @@ -45,9 +44,9 @@ public class ImageButtonBackgroundPane extends ImageBackgroundPane { } private void initButton() { - chooseButton = new UIButton(Inter.getLocText("Image-Select_Picture")); + chooseButton = new UIButton(Inter.getLocText("FR-Designer_Background_Image_Select")); chooseButton.addActionListener(selectPictureActionListener); - clearButton = new UIButton(Inter.getLocText("Clear")); + clearButton = new UIButton(Inter.getLocText("FR-Designer_Background_Clear")); clearButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { previewPane.setImage(null); From e4a68daca93273f2e86c2024321252387067074b Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Fri, 6 Jan 2017 17:51:29 +0800 Subject: [PATCH 28/48] =?UTF-8?q?REPORT-576=20tab=20button=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=A0=87=E9=A2=98=E5=86=85=E5=AE=B9=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8F=98=E5=AE=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardAddButton.java | 4 +- .../creator/cardlayout/XCardSwitchButton.java | 63 ++++++++++++++++--- 2 files changed, 56 insertions(+), 11 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 83427316a5..441b56575f 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 @@ -31,6 +31,7 @@ public class XCardAddButton extends XButton{ private static final int START_INDEX = 3; private static final int INDEX = 0; + private static final int DEFAULT_BUTTON_WIDTH = 80; private static Icon ADD_ICON = BaseUtils.readIcon("/com/fr/design/form/images/add.png"); @@ -139,8 +140,7 @@ public class XCardAddButton extends XButton{ //新增tab private void addTab(int index){ Dimension dimension = new Dimension(); - XCardSwitchButton button = (XCardSwitchButton) this.tagLayout.getComponent(INDEX); - dimension.width = button.getWidth(); + dimension.width = DEFAULT_BUTTON_WIDTH; String cardLayoutName = cardLayout.toData().getWidgetName(); CardSwitchButton titleButton = new CardSwitchButton(index,cardLayoutName); 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 bcd38dbf2a..ca4f7f1f10 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 @@ -3,13 +3,11 @@ */ package com.fr.design.designer.creator.cardlayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; -import java.awt.Graphics2D; -import java.awt.Point; +import java.awt.*; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; +import java.util.HashMap; +import java.util.Map; import javax.swing.*; @@ -34,6 +32,7 @@ import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; import com.fr.general.FRFont; import com.fr.general.Inter; +import sun.font.FontDesignMetrics; /** * @@ -62,6 +61,9 @@ public class XCardSwitchButton extends XButton { // tab按钮里的字体因为按钮内部的布局看起来比正常的要小,加个调整量 private static final int FONT_SIZE_ADJUST = 2; + private static final int SIDE_OFFSET = 57; + private static final int HEIGHT_OFFSET = 25; + private XWCardLayout cardLayout; private XWCardTagLayout tagLayout; @@ -155,19 +157,18 @@ public class XCardSwitchButton extends XButton { //将当前tab按钮改为选中状态 changeButtonState(index); - + // 切换到当前tab按钮对应的tabFitLayout XWTabFitLayout tabFitLayout = (XWTabFitLayout) cardLayout.getComponent(index); tabFitLayout.setxCardSwitchButton(this); selectionModel.setSelectedCreator(tabFitLayout); - + if (editingMouseListener.stopEditing()) { ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); editingMouseListener.startEditing(this, adapter.getDesignerEditor(), adapter); } - } //删除card,同时修改其他switchbutton和tabfit的index @@ -337,5 +338,49 @@ public class XCardSwitchButton extends XButton { public XLayoutContainer getTopLayout() { return this.getBackupParent().getTopLayout(); } - + + public void setTabsAndAdjust() { + if (this.tagLayout == null) { + return; + } + int tabLength = this.tagLayout.getComponentCount(); + Map cardWidth = new HashMap<>(); + Map cardHeight = new HashMap<>(); + for (int i = 0; i < tabLength; i++) { + XCardSwitchButton temp = (XCardSwitchButton) this.tagLayout.getComponent(i); + CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); + String tempText = tempCard.getText(); + Font f = ((CardSwitchButton)this.toData()).getFont(); + FontMetrics fm = FontDesignMetrics.getMetrics(f); + cardWidth.put(i,fm.stringWidth(tempText)); + cardHeight.put(i,fm.getHeight()); + } + adjustTabs(tabLength, cardWidth, cardHeight); + } + + public void adjustTabs(int tabLength, Map width, Map height) { + int tempX = 0; + for (int i = 0; i < tabLength; i++) { + Rectangle rectangle = this.tagLayout.getComponent(i).getBounds(); + Integer cardWidth = width.get(i) + SIDE_OFFSET; + Integer cardHeight = height.get(i) + HEIGHT_OFFSET; + rectangle.setSize(cardWidth, cardHeight); + rectangle.setBounds(tempX, 0, cardWidth, cardHeight); + tempX += cardWidth; + this.tagLayout.getComponent(i).setBounds(rectangle); + Dimension dimension = new Dimension(); + dimension.setSize(cardWidth, cardHeight); + this.getContentLabel().setSize(dimension); + this.setSize(dimension); + XCardSwitchButton temp = (XCardSwitchButton) this.tagLayout.getComponent(i); + CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); + tempCard.setDefaultWidth(cardWidth); + } + } + + @Override + public void doLayout() { + super.doLayout(); + setTabsAndAdjust(); + } } \ No newline at end of file From 8aaee42deea8d98be562914da036a9e1ea879b67 Mon Sep 17 00:00:00 2001 From: rinoux Date: Tue, 10 Jan 2017 14:39:11 +0800 Subject: [PATCH 29/48] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fun/impl/AbstractDesignerStartOpenFileProcessor.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java b/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java index 5053b0f426..4d09ecd21d 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractDesignerStartOpenFileProcessor.java @@ -3,13 +3,11 @@ package com.fr.design.fun.impl; import com.fr.design.fun.DesignerStartOpenFileProcessor; import com.fr.stable.fun.mark.API; -import static com.fr.stable.fun.mark.Layer.DEFAULT_LAYER_INDEX; - /** * Created by rinoux on 2016/12/16. */ @API(level = DesignerStartOpenFileProcessor.CURRENT_LEVEL) -public class AbstractDesignerStartOpenFileProcessor { +public abstract class AbstractDesignerStartOpenFileProcessor implements DesignerStartOpenFileProcessor { public int currentAPILevel() { return DesignerStartOpenFileProcessor.CURRENT_LEVEL; } From 923defe65c70e10c0c17992cfa867b8f33090970 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Tue, 10 Jan 2017 17:39:13 +0800 Subject: [PATCH 30/48] delete --- .../com/fr/design/images/buttonicon/delete.png | Bin 0 -> 432 bytes .../creator/cardlayout/XCardSwitchButton.java | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 designer_base/src/com/fr/design/images/buttonicon/delete.png diff --git a/designer_base/src/com/fr/design/images/buttonicon/delete.png b/designer_base/src/com/fr/design/images/buttonicon/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..6755647485403ef8343766c2b78ebb569f6d7ff7 GIT binary patch literal 432 zcmV;h0Z;ykP)Px$YDq*vR5%f(Q?X9NKn(RI5GFE}N~oc6tPTIbHy~A=n5s$@-@r$tE8-_u zvqWtfN~bVUlpKC0K3ywdpq3(EY`=HUcRr#6&Ftgfvh1{~>pPBT)|eD|V{O4MkHhfc zEYIH&Q`;dZhQlk?`j(E{IdacP6#Hl5F(HSP#n@DqbwOpAQaNy{YHN)jLm+3n5( zK1ovw;@IJ^Mhu1xPzwzHg#bOPY!sePCe)iwg#=)%5%Wlr_MGSlEX;Ys!esfmUQ@l< zP?RLpo6R7YqQQW+Wl6|+mht*t6fpEc6HQgoYCNXxa!FCY{|#O&B!--t-jEPzaL2cb zBxZg;S0QNcS!%Usk Date: Tue, 10 Jan 2017 17:40:37 +0800 Subject: [PATCH 31/48] delete --- .../design/designer/creator/cardlayout/XCardSwitchButton.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 92f3933588..ca4f7f1f10 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 @@ -374,7 +374,7 @@ public class XCardSwitchButton extends XButton { this.setSize(dimension); XCardSwitchButton temp = (XCardSwitchButton) this.tagLayout.getComponent(i); CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); - //tempCard.setDefaultWidth(cardWidth); + tempCard.setDefaultWidth(cardWidth); } } From aad680b44458e67fdbad394aa81afec71e8f865b Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Tue, 10 Jan 2017 20:02:20 +0800 Subject: [PATCH 32/48] =?UTF-8?q?REPORT-576=20tab=E4=B8=ADbutton=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E8=87=AA=E5=8A=A8=E6=89=A9=E5=B1=95bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../designer/creator/XLayoutContainer.java | 23 ++++++++++++++-- .../creator/cardlayout/XCardSwitchButton.java | 26 ++++++++++++------- .../creator/cardlayout/XWCardLayout.java | 3 +-- .../creator/cardlayout/XWCardTagLayout.java | 12 --------- .../creator/cardlayout/XWTabFitLayout.java | 24 ++++++++++++++--- 5 files changed, 60 insertions(+), 28 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java b/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java index 47f4270a5e..254e9a9184 100644 --- a/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java +++ b/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java @@ -10,8 +10,6 @@ import com.fr.design.form.util.XCreatorConstants; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; -import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; -import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; import com.fr.design.parameter.ParameterBridge; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WLayout; @@ -81,6 +79,27 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme }; } + /** + * 控件名属性 + * @return + * @throws IntrospectionException + */ + public CRPropertyDescriptor createWidgetNameDescriptor() throws IntrospectionException { + return new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter + .getLocText("FR-Designer_Form-Widget_Name")); + } + + /** + * 边距属性 + * @return + * @throws IntrospectionException + */ + public CRPropertyDescriptor createMarginDescriptor() throws IntrospectionException { + return new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) + .setI18NName(Inter.getLocText("FR-Designer_Layout-Padding")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"); + } + /** * 返回对应的wlayout * @return wlayout控件 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 ca4f7f1f10..6baa740947 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 @@ -6,8 +6,7 @@ package com.fr.design.designer.creator.cardlayout; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.geom.Rectangle2D; -import java.util.HashMap; -import java.util.Map; +import java.util.*; import javax.swing.*; @@ -58,6 +57,9 @@ public class XCardSwitchButton extends XButton { private static final int RIGHT_OFFSET = 15; private static final int TOP_OFFSET = 25; + //这边先不计算button的高度,涉及到layout那边的整体高度,先用之前的固定高度 + private static final int DEFAULT_BUTTON_HEIGHT = 36; + // tab按钮里的字体因为按钮内部的布局看起来比正常的要小,加个调整量 private static final int FONT_SIZE_ADJUST = 2; @@ -70,7 +72,6 @@ public class XCardSwitchButton extends XButton { private Background selectBackground; private boolean isCustomStyle; - private Icon closeIcon = MOUSE_COLSE; public XWCardTagLayout getTagLayout() { @@ -169,6 +170,7 @@ public class XCardSwitchButton extends XButton { editingMouseListener.startEditing(this, adapter.getDesignerEditor(), adapter); } + setTabsAndAdjust(); } //删除card,同时修改其他switchbutton和tabfit的index @@ -258,6 +260,7 @@ public class XCardSwitchButton extends XButton { public void paintComponent(Graphics g) { super.paintComponent(g); + setTabsAndAdjust(); Graphics2D g2d = (Graphics2D) g; drawBackgorund(); drawTitle(); @@ -359,22 +362,27 @@ public class XCardSwitchButton extends XButton { } public void adjustTabs(int tabLength, Map width, Map height) { + if (width == null) { + return; + } int tempX = 0; for (int i = 0; i < tabLength; i++) { - Rectangle rectangle = this.tagLayout.getComponent(i).getBounds(); + Rectangle rectangle = this.tagLayout.getComponent(i).getBounds(); Integer cardWidth = width.get(i) + SIDE_OFFSET; - Integer cardHeight = height.get(i) + HEIGHT_OFFSET; + //先用这边的固定高度 + Integer cardHeight = DEFAULT_BUTTON_HEIGHT; rectangle.setSize(cardWidth, cardHeight); rectangle.setBounds(tempX, 0, cardWidth, cardHeight); tempX += cardWidth; this.tagLayout.getComponent(i).setBounds(rectangle); Dimension dimension = new Dimension(); dimension.setSize(cardWidth, cardHeight); - this.getContentLabel().setSize(dimension); - this.setSize(dimension); XCardSwitchButton temp = (XCardSwitchButton) this.tagLayout.getComponent(i); - CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); - tempCard.setDefaultWidth(cardWidth); + UILabel label = temp.getContentLabel(); + label.setSize(dimension); + temp.setContentLabel(label); + temp.setSize(dimension); + temp.setPreferredSize(new Dimension(cardWidth, cardHeight)); } } 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 4f2492ee9e..d008ccd521 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 @@ -198,8 +198,7 @@ public class XWCardLayout extends XLayoutContainer { firstBtn.setText(Inter.getLocText("FR-Designer_Title") + 0); firstBtn.setInitialBackground(ColorBackground.getInstance(Color.WHITE)); xTag.setCurrentCard(firstBtn); - XCardSwitchButton xFirstBtn = new XCardSwitchButton(firstBtn, new Dimension(CardSwitchButton.DEF_WIDTH, -1),this,xTag); - firstBtn.setCustomStyle(true); + 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/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index e40a7ca871..82170bacc2 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 @@ -163,18 +163,6 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { * void */ public void adjustComponentWidth(){ - int btnNum = this.getComponentCount(); - int tagLayoutWidth = this.getWidth(); - int allBtnWidth = btnNum * CardSwitchButton.DEF_WIDTH + btnNum; - int size = CardSwitchButton.DEF_WIDTH; - if(tagLayoutWidth - allBtnWidth < CardSwitchButton.DEF_WIDTH){ - size = (tagLayoutWidth - CardSwitchButton.DEF_WIDTH - btnNum)/btnNum; - } - WCardTagLayout layout = (WCardTagLayout)this.toData(); - for(int i=0;i Date: Wed, 11 Jan 2017 10:50:43 +0800 Subject: [PATCH 33/48] =?UTF-8?q?REPORT-576=20font=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= 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, 1 insertion(+), 2 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 6baa740947..31c45681da 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,7 +31,6 @@ import com.fr.form.ui.container.cardlayout.WTabFitLayout; import com.fr.general.Background; import com.fr.general.FRFont; import com.fr.general.Inter; -import sun.font.FontDesignMetrics; /** * @@ -354,7 +353,7 @@ public class XCardSwitchButton extends XButton { CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); String tempText = tempCard.getText(); Font f = ((CardSwitchButton)this.toData()).getFont(); - FontMetrics fm = FontDesignMetrics.getMetrics(f); + FontMetrics fm = Toolkit.getDefaultToolkit().getFontMetrics(f); cardWidth.put(i,fm.stringWidth(tempText)); cardHeight.put(i,fm.getHeight()); } From 345922137f87049468c3c26096633b4592f44c2e Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Wed, 11 Jan 2017 14:37:42 +0800 Subject: [PATCH 34/48] =?UTF-8?q?=E7=94=98=E7=89=B9=E5=9B=BE=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E9=85=8D=E7=BD=AE=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/chart/gui/data/NormalChartDataPane.java | 6 +++++- .../fr/design/mainframe/chart/gui/data/TableDataPane.java | 2 +- .../designer/creator/cardlayout/XCardSwitchButton.java | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java index cae7afc39a..7ff9593b38 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java @@ -70,7 +70,7 @@ public class NormalChartDataPane extends DataContentsPane { @Override protected List> initPaneList() { - tableDataPane = new TableDataPane(parent); + tableDataPane = getTableDataPane(parent); reportDataPane = new ReportDataPane(parent); List> paneList = new ArrayList>(); paneList.add(tableDataPane); @@ -96,6 +96,10 @@ public class NormalChartDataPane extends DataContentsPane { } + protected TableDataPane getTableDataPane(ChartDataPane chartDataPane) { + return new TableDataPane(chartDataPane); + } + /** * 更新界面 数据内容 */ diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java index 3b6c71ef1e..a6bea6b0ca 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/TableDataPane.java @@ -69,7 +69,7 @@ public class TableDataPane extends FurtherBasicBeanPane{ } } - private AbstractTableDataContentPane getContentPane(Plot plot) { + protected AbstractTableDataContentPane getContentPane(Plot plot) { return ChartTypeInterfaceManager.getInstance().getTableDataSourcePane(plot, parent); } 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 ca4f7f1f10..92f3933588 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 @@ -374,7 +374,7 @@ public class XCardSwitchButton extends XButton { this.setSize(dimension); XCardSwitchButton temp = (XCardSwitchButton) this.tagLayout.getComponent(i); CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); - tempCard.setDefaultWidth(cardWidth); + //tempCard.setDefaultWidth(cardWidth); } } From 37d3840a812f3465cc7246481c14c284c75a91bf Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 11 Jan 2017 17:10:00 +0800 Subject: [PATCH 35/48] =?UTF-8?q?REPORT-576=20tabpane=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E8=BD=AE=E6=92=AD=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XCardAddButton.java | 4 +- .../creator/cardlayout/XWCardLayout.java | 90 ++++++++++++++----- 2 files changed, 71 insertions(+), 23 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 441b56575f..fa4c1d4a9b 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 @@ -147,11 +147,11 @@ public class XCardAddButton extends XButton{ //设置标题 titleButton.setText(getTabTitleName()); titleButton.setInitialBackground(ColorBackground.getInstance(Color.WHITE)); - XCardSwitchButton showButton = new XCardSwitchButton(titleButton,dimension,cardLayout,tagLayout); + XCardSwitchButton showButton = new XCardSwitchButton(titleButton, dimension, cardLayout, tagLayout); + titleButton.setCustomStyle(true); titleButton.setShowButton(true); showButton.setBackupParent(tagLayout); - this.tagLayout.setCurrentCard(titleButton); this.tagLayout.setTabFitIndex(index); this.tagLayout.add(showButton); 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 d008ccd521..4dbc1a5676 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 @@ -6,13 +6,16 @@ package com.fr.design.designer.creator.cardlayout; import com.fr.base.background.ColorBackground; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRCardLayoutAdapter; +import com.fr.design.designer.beans.events.DesignerEvent; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.*; import com.fr.design.form.layout.FRCardLayout; import com.fr.design.form.util.XCreatorConstants; import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.design.mainframe.widget.editors.BooleanEditor; import com.fr.design.mainframe.widget.editors.CardTagWLayoutBorderStyleEditor; -import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; +import com.fr.design.mainframe.widget.editors.DoubleEditor; import com.fr.form.ui.*; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WCardLayout; @@ -22,6 +25,7 @@ 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.Inter; +import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; import com.fr.stable.core.PropertyChangeAdapter; @@ -39,6 +43,8 @@ public class XWCardLayout extends XLayoutContainer { private CardLayout cardLayout; private boolean initFlag = true; private static final int NORTH = 0; + private FormDesigner designer; + //默认蓝色标题背景 private static final Color TITLE_COLOR = new Color(51, 132, 240); @@ -197,6 +203,7 @@ public class XWCardLayout extends XLayoutContainer { 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); @@ -271,27 +278,68 @@ public class XWCardLayout extends XLayoutContainer { * @throws IntrospectionException */ public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - return new CRPropertyDescriptor[] { - new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter - .getLocText("FR-Designer_Form-Widget_Name")).setPropertyChangeListener(new PropertyChangeAdapter(){ - - @Override - public void propertyChange(){ - WCardLayout cardLayout = toData(); - changeRalateSwitchCardname(cardLayout.getWidgetName()); - } - }), - new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( - CardTagWLayoutBorderStyleEditor.class).setI18NName( - Inter.getLocText("FR-Engine_Style")).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") - .setPropertyChangeListener(new PropertyChangeAdapter() { + CRPropertyDescriptor[] crp = ((WCardLayout) data).isCarousel() ? getisCarousel() : getisnotCarousel(); + return ArrayUtils.addAll(getDefaultDescriptor(), crp); + } + + public CRPropertyDescriptor[] getisCarousel() throws IntrospectionException { + return new CRPropertyDescriptor[] { + new CRPropertyDescriptor("carousel", this.data.getClass()) + .setEditorClass(BooleanEditor.class) + .setI18NName(Inter.getLocText("FR-Designer_setCarousel")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Tab_carousel") + .setPropertyChangeListener(new PropertyChangeAdapter() { + @Override + public void propertyChange() { + designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED); + } + }), + new CRPropertyDescriptor("carouselInterval", this.data.getClass()) + .setEditorClass(DoubleEditor.class) + .setI18NName(Inter.getLocText("FR-Designer_carouselInterval")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Tab_carousel") + }; + } + + public CRPropertyDescriptor[] getisnotCarousel() throws IntrospectionException { + return new CRPropertyDescriptor[] { + new CRPropertyDescriptor("carousel", this.data.getClass()) + .setEditorClass(BooleanEditor.class) + .setI18NName(Inter.getLocText("FR-Designer_setCarousel")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Tab_carousel") + .setPropertyChangeListener(new PropertyChangeAdapter() { + @Override + public void propertyChange() { + designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + designer.getEditListenerTable().fireCreatorModified(DesignerEvent.CREATOR_EDITED); + } + }) + }; + } + + public CRPropertyDescriptor[] getDefaultDescriptor() throws IntrospectionException { + return new CRPropertyDescriptor[] { + new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter + .getLocText("FR-Designer_Form-Widget_Name")).setPropertyChangeListener(new PropertyChangeAdapter(){ + + @Override + public void propertyChange(){ + WCardLayout cardLayout = toData(); + changeRalateSwitchCardname(cardLayout.getWidgetName()); + } + }), + new CRPropertyDescriptor("borderStyle", this.data.getClass()).setEditorClass( + CardTagWLayoutBorderStyleEditor.class).setI18NName( + Inter.getLocText("FR-Engine_Style")).putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") + .setPropertyChangeListener(new PropertyChangeAdapter() { - @Override - public void propertyChange() { - initStyle(); - } - }), - }; + @Override + public void propertyChange() { + initStyle(); + } + }) + }; } //初始化样式 From 16a0924d53a44090a0af9b0b535157e3549225ae Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Wed, 11 Jan 2017 17:29:59 +0800 Subject: [PATCH 36/48] =?UTF-8?q?=E8=B0=83=E6=95=B4?= 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, 2 insertions(+), 1 deletion(-) 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 31c45681da..28c5e33e3f 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 @@ -11,6 +11,7 @@ import java.util.*; import javax.swing.*; 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; @@ -353,7 +354,7 @@ public class XCardSwitchButton extends XButton { CardSwitchButton tempCard = (CardSwitchButton) temp.toData(); String tempText = tempCard.getText(); Font f = ((CardSwitchButton)this.toData()).getFont(); - FontMetrics fm = Toolkit.getDefaultToolkit().getFontMetrics(f); + FontMetrics fm = GraphHelper.getFontMetrics(f); cardWidth.put(i,fm.stringWidth(tempText)); cardHeight.put(i,fm.getHeight()); } From d69603d181d231eae93297fe7b9938620abe8776 Mon Sep 17 00:00:00 2001 From: Fangjie Hu Date: Thu, 12 Jan 2017 11:44:56 +0800 Subject: [PATCH 37/48] =?UTF-8?q?=E5=8D=95=E5=85=83=E6=A0=BC=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E7=95=8C=E9=9D=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/chart/gui/data/NormalChartDataPane.java | 6 +++++- .../fr/design/mainframe/chart/gui/data/ReportDataPane.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java index 7ff9593b38..6a33c6df96 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java @@ -71,7 +71,7 @@ public class NormalChartDataPane extends DataContentsPane { @Override protected List> initPaneList() { tableDataPane = getTableDataPane(parent); - reportDataPane = new ReportDataPane(parent); + reportDataPane = getReportDataPane(parent); List> paneList = new ArrayList>(); paneList.add(tableDataPane); paneList.add(reportDataPane); @@ -96,6 +96,10 @@ public class NormalChartDataPane extends DataContentsPane { } + protected ReportDataPane getReportDataPane(ChartDataPane parent) { + return new ReportDataPane(parent); + } + protected TableDataPane getTableDataPane(ChartDataPane chartDataPane) { return new TableDataPane(chartDataPane); } diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/ReportDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/ReportDataPane.java index a3ede1b9f3..c5d80ccc17 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/ReportDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/ReportDataPane.java @@ -21,7 +21,7 @@ public class ReportDataPane extends FurtherBasicBeanPane{ this.parent = parent; } - private AbstractReportDataContentPane getContentPane(Chart chart) { + protected AbstractReportDataContentPane getContentPane(Chart chart) { if(chart == null) { return null; } From adbebac9de82f4894e9d26531838a1894ebc2fda Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Thu, 12 Jan 2017 14:26:37 +0800 Subject: [PATCH 38/48] =?UTF-8?q?=E6=97=A0jiar=20=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E5=8C=96=E6=96=87=E4=BB=B6=E5=86=85=E5=AE=B9=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer_base/src/com/fr/design/locale/designer.properties | 3 +++ .../src/com/fr/design/locale/designer_en_US.properties | 3 +++ .../src/com/fr/design/locale/designer_ja_JP.properties | 3 +++ .../src/com/fr/design/locale/designer_ko_KR.properties | 3 +++ .../src/com/fr/design/locale/designer_zh_CN.properties | 5 ++++- .../src/com/fr/design/locale/designer_zh_TW.properties | 3 +++ .../fr/design/designer/creator/cardlayout/XWCardLayout.java | 4 ++-- 7 files changed, 21 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index f97208a310..41f3c8cdd8 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -518,3 +518,6 @@ FR-Designer_Background_Gradient_Color= FR-Designer_Background_Image= FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= +FR-Designer_Tab_carousel= +FR-Designer_setCarousel= +FR-Designer_carouselInterval= \ 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 495ebed06d..334e01ca8c 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 @@ -518,3 +518,6 @@ FR-Designer_Background_Gradient_Color=Gradient Color FR-Designer_Background_Image=Image FR-Designer_Background_Clear=Clear FR-Designer_Background_Image_Select=Select Picture +FR-Designer_Tab_carousel= +FR-Designer_setCarousel= +FR-Designer_carouselInterval= \ 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 c60ce8891d..6312538cf7 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 @@ -497,3 +497,6 @@ FR-Designer_Background_Gradient_Color= FR-Designer_Background_Image= FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= +FR-Designer_Tab_carousel= +FR-Designer_setCarousel= +FR-Designer_carouselInterval= \ 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 079af536db..87a1b893c8 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 @@ -492,3 +492,6 @@ FR-Designer_Background_Gradient_Color= FR-Designer_Background_Image= FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= +FR-Designer_Tab_carousel= +FR-Designer_setCarousel= +FR-Designer_carouselInterval= \ 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 a40f6d3a4c..10c53380d0 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 @@ -521,4 +521,7 @@ FR-Designer_Background_Pattern=\u56FE\u6848 FR-Designer_Background_Gradient_Color=\u6E10\u53D8\u8272 FR-Designer_Background_Image=\u56FE\u7247 FR-Designer_Background_Clear=\u6E05\u9664 -FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 \ No newline at end of file +FR-Designer_Background_Image_Select=\u9009\u62E9\u56FE\u7247 +FR-Designer_Tab_carousel=tab\u8F6E\u64AD +FR-Designer_setCarousel=\u5F00\u542F\u8F6E\u64AD +FR-Designer_carouselInterval=\u8F6E\u64AD\u95F4\u9694 \ 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 8392f1fdb1..96cb4260a9 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 @@ -510,3 +510,6 @@ FR-Designer_Background_Gradient_Color= FR-Designer_Background_Image= FR-Designer_Background_Clear= FR-Designer_Background_Image_Select= +FR-Designer_Tab_carousel= +FR-Designer_setCarousel= +FR-Designer_carouselInterval= \ 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 4dbc1a5676..d1e6e40520 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 @@ -287,7 +287,7 @@ public class XWCardLayout extends XLayoutContainer { new CRPropertyDescriptor("carousel", this.data.getClass()) .setEditorClass(BooleanEditor.class) .setI18NName(Inter.getLocText("FR-Designer_setCarousel")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Tab_carousel") + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Designer_Tab_carousel") .setPropertyChangeListener(new PropertyChangeAdapter() { @Override public void propertyChange() { @@ -307,7 +307,7 @@ public class XWCardLayout extends XLayoutContainer { new CRPropertyDescriptor("carousel", this.data.getClass()) .setEditorClass(BooleanEditor.class) .setI18NName(Inter.getLocText("FR-Designer_setCarousel")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Tab_carousel") + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Designer_Tab_carousel") .setPropertyChangeListener(new PropertyChangeAdapter() { @Override public void propertyChange() { From 8a94bcb0fddf2d16646362c4a20a2269d87b08e1 Mon Sep 17 00:00:00 2001 From: PanLi320 <854954082@qq.com> Date: Thu, 12 Jan 2017 14:36:11 +0800 Subject: [PATCH 39/48] 1 1 --- .../com/fr/design/designer/creator/cardlayout/XWCardLayout.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d1e6e40520..ac929a1635 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 @@ -298,7 +298,7 @@ public class XWCardLayout extends XLayoutContainer { new CRPropertyDescriptor("carouselInterval", this.data.getClass()) .setEditorClass(DoubleEditor.class) .setI18NName(Inter.getLocText("FR-Designer_carouselInterval")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Tab_carousel") + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "FR-Designer_Tab_carousel") }; } From 81db8a7da5c357cabb25f7c1344d470395938272 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Mon, 16 Jan 2017 19:40:39 +0800 Subject: [PATCH 40/48] rt --- .../tabledatapane/DBTableDataPane.java | 53 ++++++------------- .../fr/design/fun/DBTableDataMenuHandler.java | 24 +++++++++ .../impl/AbstractDBTableDataMenuHandler.java | 34 ++++++++++++ 3 files changed, 75 insertions(+), 36 deletions(-) create mode 100644 designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java create mode 100644 designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 553e6814c0..94e6b44b69 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -7,6 +7,7 @@ import com.fr.base.ParameterHelper; import com.fr.data.core.db.TableProcedure; import com.fr.data.impl.DBTableData; import com.fr.data.impl.NameDatabaseConnection; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.actions.UpdateAction; import com.fr.design.border.UIRoundedBorder; import com.fr.design.constants.UIConstants; @@ -17,6 +18,7 @@ import com.fr.design.data.datapane.sqlpane.SQLEditPane; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.fun.DBTableDataMenuHandler; import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itableeditorpane.ParameterTableModel; @@ -34,7 +36,6 @@ import com.fr.general.Inter; import com.fr.script.Calculator; import com.fr.stable.ArrayUtils; import com.fr.stable.ParameterProvider; -import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; import javax.swing.*; @@ -53,11 +54,11 @@ public class DBTableDataPane extends AbstractTableDataPane { private ConnectionTableProcedurePane connectionTableProcedurePane; private UITableEditorPane editorPane; + private DBTableDataMenuHandler dbTableDataMenuHandler; private SQLEditPane sqlTextPane; private UICheckBox isShareCheckBox; private MaxMemRowCountPanel maxPanel; private String pageQuery = null; - private String customCountQuery = null; public DBTableDataPane() { @@ -149,11 +150,10 @@ public class DBTableDataPane extends AbstractTableDataPane { } private void refresh() { - String[] paramTexts = new String[3]; + String[] paramTexts = new String[2]; paramTexts[0] = sqlTextPane.getText(); paramTexts[1] = pageQuery; - paramTexts[2] = customCountQuery; - + String queryText = null; List existParameterList = editorPane.update(); Parameter[] ps = existParameterList == null ? new Parameter[0] : existParameterList.toArray(new Parameter[existParameterList.size()]); @@ -166,8 +166,11 @@ public class DBTableDataPane extends AbstractTableDataPane { toolBarDef.addShortCut(new PreviewAction()); toolBarDef.addShortCut(SeparatorDef.DEFAULT); toolBarDef.addShortCut(new EditPageQueryAction()); - toolBarDef.addShortCut(SeparatorDef.DEFAULT); - toolBarDef.addShortCut(new EditCustomCountQueryAction()); + dbTableDataMenuHandler = ExtraDesignClassManager.getInstance().getSingle(DBTableDataMenuHandler.MARK_STRING); + if (dbTableDataMenuHandler != null) { + toolBarDef.addShortCut(SeparatorDef.DEFAULT); + toolBarDef.addShortCut(dbTableDataMenuHandler.createQueryAction()); + } isShareCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Is_Share_DBTableData")); maxPanel = new MaxMemRowCountPanel(); maxPanel.setBorder(null); @@ -179,11 +182,9 @@ public class DBTableDataPane extends AbstractTableDataPane { } private void checkParameter() { - String[] paramTexts = new String[3]; + String[] paramTexts = new String[2]; paramTexts[0] = sqlTextPane.getText(); paramTexts[1] = pageQuery; - paramTexts[2] = customCountQuery; - Parameter[] parameters = ParameterHelper.analyze4Parameters(paramTexts, false); if (parameters.length < 1 && editorPane.update().size() < 1) { @@ -210,6 +211,9 @@ public class DBTableDataPane extends AbstractTableDataPane { @Override public void populateBean(DBTableData dbtabledata) { + if (dbTableDataMenuHandler != null) { + dbTableDataMenuHandler.setDBTableData(dbtabledata); + } ParameterProvider[] parameters = null; Calculator c = Calculator.createCalculator(); @@ -227,8 +231,6 @@ public class DBTableDataPane extends AbstractTableDataPane { isShare = dbtabledata.isShare(); maxMemeryRow = dbtabledata.getMaxMemRowCount(); this.pageQuery = dbtabledata.getPageQuerySql(); - this.customCountQuery = dbtabledata.getCustomCountQuery(); - this.connectionTableProcedurePane.setSelectedDatabaseConnection(db); this.sqlTextPane.setText(query); this.sqlTextPane.requestFocus(); @@ -264,8 +266,9 @@ public class DBTableDataPane extends AbstractTableDataPane { dbTableData.setShare(isShareCheckBox.isSelected()); dbTableData.setMaxMemRowCount(maxPanel.getValue()); dbTableData.setPageQuerySql(this.pageQuery); - dbTableData.setCustomCountQuery(this.customCountQuery); - + if (dbTableDataMenuHandler != null) { + dbTableData.setCustomCountQuery(dbTableDataMenuHandler.getDbTableData().getCustomCountQuery()); + } return dbTableData; } @@ -318,28 +321,6 @@ public class DBTableDataPane extends AbstractTableDataPane { } } - private class EditCustomCountQueryAction extends UpdateAction { - public EditCustomCountQueryAction() { - this.setName(Inter.getLocText("FR-Designer-LayerPageReport_CustomCountQuery")); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/text.png")); - } - - @Override - public void actionPerformed(ActionEvent e) { - final QueryPane editPane = new QueryPane(Inter.getLocText("FR-Designer-LayerPageReport_Define_CustomCountQuery")); - editPane.populate(customCountQuery); - BasicDialog dialog = editPane.showWindow(DesignerContext.getDesignerFrame()); - dialog.addDialogActionListener(new DialogActionAdapter() { - public void doOk() { - customCountQuery = editPane.update(); - checkParameter(); - } - }); - dialog.setVisible(true); - - } - } - private class QueryPane extends BasicPane { private SQLEditPane pageQueryPane; private String title; diff --git a/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java b/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java new file mode 100644 index 0000000000..c32bf7e86a --- /dev/null +++ b/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java @@ -0,0 +1,24 @@ +package com.fr.design.fun; + +import com.fr.data.impl.DBTableData; +import com.fr.design.actions.UpdateAction; +import com.fr.stable.fun.mark.Immutable; + +/** + * Created by xiaxiang on 2017/1/15. + */ +public interface DBTableDataMenuHandler extends Immutable { + String MARK_STRING = "DBTableDataMenuHandler"; + + int CURRENT_LEVEL = 1; + + UpdateAction createQueryAction(); + + DBTableData getDbTableData(); + + void setDBTableData(DBTableData dbTableData); + + + + +} diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java b/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java new file mode 100644 index 0000000000..f0a8207f13 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java @@ -0,0 +1,34 @@ +package com.fr.design.fun.impl; + +import com.fr.data.impl.DBTableData; +import com.fr.design.actions.UpdateAction; +import com.fr.design.fun.DBTableDataMenuHandler; +import com.fr.stable.fun.mark.API; + +/** + * Created by xiaxiang on 2017/1/15. + */ +@API(level = DBTableDataMenuHandler.CURRENT_LEVEL) +public abstract class AbstractDBTableDataMenuHandler implements DBTableDataMenuHandler { + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } + + public UpdateAction createQueryAction() { + return null; + } + + @Override + public DBTableData getDbTableData() { + return null; + } + + @Override + public void setDBTableData(DBTableData dbTableData) { + + } +} From 768035300aa9ed5887d003aa3f8ce89cb2b6f23c Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Tue, 17 Jan 2017 10:53:06 +0800 Subject: [PATCH 41/48] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=8F=8C?= =?UTF-8?q?=E5=90=91=E8=87=AA=E9=80=82=E5=BA=94=E5=92=8C=E4=B8=8D=E8=87=AA?= =?UTF-8?q?=E9=80=82=E5=BA=94=E6=8C=89=E9=92=AE=E7=9A=84=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mobile/MobileRadioGroupPane.java | 78 ++++++++++++++----- 1 file changed, 59 insertions(+), 19 deletions(-) diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java index f03b726260..7878451cf6 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java @@ -19,7 +19,7 @@ import java.util.List; */ public class MobileRadioGroupPane extends BasicBeanPane{ - private List radioButtons = new ArrayList(); + private List radioButtons = new ArrayList(); public MobileRadioGroupPane(String title) { initComponents(title); @@ -30,28 +30,35 @@ public class MobileRadioGroupPane extends BasicBeanPane{ double[] rowSize = {p}; double[] columnSize = {p, p, p, p, p, p}; - UIRadioButton defaultRadio = new UIRadioButton(MobileFitAttrState.DEFAULT.description()); - defaultRadio.setSelected(true); - UIRadioButton horizonRadio = new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()); - UIRadioButton verticalRadio = new UIRadioButton(MobileFitAttrState.VERTICAL.description()); - UIRadioButton bidirectionalRadio = new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()); - UIRadioButton notFitRadio = new UIRadioButton(MobileFitAttrState.NONE.description()); + RadioButton defaultRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.DEFAULT.description()), MobileFitAttrState.DEFAULT.getState()); + defaultRadio.getRadioButton().setSelected(true); + RadioButton horizonRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()), MobileFitAttrState.HORIZONTAL.getState()); + RadioButton verticalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.VERTICAL.description()), MobileFitAttrState.VERTICAL.getState()); + RadioButton bidirectionalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()), MobileFitAttrState.BIDIRECTIONAL.getState()); + RadioButton notFitRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.NONE.description()), MobileFitAttrState.NONE.getState()); addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, notFitRadio, bidirectionalRadio); Component[][] components = new Component[][]{ - new Component[]{new UILabel(title), defaultRadio, horizonRadio, verticalRadio, notFitRadio, bidirectionalRadio} + new Component[] { + new UILabel(title), + defaultRadio.getRadioButton(), + horizonRadio.getRadioButton(), + verticalRadio.getRadioButton(), + bidirectionalRadio.getRadioButton(), + notFitRadio.getRadioButton() + } }; JPanel fitOpsPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); fitOpsPane.setBorder(BorderFactory.createEmptyBorder(10, 13, 10, 10)); this.add(fitOpsPane); } - private void addToButtonGroup(UIRadioButton... radios) { + private void addToButtonGroup(RadioButton... radios) { ButtonGroup buttonGroup = new ButtonGroup(); - for (UIRadioButton radio : radios) { + for (RadioButton radio : radios) { radioButtons.add(radio); - buttonGroup.add(radio); + buttonGroup.add(radio.getRadioButton()); } } @@ -59,8 +66,8 @@ public class MobileRadioGroupPane extends BasicBeanPane{ * 设置按钮状态 */ public void setEnabled(boolean enabled) { - for (UIRadioButton radioButton : radioButtons) { - radioButton.setEnabled(enabled); + for (RadioButton radioButton : radioButtons) { + radioButton.getRadioButton().setEnabled(enabled); } } @@ -71,8 +78,8 @@ public class MobileRadioGroupPane extends BasicBeanPane{ */ public int getSelectRadioIndex() { for (int i = 0, len = radioButtons.size(); i < len; i++) { - if (radioButtons.get(i).isSelected()) { - return i; + if (radioButtons.get(i).getRadioButton().isSelected()) { + return radioButtons.get(i).getRadioButtonIndex(); } } @@ -87,16 +94,19 @@ public class MobileRadioGroupPane extends BasicBeanPane{ return; } - UIRadioButton button = radioButtons.get(index); - button.setSelected(true); + for (RadioButton radioButton : this.radioButtons) { + if (radioButton.getRadioButtonIndex() == index) { + radioButton.getRadioButton().setSelected(true); + } + } } /** * 给所有的按钮加上监听 */ public void addActionListener(ActionListener actionListener) { - for (UIRadioButton radioButton : radioButtons) { - radioButton.addActionListener(actionListener); + for (RadioButton radioButton : radioButtons) { + radioButton.getRadioButton().addActionListener(actionListener); } } @@ -116,3 +126,33 @@ public class MobileRadioGroupPane extends BasicBeanPane{ return StringUtils.EMPTY; } } + +/** + * created by fanglei on 2017/1/16 + * 不再用radioButtonGroup的数组下标作为index,而是给每个按钮传入MobileFitAttrState的枚举值 + */ +class RadioButton { + private UIRadioButton radioButton; + private int index; + + RadioButton(UIRadioButton radioButton, int index) { + this.radioButton = radioButton; + this.index = index; + } + + public UIRadioButton getRadioButton() { + return this.radioButton; + } + + public void setUIReadioButton(UIRadioButton radioButton) { + this.radioButton = radioButton; + } + + public int getRadioButtonIndex() { + return this.index; + } + + public void setRadioButtonIndex(int index) { + this.index = index; + } +} From e539908dcbc0e7964ad7a00effb9f3b3549b5aeb Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 17 Jan 2017 14:57:27 +0800 Subject: [PATCH 42/48] rt --- .../fr/design/data/tabledata/tabledatapane/DBTableDataPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 94e6b44b69..fed22c080d 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -267,7 +267,7 @@ public class DBTableDataPane extends AbstractTableDataPane { dbTableData.setMaxMemRowCount(maxPanel.getValue()); dbTableData.setPageQuerySql(this.pageQuery); if (dbTableDataMenuHandler != null) { - dbTableData.setCustomCountQuery(dbTableDataMenuHandler.getDbTableData().getCustomCountQuery()); + dbTableData.setDataQueryProcessor(dbTableDataMenuHandler.getDbTableData().getDataQueryProcessor()); } return dbTableData; } From 47a758f0b1c12d3dd9d0d1c715db2ac210d24668 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Tue, 17 Jan 2017 17:13:15 +0800 Subject: [PATCH 43/48] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E7=9A=84=E5=8F=8C?= =?UTF-8?q?=E5=90=91=E8=87=AA=E9=80=82=E5=BA=94=E5=92=8C=E4=B8=8D=E8=87=AA?= =?UTF-8?q?=E9=80=82=E5=BA=94=E9=A1=BA=E5=BA=8F=E5=BF=98=E8=AE=B0=E6=94=B9?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../properties/mobile/MobileFitAlignmentItems.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/properties/mobile/MobileFitAlignmentItems.java b/designer_form/src/com/fr/design/designer/properties/mobile/MobileFitAlignmentItems.java index 552589b71a..8926befde4 100644 --- a/designer_form/src/com/fr/design/designer/properties/mobile/MobileFitAlignmentItems.java +++ b/designer_form/src/com/fr/design/designer/properties/mobile/MobileFitAlignmentItems.java @@ -9,12 +9,14 @@ public class MobileFitAlignmentItems implements ItemProvider { private static Item[] VALUE_ITEMS; static { - MobileFitAttrState[] allStates = MobileFitAttrState.values(); - int len = allStates.length; - VALUE_ITEMS = new Item[len]; - for (int i = 0; i < len ; i++) { - VALUE_ITEMS[i] = new Item(allStates[i].description(), allStates[i]); - } +// 此处不能循环根据MobileFitAttrState的枚举顺序创建items,否则不自适应选项就会跑到双向自适应选项前面。 + VALUE_ITEMS = new Item[]{ + new Item(MobileFitAttrState.DEFAULT.description(), MobileFitAttrState.DEFAULT), + new Item(MobileFitAttrState.HORIZONTAL.description(), MobileFitAttrState.HORIZONTAL), + new Item(MobileFitAttrState.VERTICAL.description(), MobileFitAttrState.VERTICAL), + new Item(MobileFitAttrState.BIDIRECTIONAL.description(), MobileFitAttrState.BIDIRECTIONAL), + new Item(MobileFitAttrState.NONE.description(), MobileFitAttrState.NONE) + }; } @Override From c32b292e35eedeacc11a53659bd2a34e962b20d3 Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Tue, 17 Jan 2017 17:21:50 +0800 Subject: [PATCH 44/48] =?UTF-8?q?RadioButton=E7=9A=84=E6=9E=84=E9=80=A0?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E7=9A=84=E7=AC=AC=E4=BA=8C=E4=B8=AA=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BF=AE=E6=94=B9=E4=B8=BAMobileFitAttrState?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/report/mobile/MobileRadioGroupPane.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java index 7878451cf6..638abc768c 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java @@ -30,12 +30,12 @@ public class MobileRadioGroupPane extends BasicBeanPane{ double[] rowSize = {p}; double[] columnSize = {p, p, p, p, p, p}; - RadioButton defaultRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.DEFAULT.description()), MobileFitAttrState.DEFAULT.getState()); + RadioButton defaultRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.DEFAULT.description()), MobileFitAttrState.DEFAULT); defaultRadio.getRadioButton().setSelected(true); - RadioButton horizonRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()), MobileFitAttrState.HORIZONTAL.getState()); - RadioButton verticalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.VERTICAL.description()), MobileFitAttrState.VERTICAL.getState()); - RadioButton bidirectionalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()), MobileFitAttrState.BIDIRECTIONAL.getState()); - RadioButton notFitRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.NONE.description()), MobileFitAttrState.NONE.getState()); + RadioButton horizonRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()), MobileFitAttrState.HORIZONTAL); + RadioButton verticalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.VERTICAL.description()), MobileFitAttrState.VERTICAL); + RadioButton bidirectionalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()), MobileFitAttrState.BIDIRECTIONAL); + RadioButton notFitRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.NONE.description()), MobileFitAttrState.NONE); addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, notFitRadio, bidirectionalRadio); @@ -135,9 +135,9 @@ class RadioButton { private UIRadioButton radioButton; private int index; - RadioButton(UIRadioButton radioButton, int index) { + RadioButton(UIRadioButton radioButton, MobileFitAttrState mobileFitAttrState) { this.radioButton = radioButton; - this.index = index; + this.index = mobileFitAttrState.getState(); } public UIRadioButton getRadioButton() { From a42bd2793829a8e84e8507d802b23c86a5977617 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 17 Jan 2017 18:53:12 +0800 Subject: [PATCH 45/48] rt --- .../fr/design/data/tabledata/tabledatapane/DBTableDataPane.java | 1 - 1 file changed, 1 deletion(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index fed22c080d..94f88df8cc 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -153,7 +153,6 @@ public class DBTableDataPane extends AbstractTableDataPane { String[] paramTexts = new String[2]; paramTexts[0] = sqlTextPane.getText(); paramTexts[1] = pageQuery; - String queryText = null; List existParameterList = editorPane.update(); Parameter[] ps = existParameterList == null ? new Parameter[0] : existParameterList.toArray(new Parameter[existParameterList.size()]); From 74f529695de80d2fec5a0fa3993ceb1b41485e39 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Wed, 18 Jan 2017 10:19:00 +0800 Subject: [PATCH 46/48] rt --- .../data/tabledata/tabledatapane/DBTableDataPane.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java index 94f88df8cc..75b3219ebd 100644 --- a/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java +++ b/designer_base/src/com/fr/design/data/tabledata/tabledatapane/DBTableDataPane.java @@ -59,6 +59,8 @@ public class DBTableDataPane extends AbstractTableDataPane { private UICheckBox isShareCheckBox; private MaxMemRowCountPanel maxPanel; private String pageQuery = null; + private DBTableData dbTableData; + public DBTableDataPane() { @@ -210,8 +212,9 @@ public class DBTableDataPane extends AbstractTableDataPane { @Override public void populateBean(DBTableData dbtabledata) { + this.dbTableData = dbtabledata; if (dbTableDataMenuHandler != null) { - dbTableDataMenuHandler.setDBTableData(dbtabledata); + dbTableDataMenuHandler.populate(dbtabledata); } ParameterProvider[] parameters = null; @@ -254,7 +257,6 @@ public class DBTableDataPane extends AbstractTableDataPane { List parameterList = editorPane.update(); Parameter[] parameters = parameterList.toArray(new Parameter[parameterList.size()]); - DBTableData dbTableData = new DBTableData(); dbTableData.setDatabase(new NameDatabaseConnection(dbName)); // p:必须先设置Parameters数组,因为setQuery里面会自动设置的 @@ -266,7 +268,7 @@ public class DBTableDataPane extends AbstractTableDataPane { dbTableData.setMaxMemRowCount(maxPanel.getValue()); dbTableData.setPageQuerySql(this.pageQuery); if (dbTableDataMenuHandler != null) { - dbTableData.setDataQueryProcessor(dbTableDataMenuHandler.getDbTableData().getDataQueryProcessor()); + dbTableDataMenuHandler.update(); } return dbTableData; } From 5a16de43fa8ede11ce2e05662b0781cf96b992c2 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Wed, 18 Jan 2017 10:19:27 +0800 Subject: [PATCH 47/48] rt --- .../src/com/fr/design/fun/DBTableDataMenuHandler.java | 6 ++---- .../fr/design/fun/impl/AbstractDBTableDataMenuHandler.java | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java b/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java index c32bf7e86a..f06b63b712 100644 --- a/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java +++ b/designer_base/src/com/fr/design/fun/DBTableDataMenuHandler.java @@ -14,11 +14,9 @@ public interface DBTableDataMenuHandler extends Immutable { UpdateAction createQueryAction(); - DBTableData getDbTableData(); - - void setDBTableData(DBTableData dbTableData); - + void populate(DBTableData dbTableData); + DBTableData update(); } diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java b/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java index f0a8207f13..dd11712505 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractDBTableDataMenuHandler.java @@ -23,12 +23,12 @@ public abstract class AbstractDBTableDataMenuHandler implements DBTableDataMenuH } @Override - public DBTableData getDbTableData() { + public DBTableData update() { return null; } @Override - public void setDBTableData(DBTableData dbTableData) { + public void populate(DBTableData dbTableData) { } } From ecdb72d4f4aa276443b18bb52e63d206ad0dbb2f Mon Sep 17 00:00:00 2001 From: fanglei <294531121> Date: Wed, 18 Jan 2017 10:31:06 +0800 Subject: [PATCH 48/48] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E7=8B=AC=E8=87=AA?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=B8=A6index=E7=9A=84=E9=80=89=E9=A1=B9?= =?UTF-8?q?=E6=8C=89=E9=92=AE=EF=BC=8C=E8=80=8C=E6=98=AF=E7=BB=A7=E6=89=BF?= =?UTF-8?q?=E8=87=AAUIRadioButton?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../report/mobile/MobileRadioGroupPane.java | 60 ++++++++----------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java index 638abc768c..68446abc97 100644 --- a/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java +++ b/designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java @@ -6,6 +6,7 @@ import com.fr.design.gui.ibutton.UIRadioButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.general.data.index.Index; import com.fr.stable.StringUtils; import javax.swing.*; @@ -19,7 +20,7 @@ import java.util.List; */ public class MobileRadioGroupPane extends BasicBeanPane{ - private List radioButtons = new ArrayList(); + private List radioButtons = new ArrayList(); public MobileRadioGroupPane(String title) { initComponents(title); @@ -30,23 +31,23 @@ public class MobileRadioGroupPane extends BasicBeanPane{ double[] rowSize = {p}; double[] columnSize = {p, p, p, p, p, p}; - RadioButton defaultRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.DEFAULT.description()), MobileFitAttrState.DEFAULT); - defaultRadio.getRadioButton().setSelected(true); - RadioButton horizonRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.HORIZONTAL.description()), MobileFitAttrState.HORIZONTAL); - RadioButton verticalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.VERTICAL.description()), MobileFitAttrState.VERTICAL); - RadioButton bidirectionalRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.BIDIRECTIONAL.description()), MobileFitAttrState.BIDIRECTIONAL); - RadioButton notFitRadio = new RadioButton(new UIRadioButton(MobileFitAttrState.NONE.description()), MobileFitAttrState.NONE); + IndexRadioButton defaultRadio = new IndexRadioButton(MobileFitAttrState.DEFAULT.description(), MobileFitAttrState.DEFAULT); + defaultRadio.setSelected(true); + IndexRadioButton horizonRadio = new IndexRadioButton(MobileFitAttrState.HORIZONTAL.description(), MobileFitAttrState.HORIZONTAL); + IndexRadioButton verticalRadio = new IndexRadioButton(MobileFitAttrState.VERTICAL.description(), MobileFitAttrState.VERTICAL); + IndexRadioButton bidirectionalRadio = new IndexRadioButton(MobileFitAttrState.BIDIRECTIONAL.description(), MobileFitAttrState.BIDIRECTIONAL); + IndexRadioButton notFitRadio = new IndexRadioButton(MobileFitAttrState.NONE.description(), MobileFitAttrState.NONE); addToButtonGroup(defaultRadio, horizonRadio, verticalRadio, notFitRadio, bidirectionalRadio); Component[][] components = new Component[][]{ new Component[] { new UILabel(title), - defaultRadio.getRadioButton(), - horizonRadio.getRadioButton(), - verticalRadio.getRadioButton(), - bidirectionalRadio.getRadioButton(), - notFitRadio.getRadioButton() + defaultRadio, + horizonRadio, + verticalRadio, + bidirectionalRadio, + notFitRadio } }; JPanel fitOpsPane = TableLayoutHelper.createTableLayoutPane(components, rowSize, columnSize); @@ -54,11 +55,11 @@ public class MobileRadioGroupPane extends BasicBeanPane{ this.add(fitOpsPane); } - private void addToButtonGroup(RadioButton... radios) { + private void addToButtonGroup(IndexRadioButton... radios) { ButtonGroup buttonGroup = new ButtonGroup(); - for (RadioButton radio : radios) { + for (IndexRadioButton radio : radios) { radioButtons.add(radio); - buttonGroup.add(radio.getRadioButton()); + buttonGroup.add(radio); } } @@ -66,8 +67,8 @@ public class MobileRadioGroupPane extends BasicBeanPane{ * 设置按钮状态 */ public void setEnabled(boolean enabled) { - for (RadioButton radioButton : radioButtons) { - radioButton.getRadioButton().setEnabled(enabled); + for (IndexRadioButton radioButton : radioButtons) { + radioButton.setEnabled(enabled); } } @@ -78,7 +79,7 @@ public class MobileRadioGroupPane extends BasicBeanPane{ */ public int getSelectRadioIndex() { for (int i = 0, len = radioButtons.size(); i < len; i++) { - if (radioButtons.get(i).getRadioButton().isSelected()) { + if (radioButtons.get(i).isSelected()) { return radioButtons.get(i).getRadioButtonIndex(); } } @@ -94,9 +95,9 @@ public class MobileRadioGroupPane extends BasicBeanPane{ return; } - for (RadioButton radioButton : this.radioButtons) { + for (IndexRadioButton radioButton : this.radioButtons) { if (radioButton.getRadioButtonIndex() == index) { - radioButton.getRadioButton().setSelected(true); + radioButton.setSelected(true); } } } @@ -105,8 +106,8 @@ public class MobileRadioGroupPane extends BasicBeanPane{ * 给所有的按钮加上监听 */ public void addActionListener(ActionListener actionListener) { - for (RadioButton radioButton : radioButtons) { - radioButton.getRadioButton().addActionListener(actionListener); + for (IndexRadioButton radioButton : radioButtons) { + radioButton.addActionListener(actionListener); } } @@ -131,23 +132,14 @@ public class MobileRadioGroupPane extends BasicBeanPane{ * created by fanglei on 2017/1/16 * 不再用radioButtonGroup的数组下标作为index,而是给每个按钮传入MobileFitAttrState的枚举值 */ -class RadioButton { - private UIRadioButton radioButton; +class IndexRadioButton extends UIRadioButton { private int index; - RadioButton(UIRadioButton radioButton, MobileFitAttrState mobileFitAttrState) { - this.radioButton = radioButton; + IndexRadioButton(String text, MobileFitAttrState mobileFitAttrState) { + super(text); this.index = mobileFitAttrState.getState(); } - public UIRadioButton getRadioButton() { - return this.radioButton; - } - - public void setUIReadioButton(UIRadioButton radioButton) { - this.radioButton = radioButton; - } - public int getRadioButtonIndex() { return this.index; }