diff --git a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java index 071d92cc15..ed0d481465 100644 --- a/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/ElementCasePaneDelegate.java @@ -97,6 +97,8 @@ public class ElementCasePaneDelegate extends ElementCasePane { EastRegionContainerPane.getInstance().replaceCellElementPane(QuickEditorRegion.getInstance()); EastRegionContainerPane.getInstance().replaceConditionAttrPane(conditionAttributesGroupPane); EastRegionContainerPane.getInstance().replaceWidgetSettingsPane(CellWidgetPropertyPane.getInstance()); + + EastRegionContainerPane.getInstance().updateCellElementState(isSelectedOneCell()); } EastRegionContainerPane.getInstance().replaceHyperlinkPane(hyperlinkGroupPane); EastRegionContainerPane.getInstance().removeParameterPane(); diff --git a/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java b/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java index 5fb20154b0..68ee0d79bd 100644 --- a/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java +++ b/designer/src/com/fr/design/mainframe/form/FormElementCasePaneDelegate.java @@ -46,7 +46,7 @@ public class FormElementCasePaneDelegate extends ElementCasePane { EastRegionContainerPane.getInstance().replaceCellAttrPane(CellElementPropertyPane.getInstance()); EastRegionContainerPane.getInstance().replaceCellElementPane(QuickEditorRegion.getInstance()); EastRegionContainerPane.getInstance().replaceWidgetSettingsPane(CellWidgetPropertyPane.getInstance()); + + EastRegionContainerPane.getInstance().updateCellElementState(isSelectedOneCell()); } EastRegionContainerPane.getInstance().replaceCellAttrPane(CellElementPropertyPane.getInstance()); @@ -169,4 +171,13 @@ public class ECBlockEditor extends BlockEditor { ConditionAttributesGroupPane conditionAttributesGroupPane = ConditionAttributesGroupPane.getInstance(); conditionAttributesGroupPane.populate(editComponent); } + + private boolean isSelectedOneCell() { + JTemplate jTemplate = DesignerContext.getDesignerFrame().getSelectedJTemplate(); + if (jTemplate == null) { + return false; + } + ElementCasePane ePane = (ElementCasePane)jTemplate.getCurrentElementCasePane(); + return ePane != null && ePane.isSelectedOneCell(); + } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java b/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java index cfc34633fa..ed2d245b6c 100644 --- a/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java +++ b/designer_base/src/com/fr/design/mainframe/EastRegionContainerPane.java @@ -153,6 +153,24 @@ public class EastRegionContainerPane extends UIEastResizableContainer { return defaultPane; } + public void updateCellElementState(boolean isSelectedOneCell) { + if (isSelectedOneCell) { + enableCellElementPane(); + } else { // 如果选中多个单元格,禁用单元格元素 tab + disableCellElementPane(); + refreshRightPane(); + } + } + + // 禁用单元格元素tab + private void disableCellElementPane() { + propertyItemMap.get(KEY_CELL_ELEMENT).setEnabled(false); + } + // 禁用单元格元素tab + private void enableCellElementPane() { + propertyItemMap.get(KEY_CELL_ELEMENT).setEnabled(true); + } + private void initContentPane() { initRightPane(); initLeftPane();