From aadeb1c0515a860e0cef3183a70dc1b564e71b7f Mon Sep 17 00:00:00 2001 From: xiaxiang <1438003374@qq.com> Date: Wed, 15 Jun 2016 01:01:47 +0800 Subject: [PATCH] rt --- .../design/designer/creator/XElementCase.java | 64 ++++++++++++++----- 1 file changed, 47 insertions(+), 17 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 29310ca0c3..94f5eaffeb 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -1,5 +1,6 @@ package com.fr.design.designer.creator; +import com.fr.base.ConfigManager; import com.fr.design.ExtraDesignClassManager; import com.fr.design.designer.properties.mobile.ElementCasePropertyUI; import com.fr.design.form.util.XCreatorConstants; @@ -9,7 +10,10 @@ import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.CoverReportPane; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; -import com.fr.design.mainframe.widget.editors.*; +import com.fr.design.mainframe.WidgetPropertyPane; +import com.fr.design.mainframe.widget.editors.BooleanEditor; +import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; +import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; import com.fr.form.FormElementCaseContainerProvider; @@ -18,6 +22,8 @@ import com.fr.form.ui.ElementCaseEditor; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; import com.fr.stable.core.PropertyChangeAdapter; +import com.fr.stable.fun.FitProvider; +import com.fr.stable.fun.ReportFitAttrProvider; import javax.swing.*; import java.awt.*; @@ -29,17 +35,21 @@ import java.beans.PropertyDescriptor; public class XElementCase extends XBorderStyleWidgetCreator implements FormElementCaseContainerProvider{ private UILabel imageLable; private JPanel coverPanel; + private FormDesigner designer; public XElementCase(ElementCaseEditor widget, Dimension initSize) { super(widget, initSize); + this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); + } - + protected void initXCreatorProperties() { super.initXCreatorProperties(); + // 报表块初始化时要加载对应的borderStyle initBorderStyle(); } - + /** * 是否支持设置标题 * @return 是返回true @@ -78,13 +88,33 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme }; FormElementCaseEditorProcessor processor = ExtraDesignClassManager.getInstance().getPropertyTableEditor(); - if (processor == null){ + PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); + if (processor == null) { return propertyTableEditor; } - PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); + //新建报表块的自适应属性和表单所设置的自适应属性保持一致 + if (this.toData().getReportFitAttr() == null) { + if (getFitAttrProvider().fitStateInPC() != 0) { + this.toData().setFitStateInPC(getFitAttrProvider().fitStateInPC()); + } else { + return propertyTableEditor; + } + } return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); } + //获取表单保存的自适应属性,如果没有,就用全局保存的自适应属性 + private ReportFitAttrProvider getFitAttrProvider () { + FitProvider wbTpl = (FitProvider) designer.getTarget(); + ReportFitAttrProvider globalFitAttr = ConfigManager.getProviderInstance().getFitAttrProvider(); + ReportFitAttrProvider fitAttr = wbTpl.getFitAttr(); + if (fitAttr != null) { + return fitAttr; + } + return globalFitAttr; + + + } @Override protected String getIconName() { @@ -118,7 +148,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme } return editor; } - + /** * 从data中获取到图片背景, 并设置到Label上 */ @@ -126,10 +156,10 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme UILabel imageLable = new UILabel(); BufferedImage image = toData().getECImage(); setLabelBackground(image, imageLable); - + return imageLable; } - + /** * 设置指定Label的背景 */ @@ -179,7 +209,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme public boolean canEnterIntoParaPane(){ return false; } - + /** * 返回报表块对应的widget * @return 返回ElementCaseEditor @@ -187,11 +217,11 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme public ElementCaseEditor toData() { return ((ElementCaseEditor) data); } - + public FormElementCaseProvider getElementCase() { return toData().getElementCase(); } - + public String getElementCaseContainerName() { return toData().getWidgetName(); } @@ -199,20 +229,20 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme public void setElementCase(FormElementCaseProvider el) { toData().setElementCase(el); } - + public void setBackground(BufferedImage image){ toData().setECImage(image); setEditorIcon(image); } - + private void setEditorIcon(BufferedImage image){ setLabelBackground(image, imageLable); } - + public Dimension getSize(){ return new Dimension(this.getWidth(), this.getHeight()); } - + /** * 响应点击事件 * @param editingMouseListener 事件处理器 @@ -222,8 +252,8 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme super.respondClick(editingMouseListener, e); switchTab(e,editingMouseListener); } - - + + private void switchTab(MouseEvent e,EditingMouseListener editingMouseListener){ FormDesigner designer = editingMouseListener.getDesigner(); if (e.getClickCount() == 2 || designer.getCursor().getType() == Cursor.HAND_CURSOR){