Browse Source

Merge pull request #152 in BA/design from ~XIAXIANG/design1:dev to dev

* commit '30edd83e8f84197c0f8b8efd9ea5e2cfe6a45acb':
  rt
  rt
  rt
  rt
  rt
  rt
  rt
  rt
  rt
  rt
  rt
master
superman 8 years ago
parent
commit
e39fbcb2d1
  1. 12
      designer_base/src/com/fr/design/fun/FormElementCaseEditorProcessor.java
  2. 15
      designer_base/src/com/fr/design/fun/impl/AbstractFormElementCaseEditorProcessor.java
  3. 52
      designer_form/src/com/fr/design/designer/creator/XElementCase.java

12
designer_base/src/com/fr/design/fun/FormElementCaseEditorProcessor.java

@ -1,6 +1,7 @@
package com.fr.design.fun; package com.fr.design.fun;
import com.fr.stable.fun.Level; import com.fr.stable.fun.Level;
import com.fr.stable.fun.ReportFitAttrProvider;
import java.beans.PropertyDescriptor; import java.beans.PropertyDescriptor;
@ -17,8 +18,17 @@ public interface FormElementCaseEditorProcessor extends Level{
/** /**
* 生成属性表 * 生成属性表
* @param temp 传入当前操作的class * @param temp 传入当前操作的class
* @param reportFitAttr 传入的自适应属性
* @return 返回属性表 * @return 返回属性表
*/ */
PropertyDescriptor[] createPropertyDescriptor(Class<?> temp); PropertyDescriptor[] createPropertyDescriptor(Class<?> temp, ReportFitAttrProvider reportFitAttr);
/**
* 返回pc自适应属性值
* @param fitAttrProvider 传入的自适应属性
* @return 返回pc自适应属性值
*/
int getFitStateInPC(ReportFitAttrProvider fitAttrProvider);
} }

15
designer_base/src/com/fr/design/fun/impl/AbstractFormElementCaseEditorProcessor.java

@ -1,6 +1,7 @@
package com.fr.design.fun.impl; package com.fr.design.fun.impl;
import com.fr.design.fun.FormElementCaseEditorProcessor; import com.fr.design.fun.FormElementCaseEditorProcessor;
import com.fr.stable.fun.ReportFitAttrProvider;
import java.beans.PropertyDescriptor; import java.beans.PropertyDescriptor;
@ -17,9 +18,21 @@ public abstract class AbstractFormElementCaseEditorProcessor implements FormElem
/** /**
* 生成属性表 * 生成属性表
* @param temp 传入当前操作的class * @param temp 传入当前操作的class
* @param reportFitAttr 传入的自适应属性
* @return 返回属性表 * @return 返回属性表
*/ */
public PropertyDescriptor[] createPropertyDescriptor(Class<?> temp){ @Override
public PropertyDescriptor[] createPropertyDescriptor(Class<?> temp, ReportFitAttrProvider reportFitAttr) {
return new PropertyDescriptor[0]; return new PropertyDescriptor[0];
} }
/**
* 返回pc自适应属性值
* @param fitAttrProvider 传入的自适应属性
* @return 返回pc自适应属性值
*/
@Override
public int getFitStateInPC(ReportFitAttrProvider fitAttrProvider) {
return 0;
}
} }

52
designer_form/src/com/fr/design/designer/creator/XElementCase.java

@ -9,7 +9,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 +21,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 +34,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);
} }
protected void initXCreatorProperties() { protected void initXCreatorProperties() {
super.initXCreatorProperties(); super.initXCreatorProperties();
// 报表块初始化时要加载对应的borderStyle // 报表块初始化时要加载对应的borderStyle
initBorderStyle(); initBorderStyle();
} }
/** /**
* 是否支持设置标题 * 是否支持设置标题
* @return 是返回true * @return 是返回true
@ -78,14 +87,21 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme
}; };
FormElementCaseEditorProcessor processor = ExtraDesignClassManager.getInstance().getPropertyTableEditor(); FormElementCaseEditorProcessor processor = ExtraDesignClassManager.getInstance().getPropertyTableEditor();
if (processor == null){ this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner();
FitProvider wbTpl = (FitProvider) designer.getTarget();
ReportFitAttrProvider fitAttr = wbTpl.getFitAttr();
ElementCaseEditor editor = this.toData();
ReportFitAttrProvider reportFitAttr = editor.getReportFitAttr() == null ? fitAttr : editor.getReportFitAttr();
PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass(), reportFitAttr);
if (processor == null) {
return propertyTableEditor; return propertyTableEditor;
} }
PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); if (editor.getReportFitAttr() == null) {
editor.setReportFitInPc(processor.getFitStateInPC(fitAttr));
}
return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor);
} }
@Override @Override
protected String getIconName() { protected String getIconName() {
return "text_field_16.png"; return "text_field_16.png";
@ -118,7 +134,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme
} }
return editor; return editor;
} }
/** /**
* 从data中获取到图片背景, 并设置到Label上 * 从data中获取到图片背景, 并设置到Label上
*/ */
@ -126,10 +142,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 +195,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 +203,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 +215,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 +238,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){

Loading…
Cancel
Save