diff --git a/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java b/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java index 755d9cfaea..361a93b958 100644 --- a/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/AbstractAttrNoScrollPane.java @@ -5,6 +5,7 @@ import com.fr.design.event.GlobalNameListener; import com.fr.design.event.GlobalNameObserver; import com.fr.design.event.UIObserver; import com.fr.design.event.UIObserverListener; +import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; @@ -132,13 +133,19 @@ public abstract class AbstractAttrNoScrollPane extends BasicPane { /** * 返回图标的路径 */ - public abstract String getIconPath(); + public String getIconPath() { + // 默认为空,子类有需要再重写 + return StringUtils.EMPTY; + } /** * 界面标题 * @return 标题 */ - public abstract String title4PopupWindow(); + public String title4PopupWindow() { + // 默认为空,子类有需要再重写 + return StringUtils.EMPTY; + } /** * 设置选中的ID, 用于双击展示界面. diff --git a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java index a8796170e8..3d2c67cdaa 100644 --- a/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java +++ b/designer_form/src/com/fr/design/mainframe/MobileWidgetListPane.java @@ -5,6 +5,7 @@ import com.fr.design.gui.controlpane.UISimpleListControlPane; import com.fr.form.ui.Widget; import com.fr.form.ui.container.WSortLayout; import com.fr.general.NameObject; +import com.fr.stable.ArrayUtils; import com.fr.stable.Nameable; import java.util.ArrayList; @@ -17,12 +18,13 @@ public class MobileWidgetListPane extends UISimpleListControlPane { public static final String LIST_NAME = "Widget_List"; private FormDesigner designer; - private List widgetNameList; - private static final List EMPTY_LIST = new ArrayList(); + private WSortLayout wSortLayout; + private String[] widgetNameList; - public MobileWidgetListPane(FormDesigner designer) { + public MobileWidgetListPane(FormDesigner designer, WSortLayout wSortLayout) { super(); this.designer = designer; + this.wSortLayout = wSortLayout; widgetNameList = getData(); List nameObjectList = new ArrayList(); @@ -41,7 +43,7 @@ public class MobileWidgetListPane extends UISimpleListControlPane { for (Nameable nameable : nameableList) { newMobileWidgetList.add(nameable.getName()); } - ((WSortLayout) designer.getSelectionModel().getSelection().getSelectedCreator().toData()).updateSortedMobileWidgetList(newMobileWidgetList); + wSortLayout.updateSortedMobileWidgetList(newMobileWidgetList); } /** @@ -49,25 +51,21 @@ public class MobileWidgetListPane extends UISimpleListControlPane { * * @return List widgetNameList */ - private List getData() { + private String[] getData() { //选择的控件 XCreator selectedCreator = designer.getSelectionModel().getSelection().getSelectedCreator(); Widget selectedModel = selectedCreator != null ? selectedCreator.toData() : null; - if (selectedModel == null) { - return new ArrayList<>(); + if (selectedModel == null || !selectedModel.acceptType(WSortLayout.class)) { + return ArrayUtils.EMPTY_STRING_ARRAY; } // 选择的控件有两种类型,一种是WLayout,代表容器,一种是Widget,代表控件 - if (selectedModel.acceptType(WSortLayout.class)) { - java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); - List widgetName = new ArrayList(); - for (int i = 0; i < mobileWidgetList.size(); i++) { - widgetName.add(mobileWidgetList.get(i)); - } - return widgetName; - } else { - return EMPTY_LIST; + java.util.List mobileWidgetList = ((WSortLayout) selectedModel).getOrderedMobileWidgetList(); + String[] widgetNames = new String[mobileWidgetList.size()]; + for (int i = 0; i < mobileWidgetList.size(); i++) { + widgetNames[i] = mobileWidgetList.get(i); } + return widgetNames; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java index a9e34f7813..f307152849 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/BodyMobileDefinePane.java @@ -9,8 +9,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.MobileWidgetListPane; import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.ui.container.WSortLayout; import com.fr.general.Inter; -import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; @@ -30,25 +30,6 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { this.bodyCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return new JPanel(); - } - - @Override - public String getIconPath() { - return StringUtils.EMPTY; - } - - @Override - public String title4PopupWindow() { - return StringUtils.EMPTY; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -74,7 +55,7 @@ public class BodyMobileDefinePane extends MobileWidgetDefinePane { // 控件顺序 private UIExpandablePane getMobileWidgetListPane() { - mobileWidgetListPane = new MobileWidgetListPane(designer); + mobileWidgetListPane = new MobileWidgetListPane(designer, (WSortLayout) bodyCreator.toData()); mobileWidgetListPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java index 477ab9aab2..240ddc3261 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java @@ -49,25 +49,6 @@ public class ChartEditorDefinePane extends MobileWidgetDefinePane{ this.xCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return new JPanel(); - } - - @Override - public String getIconPath() { - return StringUtils.EMPTY; - } - - @Override - public String title4PopupWindow() { - return StringUtils.EMPTY; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java index 70c3b94f63..afe9027f02 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ElementCaseDefinePane.java @@ -48,25 +48,6 @@ public class ElementCaseDefinePane extends MobileWidgetDefinePane{ this.xCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return null; - } - - @Override - public String getIconPath() { - return ""; - } - - @Override - public String title4PopupWindow() { - return "ElementCase"; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java index 49d0b59a52..ac4de096a6 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/MobileWidgetDefinePane.java @@ -3,6 +3,8 @@ package com.fr.design.widget.ui.designer.mobile; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.mainframe.FormDesigner; +import javax.swing.*; + /** * 所有移动端需要拓展的属性面板均继承此类 * @@ -23,4 +25,14 @@ public abstract class MobileWidgetDefinePane extends AbstractAttrNoScrollPane{ * 从属性面板把数据传到后台 */ public abstract void update(); + + // 暂不需要此方法 + @Override + protected void initContentPane() {} + + // 暂不需要此方法 + @Override + protected JPanel createContentPane() { + return new JPanel(); + } } diff --git a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java index 55eeddadb4..91c26678f4 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/mobile/ParaMobileDefinePane.java @@ -8,8 +8,8 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.MobileWidgetListPane; import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.form.ui.container.WSortLayout; import com.fr.general.Inter; -import com.fr.stable.StringUtils; import javax.swing.*; import java.awt.*; @@ -27,25 +27,6 @@ public class ParaMobileDefinePane extends MobileWidgetDefinePane { this.paraCreator = xCreator; } - @Override - protected void initContentPane() {} - - @Override - protected JPanel createContentPane() { - return new JPanel(); - } - - @Override - public String getIconPath() { - return StringUtils.EMPTY; - } - - @Override - public String title4PopupWindow() { - return StringUtils.EMPTY; - } - - @Override public void initPropertyGroups(Object source) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); @@ -56,7 +37,7 @@ public class ParaMobileDefinePane extends MobileWidgetDefinePane { // 控件顺序 private UIExpandablePane getMobileWidgetListPane() { - mobileWidgetListPane = new MobileWidgetListPane(designer); + mobileWidgetListPane = new MobileWidgetListPane(designer, (WSortLayout) paraCreator.toData()); mobileWidgetListPane.setBorder(BorderFactory.createEmptyBorder(10, 0, 5, 0)); JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane(); panelWrapper.add(mobileWidgetListPane, BorderLayout.CENTER);