From 1445ce99e009867a9bcd496a54e726bcd3094bc2 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 22 Jan 2018 09:22:10 +0800 Subject: [PATCH 1/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E5=9B=BE=E8=A1=A8=E5=9D=97=E7=9A=84=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E7=AB=AF=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2=3D>?= =?UTF-8?q?=E5=88=9D=E6=AD=A5=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XChartEditor.java | 7 + .../mobile/ChartEditorPropertyUI.java | 38 ++++ .../design/mainframe/WidgetPropertyPane.java | 3 + .../mobile/ChartEditorDefinePane.java | 163 ++++++++++++++++++ 4 files changed, 211 insertions(+) create mode 100644 designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java create mode 100644 designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index 260697355d..8a491e32d4 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -10,6 +10,9 @@ import com.fr.base.chart.BaseChartCollection; import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; +import com.fr.design.designer.properties.mobile.ChartEditorPropertyUI; +import com.fr.design.designer.properties.mobile.ElementCasePropertyUI; +import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.gui.chart.BaseChartPropertyPane; import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.mainframe.*; @@ -278,4 +281,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator { initStyle(); } + @Override + public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() { + return new WidgetPropertyUIProvider[]{ new ChartEditorPropertyUI(this)}; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java b/designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java new file mode 100644 index 0000000000..320f51b319 --- /dev/null +++ b/designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java @@ -0,0 +1,38 @@ +package com.fr.design.designer.properties.mobile; + +import com.fr.design.designer.creator.XChartEditor; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XElementCase; +import com.fr.design.dialog.BasicPane; +import com.fr.design.fun.impl.AbstractWidgetPropertyUIProvider; +import com.fr.design.gui.itable.AbstractPropertyTable; +import com.fr.design.widget.ui.designer.mobile.ChartEditorDefinePane; +import com.fr.design.widget.ui.designer.mobile.ElementCaseDefinePane; +import com.fr.general.Inter; + +/** + * Created by plough on 2018/1/18. + */ +public class ChartEditorPropertyUI extends AbstractWidgetPropertyUIProvider { + + private XCreator xCreator; + + public ChartEditorPropertyUI(XChartEditor xChartEditor) { + this.xCreator = xChartEditor; + } + + @Override + public AbstractPropertyTable createWidgetAttrTable() { + return null; + } + + @Override + public BasicPane createWidgetAttrPane() { + return new ChartEditorDefinePane(xCreator); + } + + @Override + public String tableTitle() { + return Inter.getLocText("FR-Designer_Mobile-Attr"); + } +} diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index 75a1bed357..eda8dcd917 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -35,6 +35,8 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope private static final String PARA = "para"; private static final String BODY = "body"; + private static final int PADDING = 10; + private static final int PADDING_M = 12; private FormWidgetCardPane formWidgetCardPane; // 控件的属性表 private EventPropertyTable eventTable; // 控件的事件表 private List widgetPropertyTables; // 这个变量应该是保存控件拓展的属性tab @@ -224,6 +226,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope for (WidgetPropertyUIProvider widgetAttrProvider : widgetAttrProviders) { MobileWidgetDefinePane extraPane = (MobileWidgetDefinePane) widgetAttrProvider.createWidgetAttrPane(); if (extraPane != null) { + extraPane.setBorder(BorderFactory.createEmptyBorder(PADDING, PADDING, PADDING, PADDING_M)); mobileExtraPropertyPanes.add(extraPane); wsp.add(extraPane); } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java new file mode 100644 index 0000000000..492a2c62c4 --- /dev/null +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -0,0 +1,163 @@ +package com.fr.design.widget.ui.designer.mobile; + +import com.fr.base.mobile.ChartMobileFitAttrState; +import com.fr.base.mobile.MobileFitAttrState; +import com.fr.design.constants.LayoutConstants; +import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.properties.items.Item; +import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.frpane.AttributeChangeListener; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.icombobox.UIComboBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.ispinner.UISpinner; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.FormDesigner; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.ui.ChartEditor; +import com.fr.form.ui.ElementCaseEditor; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.*; + +/** + * Created by plough on 2018/1/18. + */ +public class ChartEditorDefinePane extends MobileWidgetDefinePane{ + private static final Item[] ITEMS = { + new Item(ChartMobileFitAttrState.AUTO.description(), ChartMobileFitAttrState.AUTO), + new Item(ChartMobileFitAttrState.AREA.description(), ChartMobileFitAttrState.AREA), + new Item(ChartMobileFitAttrState.GEOMETRIC.description(), ChartMobileFitAttrState.GEOMETRIC) + }; + + private XCreator xCreator; // 当前选中控件的xCreator + private FormDesigner designer; // 当前设计器 +// private UIComboBox hComboBox; // 横屏下拉框 + private UIComboBox vComboBox;// 竖屏下拉框 +// private UICheckBox heightRestrictCheckBox; // 手机显示限制高度复选框 + private UILabel maxHeightLabel; + private UISpinner maxHeightSpinner; // 最大高度Spinner + private AttributeChangeListener changeListener; + + public ChartEditorDefinePane (XCreator xCreator) { + this.xCreator = xCreator; + } + + @Override + protected void initContentPane() {} + + @Override + protected JPanel createContentPane() { + return null; + } + + @Override + public String getIconPath() { + return ""; + } + + @Override + public String title4PopupWindow() { + return "ChartEditor"; + } + + + @Override + public void initPropertyGroups(Object source) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); +// this.hComboBox = new UIComboBox(ITEMS); + this.vComboBox = new UIComboBox(ITEMS); +// this.heightRestrictCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Mobile-Height-Limit")); + this.maxHeightLabel = new UILabel(Inter.getLocText("FR-Designer_Mobile-Height-Percent"), SwingConstants.LEFT); + this.maxHeightSpinner = new UISpinner(0, 1, 0.01, 0.75); + maxHeightSpinner.setVisible(false); + maxHeightLabel.setVisible(false); + + Component[][] components = new Component[][]{ + new Component[] {new UILabel("放大逻辑", SwingConstants.LEFT), new UILabel("等比例自适应")}, + new Component[] {new UILabel("缩小逻辑", SwingConstants.LEFT), vComboBox}, + new Component[] {new UILabel("提示:系统根据模版自动匹配缩小逻辑"), null}, + new Component[] {maxHeightLabel, maxHeightSpinner} + }; + double f = TableLayout.FILL; + double p = TableLayout.PREFERRED; + double[] rowSize = {p, p, p, p}; + double[] columnSize = {p,f}; + int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}}; + final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 30, LayoutConstants.VGAP_LARGE); + panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); + final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); + panelWrapper.add(panel, BorderLayout.NORTH); + UIExpandablePane folderPane = new UIExpandablePane("图表自适应", 280, 20, panelWrapper); + this.add(folderPane, BorderLayout.NORTH); + this.bingListeners2Widgets(); + this.setGlobalNames(); + this.repaint(); + } + + private void bingListeners2Widgets() { + reInitAllListeners(); + this.changeListener = new AttributeChangeListener() { + @Override + public void attributeChange() { + update(); + } + }; + } + + /** + * 后台初始化所有事件. + */ + private void reInitAllListeners() { + initListener(this); + } + + @Override + public void populate(FormDesigner designer) { +// this.designer = designer; +// this.addAttributeChangeListener(changeListener); +// ChartEditor elementCaseEditor = (ChartEditor)xCreator.toData(); +// this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr())); +// this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr())); +// this.heightRestrictCheckBox.setSelected(elementCaseEditor.isHeightRestrict()); +// this.maxHeightLabel.setVisible(); +// this.maxHeightSpinner.setVisible(elementCaseEditor.isHeightRestrict()); +// this.maxHeightSpinner.setValue(elementCaseEditor.getHeightPercent()); + } + + @Override + public void update() { +// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 +// String globalName = this.getGlobalName(); +// switch (globalName) { +// case "hComboBox": +//// ((ChartEditor)xCreator.toData()).setHorziontalAttr(((MobileFitAttrState)((Item)hComboBox.getSelectedItem()).getValue())); +// break; +// case "vComboBox": +//// ((ChartEditor)xCreator.toData()).setVerticalAttr(((MobileFitAttrState)((Item)vComboBox.getSelectedItem()).getValue())); +// break; +// case "heightRestrictCheckBox": +// boolean isHeightRestrict = heightRestrictCheckBox.isSelected(); +//// ((ChartEditor)xCreator.toData()).setHeightRestrict(isHeightRestrict); +// maxHeightSpinner.setVisible(isHeightRestrict); +// maxHeightLabel.setVisible(isHeightRestrict); +// break; +// case "maxHeightSpinner": +//// ((ChartEditor)xCreator.toData()).setHeightPercent(maxHeightSpinner.getValue()); +// break; +// } + } + + private void setGlobalNames() { +// this.hComboBox.setGlobalName("hComboBox"); +// this.vComboBox.setGlobalName("vComboBox"); +// this.heightRestrictCheckBox.setGlobalName("heightRestrictCheckBox"); +// this.maxHeightSpinner.setGlobalName("maxHeightSpinner"); + } + +} From 360d5c8cbf170d68259cf20f9ed5e39dd89a4f0d Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 24 Jan 2018 14:18:54 +0800 Subject: [PATCH 2/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=20=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E9=80=BB=E8=BE=91=3D>=E5=9B=BE=E8=A1=A8=E5=9D=97=E7=9A=84?= =?UTF-8?q?=E7=A7=BB=20=E5=8A=A8=E7=AB=AF=E8=AE=BE=E7=BD=AE=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=3D>=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/chart/mobile/ChartMobileAttr.java | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java diff --git a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java new file mode 100644 index 0000000000..6fc187243a --- /dev/null +++ b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java @@ -0,0 +1,76 @@ +package com.fr.design.chart.mobile; + +import com.fr.base.mobile.ChartMobileAttrProvider; +import com.fr.base.mobile.ChartMobileFitAttrState; +import com.fr.base.mobile.ChartMobileFitAttrStateProvider; +import com.fr.json.JSONException; +import com.fr.json.JSONObject; +import com.fr.stable.xml.XMLPrintWriter; +import com.fr.stable.xml.XMLableReader; + +/** + * 当前图表块在移动端的一些属性 + * Created by plough on 2018/1/23. + */ +public class ChartMobileAttr implements ChartMobileAttrProvider { + + public static final String XML_TAG = "ChartMobileAttr"; + // 缩小逻辑属性 + private ChartMobileFitAttrState zoomOutAttr; + // 放大逻辑属性 + private ChartMobileFitAttrState zoomInAttr; + + @Override + public ChartMobileFitAttrStateProvider getZoomOutAttr() { + return zoomOutAttr; + } + + @Override + public void setZoomOutAttr(ChartMobileFitAttrStateProvider zoomOutAttr) { + this.zoomOutAttr = (ChartMobileFitAttrState) zoomOutAttr; + } + + @Override + public ChartMobileFitAttrStateProvider getZoomInAttr() { + return zoomInAttr; + } + + @Override + public void setZoomInAttr(ChartMobileFitAttrStateProvider zoomInAttr) { + this.zoomInAttr = (ChartMobileFitAttrState) zoomInAttr; + } + + @Override + public boolean isAdaptive() { + // TODO: body 是否开启手机重布局 + return true; + } + + @Override + public void createJSONConfig(JSONObject jo) throws JSONException { + jo.put("zoomOutFit", this.zoomOutAttr.getState()); + jo.put("zoomInFit", this.zoomInAttr.getState()); + } + + @Override + public void readXML(XMLableReader reader) { + int defaultIndex = ChartMobileFitAttrState.AUTO.getState(); + int zoomOutIndex = reader.getAttrAsInt("zoomOut", defaultIndex); + int zoomInIndex = reader.getAttrAsInt("zoomIn", defaultIndex); + this.zoomOutAttr = ChartMobileFitAttrState.parse(zoomOutIndex); + this.zoomInAttr = ChartMobileFitAttrState.parse(zoomInIndex); + } + + @Override + public void writeXML(XMLPrintWriter writer) { + writer.startTAG(ChartMobileAttrProvider.XML_TAG) + .attr("zoomOut", this.zoomOutAttr.getState()) + .attr("zoomIn", this.zoomInAttr.getState()) + .end(); + } + + @Override + public Object clone() throws CloneNotSupportedException { + return super.clone(); + } +} From a9747b0fd7ac3a5c26cbae7ae07b9c1cf5f2a380 Mon Sep 17 00:00:00 2001 From: plough Date: Wed, 24 Jan 2018 15:30:19 +0800 Subject: [PATCH 3/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E4=B8=8Ebody=E7=9A=84=E2=80=9C=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E9=87=8D=E5=B8=83=E5=B1=80=E2=80=9D=E9=80=89=E9=A1=B9=E8=81=94?= =?UTF-8?q?=E5=8A=A8=EF=BC=8C=E5=8E=BB=E5=8B=BE=E9=80=89=E6=97=B6=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 1 + .../design/locale/designer_en_US.properties | 1 + .../design/locale/designer_ja_JP.properties | 1 + .../design/locale/designer_ko_KR.properties | 1 + .../design/locale/designer_zh_CN.properties | 1 + .../design/locale/designer_zh_TW.properties | 1 + .../design/chart/mobile/ChartMobileAttr.java | 2 +- .../mobile/ChartEditorDefinePane.java | 38 +++++++++++++------ 8 files changed, 34 insertions(+), 12 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 101044661a..41f4102821 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -2182,3 +2182,4 @@ FR-Designer_Joption_News=news FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index b10d9809be..2ae12739ea 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -2181,3 +2181,4 @@ FR-Designer_Joption_News=news FR-Designer_Zoom_In_Logic=zoom in logic FR-Designer_Zoom_Out_Logic=zoom out logic FR-Designer_Chart_Adaptivity=chart adaptivity +FR-Designer_Tip_Chart_Adaptivity_Unavailable=Hint: since the mobile relayout option is not checked, chart adaptivity settings are not available diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index 63a17b1035..dd7bc51044 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -2179,3 +2179,4 @@ FR-Designer_Joption_News=\u30CB\u30E5\u30FC\u30B9 FR-Designer_Zoom_In_Logic= FR-Designer_Zoom_Out_Logic= FR-Designer_Chart_Adaptivity= +FR-Designer_Tip_Chart_Adaptivity_Unavailable= diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index 379730f5cc..832f4612c1 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -2180,3 +2180,4 @@ FR-Designer_Joption_News=\uC18C\uC2DD FR-Designer_Zoom_In_Logic= FR-Designer_Zoom_Out_Logic= FR-Designer_Chart_Adaptivity= +FR-Designer_Tip_Chart_Adaptivity_Unavailable= diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index 30fc31f9c1..855132f2bf 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -2182,3 +2182,4 @@ FR-Designer_Joption_News=\u6D88\u606F FR-Designer_Zoom_In_Logic=\u653E\u5927\u903B\u8F91 FR-Designer_Zoom_Out_Logic=\u7F29\u5C0F\u903B\u8F91 FR-Designer_Chart_Adaptivity=\u56FE\u8868\u81EA\u9002\u5E94 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9009\u624B\u673A\u91CD\u5E03\u5C40\u72B6\u6001\u4E0B\uFF0C\u4E0D\u652F\u6301\u56FE\u8868\u81EA\u9002\u5E94 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index c1659808e9..4a555d5fde 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -2181,3 +2181,4 @@ FR-Designer_Joption_News=\u6D88\u606F FR-Designer_Zoom_In_Logic=\u653E\u5927\u908F\u8F2F FR-Designer_Zoom_Out_Logic=\u7E2E\u5C0F\u908F\u8F2F FR-Designer_Chart_Adaptivity=\u5716\u8868\u81EA\u6211\u8ABF\u6574 +FR-Designer_Tip_Chart_Adaptivity_Unavailable=\u63D0\u793A\uFF1Abody\u672A\u52FE\u9078\u624B\u6A5F\u91CD\u4F48\u5C40\u72C0\u614B\u4E0B\uFF0C\u4E0D\u652F\u6301\u5716\u8868\u81EA\u6211\u8ABF\u6574 diff --git a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java index 6fc187243a..34aeb393af 100644 --- a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java +++ b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java @@ -42,7 +42,7 @@ public class ChartMobileAttr implements ChartMobileAttrProvider { @Override public boolean isAdaptive() { - // TODO: body 是否开启手机重布局 + // TODO: body 是否开启手机重布局。需要解决模块间依赖问题。这个方法暂时没用,等功能做好之后,再考虑是否去掉 return true; } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index eb4b1305d8..8730deec02 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -15,6 +15,7 @@ import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; import com.fr.form.ui.ChartEditor; +import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; import javax.swing.*; @@ -35,8 +36,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private XCreator xCreator; // 当前选中控件的xCreator private FormDesigner designer; // 当前设计器 private UIComboBox zoomOutComboBox;// 缩小逻辑下拉框 - private UILabel maxHeightLabel; - private UISpinner maxHeightSpinner; // 最大高度Spinner private AttributeChangeListener changeListener; private UILabel tipLabel; @@ -67,7 +66,28 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); -// this.hComboBox = new UIComboBox(ITEMS); + + if (((WFitLayout)designer.getRootComponent().toData()).isAppRelayout()) { // 如果开启了手机重布局 + this.add(getMobileSettingsPane(), BorderLayout.NORTH); + this.bingListeners2Widgets(); + this.setGlobalNames(); + } else { + this.add(getUnavailableTipPane(), BorderLayout.NORTH); + } + + this.repaint(); + } + + private JPanel getUnavailableTipPane() { + JPanel panel = new JPanel(new BorderLayout()); + UILabel unavailableTipLabel = new UILabel(); + unavailableTipLabel.setText("" + Inter.getLocText("FR-Designer_Tip_Chart_Adaptivity_Unavailable") + ""); + unavailableTipLabel.setForeground(Color.gray); + panel.add(unavailableTipLabel, BorderLayout.NORTH); + return panel; + } + + private UIExpandablePane getMobileSettingsPane() { this.zoomOutComboBox = new UIComboBox(ITEMS); this.zoomOutComboBox.addItemListener(new ItemListener() { @Override @@ -95,11 +115,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(panel, BorderLayout.NORTH); - UIExpandablePane folderPane = new UIExpandablePane(Inter.getLocText("FR-Designer_Chart_Adaptivity"), 280, 20, panelWrapper); - this.add(folderPane, BorderLayout.NORTH); - this.bingListeners2Widgets(); - this.setGlobalNames(); - this.repaint(); + return new UIExpandablePane(Inter.getLocText("FR-Designer_Chart_Adaptivity"), 280, 20, panelWrapper); } private void updateTipLabel() { @@ -127,9 +143,9 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void populate(FormDesigner designer) { - this.designer = designer; - this.addAttributeChangeListener(changeListener); - ChartEditor chartEditor = (ChartEditor)xCreator.toData(); +// this.designer = designer; +// this.addAttributeChangeListener(changeListener); +// ChartEditor chartEditor = (ChartEditor)xCreator.toData(); // this.zoomOutComboBox.setSelectedIndex(0); // this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr())); // this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr())); From f96f509f4abed57576a1c470f3bc66d140232780 Mon Sep 17 00:00:00 2001 From: plough Date: Sun, 28 Jan 2018 21:16:06 +0800 Subject: [PATCH 4/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=8F=AF=E5=AD=98?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/chart/mobile/ChartMobileAttr.java | 76 ------------------ .../mobile/ChartEditorDefinePane.java | 77 ++++++++----------- 2 files changed, 30 insertions(+), 123 deletions(-) delete mode 100644 designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java diff --git a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java b/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java deleted file mode 100644 index 34aeb393af..0000000000 --- a/designer_chart/src/com/fr/design/chart/mobile/ChartMobileAttr.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.fr.design.chart.mobile; - -import com.fr.base.mobile.ChartMobileAttrProvider; -import com.fr.base.mobile.ChartMobileFitAttrState; -import com.fr.base.mobile.ChartMobileFitAttrStateProvider; -import com.fr.json.JSONException; -import com.fr.json.JSONObject; -import com.fr.stable.xml.XMLPrintWriter; -import com.fr.stable.xml.XMLableReader; - -/** - * 当前图表块在移动端的一些属性 - * Created by plough on 2018/1/23. - */ -public class ChartMobileAttr implements ChartMobileAttrProvider { - - public static final String XML_TAG = "ChartMobileAttr"; - // 缩小逻辑属性 - private ChartMobileFitAttrState zoomOutAttr; - // 放大逻辑属性 - private ChartMobileFitAttrState zoomInAttr; - - @Override - public ChartMobileFitAttrStateProvider getZoomOutAttr() { - return zoomOutAttr; - } - - @Override - public void setZoomOutAttr(ChartMobileFitAttrStateProvider zoomOutAttr) { - this.zoomOutAttr = (ChartMobileFitAttrState) zoomOutAttr; - } - - @Override - public ChartMobileFitAttrStateProvider getZoomInAttr() { - return zoomInAttr; - } - - @Override - public void setZoomInAttr(ChartMobileFitAttrStateProvider zoomInAttr) { - this.zoomInAttr = (ChartMobileFitAttrState) zoomInAttr; - } - - @Override - public boolean isAdaptive() { - // TODO: body 是否开启手机重布局。需要解决模块间依赖问题。这个方法暂时没用,等功能做好之后,再考虑是否去掉 - return true; - } - - @Override - public void createJSONConfig(JSONObject jo) throws JSONException { - jo.put("zoomOutFit", this.zoomOutAttr.getState()); - jo.put("zoomInFit", this.zoomInAttr.getState()); - } - - @Override - public void readXML(XMLableReader reader) { - int defaultIndex = ChartMobileFitAttrState.AUTO.getState(); - int zoomOutIndex = reader.getAttrAsInt("zoomOut", defaultIndex); - int zoomInIndex = reader.getAttrAsInt("zoomIn", defaultIndex); - this.zoomOutAttr = ChartMobileFitAttrState.parse(zoomOutIndex); - this.zoomInAttr = ChartMobileFitAttrState.parse(zoomInIndex); - } - - @Override - public void writeXML(XMLPrintWriter writer) { - writer.startTAG(ChartMobileAttrProvider.XML_TAG) - .attr("zoomOut", this.zoomOutAttr.getState()) - .attr("zoomIn", this.zoomInAttr.getState()) - .end(); - } - - @Override - public Object clone() throws CloneNotSupportedException { - return super.clone(); - } -} diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 8730deec02..232d0bc1b7 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -1,6 +1,7 @@ package com.fr.design.widget.ui.designer.mobile; import com.fr.base.mobile.ChartMobileFitAttrState; +import com.fr.base.mobile.ChartMobileFitAttrStateProvider; import com.fr.design.constants.LayoutConstants; import com.fr.design.designer.creator.XCreator; import com.fr.design.designer.properties.items.Item; @@ -8,13 +9,13 @@ import com.fr.design.foldablepane.UIExpandablePane; import com.fr.design.gui.frpane.AttributeChangeListener; import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; -import com.fr.design.gui.ispinner.UISpinner; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; -import com.fr.form.ui.ChartEditor; +import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; @@ -38,6 +39,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private UIComboBox zoomOutComboBox;// 缩小逻辑下拉框 private AttributeChangeListener changeListener; private UILabel tipLabel; + private boolean isPopulating = false; public ChartEditorDefinePane (XCreator xCreator) { this.xCreator = xCreator; @@ -70,7 +72,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ if (((WFitLayout)designer.getRootComponent().toData()).isAppRelayout()) { // 如果开启了手机重布局 this.add(getMobileSettingsPane(), BorderLayout.NORTH); this.bingListeners2Widgets(); - this.setGlobalNames(); + this.addAttributeChangeListener(changeListener); } else { this.add(getUnavailableTipPane(), BorderLayout.NORTH); } @@ -88,13 +90,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ } private UIExpandablePane getMobileSettingsPane() { - this.zoomOutComboBox = new UIComboBox(ITEMS); - this.zoomOutComboBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - updateTipLabel(); - } - }); + initZoomOutComboBox(); tipLabel = new UILabel(); tipLabel.setForeground(Color.gray); @@ -115,9 +111,26 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0)); final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(panel, BorderLayout.NORTH); + return new UIExpandablePane(Inter.getLocText("FR-Designer_Chart_Adaptivity"), 280, 20, panelWrapper); } + private void initZoomOutComboBox() { + this.zoomOutComboBox = new UIComboBox(ITEMS); + + BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); + ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); + this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); + + this.zoomOutComboBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + updateTipLabel(); + } + }); + } + + private void updateTipLabel() { ChartMobileFitAttrState fitAttrState = (ChartMobileFitAttrState) ((Item)zoomOutComboBox.getSelectedItem()).getValue(); // 使用 html,可以自动换行 @@ -129,6 +142,9 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.changeListener = new AttributeChangeListener() { @Override public void attributeChange() { + if (isPopulating) { + return; + } update(); } }; @@ -143,46 +159,13 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void populate(FormDesigner designer) { -// this.designer = designer; -// this.addAttributeChangeListener(changeListener); -// ChartEditor chartEditor = (ChartEditor)xCreator.toData(); -// this.zoomOutComboBox.setSelectedIndex(0); -// this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr())); -// this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr())); -// this.heightRestrictCheckBox.setSelected(elementCaseEditor.isHeightRestrict()); -// this.maxHeightLabel.setVisible(); -// this.maxHeightSpinner.setVisible(elementCaseEditor.isHeightRestrict()); -// this.maxHeightSpinner.setValue(elementCaseEditor.getHeightPercent()); + // 感觉 populate 方法没啥用。可以直接在 initPropertyGroups 中更新界面 } @Override public void update() { -// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 -// String globalName = this.getGlobalName(); -// switch (globalName) { -// case "hComboBox": -//// ((ChartEditor)xCreator.toData()).setHorziontalAttr(((MobileFitAttrState)((Item)hComboBox.getSelectedItem()).getValue())); -// break; -// case "vComboBox": -//// ((ChartEditor)xCreator.toData()).setVerticalAttr(((MobileFitAttrState)((Item)vComboBox.getSelectedItem()).getValue())); -// break; -// case "heightRestrictCheckBox": -// boolean isHeightRestrict = heightRestrictCheckBox.isSelected(); -//// ((ChartEditor)xCreator.toData()).setHeightRestrict(isHeightRestrict); -// maxHeightSpinner.setVisible(isHeightRestrict); -// maxHeightLabel.setVisible(isHeightRestrict); -// break; -// case "maxHeightSpinner": -//// ((ChartEditor)xCreator.toData()).setHeightPercent(maxHeightSpinner.getValue()); -// break; -// } + ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomInAttr(ChartMobileFitAttrState.PROPORTION); + ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); + DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 } - - private void setGlobalNames() { -// this.hComboBox.setGlobalName("hComboBox"); -// this.vComboBox.setGlobalName("vComboBox"); -// this.heightRestrictCheckBox.setGlobalName("heightRestrictCheckBox"); -// this.maxHeightSpinner.setGlobalName("maxHeightSpinner"); - } - } From ec5c5dd499afa6284b2297cdad8b7ffc8d30ebbf Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 09:26:32 +0800 Subject: [PATCH 5/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=20=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8?= =?UTF-8?q?=E5=9D=97=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94?= =?UTF-8?q?=E9=80=BB=E8=BE=91=3D>=E5=8A=9F=E8=83=BD=E5=9F=8B=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mobile/ChartEditorDefinePane.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 232d0bc1b7..5517f27f92 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -15,9 +15,12 @@ import com.fr.design.layout.TableLayoutHelper; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.FormFunctionProcessor; import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; +import com.fr.plugin.ExtraClassManager; +import com.fr.stable.fun.FunctionProcessor; import javax.swing.*; import java.awt.*; @@ -39,7 +42,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private UIComboBox zoomOutComboBox;// 缩小逻辑下拉框 private AttributeChangeListener changeListener; private UILabel tipLabel; - private boolean isPopulating = false; public ChartEditorDefinePane (XCreator xCreator) { this.xCreator = xCreator; @@ -125,7 +127,19 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.zoomOutComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { + // 只响应选中事件 + if (e.getStateChange() != ItemEvent.SELECTED) { + return; + } updateTipLabel(); + ChartMobileFitAttrState selectedAttr = (ChartMobileFitAttrState)((Item)e.getItem()).getValue(); + if (selectedAttr.getState() != ChartMobileFitAttrState.AUTO.getState()) { + // 功能埋点 + FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); + if (processor != null) { + processor.recordFunction(FormFunctionProcessor.MOBILE_CHART_ADAPTIVITY); + } + } } }); } @@ -142,9 +156,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.changeListener = new AttributeChangeListener() { @Override public void attributeChange() { - if (isPopulating) { - return; - } update(); } }; From b8b22da030c091ed302dcfabf862e1d91b29a526 Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 14:09:12 +0800 Subject: [PATCH 6/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/designer/mobile/ChartEditorDefinePane.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 5517f27f92..f33fd3a43e 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -1,5 +1,6 @@ package com.fr.design.widget.ui.designer.mobile; +import com.fr.base.mobile.ChartMobileAttrProvider; import com.fr.base.mobile.ChartMobileFitAttrState; import com.fr.base.mobile.ChartMobileFitAttrStateProvider; import com.fr.design.constants.LayoutConstants; @@ -20,7 +21,9 @@ import com.fr.form.ui.BaseChartEditor; import com.fr.form.ui.container.WFitLayout; import com.fr.general.Inter; import com.fr.plugin.ExtraClassManager; +import com.fr.stable.StringUtils; import com.fr.stable.fun.FunctionProcessor; +import com.fr.third.org.apache.poi.util.StringUtil; import javax.swing.*; import java.awt.*; @@ -52,7 +55,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override protected JPanel createContentPane() { - return null; + return new JPanel(); } @Override @@ -62,7 +65,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public String title4PopupWindow() { - return "ChartEditor"; + return StringUtils.EMPTY; } @@ -175,8 +178,9 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void update() { - ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomInAttr(ChartMobileFitAttrState.PROPORTION); - ((BaseChartEditor)xCreator.toData()).getMobileAttr().setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); + ChartMobileAttrProvider mobileAttr = ((BaseChartEditor)xCreator.toData()).getMobileAttr(); + mobileAttr.setZoomInAttr(ChartMobileFitAttrState.PROPORTION); + mobileAttr.setZoomOutAttr((ChartMobileFitAttrState)((Item)zoomOutComboBox.getSelectedItem()).getValue()); DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来 } } From 59b23599b543b4de4aa1b38e7b197d5fb63377cf Mon Sep 17 00:00:00 2001 From: plough Date: Mon, 29 Jan 2018 15:15:30 +0800 Subject: [PATCH 7/7] =?UTF-8?q?MOBILE-6341=20=E3=80=909.2=E3=80=91FR9.0?= =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E5=99=A8=E6=94=AF=E6=8C=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=86=B3=E7=AD=96=E6=8A=A5=E8=A1=A8=E5=9B=BE=E8=A1=A8=E5=9D=97?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=87=AA=E9=80=82=E5=BA=94=E9=80=BB?= =?UTF-8?q?=E8=BE=91=3D>=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/mainframe/WidgetPropertyPane.java | 1 + .../mobile/ChartEditorDefinePane.java | 75 ++++++++++--------- 2 files changed, 40 insertions(+), 36 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java index eda8dcd917..cb528ddfad 100644 --- a/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java +++ b/designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java @@ -124,6 +124,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope if (mobileExtraPropertyPanes != null) { for (MobileWidgetDefinePane extraPane : mobileExtraPropertyPanes) { extraPane.initPropertyGroups(designer); + extraPane.populate(designer); } } if (widgetPropertyTables != null) { diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index f33fd3a43e..477ab9aab2 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -23,7 +23,6 @@ import com.fr.general.Inter; import com.fr.plugin.ExtraClassManager; import com.fr.stable.StringUtils; import com.fr.stable.fun.FunctionProcessor; -import com.fr.third.org.apache.poi.util.StringUtil; import javax.swing.*; import java.awt.*; @@ -60,7 +59,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public String getIconPath() { - return ""; + return StringUtils.EMPTY; } @Override @@ -73,18 +72,15 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); - - if (((WFitLayout)designer.getRootComponent().toData()).isAppRelayout()) { // 如果开启了手机重布局 - this.add(getMobileSettingsPane(), BorderLayout.NORTH); - this.bingListeners2Widgets(); - this.addAttributeChangeListener(changeListener); - } else { - this.add(getUnavailableTipPane(), BorderLayout.NORTH); - } - + this.add(isAppRelayout() ? getMobileSettingsPane() : getUnavailableTipPane(), BorderLayout.NORTH); this.repaint(); } + // body是否开启手机重布局 + private boolean isAppRelayout() { + return ((WFitLayout)designer.getRootComponent().toData()).isAppRelayout(); + } + private JPanel getUnavailableTipPane() { JPanel panel = new JPanel(new BorderLayout()); UILabel unavailableTipLabel = new UILabel(); @@ -122,29 +118,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ private void initZoomOutComboBox() { this.zoomOutComboBox = new UIComboBox(ITEMS); - - BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); - ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); - this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); - - this.zoomOutComboBox.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - // 只响应选中事件 - if (e.getStateChange() != ItemEvent.SELECTED) { - return; - } - updateTipLabel(); - ChartMobileFitAttrState selectedAttr = (ChartMobileFitAttrState)((Item)e.getItem()).getValue(); - if (selectedAttr.getState() != ChartMobileFitAttrState.AUTO.getState()) { - // 功能埋点 - FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); - if (processor != null) { - processor.recordFunction(FormFunctionProcessor.MOBILE_CHART_ADAPTIVITY); - } - } - } - }); } @@ -154,7 +127,7 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ tipLabel.setText("" + fitAttrState.tip() + ""); } - private void bingListeners2Widgets() { + private void bindListeners2Widgets() { reInitAllListeners(); this.changeListener = new AttributeChangeListener() { @Override @@ -173,7 +146,37 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ @Override public void populate(FormDesigner designer) { - // 感觉 populate 方法没啥用。可以直接在 initPropertyGroups 中更新界面 + this.designer = designer; + + if (!isAppRelayout()) { + return; + } + + BaseChartEditor chartEditor = (BaseChartEditor)xCreator.toData(); + ChartMobileFitAttrStateProvider zoomOutAttr = chartEditor.getMobileAttr().getZoomOutAttr(); + this.zoomOutComboBox.setSelectedItem(new Item(zoomOutAttr.description(), zoomOutAttr)); + + // 数据 populate 完成后,再设置监听 + this.bindListeners2Widgets(); + this.zoomOutComboBox.addItemListener(new ItemListener() { + @Override + public void itemStateChanged(ItemEvent e) { + // 只响应选中事件 + if (e.getStateChange() != ItemEvent.SELECTED) { + return; + } + updateTipLabel(); + ChartMobileFitAttrState selectedAttr = (ChartMobileFitAttrState)((Item)e.getItem()).getValue(); + if (selectedAttr.getState() != ChartMobileFitAttrState.AUTO.getState()) { + // 功能埋点 + FunctionProcessor processor = ExtraClassManager.getInstance().getFunctionProcessor(); + if (processor != null) { + processor.recordFunction(FormFunctionProcessor.MOBILE_CHART_ADAPTIVITY); + } + } + } + }); + this.addAttributeChangeListener(changeListener); } @Override