From 44764ccffad84dc5da34d95f5d4918ad0ee28cb1 Mon Sep 17 00:00:00 2001 From: kerry Date: Wed, 13 Sep 2017 15:13:51 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-4117=20[9.0=E4=B8=80=E8=BD=AE=E5=9B=9E?= =?UTF-8?q?=E5=BD=92]=E6=8E=A7=E4=BB=B6=E6=8F=90=E4=BA=A4=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E6=99=BA=E8=83=BD=E9=80=89=E6=8B=A9=E5=8D=95=E5=85=83?= =?UTF-8?q?=E6=A0=BC=E5=90=8E=E8=87=AA=E5=8A=A8=E5=A4=8D=E5=88=B6=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=8E=A7=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mainframe/CellWidgetPropertyPane.java | 40 ++++++++++++------- .../src/com/fr/design/widget/WidgetPane.java | 11 +++-- 2 files changed, 33 insertions(+), 18 deletions(-) diff --git a/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java b/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java index 39b3e3d93..38d3c3905 100644 --- a/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java +++ b/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java @@ -102,31 +102,41 @@ public class CellWidgetPropertyPane extends BasicPane { } public void update() { - if (cellElement == null) {// 利用默认的CellElement. + if (cellElement == null || !cellEditorDefPane.isShouldFireSelectedEvent()) { return; } 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); - } + if(finalCS.isSelectedOneCell(ePane)){ + if(tplEC.getTemplateCellElement(cellElement.getColumn(), cellElement.getRow())== null){//cellElement未加入到report中时要添加进去 + tplEC.addCellElement(cellElement); } - }); + setCellWidget(cellElement); + }else{ + ReportActionUtils.actionIterateWithCellSelection(finalCS, tplEC, new ReportActionUtils.IterAction() { + public void dealWith(CellElement editCellElement) { + // p:最后把这个cellEditorDef设置到CellGUIAttr. + TemplateCellElement templateCellElement = (TemplateCellElement) editCellElement; + setCellWidget(templateCellElement); + } + }); + } if(DesignerContext.getDesignerFrame().getSelectedJTemplate() != null){ DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); } } + private void setCellWidget(TemplateCellElement cellElement){ + Widget cellWidget = cellEditorDefPane.update(); + if (cellWidget instanceof NoneWidget) { + cellElement.setWidget(null); + } else { + if (cellElement.getWidget() != null) { + cellWidget = upDateWidgetAuthority(cellElement, cellWidget); + } + cellElement.setWidget(cellWidget); + } + } public void reInitAllListener(){ cellEditorDefPane.registerListener(); diff --git a/designer/src/com/fr/design/widget/WidgetPane.java b/designer/src/com/fr/design/widget/WidgetPane.java index 36f99491f..d8e816d80 100644 --- a/designer/src/com/fr/design/widget/WidgetPane.java +++ b/designer/src/com/fr/design/widget/WidgetPane.java @@ -47,6 +47,12 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener this.initComponents(pane); } + + public boolean isShouldFireSelectedEvent(){ + return shouldFireSelectedEvent; + } + + protected void initComponents(ElementCasePane pane) { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0)); @@ -136,8 +142,8 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener String name = ((NameWidget) widget).getName(); shouldFireSelectedEvent = false; editorTypeComboBox.setSelectedItem(new Item(name, name)); - shouldFireSelectedEvent = true; cellEditorCardPane.populate(widget); + shouldFireSelectedEvent = true; } // 内置组件 else { @@ -145,10 +151,9 @@ public class WidgetPane extends AbstractAttrNoScrollPane implements ItemListener if (ArrayUtils.contains(ButtonConstants.CLASSES4BUTTON, clazz)) { clazz = Button.class; } - cellEditorCardPane.populate(widget); - shouldFireSelectedEvent = false; editorTypeComboBox.setSelectedItemByWidgetClass(clazz); + cellEditorCardPane.populate(widget); shouldFireSelectedEvent = true; } removeAttributeChangeListener();