From 4d4fae61c99bfb866d93043bb3415ae5df414ebe Mon Sep 17 00:00:00 2001 From: Hades Date: Wed, 8 May 2019 17:36:40 +0800 Subject: [PATCH] =?UTF-8?q?REPORT-16789=20=E3=80=9010.0.3=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E3=80=91=E6=9D=83=E9=99=90=E7=BC=96=E8=BE=91=E7=95=8C?= =?UTF-8?q?=E9=9D=A2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/file/HistoryTemplateListCache.java | 14 +++++++------- .../com/fr/design/mainframe/DesktopCardPane.java | 5 +++-- .../java/com/fr/design/mainframe/JTemplate.java | 3 ++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java b/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java index f790eca94..528f6a56c 100644 --- a/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java +++ b/designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java @@ -41,17 +41,17 @@ public class HistoryTemplateListCache implements CallbackEvent { private List> historyList; private JTemplate editingTemplate; - private static volatile HistoryTemplateListCache THIS; + private static volatile HistoryTemplateListCache instacne; public static HistoryTemplateListCache getInstance() { - if (THIS == null) { + if (instacne == null) { synchronized (HistoryTemplateListCache.class) { - if (THIS == null) { - THIS = new HistoryTemplateListCache(); + if (instacne == null) { + instacne = new HistoryTemplateListCache(); } } } - return THIS; + return instacne; } private HistoryTemplateListCache() { @@ -66,8 +66,8 @@ public class HistoryTemplateListCache implements CallbackEvent { public void closeSelectedReport(JTemplate selected) { DesignModuleFactory.clearChartPropertyPane(); DesignTableDataManager.closeTemplate(selected); - //直接关闭模板的时候退出权限编辑 - if (DesignModeContext.isAuthorityEditing()) { + //直接关闭模板的时候(当且仅当设计器tab上只剩一个模板)退出权限编辑 + if (DesignModeContext.isAuthorityEditing() && historyList.size() <= 1) { DesignerContext.getDesignerFrame().closeAuthorityEditing(); } if (contains(selected) == -1) { diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesktopCardPane.java b/designer-base/src/main/java/com/fr/design/mainframe/DesktopCardPane.java index 94a1427b0..8b32d1427 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesktopCardPane.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesktopCardPane.java @@ -30,7 +30,7 @@ public class DesktopCardPane extends BasicPane implements TargetModifiedListener // 判断是否切换设计器状态到禁止拷贝剪切 if (jt.getTarget().getAttrMark(DesignBanCopyAttrMark.XML_TAG) != null) { DesignModeContext.switchTo(DesignerMode.BAN_COPY_AND_CUT); - } else if (!DesignModeContext.isVcsMode()){ + } else if (!DesignModeContext.isVcsMode() && !DesignModeContext.isAuthorityEditing()){ DesignModeContext.switchTo(DesignerMode.NORMAL); } DesignerFrameFileDealerPane.getInstance().setCurrentEditingTemplate(jt); @@ -38,7 +38,8 @@ public class DesktopCardPane extends BasicPane implements TargetModifiedListener component.onLostFocus(); remove(component); } - add(component = jt, BorderLayout.CENTER); + component = jt; + add(component, BorderLayout.CENTER); validate(); repaint(); revalidate(); diff --git a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java index a8ec61abc..f2d051af2 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/JTemplate.java @@ -12,6 +12,7 @@ import com.fr.design.DesignModelAdapter; import com.fr.design.DesignState; import com.fr.design.DesignerEnvManager; import com.fr.design.ExtraDesignClassManager; +import com.fr.design.actions.AllowAuthorityEditAction; import com.fr.design.actions.TableDataSourceAction; import com.fr.design.actions.edit.RedoAction; import com.fr.design.actions.edit.UndoAction; @@ -112,7 +113,7 @@ public abstract class JTemplate> // 判断是否切换设计器状态到禁止拷贝剪切 if (t.getAttrMark(DesignBanCopyAttrMark.XML_TAG) != null) { DesignModeContext.switchTo(com.fr.design.base.mode.DesignerMode.BAN_COPY_AND_CUT); - } else if (!DesignModeContext.isVcsMode()) { + } else if (!DesignModeContext.isVcsMode() && !DesignModeContext.isAuthorityEditing()) { DesignModeContext.switchTo(com.fr.design.base.mode.DesignerMode.NORMAL); } this.template = t;