diff --git a/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java b/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java index 5637a68ca6..60f45450c7 100644 --- a/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java +++ b/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java @@ -1,6 +1,7 @@ package com.fr.design.mainframe; import com.fr.base.FRContext; +import com.fr.design.actions.utils.ReportActionUtils; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; import com.fr.design.dialog.DialogActionAdapter; @@ -15,6 +16,7 @@ import com.fr.grid.selection.CellSelection; import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.Selection; import com.fr.privilege.finegrain.WidgetPrivilegeControl; +import com.fr.report.cell.CellElement; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.elementcase.TemplateElementCase; @@ -30,6 +32,7 @@ public class CellWidgetPropertyPane extends BasicPane { private TemplateCellElement cellElement; private WidgetPane cellEditorDefPane; + private ElementCasePane ePane; public static CellWidgetPropertyPane getInstance(){ if (singleton == null) { @@ -84,6 +87,7 @@ public class CellWidgetPropertyPane extends BasicPane { public void reInit(ElementCasePane ePane){ + this.ePane = ePane; cellEditorDefPane = new WidgetPane(ePane); this.removeAll(); this.add(cellEditorDefPane, BorderLayout.CENTER); @@ -108,18 +112,23 @@ public class CellWidgetPropertyPane extends BasicPane { if (cellElement == null) {// 利用默认的CellElement. return; } - - Widget cellWidget = this.cellEditorDefPane.update(); - // p:最后把这个cellEditorDef设置到CellGUIAttr. - if (cellWidget instanceof NoneWidget) { - cellElement.setWidget(null); - } else { - if (cellElement.getWidget() != null) { - cellWidget = upDateWidgetAuthority(cellElement, cellWidget); + final CellSelection finalCS = (CellSelection) ePane.getSelection(); + final TemplateElementCase tplEC = ePane.getEditingElementCase(); + ReportActionUtils.actionIterateWithCellSelection(finalCS, tplEC, new ReportActionUtils.IterAction() { + public void dealWith(CellElement editCellElement) { + Widget cellWidget = cellEditorDefPane.update(); + // p:最后把这个cellEditorDef设置到CellGUIAttr. + TemplateCellElement cellElement = (TemplateCellElement) editCellElement; + if (cellWidget instanceof NoneWidget) { + cellElement.setWidget(null); + } else { + if (cellElement.getWidget() != null) { + cellWidget = upDateWidgetAuthority(cellElement, cellWidget); + } + cellElement.setWidget(cellWidget); + } } - cellElement.setWidget(cellWidget); - } - + }); } diff --git a/designer/src/com/fr/design/present/ConditionAttributesGroupPane.java b/designer/src/com/fr/design/present/ConditionAttributesGroupPane.java index 5cc05777da..961c88d105 100644 --- a/designer/src/com/fr/design/present/ConditionAttributesGroupPane.java +++ b/designer/src/com/fr/design/present/ConditionAttributesGroupPane.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import com.fr.base.FRContext; +import com.fr.design.actions.utils.ReportActionUtils; import com.fr.design.gui.controlpane.UIListControlPane; import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.ElementCasePane; @@ -15,6 +16,7 @@ import com.fr.design.gui.controlpane.NameObjectCreator; import com.fr.design.gui.controlpane.NameableCreator; import com.fr.general.Inter; import com.fr.grid.selection.CellSelection; +import com.fr.report.cell.CellElement; import com.fr.report.cell.DefaultTemplateCellElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.cellattr.highlight.DefaultHighlight; @@ -27,6 +29,7 @@ import com.fr.stable.Nameable; public class ConditionAttributesGroupPane extends UIListControlPane { private static ConditionAttributesGroupPane singleton; private TemplateCellElement editCellElement; // 当前单元格对象 + private ElementCasePane ePane; private ConditionAttributesGroupPane() { super(); @@ -49,7 +52,14 @@ public class ConditionAttributesGroupPane extends UIListControlPane { if (isPopulating) { return; } - editCellElement.setHighlightGroup(updateHighlightGroup()); + final CellSelection finalCS = (CellSelection) ePane.getSelection(); + final TemplateElementCase tplEC = ePane.getEditingElementCase(); + + ReportActionUtils.actionIterateWithCellSelection(finalCS, tplEC, new ReportActionUtils.IterAction() { + public void dealWith(CellElement editCellElement) { + ((TemplateCellElement)editCellElement).setHighlightGroup(updateHighlightGroup()); + } + }); DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); } @@ -64,6 +74,7 @@ public class ConditionAttributesGroupPane extends UIListControlPane { } public void populate(ElementCasePane ePane) { + this.ePane = ePane; CellSelection cs = (CellSelection) ePane.getSelection(); final TemplateElementCase tplEC = ePane.getEditingElementCase(); editCellElement = tplEC.getTemplateCellElement(cs.getColumn(), cs.getRow()); diff --git a/designer/src/com/fr/poly/PolyDesigner.java b/designer/src/com/fr/poly/PolyDesigner.java index 0c700a7bf5..fcafd4c8ca 100644 --- a/designer/src/com/fr/poly/PolyDesigner.java +++ b/designer/src/com/fr/poly/PolyDesigner.java @@ -738,7 +738,7 @@ public class PolyDesigner extends ReportComponent