diff --git a/designer-realize/src/main/java/com/fr/design/mainframe/WorkBookModelAdapter.java b/designer-realize/src/main/java/com/fr/design/mainframe/WorkBookModelAdapter.java index 7b292c3a1..fff25486d 100644 --- a/designer-realize/src/main/java/com/fr/design/mainframe/WorkBookModelAdapter.java +++ b/designer-realize/src/main/java/com/fr/design/mainframe/WorkBookModelAdapter.java @@ -2,20 +2,17 @@ package com.fr.design.mainframe; import com.fr.base.Parameter; import com.fr.base.TableData; -import com.fr.base.parameter.ParameterUI; import com.fr.data.TableDataSource; import com.fr.design.DesignModelAdapter; import com.fr.design.bridge.DesignToolbarProvider; import com.fr.form.ui.Widget; import com.fr.main.impl.WorkBook; +import com.fr.main.impl.WorkBookHelper; import com.fr.main.parameter.ReportParameterAttr; -import com.fr.report.cell.CellElement; -import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.FloatElement; -import com.fr.report.elementcase.ElementCase; import com.fr.report.elementcase.TemplateElementCase; -import com.fr.report.report.Report; import com.fr.script.Calculator; +import com.fr.stable.Filter; import com.fr.stable.ParameterProvider; import com.fr.stable.StringUtils; import com.fr.stable.bridge.StableFactory; @@ -31,6 +28,7 @@ import java.util.List; */ public class WorkBookModelAdapter extends DesignModelAdapter { + public WorkBookModelAdapter(JWorkBook jworkbook) { super(jworkbook); } @@ -116,42 +114,21 @@ public class WorkBookModelAdapter extends DesignModelAdapter getWidgetsName() { - List list = new ArrayList(); WorkBook wb = this.getBook(); - ReportParameterAttr parameterAttr = wb.getReportParameterAttr(); - if (parameterAttr != null) { - ParameterUI parameterUI = parameterAttr.getParameterUI(); - if (parameterUI != null) { - Widget[] paraWidgets = parameterUI.getAllWidgets(); - for (int i = 0; i < paraWidgets.length; i++) { - Widget wi = paraWidgets[i]; - if (widgetAccepted(wi)) { - list.add(new WidgetName(wi.getWidgetName())); - } - } + return WorkBookHelper.listWidgetNamesInWorkBook(wb, new Filter() { + @Override + public boolean accept(Widget widget) { + return widgetAccepted(widget); } - } - - for (int i = 0, len = wb.getReportCount(); i < len; i++) { - Report report = wb.getReport(i); - Iterator it = report.iteratorOfElementCase(); - while (it.hasNext()) { - ElementCase ec = (ElementCase) it.next(); - Iterator cs = ec.cellIterator(); - while (cs.hasNext()) { - CellElement ce = (CellElement) cs.next(); - if (ce instanceof DefaultTemplateCellElement) { - Widget widget = ((DefaultTemplateCellElement) ce).getWidget(); - //todo 这边有没有必要统一改成widgetAccepted?暂时不改,插件那边可能会有影响,因为插件有的控件并没有实现DataControl的 - if (widget != null && StringUtils.isNotEmpty(widget.getWidgetName())) { - list.add(new WidgetName(widget.getWidgetName())); - } - } - } + }, new Filter() { + @Override + public boolean accept(Widget widget) { + //todo 这边有没有必要统一改成widgetAccepted?暂时不改,插件那边可能会有影响,因为插件有的控件并没有实现DataControl的 + return widget != null && StringUtils.isNotEmpty(widget.getWidgetName()); } - } - return list; + }); } /**