Browse Source

Pull request #5930: REPORT-58525 布局的管理和应用

Merge in DESIGN/design from ~FANGLEI/design10.0:feature/x to feature/x

* commit '98fee785ceed321579df4890bdfabba608a4e29f':
  REPORT-58525  将打开内置布局模板所用的NewForm对象换成BaseForm对象,删除内置布局模板里面的NewFormAttrMark标识
  REPORT-58525 解决pr中的问题
  REPORT-58525 更新设计切图
  REPORT-58525 布局的管理和应用
research/11.0
kerry 3 years ago
parent
commit
ae431461ce
  1. 19
      designer-base/src/main/java/com/fr/design/border/UITitledBorder.java
  2. 32
      designer-base/src/main/java/com/fr/design/border/UITitledMatteBorder.java
  3. 1
      designer-base/src/main/java/com/fr/file/FILEChooserPane.java
  4. 10
      designer-form/src/main/java/com/fr/design/actions/NewFormAction.java
  5. 35
      designer-form/src/main/java/com/fr/design/designer/beans/PredefinedLayout.java
  6. 57
      designer-form/src/main/java/com/fr/design/designer/beans/models/NewFormModel.java
  7. 6
      designer-form/src/main/java/com/fr/design/fit/NewJForm.java
  8. 21
      designer-form/src/main/java/com/fr/design/mainframe/JForm.java
  9. 36
      designer-form/src/main/java/com/fr/design/widget/ui/designer/EmptyLayoutPane.java
  10. 282
      designer-form/src/main/java/com/fr/design/widget/ui/designer/NewFormPane.java
  11. 117
      designer-form/src/main/java/com/fr/design/widget/ui/designer/PredefinedLayoutPane.java
  12. BIN
      designer-form/src/main/resources/com/fr/design/form/images/new_form.png
  13. 100
      designer-form/src/main/resources/com/fr/design/form/layouts/config.json
  14. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_1.png
  15. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_10.png
  16. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_11.png
  17. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_12.png
  18. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_13.png
  19. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_14.png
  20. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_15.png
  21. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_16.png
  22. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_17.png
  23. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_18.png
  24. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_2.png
  25. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_3.png
  26. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_4.png
  27. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_5.png
  28. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_6.png
  29. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_7.png
  30. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_8.png
  31. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_9.png
  32. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_1.png
  33. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_10.png
  34. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_11.png
  35. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_12.png
  36. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_13.png
  37. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_14.png
  38. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_15.png
  39. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_16.png
  40. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_17.png
  41. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_18.png
  42. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_2.png
  43. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_3.png
  44. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_4.png
  45. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_5.png
  46. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_6.png
  47. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_7.png
  48. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_8.png
  49. BIN
      designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_9.png
  50. 119
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/1.frm
  51. 128
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/2.frm
  52. 137
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/3.frm
  53. 137
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/4.frm
  54. 137
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/5.frm
  55. 137
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/6.frm
  56. 146
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/1.frm
  57. 146
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/2.frm
  58. 155
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/3.frm
  59. 155
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/4.frm
  60. 164
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/5.frm
  61. 164
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/6.frm
  62. 173
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/1.frm
  63. 182
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/2.frm
  64. 182
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/3.frm
  65. 182
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/4.frm
  66. 182
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/5.frm
  67. 191
      designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/6.frm

19
designer-base/src/main/java/com/fr/design/border/UITitledBorder.java

@ -22,24 +22,7 @@ public class UITitledBorder extends TitledBorder {
}
private UITitledBorder(String title) {
super(
BorderFactory.createCompoundBorder(
BorderFactory.createEmptyBorder(
0,
0,
5,
0),
new UIRoundedBorder(
UIConstants.TITLED_BORDER_COLOR,
1,
10)
),
title,
TitledBorder.LEADING,
TitledBorder.TOP,
null,
new Color(1, 159, 222)
);
this(title, 10);
}
/**

32
designer-base/src/main/java/com/fr/design/border/UITitledMatteBorder.java

@ -0,0 +1,32 @@
package com.fr.design.border;
import com.fr.design.constants.UIConstants;
import javax.swing.BorderFactory;
import javax.swing.border.TitledBorder;
import java.awt.Color;
public class UITitledMatteBorder extends TitledBorder {
public static UITitledMatteBorder createTitledTopBorder(String title, Color color) {
return new UITitledMatteBorder(title, 1, 0, 0, 0, color);
}
public static UITitledMatteBorder createTitledBorder(String title, Color color) {
return new UITitledMatteBorder(title, 1, 1, 1, 1, color);
}
public static UITitledMatteBorder createTitledBorder(String title, int top, int left, int bottom, int right, Color color) {
return new UITitledMatteBorder(title, top, left, bottom, right, color);
}
private UITitledMatteBorder(String title, int top, int left, int bottom, int right, Color color) {
super(
BorderFactory.createMatteBorder(top, left, bottom, right, UIConstants.TITLED_BORDER_COLOR),
title,
TitledBorder.LEADING,
TitledBorder.TOP,
null,
color
);
}
}

1
designer-base/src/main/java/com/fr/file/FILEChooserPane.java

@ -66,7 +66,6 @@ import javax.swing.ListModel;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;

10
designer-form/src/main/java/com/fr/design/actions/NewFormAction.java

@ -1,13 +1,8 @@
package com.fr.design.actions;
import com.fr.base.svg.IconUtils;
import com.fr.design.mainframe.BaseJForm;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.menu.MenuKeySet;
import com.fr.stable.bridge.StableFactory;
import com.fr.design.widget.ui.designer.NewFormPane;
import javax.swing.KeyStroke;
import java.awt.event.ActionEvent;
@ -31,8 +26,7 @@ public class NewFormAction extends UpdateAction {
* @param e 事件
*/
public void actionPerformed(ActionEvent e) {
BaseJForm jform = StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, BaseJForm.class);
DesignerContext.getDesignerFrame().addAndActivateJTemplate((JTemplate<?, ?>) jform);
new NewFormPane().showWindow();
}

35
designer-form/src/main/java/com/fr/design/designer/beans/PredefinedLayout.java

@ -0,0 +1,35 @@
package com.fr.design.designer.beans;
import java.io.Serializable;
public class PredefinedLayout implements Serializable {
private static final String IMAGE_PATH = "/com/fr/design/form/layouts/images/";
private static final String TEMPLATE_PATH = "/com/fr/design/form/layouts/templates/";
private String template;
private String realStyle;
private String simpleStyle;
public String getTemplate() {
return TEMPLATE_PATH + template;
}
public void setTemplate(String template) {
this.template = template;
}
public String getRealStyle() {
return IMAGE_PATH + realStyle;
}
public void setRealStyle(String realStyle) {
this.realStyle = realStyle;
}
public String getSimpleStyle() {
return IMAGE_PATH + simpleStyle;
}
public void setSimpleStyle(String simpleStyle) {
this.simpleStyle = simpleStyle;
}
}

57
designer-form/src/main/java/com/fr/design/designer/beans/models/NewFormModel.java

@ -0,0 +1,57 @@
package com.fr.design.designer.beans.models;
import com.fr.design.designer.beans.PredefinedLayout;
import com.fr.general.IOUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.third.fasterxml.jackson.databind.ObjectMapper;
import java.io.InputStream;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class NewFormModel implements Serializable {
private static final String CONFIG_FILE_PATH = "/com/fr/design/form/layouts/config.json";
private static NewFormModel holder = null;
private Map<String, List<PredefinedLayout>> config = new HashMap<>();
public static NewFormModel getInstance() {
if (holder == null) {
try {
holder = new ObjectMapper().readValue(readConfigFile(), NewFormModel.class);
} catch (Exception e) {
holder = new NewFormModel();
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
return holder;
}
private NewFormModel() {
}
private synchronized static String readConfigFile() {
String result = StringUtils.EMPTY;
InputStream is = null;
try {
is = IOUtils.readResource(CONFIG_FILE_PATH);
result = IOUtils.inputStream2String(is);
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
} finally {
IOUtils.close(is);
}
return result;
}
public Map<String, List<PredefinedLayout>> getConfig() {
return config;
}
public void setConfig(Map<String, List<PredefinedLayout>> config) {
this.config = config;
}
}

6
designer-form/src/main/java/com/fr/design/fit/NewJForm.java

@ -53,6 +53,12 @@ public class NewJForm extends JForm {
changePaneSize();
}
public NewJForm(Form form) {
super(form);
init();
changePaneSize();
}
public NewJForm(Form form, FILE file, Parameter[] parameters) {
this(form, file);
}

21
designer-form/src/main/java/com/fr/design/mainframe/JForm.java

@ -6,12 +6,13 @@ import com.fr.base.Parameter;
import com.fr.base.Releasable;
import com.fr.base.extension.FileExtension;
import com.fr.base.iofile.attr.ExtendSharableAttrMark;
import com.fr.base.theme.TemplateThemeCompatible;
import com.fr.base.vcs.DesignerMode;
import com.fr.base.iofile.attr.TemplateLayoutIdAttrMark;
import com.fr.base.theme.FormTheme;
import com.fr.base.theme.FormThemeConfig;
import com.fr.base.theme.TemplateTheme;
import com.fr.base.theme.TemplateThemeCompatible;
import com.fr.base.theme.TemplateThemeConfig;
import com.fr.base.vcs.DesignerMode;
import com.fr.design.DesignModelAdapter;
import com.fr.design.DesignState;
import com.fr.design.ExtraDesignClassManager;
@ -23,10 +24,6 @@ import com.fr.design.base.mode.DesignModeContext;
import com.fr.design.cell.FloatElementsProvider;
import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.designer.TargetComponent;
import com.fr.design.designer.beans.actions.CopyAction;
import com.fr.design.designer.beans.actions.CutAction;
import com.fr.design.designer.beans.actions.FormDeleteAction;
import com.fr.design.designer.beans.actions.PasteAction;
import com.fr.design.designer.beans.events.DesignerEditListener;
import com.fr.design.designer.beans.events.DesignerEvent;
import com.fr.design.designer.creator.XComponent;
@ -120,6 +117,7 @@ import java.util.List;
public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm<Form>, Releasable {
private static final String FORM_CARD = "FORM";
private static final String ELEMENTCASE_CARD = "ELEMENTCASE";
private static final String EMPTY_FORM_LAYOUTID = "9ebf6aff-ad53-45a9-a175-9633f4162a3a";
private static final String[] CARDNAME = new String[]{FORM_CARD, ELEMENTCASE_CARD};
private static final int TOOLBARPANEDIMHEIGHT_FORM = 60;
@ -141,6 +139,11 @@ public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm<F
public JForm() {
super(new Form(new WBorderLayout("form")), "Form");
initEmptyFormLayoutId();
}
public JForm(Form form) {
super(form, "Form");
}
public JForm(Form form, FILE file, Parameter[] parameters) {
@ -151,6 +154,12 @@ public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm<F
super(form, file);
}
private void initEmptyFormLayoutId() {
Form form = this.getTarget();
form.addAttrMark(new TemplateLayoutIdAttrMark(EMPTY_FORM_LAYOUTID));
form.setLayoutId(EMPTY_FORM_LAYOUTID);
}
@Override
protected void addPane(PropertyItemPaneProvider provider) {

36
designer-form/src/main/java/com/fr/design/widget/ui/designer/EmptyLayoutPane.java

@ -0,0 +1,36 @@
package com.fr.design.widget.ui.designer;
import com.fr.base.svg.IconUtils;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.i18n.Toolkit;
import com.fr.stable.StringUtils;
import javax.swing.BorderFactory;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
public class EmptyLayoutPane extends PredefinedLayoutPane {
public EmptyLayoutPane() {
this.setLayout(new BorderLayout());
this.setPreferredSize(new Dimension(234, 1));
this.setBackground(Color.WHITE);
UILabel newFormIcon = new UILabel(IconUtils.readIcon("/com/fr/design/form/images/new_form.png"));
newFormIcon.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createEmptyBorder(39, 105, 0, 105),
BorderFactory.createDashedBorder(Color.BLACK, 1.0f, 2.0f, 2.0f, true)
));
UILabel label = new UILabel(Toolkit.i18nText("Fine-Design_New_Empty_Template"));
label.setBorder(BorderFactory.createEmptyBorder(0, 78, 30, 0));
this.add(newFormIcon, BorderLayout.NORTH);
this.add(label, BorderLayout.CENTER);
this.initListener();
}
@Override
public String getTemplatePath() {
return StringUtils.EMPTY;
}
}

282
designer-form/src/main/java/com/fr/design/widget/ui/designer/NewFormPane.java

@ -0,0 +1,282 @@
package com.fr.design.widget.ui.designer;
import com.fr.design.border.UITitledMatteBorder;
import com.fr.design.designer.beans.PredefinedLayout;
import com.fr.design.designer.beans.models.NewFormModel;
import com.fr.design.dialog.BasicPane;
import com.fr.design.dialog.DialogActionListener;
import com.fr.design.dialog.UIDialog;
import com.fr.design.gui.ibutton.UIButtonGroup;
import com.fr.design.gui.icontainer.UIScrollPane;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.BaseJForm;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.JTemplate;
import com.fr.design.utils.gui.GUICoreUtils;
import com.fr.form.main.Form;
import com.fr.general.ComparatorUtils;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils;
import com.fr.stable.bridge.StableFactory;
import javax.swing.BorderFactory;
import javax.swing.DefaultListCellRenderer;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.ListSelectionModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class NewFormPane extends BasicPane {
private NewFormModel newFormModel;
private UIDialog dialog;
private PredefinedLayoutPane selectedLayoutPane = null;
private Map<String, JPanel> layoutPaneMap = new HashMap<>();
private List<PredefinedLayoutPane> layoutCards = new ArrayList<>();
public NewFormPane() {
newFormModel = NewFormModel.getInstance();
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 0, 0));
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.add(createModuleListPane(), BorderLayout.WEST);
this.add(createTemplateManagePane(), BorderLayout.CENTER);
}
@Override
protected String title4PopupWindow() {
return Toolkit.i18nText("Fine-Design_New_Template");
}
public void showWindow() {
dialog = new UIDialog(DesignerContext.getDesignerFrame(), this) {
@Override
public void checkValid() throws Exception {
}
};
dialog.setButtonEnabled(false);
dialog.addDialogActionListener(new DialogActionListener() {
@Override
public void doOk() {
if (selectedLayoutPane != null) {
NewFormPane.this.newForm(selectedLayoutPane.getTemplatePath());
}
}
@Override
public void doCancel() {
}
});
dialog.setSize(new Dimension(900, 600));
GUICoreUtils.centerWindow(dialog);
dialog.setResizable(false);
dialog.setVisible(true);
}
private JPanel createModuleListPane() {
JList<String> list = new JList<String>();
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setModel(initListModel());
list.setSelectedIndex(0);
list.setCellRenderer(new DefaultListCellRenderer());
list.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
String value = list.getSelectedValue();
int selectedIndex = list.getSelectedIndex();
for (Map.Entry<String, JPanel> entry : layoutPaneMap.entrySet()) {
String moduleName = entry.getKey();
JPanel module = entry.getValue();
module.setVisible(selectedIndex == 0 || ComparatorUtils.equals(moduleName, value));
}
}
});
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
jPanel.setBackground(new Color(255, 255, 255));
jPanel.setPreferredSize(new Dimension(138, 1));
jPanel.add(new UIScrollPane(list), BorderLayout.CENTER);
return jPanel;
}
private DefaultListModel<String> initListModel() {
DefaultListModel<String> model = new DefaultListModel<>();
model.addElement(Toolkit.i18nText("Fine-Design_All_Template_Layout"));
Map<String, List<PredefinedLayout>> map = newFormModel.getConfig();
for (String key : map.keySet()) {
model.addElement(key);
}
return model;
}
private JPanel createTemplateManagePane() {
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
jPanel.add(createTemplateManageNorthPane(), BorderLayout.NORTH);
jPanel.add(createTemplateManageSouthPane(), BorderLayout.CENTER);
return jPanel;
}
private JPanel createTemplateManageNorthPane() {
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
jPanel.setBorder(BorderFactory.createEmptyBorder(0, 10, 0, 0));
jPanel.setPreferredSize(new Dimension(1, 129));
jPanel.add(createNewTemplatePane(), BorderLayout.WEST);
jPanel.add(createSwitchButtonPane(), BorderLayout.EAST);
return jPanel;
}
private JPanel createNewTemplatePane() {
EmptyLayoutPane jPanel = new EmptyLayoutPane();
jPanel.addClickListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
setSelectedLayoutPane(jPanel);
dialog.setButtonEnabled(true);
}
});
return jPanel;
}
private JPanel createSwitchButtonPane() {
UIButtonGroup<String> buttonGroup = new UIButtonGroup<String>(new String[] {
Toolkit.i18nText("Fine-Design_Simple_Style_Template"),
Toolkit.i18nText("Fine-Design_Real_Style_Template")
});
buttonGroup.setPreferredSize(new Dimension(140, 20));
buttonGroup.setSelectedIndex(1);
buttonGroup.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
int selectedIndex = buttonGroup.getSelectedIndex();
for (PredefinedLayoutPane layoutCard : layoutCards) {
if (selectedIndex == 1) {
layoutCard.showRealStyle();
} else {
layoutCard.showSimpleStyle();
}
}
}
});
JPanel switchButtonPane = new JPanel(new BorderLayout());
switchButtonPane.add(buttonGroup, BorderLayout.CENTER);
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
jPanel.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 10));
jPanel.add(switchButtonPane, BorderLayout.NORTH);
return jPanel;
}
private JPanel createTemplateManageSouthPane() {
List<JPanel> predefinedLayoutPanes = createPredefinedLayoutPanes();
JPanel selectionsPane = createSelectionsPane(predefinedLayoutPanes);
UIScrollPane selectionsScrollPane = new UIScrollPane(selectionsPane);
selectionsScrollPane.setBorder(BorderFactory.createEmptyBorder(5, 0, 0, 0));
JPanel titlePane = new JPanel(new BorderLayout());
titlePane.setBorder(UITitledMatteBorder.createTitledBorder(Toolkit.i18nText("Fine-Design_Select_Template"), new Color(1, 159, 222)));
titlePane.add(selectionsScrollPane, BorderLayout.CENTER);
JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane();
jPanel.setBorder(BorderFactory.createEmptyBorder(20, 0, 0, 0));
jPanel.add(titlePane, BorderLayout.CENTER);
return jPanel;
}
private JPanel createSelectionsPane(List<JPanel> components) {
JPanel selectionsPane = new JPanel();
JPanel container = new JPanel(new BorderLayout());
for (int i = 0; i < components.size(); i++) {
JPanel component = components.get(i);
if (component != null) {
container.add(component, BorderLayout.NORTH);
JPanel nextContainer = new JPanel(new BorderLayout());
container.add(nextContainer, BorderLayout.CENTER);
if (i == 0) {
selectionsPane = container;
}
container = nextContainer;
}
}
return selectionsPane;
}
private List<JPanel> createPredefinedLayoutPanes() {
List<JPanel> jPanels = new ArrayList<>();
Map<String, List<PredefinedLayout>> map = newFormModel.getConfig();
for (Map.Entry<String, List<PredefinedLayout>> entry : map.entrySet()) {
String moduleName = entry.getKey();
List<PredefinedLayout> layouts = entry.getValue();
JPanel module = createPredefinedLayoutPane(moduleName);
layoutPaneMap.put(moduleName, module);
for (PredefinedLayout layout : layouts) {
PredefinedLayoutPane predefinedLayoutPane = new PredefinedLayoutPane(layout);
predefinedLayoutPane.addClickListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
setSelectedLayoutPane(predefinedLayoutPane);
dialog.setButtonEnabled(true);
}
});
module.add(predefinedLayoutPane);
layoutCards.add(predefinedLayoutPane);
}
jPanels.add(module);
}
return jPanels;
}
private JPanel createPredefinedLayoutPane(String title) {
JPanel jp = new JPanel();
UITitledMatteBorder explainBorder = UITitledMatteBorder.createTitledTopBorder(title, Color.BLACK);
jp.setBorder(explainBorder);
jp.setLayout(new GridLayout(0, 3, 5, 5));
return jp;
}
private void newForm(String path) {
BaseJForm jForm;
try {
if (StringUtils.isNotEmpty(path)) {
Form form = new Form();
form.readStream(NewFormPane.class.getResourceAsStream(path));
jForm = StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, new Object[]{form}, BaseJForm.class);
} else {
jForm = StableFactory.getMarkedInstanceObjectFromClass(BaseJForm.XML_TAG, BaseJForm.class);
}
DesignerContext.getDesignerFrame().addAndActivateJTemplate((JTemplate<?, ?>) jForm);
} catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
}
private void setSelectedLayoutPane(PredefinedLayoutPane layoutPane) {
if (selectedLayoutPane != layoutPane) {
if (selectedLayoutPane != null) {
selectedLayoutPane.setSelected(false);
}
selectedLayoutPane = layoutPane;
if (selectedLayoutPane != null) {
selectedLayoutPane.setSelected(true);
}
}
}
}

117
designer-form/src/main/java/com/fr/design/widget/ui/designer/PredefinedLayoutPane.java

@ -0,0 +1,117 @@
package com.fr.design.widget.ui.designer;
import com.fr.base.GraphHelper;
import com.fr.base.svg.IconUtils;
import com.fr.design.designer.beans.PredefinedLayout;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.share.ui.base.MouseClickListener;
import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import javax.swing.JPanel;
import java.awt.CardLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class PredefinedLayoutPane extends JPanel {
private static final Color HOVERING_BORDER_COLOR = new Color(65, 155, 249);
private static final Color HOVERING_SHADOW_COLOR = new Color(65, 155, 249, 51);
private CardLayout cardLayout = new CardLayout();
protected boolean hovering = false;
protected boolean selected = false;
protected MouseAdapter clickListener;
protected String templatePath = StringUtils.EMPTY;
public PredefinedLayoutPane() {
}
public PredefinedLayoutPane(PredefinedLayout predefinedLayout) {
this.templatePath = predefinedLayout.getTemplate();
UILabel simpleStyle = new UILabel(IconUtils.readIcon(predefinedLayout.getSimpleStyle()));
UILabel realStyle = new UILabel(IconUtils.readIcon(predefinedLayout.getRealStyle()));
this.setLayout(cardLayout);
this.add(realStyle, 0);
this.add(simpleStyle, 1);
this.initListener();
}
protected void initListener() {
this.addMouseListener(new MouseClickListener() {
@Override
public void mouseClicked(MouseEvent e) {
if (clickListener != null) {
clickListener.mouseClicked(e);
}
}
@Override
public void mouseEntered(MouseEvent e) {
hovering = true;
repaint();
}
@Override
public void mouseExited(MouseEvent e) {
hovering = false;
repaint();
}
});
}
@Override
public void paint(Graphics g) {
super.paint(g);
if (hovering) {
g.setColor(HOVERING_SHADOW_COLOR);
GraphHelper.fillRect(g, 1, 1, this.getWidth() - 2, this.getHeight() - 2);
}
if (selected || hovering) {
g.setColor(HOVERING_BORDER_COLOR);
Rectangle rectangle = new Rectangle(1, 1, this.getWidth() - 2, this.getHeight() - 2);
GraphHelper.draw(g, rectangle, Constants.LINE_MEDIUM);
}
}
public void addClickListener(MouseAdapter clickListener) {
this.clickListener = clickListener;
}
public void showSimpleStyle() {
cardLayout.last(this);
}
public void showRealStyle() {
cardLayout.first(this);
}
public boolean isHovering() {
return hovering;
}
public void setHovering(boolean hovering) {
this.hovering = hovering;
}
public boolean isSelected() {
return selected;
}
public void setSelected(boolean selected) {
this.selected = selected;
repaint();
}
public String getTemplatePath() {
return templatePath;
}
public void setTemplatePath(String templatePath) {
this.templatePath = templatePath;
}
}

BIN
designer-form/src/main/resources/com/fr/design/form/images/new_form.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 B

100
designer-form/src/main/resources/com/fr/design/form/layouts/config.json

@ -0,0 +1,100 @@
{
"config":{
"2-4模块":[
{
"template":"2-4/1.frm",
"realStyle":"real_style_1",
"simpleStyle":"simple_style_1"
},
{
"template":"2-4/2.frm",
"realStyle":"real_style_2",
"simpleStyle":"simple_style_2"
},
{
"template":"2-4/3.frm",
"realStyle":"real_style_3",
"simpleStyle":"simple_style_3"
},
{
"template":"2-4/4.frm",
"realStyle":"real_style_4",
"simpleStyle":"simple_style_4"
},
{
"template":"2-4/5.frm",
"realStyle":"real_style_5",
"simpleStyle":"simple_style_5"
},
{
"template":"2-4/6.frm",
"realStyle":"real_style_6",
"simpleStyle":"simple_style_6"
}
],
"5-7模块":[
{
"template":"5-7/1.frm",
"realStyle":"real_style_7",
"simpleStyle":"simple_style_7"
},
{
"template":"5-7/2.frm",
"realStyle":"real_style_8",
"simpleStyle":"simple_style_8"
},
{
"template":"5-7/3.frm",
"realStyle":"real_style_9",
"simpleStyle":"simple_style_9"
},
{
"template":"5-7/4.frm",
"realStyle":"real_style_10",
"simpleStyle":"simple_style_10"
},
{
"template":"5-7/5.frm",
"realStyle":"real_style_11",
"simpleStyle":"simple_style_11"
},
{
"template":"5-7/6.frm",
"realStyle":"real_style_12",
"simpleStyle":"simple_style_12"
}
],
"多模块":[
{
"template":"multi/1.frm",
"realStyle":"real_style_13",
"simpleStyle":"simple_style_13"
},
{
"template":"multi/2.frm",
"realStyle":"real_style_14",
"simpleStyle":"simple_style_14"
},
{
"template":"multi/3.frm",
"realStyle":"real_style_15",
"simpleStyle":"simple_style_15"
},
{
"template":"multi/4.frm",
"realStyle":"real_style_16",
"simpleStyle":"simple_style_16"
},
{
"template":"multi/5.frm",
"realStyle":"real_style_17",
"simpleStyle":"simple_style_17"
},
{
"template":"multi/6.frm",
"realStyle":"real_style_18",
"simpleStyle":"simple_style_18"
}
]
}
}

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_11.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_18.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/real_style_9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_10.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_11.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_12.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_13.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_14.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_15.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_16.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_17.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_18.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
designer-form/src/main/resources/com/fr/design/form/layouts/images/simple_style_9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

119
designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/1.frm

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="714" height="465"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="75" width="246" height="465"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="6d7c5955-a13c-4b43-a4b3-0838d5880853"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="745f4ee6-689f-4410-8045-f5ec7f0f8b94"/>
</TemplateIdAttMark>
</Form>

128
designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/2.frm

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="638" height="465"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="638" y="304" width="322" height="236"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="638" y="75" width="322" height="229"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="37539138-ee94-4aec-89ee-3c4e568daab7"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="f3725b46-5eba-4cb0-91ac-2eed78cdbbb6"/>
</TemplateIdAttMark>
</Form>

137
designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/3.frm

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="333" width="960" height="207"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="481" y="75" width="479" height="258"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="204" width="481" height="129"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="481" height="129"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box4"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="c2351389-1876-4ebb-9822-82a1999084c7"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="ba461650-7fe2-4ed2-9bb0-6207a58988eb"/>
</TemplateIdAttMark>
</Form>

137
designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/4.frm

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="304" width="480" height="236"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="304" width="480" height="236"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="480" height="229"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="480" height="229"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box4"/>
<Widget widgetName="box3"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="ed972ed4-76d3-4a02-ace2-f67d4f4dd2ef"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="f06c354b-6d5e-40e5-b855-f74808b0d94f"/>
</TemplateIdAttMark>
</Form>

137
designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/5.frm

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="247" y="75" width="713" height="465"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="379" width="247" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="226" width="247" height="153"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="247" height="151"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box4"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="fcbeb8e9-e709-45cc-8826-36b519776098"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="1b495536-b042-45db-a6be-768b472fe7b5"/>
</TemplateIdAttMark>
</Form>

137
designer-form/src/main/resources/com/fr/design/form/layouts/templates/2-4/6.frm

@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="252" width="960" height="288"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="637" y="75" width="323" height="177"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="323" height="177"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="323" y="75" width="314" height="177"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box4"/>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="fcbeb8e9-e709-45cc-8826-36b519776098"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="13b65e55-e7da-43b2-b0e4-3521d500829a"/>
</TemplateIdAttMark>
</Form>

146
designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/1.frm

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="219" width="960" height="167"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="386" width="480" height="154"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="386" width="480" height="154"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="480" height="144"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="480" height="144"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box4"/>
<Widget widgetName="box5"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="b682cfc7-eb2d-4040-9a3d-0ff8f5e9890f"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="7caf8b9a-eaa4-4f5a-bf6e-d1a7309c8d98"/>
</TemplateIdAttMark>
</Form>

146
designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/2.frm

@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="716" height="274"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="75" width="244" height="465"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="349" width="244" height="191"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="244" y="349" width="236" height="191"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="349" width="236" height="191"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box5"/>
<Widget widgetName="box4"/>
<Widget widgetName="box3"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="fcbeb8e9-e709-45cc-8826-36b519776098"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="75a803de-4022-4a58-953a-3db28c1a7aeb"/>
</TemplateIdAttMark>
</Form>

155
designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/3.frm

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="258" width="480" height="282"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="258" width="480" height="282"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="75" width="244" height="183"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="244" height="183"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="236" height="183"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="244" y="75" width="236" height="183"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box4"/>
<Widget widgetName="box6"/>
<Widget widgetName="box5"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="2b44b92c-b5f4-42c6-98ee-2afb64d5eeb4"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="3816e8ee-6ec7-4771-930c-c7ed38f3e58e"/>
</TemplateIdAttMark>
</Form>

155
designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/4.frm

@ -0,0 +1,155 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="320" y="75" width="640" height="304"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="636" y="379" width="324" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="379" width="320" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="320" y="379" width="316" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="227" width="320" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="320" height="152"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box5"/>
<Widget widgetName="box2"/>
<Widget widgetName="box4"/>
<Widget widgetName="box3"/>
<Widget widgetName="box6"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="0012b06c-d563-4a7e-a1df-d985e4b5105a"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="ca4b9a6a-0f99-4e80-8fd7-44f5e33984de"/>
</TemplateIdAttMark>
</Form>

164
designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/5.frm

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="246" y="75" width="468" height="465"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="379" width="246" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="379" width="246" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="227" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="75" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="227" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="246" height="152"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box2"/>
<Widget widgetName="box1"/>
<Widget widgetName="box5"/>
<Widget widgetName="box3"/>
<Widget widgetName="box6"/>
<Widget widgetName="box4"/>
<Widget widgetName="box7"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="cd854b01-b7d4-4854-a3cc-c3b08334abaf"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="1a591c85-55db-4f8e-8748-49e4f1ccebf2"/>
</TemplateIdAttMark>
</Form>

164
designer-form/src/main/resources/com/fr/design/form/layouts/templates/5-7/6.frm

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="223" y="245" width="514" height="295"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="223" y="141" width="514" height="104"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="304" width="223" height="236"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="737" y="304" width="223" height="236"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="223" height="229"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="737" y="75" width="223" height="229"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="223" y="75" width="514" height="66"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box6"/>
<Widget widgetName="box1"/>
<Widget widgetName="box4"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box7"/>
<Widget widgetName="box5"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="277ccdaf-9abf-4846-9e7a-efabab70f169"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="d93ee4bd-f42f-4361-a3d3-160dc24eb82c"/>
</TemplateIdAttMark>
</Form>

173
designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/1.frm

@ -0,0 +1,173 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="223" y="139" width="438" height="401"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box8"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="661" y="304" width="299" height="236"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="661" y="75" width="299" height="229"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="223" y="75" width="438" height="64"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="417" width="223" height="123"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="303" width="223" height="114"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="189" width="223" height="114"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="223" height="114"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box2"/>
<Widget widgetName="box6"/>
<Widget widgetName="box7"/>
<Widget widgetName="box1"/>
<Widget widgetName="box3"/>
<Widget widgetName="box4"/>
<Widget widgetName="box8"/>
<Widget widgetName="box5"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="7f199be0-de2c-4b36-9242-2e4f0cc41254"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="434d170d-dd81-4b3f-b5f4-8aae17b77f6c"/>
</TemplateIdAttMark>
</Form>

182
designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/2.frm

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="244" y="142" width="472" height="398"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box9"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="337" width="244" height="203"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="337" width="244" height="203"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box8"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="142" width="244" height="195"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="142" width="244" height="195"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="75" width="244" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="244" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="236" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="244" y="75" width="236" height="67"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box3"/>
<Widget widgetName="box2"/>
<Widget widgetName="box6"/>
<Widget widgetName="box7"/>
<Widget widgetName="box5"/>
<Widget widgetName="box1"/>
<Widget widgetName="box8"/>
<Widget widgetName="box4"/>
<Widget widgetName="box9"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="ecdeebb7-d19e-4451-935b-43f51dea1bc6"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="2cea5867-b3b6-4406-bcef-a2c5389413e1"/>
</TemplateIdAttMark>
</Form>

182
designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/3.frm

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="252" y="303" width="456" height="237"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="252" y="75" width="456" height="228"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box9"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="708" y="379" width="252" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="708" y="227" width="252" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="708" y="75" width="252" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box8"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="417" width="252" height="123"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="303" width="252" height="114"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="189" width="252" height="114"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="252" height="114"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box9"/>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box3"/>
<Widget widgetName="box6"/>
<Widget widgetName="box4"/>
<Widget widgetName="box7"/>
<Widget widgetName="box2"/>
<Widget widgetName="box5"/>
<Widget widgetName="box8"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="5f9b8ea5-3ce7-4b44-b4f3-b064c64dde06"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="05aeb1ad-f2af-4c60-9f05-1b2b90689901"/>
</TemplateIdAttMark>
</Form>

182
designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/4.frm

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="246" y="142" width="468" height="398"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box9"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="379" width="246" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="379" width="246" height="161"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box8"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="227" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="714" y="75" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="227" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="246" height="152"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="234" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="246" y="75" width="234" height="67"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box5"/>
<Widget widgetName="box6"/>
<Widget widgetName="box7"/>
<Widget widgetName="box4"/>
<Widget widgetName="box2"/>
<Widget widgetName="box8"/>
<Widget widgetName="box3"/>
<Widget widgetName="box9"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="fcbeb8e9-e709-45cc-8826-36b519776098"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="1de9e6a0-7e9f-49cb-8874-34d8f540fe1d"/>
</TemplateIdAttMark>
</Form>

182
designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/5.frm

@ -0,0 +1,182 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="183" width="480" height="197"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="183" width="480" height="197"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box9"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="637" y="380" width="323" height="160"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="380" width="323" height="160"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box8"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="323" y="380" width="314" height="160"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="244" height="108"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="75" width="244" height="108"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="236" height="108"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="244" y="75" width="236" height="108"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box6"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box5"/>
<Widget widgetName="box4"/>
<Widget widgetName="box7"/>
<Widget widgetName="box8"/>
<Widget widgetName="box9"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="19b23045-6069-4f9f-9d5e-6213efc55ab7"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="53899c37-aa4b-4e99-89dd-00f944ae8752"/>
</TemplateIdAttMark>
</Form>

191
designer-form/src/main/resources/com/fr/design/form/layouts/templates/multi/6.frm

@ -0,0 +1,191 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlVersion="20170720" releaseVersion="11.0.0">
<FormMobileAttr>
<FormMobileAttr refresh="false" isUseHTML="false" isMobileOnly="false" isAdaptivePropertyAutoMatch="false" appearRefresh="false" promptWhenLeaveWithoutSubmit="false" allowDoubleClickOrZoom="true"/>
</FormMobileAttr>
<Parameters/>
<Layout class="com.fr.form.ui.container.WBorderLayout">
<WidgetName name="form"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="0" left="0" bottom="0" right="0"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="0"/>
<ShowBookmarks showBookmarks="false"/>
<Center class="com.fr.form.ui.container.WFitLayout">
<WidgetName name="body"/>
<WidgetAttr aspectRatioLocked="false" aspectRatioBackup="-1.0" description="">
<MobileBookMark useBookMark="false" bookMarkName="" frozen="false"/>
<PrivilegeControl/>
</WidgetAttr>
<FollowingTheme borderStyle="false"/>
<Margin top="16" left="16" bottom="16" right="16"/>
<Border>
<border style="0" borderRadius="0" type="0" borderStyle="0">
<color>
<FineColor color="-723724" hor="-1" ver="-1"/>
</color>
</border>
<WidgetTitle>
<O>
<![CDATA[新建标题]]></O>
<FRFont name="Hiragino Sans GB" style="0" size="72"/>
<Position pos="0"/>
</WidgetTitle>
<Background name="ColorBackground">
<color>
<FineColor color="-1" hor="-1" ver="-1"/>
</color>
</Background>
<Alpha alpha="1.0"/>
</Border>
<LCAttr vgap="0" hgap="0" compInterval="16"/>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box7"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="295" y="243" width="370" height="297"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box0"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="0" width="960" height="75"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box10"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="337" width="295" height="203"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box8"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="665" y="337" width="295" height="203"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box9"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="142" width="295" height="195"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box5"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="665" y="142" width="295" height="195"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box6"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="295" y="142" width="370" height="101"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box4"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="716" y="75" width="244" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box1"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="0" y="75" width="244" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box3"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="480" y="75" width="236" height="67"/>
</Widget>
<Widget class="com.fr.form.ui.container.WAbsoluteLayout$BoundsWidget">
<InnerWidget class="com.fr.form.ui.container.OccupiedLayout">
<OccupiedLayout>
<WidgetName name="box2"/>
</OccupiedLayout>
</InnerWidget>
<BoundsAttr x="244" y="75" width="236" height="67"/>
</Widget>
<ShowBookmarks showBookmarks="true"/>
<Sorted sorted="false"/>
<MobileWidgetList>
<Widget widgetName="box0"/>
<Widget widgetName="box1"/>
<Widget widgetName="box2"/>
<Widget widgetName="box3"/>
<Widget widgetName="box4"/>
<Widget widgetName="box9"/>
<Widget widgetName="box6"/>
<Widget widgetName="box5"/>
<Widget widgetName="box7"/>
<Widget widgetName="box10"/>
<Widget widgetName="box8"/>
</MobileWidgetList>
<FrozenWidgets/>
<MobileBookMarkStyle class="com.fr.form.ui.mobile.impl.DefaultMobileBookMarkStyle"/>
<WidgetZoomAttr compState="0"/>
<AppRelayout appRelayout="true"/>
<Size width="960" height="540"/>
<ResolutionScalingAttr percent="1.0"/>
<BodyLayoutType type="0"/>
</Center>
</Layout>
<DesignerVersion DesignerVersion="LAA"/>
<PreviewType PreviewType="6"/>
<TemplateThemeAttrMark class="com.fr.base.iofile.attr.TemplateThemeAttrMark">
<TemplateThemeAttrMark name="兼容主题" dark="false"/>
</TemplateThemeAttrMark>
<WatermarkAttr class="com.fr.base.iofile.attr.WatermarkAttr">
<WatermarkAttr fontSize="20" horizontalGap="200" verticalGap="100" valid="false">
<color>
<FineColor color="-6710887" hor="-1" ver="-1"/>
</color>
<Text>
<![CDATA[]]></Text>
</WatermarkAttr>
</WatermarkAttr>
<TemplateLayoutIdAttrMark class="com.fr.base.iofile.attr.TemplateLayoutIdAttrMark">
<TemplateLayoutIdAttrMark LayoutId="014cd79f-271d-4972-8c71-3207ba46a91f"/>
</TemplateLayoutIdAttrMark>
<TemplateIdAttMark class="com.fr.base.iofile.attr.TemplateIdAttrMark">
<TemplateIdAttMark TemplateId="2155cc4b-23d6-45e9-a160-d63933bbc4a0"/>
</TemplateIdAttMark>
</Form>
Loading…
Cancel
Save