|
|
|
@ -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 树 |
|
|
|
|