|
|
@ -1,5 +1,6 @@ |
|
|
|
package com.fr.design.designer.creator; |
|
|
|
package com.fr.design.designer.creator; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.ConfigManager; |
|
|
|
import com.fr.design.ExtraDesignClassManager; |
|
|
|
import com.fr.design.ExtraDesignClassManager; |
|
|
|
import com.fr.design.designer.properties.mobile.ElementCasePropertyUI; |
|
|
|
import com.fr.design.designer.properties.mobile.ElementCasePropertyUI; |
|
|
|
import com.fr.design.form.util.XCreatorConstants; |
|
|
|
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.CoverReportPane; |
|
|
|
import com.fr.design.mainframe.EditingMouseListener; |
|
|
|
import com.fr.design.mainframe.EditingMouseListener; |
|
|
|
import com.fr.design.mainframe.FormDesigner; |
|
|
|
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.LayoutBorderStyleRenderer; |
|
|
|
import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; |
|
|
|
import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; |
|
|
|
import com.fr.form.FormElementCaseContainerProvider; |
|
|
|
import com.fr.form.FormElementCaseContainerProvider; |
|
|
@ -18,6 +22,8 @@ import com.fr.form.ui.ElementCaseEditor; |
|
|
|
import com.fr.general.Inter; |
|
|
|
import com.fr.general.Inter; |
|
|
|
import com.fr.stable.ArrayUtils; |
|
|
|
import com.fr.stable.ArrayUtils; |
|
|
|
import com.fr.stable.core.PropertyChangeAdapter; |
|
|
|
import com.fr.stable.core.PropertyChangeAdapter; |
|
|
|
|
|
|
|
import com.fr.stable.fun.FitProvider; |
|
|
|
|
|
|
|
import com.fr.stable.fun.ReportFitAttrProvider; |
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.*; |
|
|
|
import javax.swing.*; |
|
|
|
import java.awt.*; |
|
|
|
import java.awt.*; |
|
|
@ -29,17 +35,21 @@ import java.beans.PropertyDescriptor; |
|
|
|
public class XElementCase extends XBorderStyleWidgetCreator implements FormElementCaseContainerProvider{ |
|
|
|
public class XElementCase extends XBorderStyleWidgetCreator implements FormElementCaseContainerProvider{ |
|
|
|
private UILabel imageLable; |
|
|
|
private UILabel imageLable; |
|
|
|
private JPanel coverPanel; |
|
|
|
private JPanel coverPanel; |
|
|
|
|
|
|
|
private FormDesigner designer; |
|
|
|
|
|
|
|
|
|
|
|
public XElementCase(ElementCaseEditor widget, Dimension initSize) { |
|
|
|
public XElementCase(ElementCaseEditor widget, Dimension initSize) { |
|
|
|
super(widget, initSize); |
|
|
|
super(widget, initSize); |
|
|
|
|
|
|
|
this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
protected void initXCreatorProperties() { |
|
|
|
protected void initXCreatorProperties() { |
|
|
|
super.initXCreatorProperties(); |
|
|
|
super.initXCreatorProperties(); |
|
|
|
|
|
|
|
|
|
|
|
// 报表块初始化时要加载对应的borderStyle
|
|
|
|
// 报表块初始化时要加载对应的borderStyle
|
|
|
|
initBorderStyle(); |
|
|
|
initBorderStyle(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 是否支持设置标题 |
|
|
|
* 是否支持设置标题 |
|
|
|
* @return 是返回true |
|
|
|
* @return 是返回true |
|
|
@ -78,13 +88,33 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
FormElementCaseEditorProcessor processor = ExtraDesignClassManager.getInstance().getPropertyTableEditor(); |
|
|
|
FormElementCaseEditorProcessor processor = ExtraDesignClassManager.getInstance().getPropertyTableEditor(); |
|
|
|
if (processor == null){ |
|
|
|
PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); |
|
|
|
|
|
|
|
if (processor == null) { |
|
|
|
return propertyTableEditor; |
|
|
|
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); |
|
|
|
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 |
|
|
|
@Override |
|
|
|
protected String getIconName() { |
|
|
|
protected String getIconName() { |
|
|
@ -118,7 +148,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
} |
|
|
|
} |
|
|
|
return editor; |
|
|
|
return editor; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 从data中获取到图片背景, 并设置到Label上 |
|
|
|
* 从data中获取到图片背景, 并设置到Label上 |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -126,10 +156,10 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
UILabel imageLable = new UILabel(); |
|
|
|
UILabel imageLable = new UILabel(); |
|
|
|
BufferedImage image = toData().getECImage(); |
|
|
|
BufferedImage image = toData().getECImage(); |
|
|
|
setLabelBackground(image, imageLable); |
|
|
|
setLabelBackground(image, imageLable); |
|
|
|
|
|
|
|
|
|
|
|
return imageLable; |
|
|
|
return imageLable; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 设置指定Label的背景 |
|
|
|
* 设置指定Label的背景 |
|
|
|
*/ |
|
|
|
*/ |
|
|
@ -179,7 +209,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
public boolean canEnterIntoParaPane(){ |
|
|
|
public boolean canEnterIntoParaPane(){ |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 返回报表块对应的widget |
|
|
|
* 返回报表块对应的widget |
|
|
|
* @return 返回ElementCaseEditor |
|
|
|
* @return 返回ElementCaseEditor |
|
|
@ -187,11 +217,11 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
public ElementCaseEditor toData() { |
|
|
|
public ElementCaseEditor toData() { |
|
|
|
return ((ElementCaseEditor) data); |
|
|
|
return ((ElementCaseEditor) data); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public FormElementCaseProvider getElementCase() { |
|
|
|
public FormElementCaseProvider getElementCase() { |
|
|
|
return toData().getElementCase(); |
|
|
|
return toData().getElementCase(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public String getElementCaseContainerName() { |
|
|
|
public String getElementCaseContainerName() { |
|
|
|
return toData().getWidgetName(); |
|
|
|
return toData().getWidgetName(); |
|
|
|
} |
|
|
|
} |
|
|
@ -199,20 +229,20 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
public void setElementCase(FormElementCaseProvider el) { |
|
|
|
public void setElementCase(FormElementCaseProvider el) { |
|
|
|
toData().setElementCase(el); |
|
|
|
toData().setElementCase(el); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public void setBackground(BufferedImage image){ |
|
|
|
public void setBackground(BufferedImage image){ |
|
|
|
toData().setECImage(image); |
|
|
|
toData().setECImage(image); |
|
|
|
setEditorIcon(image); |
|
|
|
setEditorIcon(image); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void setEditorIcon(BufferedImage image){ |
|
|
|
private void setEditorIcon(BufferedImage image){ |
|
|
|
setLabelBackground(image, imageLable); |
|
|
|
setLabelBackground(image, imageLable); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public Dimension getSize(){ |
|
|
|
public Dimension getSize(){ |
|
|
|
return new Dimension(this.getWidth(), this.getHeight()); |
|
|
|
return new Dimension(this.getWidth(), this.getHeight()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 响应点击事件 |
|
|
|
* 响应点击事件 |
|
|
|
* @param editingMouseListener 事件处理器 |
|
|
|
* @param editingMouseListener 事件处理器 |
|
|
@ -222,8 +252,8 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme |
|
|
|
super.respondClick(editingMouseListener, e); |
|
|
|
super.respondClick(editingMouseListener, e); |
|
|
|
switchTab(e,editingMouseListener); |
|
|
|
switchTab(e,editingMouseListener); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void switchTab(MouseEvent e,EditingMouseListener editingMouseListener){ |
|
|
|
private void switchTab(MouseEvent e,EditingMouseListener editingMouseListener){ |
|
|
|
FormDesigner designer = editingMouseListener.getDesigner(); |
|
|
|
FormDesigner designer = editingMouseListener.getDesigner(); |
|
|
|
if (e.getClickCount() == 2 || designer.getCursor().getType() == Cursor.HAND_CURSOR){ |
|
|
|
if (e.getClickCount() == 2 || designer.getCursor().getType() == Cursor.HAND_CURSOR){ |
|
|
|