Browse Source

Merge pull request #426 in DESIGN/design from ~NEIL/design-10:feature/10.0 to feature/10.0

* commit '66ab8a0d91ca444bf09e6f140ab2f4e9b8e4019e':
  改成FineEmbedServer
  lf
  lf
  REPORT-10592 权限细粒度, 改成从设计器启动DecisionActivator, 删除一些无用代码.
research/10.0
neil 6 years ago
parent
commit
a633fa0501
  1. 275
      designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java
  2. 100
      designer-base/src/main/java/com/fr/design/roleAuthority/RoleSourceOP.java
  3. 57
      designer-base/src/main/java/com/fr/design/roleAuthority/RoleTree.java
  4. 39
      designer-base/src/main/java/com/fr/design/roleAuthority/RolesEditedSourceOP.java

275
designer-base/src/main/java/com/fr/design/roleAuthority/ReportAndFSManagePane.java

@ -36,26 +36,17 @@ import java.util.Enumeration;
*/
public class ReportAndFSManagePane extends DockingView implements Prepare4DataSourceChange {
private static final int REPORT_PLATEFORM_MANAGE = 0;
private static final int FS_MANAGE = 1;
private static final int LEFT_GAP = -125;
private static boolean isSupportFS = false;
private TreePath treePath = null;
private static ReportAndFSManagePane singleton = new ReportAndFSManagePane();
private static RoleTree roleTree;
// carl:我先屏了,现在半拉子,等客户要了再好好做
// private AddAction addAction = new AddAction();
// private RemoveAction removeAction = new RemoveAction();
private RefreshAction refreshAction = new RefreshAction();
private UIHeadGroup buttonGroup;
private RoleSourceOP op;
protected String[] roleNames = new String[2];
private String roleNames;
public synchronized static ReportAndFSManagePane getInstance() {
singleton.op = new RoleSourceOP();
singleton.op.setDataMode(isSupportFS ? FS_MANAGE : REPORT_PLATEFORM_MANAGE);
singleton.setDefaultSelectedRole();
return singleton;
@ -99,29 +90,15 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
}
protected void setTabRoleName(String roleName) {
roleNames[getMode()] = roleTree.getSelectedRoleName();
roleNames = roleTree.getSelectedRoleName();
}
};
roleTree.setEnabled(true);
roleTree.setEditable(false);
// RoleTreeCellEditor treeCellEditor = new RoleTreeCellEditor(new UITextField());
// treeCellEditor.addCellEditorListener(treeCellEditor);
// roleTree.setCellEditor(treeCellEditor);
roleTree.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
roleTree.setEditable(false);
// int row = roleTree.getRowForLocation(e.getX(), e.getY());
// TreePath path = roleTree.getPathForLocation(e.getX(), e.getY());
// if (e.getClickCount() == 2 && buttonGroup.getSelectedIndex() == REPORT_PLATEFORM_MANAGE) {
// PrivilegeManagerProvider pm = PrivilegeManager.getProviderInstance();
// AuthenticationProvider ap = pm.getAuthenticationProvider();
// if (!(ap instanceof DaoAuthenticationProvider)) {
// roleTree.setEditable(true);
// roleTree.startEditingAtPath(path);
// treePath = path;
// }
// }
}
});
}
@ -141,7 +118,7 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
ExpandMutableTreeNode node = (ExpandMutableTreeNode) parent.getLastPathComponent();
String selectedRole = null;
if (singleton != null) {
selectedRole = roleNames[getMode()];
selectedRole = roleNames;
}
if (selectedRole == null) {
if (node.getChildCount() <= 0 || node.getFirstChild().getChildCount() <= 0) {
@ -190,13 +167,12 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
public void tabChanged(int index) {
roleTree.setEditable(false);
if (op != null) {
op.setDataMode(getMode());
//判断是否可编辑
refreshDockingView();
}
setDefaultSelectedRole();
if (singleton != null) {
changeAlreadyEditedPaneRole(roleNames[getMode()]);
changeAlreadyEditedPaneRole(roleNames);
}
}
};
@ -204,37 +180,11 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
buttonGroup.setNeedLeftRightOutLine(false);
}
private int getMode(){
return isSupportFS?FS_MANAGE: REPORT_PLATEFORM_MANAGE;
}
// /**
// * 检查看看是否可以增删刷新按钮是都可以编辑,并且检查角色树是不是可以编辑
// */
// public void checkToolButtonsEnabled() {
// if (buttonGroup.getSelectedIndex() == REPORT_PLATEFORM_MANAGE) {
// PrivilegeManagerProvider pm = PrivilegeManager.getProviderInstance();
// AuthenticationProvider ap = pm.getAuthenticationProvider();
// PrivilegeFilter pf = pm.getPrivilegeFilter();
// boolean isClickable = !(ap instanceof DaoAuthenticationProvider)
// && pf instanceof AuthorityControlFilter;
// addAction.setEnabled(isClickable);
// removeAction.setEnabled(isClickable);
// } else {
// addAction.setEnabled(false);
// removeAction.setEnabled(false);
// }
//
// }
/**
* 刷新界面
*/
public void refreshDockingView() {
populate(new RoleSourceOP());
// this.checkToolButtonsEnabled();
}
private void populate(RoleSourceOP op) {
@ -276,85 +226,6 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
}
// private class AddAction extends UpdateAction {
// public AddAction() {
// this.setName(com.fr.design.i18n.Toolkit.i18nText("Add"));
// this.setSmallIcon(BaseUtils.readIcon("/com/fr/base/images/cell/control/add.png"));
// }
//
// @Override
// public void actionPerformed(ActionEvent e) {
// refreshDockingView();
//
// DefaultTreeModel treeModel = (DefaultTreeModel) roleTree.getModel();
// ExpandMutableTreeNode root = (ExpandMutableTreeNode) treeModel.getRoot();
// ExpandMutableTreeNode parentNode = (ExpandMutableTreeNode) root.getChildAt(0);
// String newName = com.fr.design.i18n.Toolkit.i18nText("newNode") + (++newIndex);
// parentNode.add(new ExpandMutableTreeNode(newName));
// op.addAction(newName);
// roleTree.updateUI();
//
// try {
// synchronized (AuthorityRoleDAOManager.class) {
// AuthorityControlFilter pf = AuthorityRoleDAOManager.getAuthControlFilter(true);
//
// if (AuthorityRoleDAOManager.getAuthorityAllocation(pf, newName) != null) {
// newName = com.fr.design.i18n.Toolkit.i18nText("newNode") + (++newIndex);
// roleTree.refreshTreeNode();
// expandTree(roleTree, true);
// }
//
// AuthorityRoleDAOManager.addAuthorityRole(pf, new Authority(newName), new Allocation(), false, true);
//
// AuthorityRoleDAOManager.doEnd(pf);
// }
// } catch (Exception e1) {
// FRContext.getLogger().error(e1.getMessage(), e1);
// }
// }
// }
// private class RemoveAction extends UpdateAction {
//
// public RemoveAction() {
// this.setName(com.fr.design.i18n.Toolkit.i18nText("Remove"));
// this.setSmallIcon(UIConstants.CLEAR_ICON);
// }
//
// @Override
// public void actionPerformed(ActionEvent e) {
//
//
// NameObject selectedNO = roleTree.getSelectedNameObject();
//
// if (selectedNO == null) {
// return;
// }
//
// int returnVal = JOptionPane.showConfirmDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Utils_Are_You_Sure_To_Remove_The_Selected_Item") + ":" + selectedNO.getName() + "?",
// com.fr.design.i18n.Toolkit.i18nText("Remove"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
// if (returnVal == JOptionPane.OK_OPTION) {
// op.removeAction(selectedNO.getName());
//
// try {
// AuthorityControlFilter pf = AuthorityRoleDAOManager.getAuthControlFilter(true);
//
// AuthorityRoleDAOManager.removeAuthorityRole(pf, new Authority(selectedNO.getName()), true);
// AuthorityRoleDAOManager.doEnd(pf);
// } catch (Exception e1) {
// FRContext.getLogger().error(e1.getMessage(), e1);
// }
//
// roleTree.refreshTreeNode();
// expandTree(roleTree, true);
// roleTree.updateUI();
// roleTree.requestFocus();
// roleTree.setSelectionRow(roleTree.getRowCount() - 1);
// }
// }
// }
/*
* 刷新ReportletsTree
*/
@ -373,144 +244,6 @@ public class ReportAndFSManagePane extends DockingView implements Prepare4DataSo
}
}
// private class RoleTreeCellEditor extends DefaultCellEditor implements TreeCellEditor, CellEditorListener {
//
// private NameObject editingNO;
// private String oldName;
// private String newName;
// private UITextField jTextField;
//
// public RoleTreeCellEditor(final UITextField textField) {
// super(textField);
// this.jTextField = textField;
// this.jTextField.setPreferredSize(new Dimension(DesignerEnvManager.getEnvManager().getLastWestRegionContainerWidth() - 5, this.jTextField.getHeight()));
// }
//
// @Override
// public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {
// editingNO = ReportAndFSManagePane.this.roleTree.getSelectedNameObject();
// oldName = editingNO.getName();
//
// delegate.setValue(oldName);
//
// editorComponent.setPreferredSize(new java.awt.Dimension(ReportAndFSManagePane.this.getPreferredSize().width, editorComponent.getPreferredSize().height));
//
// return editorComponent;
// }
//
// @Override
//
// public boolean isCellEditable(EventObject anEvent) {
// NameObject no = ReportAndFSManagePane.this.roleTree.getSelectedNameObject();
// return !(no.getName() == com.fr.design.i18n.Toolkit.i18nText("Role"));
// }
//
// @Override
// public Object getCellEditorValue() {
// newName = super.getCellEditorValue().toString();
// editingNO.setName(newName);
// return editingNO;
// }
//
//
// private boolean checkRoleNameNotEmpty() {
// refreshDockingView();
//
// String currentText = delegate.getCellEditorValue().toString();
// boolean isContained = false;
// AuthorityControlFilter pf = AuthorityRoleDAOManager.getAuthControlFilter(false);
// if (pf != null &&
// !ComparatorUtils.equals(oldName, currentText)) {
// try {
// Iterator iterator = AuthorityRoleDAOManager.authorityAllocationIterator(pf);
//
// while (iterator.hasNext()) {
// AuthorityAllocation authorityAllocation = (AuthorityAllocation) ((Map.Entry) iterator.next())
// .getValue();
// Authority _authority = authorityAllocation.getAuthority();
// if(ComparatorUtils.equals(_authority.getName(), currentText)){
// isContained = true;
// break;
// }
// }
// } catch (Exception e) {
// }
// }
//
// if (currentText.isEmpty() || isContained) {
// JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), com.fr.design.i18n.Toolkit.i18nText("RoleName_Can_Not_Be_Null") + "!");
// roleTree.refreshTreeNode();
// expandTree(roleTree, true);
// delegate.setValue(oldName);
// return false;
// }
// return true;
// }
//
// /*
// * 下面两个方法是CellEditorListener的
// */
// @Override
// public void editingCanceled(ChangeEvent e) {
// if (!checkRoleNameNotEmpty()) {
// treePath = null;
// return;
// }
// roleTree.stopEditing();
// if (treePath == null) {
// return;
// }
// changeValue();
// roleTree.refreshTreeNode();
// expandTree(roleTree, true);
// }
//
// @Override
// public void editingStopped(ChangeEvent e) {
// if (!checkRoleNameNotEmpty()) {
// treePath = null;
// return;
// }
// changeValue();
// roleTree.refreshTreeNode();
// expandTree(roleTree, true);
// roleTree.updateUI();
// }
//
// private void changeValue() {
// newName = delegate.getCellEditorValue().toString();
// if (!newName.isEmpty() && newName != oldName) {
// roleTree.setSelectedRoleName(newName);
// op.rename(oldName, newName);
//
// AuthorityControlFilter pf = AuthorityRoleDAOManager.getAuthControlFilter(false);
// if (pf != null) {
// try {
// Iterator iterator = AuthorityRoleDAOManager.authorityAllocationIterator(pf);
//
// while (iterator.hasNext()) {
// AuthorityAllocation authorityAllocation = (AuthorityAllocation) ((Map.Entry) iterator.next())
// .getValue();
// Authority _authority = authorityAllocation.getAuthority();
// if (ComparatorUtils.equals(_authority.getName(), oldName)) {
// _authority.setName(newName);
// }
// }
// } catch (Exception e) {
// }
// }
//
// try {
// AuthorityRoleDAOManager.doEnd(pf);
// } catch (Exception e) {
// FRContext.getLogger().error(e.getMessage(), e);
// }
// }
// }
// }
/**
* 展开树
* @param tree

100
designer-base/src/main/java/com/fr/design/roleAuthority/RoleSourceOP.java

File diff suppressed because one or more lines are too long

57
designer-base/src/main/java/com/fr/design/roleAuthority/RoleTree.java

@ -1,23 +1,23 @@
package com.fr.design.roleAuthority;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.constants.UIConstants;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.itree.checkboxtree.CheckBoxTree;
import com.fr.design.gui.itree.checkboxtree.CheckBoxTreeSelectionModel;
import com.fr.general.NameObject;
import com.fr.design.constants.UIConstants;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.file.HistoryTemplateListPane;
import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode;
import com.fr.design.gui.itree.refreshabletree.UserObjectRefreshJTree;
import com.fr.design.mainframe.AuthorityPropertyPane;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.EastRegionContainerPane;
import com.fr.general.ComparatorUtils;
import com.fr.general.NameObject;
import com.fr.start.server.FineEmbedServer;
import javax.swing.SwingUtilities;
import javax.swing.JTree;
import javax.swing.JComponent;
import javax.swing.JTree;
import javax.swing.SwingUtilities;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
@ -54,13 +54,6 @@ public class RoleTree extends UserObjectRefreshJTree<RoleSourceOP> {
this.replaceMouseListener(this, handler, 0);
this.replaceKeyListener(this, handler, 0);
this.addTreeSelectionListener(handler);
// this.removeMouseListener(treeMouseListener);
// this.addTreeSelectionListener(new TreeSelectionListener() {
// public void valueChanged(TreeSelectionEvent e) {
// doWithValueChanged(e);
// }
// });
}
public boolean isCheckBoxVisible(TreePath path) {
@ -68,6 +61,13 @@ public class RoleTree extends UserObjectRefreshJTree<RoleSourceOP> {
}
@Override
protected ExpandMutableTreeNode[] loadChildTreeNodes(ExpandMutableTreeNode selectedTreeNode) {
// 启动平台模块加载角色列表, server内部已经做了启动状态与Workspace判断.
FineEmbedServer.start();
return super.loadChildTreeNodes(selectedTreeNode);
}
/**
* Creates the mouse listener and key listener used by RoleTree.
*
@ -100,26 +100,8 @@ public class RoleTree extends UserObjectRefreshJTree<RoleSourceOP> {
return null;
}
// if (clicksInCheckBox(e, path)) {
return path;
// } else {
// return null;
// }
}
// protected boolean clicksInCheckBox(MouseEvent e, TreePath path) {
// if (!_tree.isCheckBoxVisible(path)) {
// return false;
// } else {
// Rectangle bounds = _tree.getPathBounds(path);
// if (_tree.getComponentOrientation().isLeftToRight()) {
// return e.getX() < bounds.x + _hotspot;
// } else {
// return e.getX() > bounds.x + bounds.width - _hotspot;
// }
// }
// }
}
private TreePath preventToggleEvent(MouseEvent e) {
TreePath pathForMouseEvent = getTreePathForMouseEvent(e);
@ -220,9 +202,6 @@ public class RoleTree extends UserObjectRefreshJTree<RoleSourceOP> {
TreePath tmpTreePath = treePaths[i];
toggleSelection(tmpTreePath);
}
// for (TreePath treePath : treePaths) {
// toggleSelection(treePath);
// }
}
}
@ -366,9 +345,6 @@ public class RoleTree extends UserObjectRefreshJTree<RoleSourceOP> {
for (int i = 0, length = listeners.length; i < length; i++) {
component.removeMouseListener(listeners[i]);
}
// for (MouseListener listener : listeners) {
// component.removeMouseListener(listener);
// }
for (int i = 0; i < listeners.length; i++) {
MouseListener listener = listeners[i];
if (index == i) {
@ -399,9 +375,6 @@ public class RoleTree extends UserObjectRefreshJTree<RoleSourceOP> {
for (int i = 0, length = listeners.length; i < length; i++) {
component.removeKeyListener(listeners[i]);
}
// for (MouseListener listener : listeners) {
// component.removeMouseListener(listener);
// }
for (int i = 0; i < listeners.length; i++) {
KeyListener listener = listeners[i];
if (index == i) {

39
designer-base/src/main/java/com/fr/design/roleAuthority/RolesEditedSourceOP.java

@ -1 +1,38 @@
package com.fr.design.roleAuthority; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Map; import com.fr.design.file.HistoryTemplateListPane; import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode; import com.fr.design.mainframe.JTemplate; import com.fr.general.NameObject; import com.fr.privilege.PrivilegeEditedRoleProvider; /** * Author : daisy * Date: 13-9-25 * Time: 下午4:57 */ public class RolesEditedSourceOP extends RoleSourceOP { /** * 获取报表平台的角色 */ protected void addReportRoles(Map<String, RoleDataWrapper> report_roles) { RoleDataWrapper tdw = new RoleDataWrapper(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_M_Server_Platform_Manager")); report_roles.put(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_M_Server_Platform_Manager"), tdw); } /** * 获取数据决策系统的角色 */ protected void addFSRoles(Map<String, RoleDataWrapper> FS_roles) { RoleDataWrapper tdw = new RoleDataWrapper(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FS_Name_Duplicate")); FS_roles.put(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_FS_Name_Duplicate"), tdw); } /** * 生成子节点 * * @return */ @Override public ExpandMutableTreeNode[] load() { Map<String, RoleDataWrapper> report_roles = null; // Map<String, RoleDataWrapper> FS_roles = null; if (this != null) { report_roles = this.init().get(0); // FS_roles = this.init().get(1); } else { report_roles = Collections.emptyMap(); // FS_roles = Collections.emptyMap(); } List<ExpandMutableTreeNode> list = new ArrayList<ExpandMutableTreeNode>(); //所有的角色 List<ExpandMutableTreeNode> reportlist = new ArrayList<ExpandMutableTreeNode>(); //报表平台橘色 // List<ExpandMutableTreeNode> FSlist = new ArrayList<ExpandMutableTreeNode>(); //数据决策系统角色 list.add(initReportRolseNode(report_roles)); addNodeToList(report_roles, reportlist); // list.add(initFSRolseNode(FS_roles)); // addNodeToList(FS_roles, FSlist); return list.toArray(new ExpandMutableTreeNode[list.size()]); } protected ExpandMutableTreeNode initReportRolseNode(Map<String, RoleDataWrapper> report_roles) { ExpandMutableTreeNode templateNode = new ExpandMutableTreeNode(new NameObject(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Roles_Already_Authority_Edited"), 0), true); templateNode.addChildTreeNodes(getNodeArrayFromMap(report_roles)); return templateNode; } protected ExpandMutableTreeNode[] getNodeArrayFromMap(Map<String, RoleDataWrapper> map) { List<ExpandMutableTreeNode> roleList = new ArrayList<ExpandMutableTreeNode>(); Iterator<Map.Entry<String, RoleDataWrapper>> entryIt = map.entrySet().iterator(); while (entryIt.hasNext()) { Map.Entry<String, RoleDataWrapper> entry = entryIt.next(); String name = entry.getKey(); RoleDataWrapper t = entry.getValue(); JTemplate jt = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate(); PrivilegeEditedRoleProvider pe = (PrivilegeEditedRoleProvider) jt.getTarget(); ExpandMutableTreeNode[] expand = t.load(Arrays.asList(pe.getAllEditedRoleSet())); for (ExpandMutableTreeNode expandMutableTreeNode : expand) { roleList.add(expandMutableTreeNode); } } return roleList.toArray(new ExpandMutableTreeNode[roleList.size()]); } }
package com.fr.design.roleAuthority;
import com.fr.design.file.HistoryTemplateListCache;
import com.fr.design.gui.itree.refreshabletree.ExpandMutableTreeNode;
import com.fr.design.mainframe.JTemplate;
import com.fr.privilege.PrivilegeEditedRoleProvider;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* Author : daisy
* Date: 13-9-25
* Time: 下午4:57
*/
public class RolesEditedSourceOP extends RoleSourceOP {
protected ExpandMutableTreeNode[] getNodeArrayFromMap(Map<String, RoleDataWrapper> map) {
List<ExpandMutableTreeNode> roleList = new ArrayList<ExpandMutableTreeNode>();
Iterator<Map.Entry<String, RoleDataWrapper>> entryIt = map.entrySet().iterator();
while (entryIt.hasNext()) {
Map.Entry<String, RoleDataWrapper> entry = entryIt.next();
RoleDataWrapper t = entry.getValue();
JTemplate jt = HistoryTemplateListCache.getInstance().getCurrentEditingTemplate();
PrivilegeEditedRoleProvider pe = (PrivilegeEditedRoleProvider) jt.getTarget();
ExpandMutableTreeNode[] expand = t.load(Arrays.asList(pe.getAllEditedRoleSet()));
for (ExpandMutableTreeNode expandMutableTreeNode : expand) {
roleList.add(expandMutableTreeNode);
}
}
return roleList.toArray(new ExpandMutableTreeNode[roleList.size()]);
}
}
Loading…
Cancel
Save