diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignAuthorityEventType.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignAuthorityEventType.java new file mode 100644 index 0000000000..fc1d0ab5a0 --- /dev/null +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignAuthorityEventType.java @@ -0,0 +1,11 @@ +package com.fr.design.mainframe; + +import com.fr.event.Event; + +public enum DesignAuthorityEventType implements Event { + + // 退出权限编辑 + StartEdit, + // 进入权限编辑 + StopEdit; +} diff --git a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java index 2cc83543c3..55e07cc1ce 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/DesignerFrame.java @@ -39,6 +39,7 @@ import com.fr.design.mainframe.toolbar.ToolBarMenuDockPlus; import com.fr.design.menu.MenuManager; import com.fr.design.menu.ShortCut; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.event.EventDispatcher; import com.fr.exception.DecryptTemplateException; import com.fr.file.FILE; import com.fr.file.FILEFactory; @@ -333,6 +334,7 @@ public class DesignerFrame extends JFrame implements JTemplateActionListener, Ta needToAddAuhtorityPaint(); refreshDottedLine(); fireAuthorityStateToNomal(); + EventDispatcher.fire(DesignAuthorityEventType.StopEdit, DesignerFrame.this); } /** diff --git a/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java b/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java index a412e0a8a8..d839461dda 100644 --- a/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java +++ b/designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java @@ -11,18 +11,29 @@ import com.fr.design.gui.icontainer.UIScrollPane; import com.fr.design.gui.itoolbar.UIToolbar; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignAuthorityEventType; import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.DesignerFrame; import com.fr.design.mainframe.DockingView; import com.fr.design.menu.ToolBarDef; - - -import javax.swing.*; +import com.fr.event.Event; +import com.fr.event.EventDispatcher; +import com.fr.event.Listener; + +import javax.swing.BorderFactory; +import javax.swing.Icon; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JTree; +import javax.swing.ScrollPaneConstants; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.TreeSelectionEvent; +import javax.swing.tree.DefaultTreeSelectionModel; import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; -import java.awt.*; +import java.awt.BorderLayout; +import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -40,6 +51,15 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo private static ReportAndFSManagePane singleton = new ReportAndFSManagePane(); private static RoleTree roleTree; + static { + EventDispatcher.listen(DesignAuthorityEventType.StopEdit, new Listener() { + + public void on(Event event, DesignerFrame param) { + DefaultTreeSelectionModel model = roleTree.getCheckBoxTreeSelectionModel(); + model.removeSelectionPaths(model.getSelectionPaths()); + } + }); + } private RefreshAction refreshAction = new RefreshAction(); private UIHeadGroup buttonGroup; private RoleSourceOP op;