📄 entitypermissionpanel.java
字号:
activeModel = groupModel; location = new Point( bodyPanel.getX() + groupPanel.getX() + activeScrollPane.getX() + ev.getX(), bodyPanel.getY() + groupPanel.getY() + activeScrollPane.getY() + ev.getY() ); }*/ final int row = activeTable.rowAtPoint(new Point(ev.getX(), ev.getY())); final PermissionTableModel finalModel = activeModel; /*if (row == activeTable.getRowCount()-1) { return; }*/ activeTable.setRowSelectionInterval(row,row); menu = new JPopupMenu("Permissions"); menu.add(new AbstractAction("Delete Permission") { public void actionPerformed(ActionEvent ev) { Permission p = finalModel.getPermission(row); deletePermission(finalType, p); } }); menu.setVisible(true); menu.show( this, location.x, location.y ); } /** * Removes permission from either permission table (as defined by * the "type" parameter. */ public void deletePermission(PermissionType type, Permission p) { if (type.equals(PermissionType.PERMISSION_USER)) { permModel.permissions.remove(p); SwingUtilities.updateComponentTreeUI(permPermissionTable); } /*else if (type.equals(PermissionType.PERMISSION_GROUP)) { groupModel.permissions.remove(p); SwingUtilities.updateComponentTreeUI(groupPermissionTable); }*/ } public void addPermission() { StaffMemberSearchWindow window = new StaffMemberSearchWindow(); window.setCriteria(textFor.getText()); window.setDestination(this); window.display(); } /** @deprecated Use the argument-less version */ public void addPermission(PermissionType type) { if (type.equals(PermissionType.PERMISSION_USER)) { Permission p = permModel.getPermission(permPermissionTable.getSelectedRow()); if (p.getReference().equals("Add User...")) { // TODO: use new staff popup window /*StaffMemberSearchPanel panel = new StaffMemberSearchPanel( "Add Staff Member", new EntityPermissionPanel(entityType, entityID, entityPermission), new EntityPermissionPanel(entityType, entityID, entityPermission), null); PanelManager.getInstance().activatePanel(panel);*/ } } /*else if (type.equals(PermissionType.PERMISSION_GROUP)) { Permission p = userModel.getPermission(groupPermissionTable.getSelectedRow()); if (p.getReference().equals("Add Group...")) { } }*/ } /** * Loads all permission data from the back end. */ public void refreshData() { Server server = ServerFactory.getInstance().getServer(); ServerCommand command = new ServerCommand(PermissionModule.PERM_ALL_ENTITY); command.setParameter(PermissionModule.PARAM_ENTITY_ID, String.valueOf(entityID)); command.setParameter(PermissionModule.PARAM_ENTITY_TYPE, entityType.getCode()); ServerResponse response = server.sendCommand(command); ArrayList permissions = null; // User level access permissions permModel.clear(); permissions = (ArrayList) response.getPart("permissions"); //permissions.add(createAddPermission("Add User...")); permModel.addPermissions(permissions); permPermissionTable.setModel(permModel); SwingUtilities.updateComponentTreeUI(permPermissionTable); // get the department and location details command = new ServerCommand(StaffModule.STAFF_SEARCH_FORM); ServerResponse sr = server.sendCommand(command); ArrayList departments = (ArrayList) sr.getPart("departments"); departmentModel.removeAllElements(); for (int i=0; i < departments.size(); i++) { departmentModel.addElement((Department)departments.get(i)); } ArrayList locations = (ArrayList) sr.getPart("locations"); locationModel.removeAllElements(); for (int i=0; i < locations.size(); i++) { locationModel.addElement((Site)locations.get(i)); } // Group level access permissions /*groupModel.clear(); permissions = (ArrayList) response.getPart("permissions.group"); java.util.List groupList = (java.util.List)response.getPart("group.list"); groupPermissionTable.setGroupAddListener(this); groupPermissionTable.setGroupList(groupList); System.out.println("Set group list with " + groupList.size() + " elements."); permissions.add(createAddPermission("Add Group")); groupModel.addPermissions(permissions); groupPermissionTable.setModel(groupModel); SwingUtilities.updateComponentTreeUI(groupPermissionTable); //Global access permissions if (response.getPart("permissions.all") != null) { Permission all = (Permission) response.getPart("permissions.all"); allReadCheckBox.setSelected(all.canRead()); allWriteCheckBox.setSelected(all.canWrite()); allDeleteCheckBox.setSelected(all.canDelete()); } else { allReadCheckBox.setSelected(false); allWriteCheckBox.setSelected(false); allDeleteCheckBox.setSelected(false); }*/ } public void saveData() { // Remove the 'add' permissions on the end of both user // and group lists //permModel.permissions.remove(permModel.permissions.size()-1); //groupModel.permissions.remove(groupModel.permissions.size()-1); Server server = ServerFactory.getInstance().getServer(); ServerCommand command = new ServerCommand(PermissionModule.PERM_SAVE_ENTITY); command.setParameter(PermissionModule.PARAM_ENTITY_ID, String.valueOf(entityID)); command.setParameter(PermissionModule.PARAM_ENTITY_TYPE, entityType.getCode()); command.setParameter("permissions", permModel.permissions); //command.setParameter("permissions.group", groupModel.permissions); /*Permission all = new Permission(); all.setEntityID(entityID); all.setEntityType(entityType); all.setPermissionType(PermissionType.PERMISSION_ALL); all.setPermission(Permission.READ_PERMISSION, allReadCheckBox.isSelected()); all.setPermission(Permission.WRITE_PERMISSION, allWriteCheckBox.isSelected()); all.setPermission(Permission.DELETE_PERMISSION, allDeleteCheckBox.isSelected()); command.setParameter("permissions.all", all); */ ServerResponse response = server.sendCommand(command); // The user saving the data will want to return to the previous window // NOTE: This fixes a bug if they double click the save button it will remove the last permission entry each time // this is bad and will eventually lock the applet (while removing important data) if (callback != null) callback.callback(this, CRMSComponent.CB_CLOSE_WINDOW, null); } public Permission createAddPermission(String text) { Permission p = new Permission(); p.setID("add"); p.setReference(text); return p; } public void callback(Object source, int mode, Object data) { if (source instanceof StaffMemberSearchWindow) { setStaffMemberFound((StaffMember)data); } } public void setStaffMemberFound(StaffMember staffMember) { Permission p = new Permission(); p.setEntityID(entityID); p.setEntityType(entityType); p.setID(staffMember.getUID()); p.setLocation(staffMember.getLocation()); p.setDivision(staffMember.getDepartment()); p.setPower(staffMember.getPower()); p.setReference(staffMember); p.setPermission(Permission.READ_PERMISSION, true); permModel.permissions.add(p); permPermissionTable.tableChanged(new TableModelEvent(permModel)); textFor.setText(""); } /*public void groupAdded(Group newGroup) { for (int i=0; i < groupModel.permissions.size(); i++) { Permission compare = (Permission) groupModel.permissions.get(i); if (newGroup.getID().equals(compare.getID())) { return; } } Permission p = new Permission(); p.setEntityID(entityID); p.setEntityType(entityType); p.setPermissionType(PermissionType.PERMISSION_GROUP); p.setID(newGroup.getID()); p.setReference(newGroup); groupModel.permissions.add(groupModel.permissions.size()-1, p); SwingUtilities.updateComponentTreeUI(groupPermissionTable); }*/ class PermissionTableModel extends DefaultTableModel { private ArrayList permissions = new ArrayList(); private PermissionType permissionType = null; public PermissionTableModel(PermissionType type) { this.permissionType = type; } public int getColumnCount() { return 7; } public int getRowCount() { if (permissions == null) { return 0; } return permissions.size(); } public boolean isCellEditable(int row, int column) { //if (permissionType.equals(PermissionType.PERMISSION_USER)) { return (column >= 3); //&& (row < (permissions.size() -1 ))); //} /*if (permissionType.equals(PermissionType.PERMISSION_GROUP)) { return (column > 0 && row < (permissions.size() -1 ) || (column == 0 && row == (permissions.size() - 1))); }*/ } public String getColumnName(int col) { switch(col) { case 0: return "Name"; case 1: return "Division"; case 2: return "Location"; case 3: return "Read"; case 4: return "Write"; case 5: return "Delete"; case 6: return "Security"; default: return null; } } public Object getValueAt(int row, int column) { Permission p = (Permission) permissions.get(row); switch(column) { case 0: return p.getReference() != null ? p.getReference() : "All"; case 1: return p.getDivision() != null ? p.getDivision() : "All"; case 2: return p.getLocation() != null ? p.getLocation() : "All"; case 3: return new Boolean(p.canRead()); case 4: return new Boolean(p.canWrite()); case 5: return new Boolean(p.canDelete()); case 6: return new Boolean(p.canSecurity()); default: return null; } } public void setValueAt(Object value, int row, int column) { Permission p = (Permission) permissions.get(row); if (column < 3) { return; } p.setPermission(column-3, ((Boolean)value).booleanValue()); } public void clear() { permissions = new ArrayList(); } public void addPermissions(java.util.List permissionList) { permissions.addAll(permissionList); } public int getPermissionCount() { return permissions.size(); } public Permission getPermission(int i) { return (Permission) permissions.get(i); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -