@Override public void doShowPage() { // table.setStyleName("permission-grant-table"); mainPanel.clear(); mainPanel.add(new Label(administrationConstants.loading())); AbstractCallback callback = new AbstractCallback(errorPanel) { public void onCallSuccess(Object permissions) { receivePermissions((Collection) permissions); } }; getPermissions(callback); }
protected void receiveGroups(Map groups2Permissions) { this.groups2Permissions = groups2Permissions; mainPanel.clear(); ContentPanel cp = new FullContentPanel(); cp.setHeading(administrationConstants.usersGroup()); // add inline help string and widget // cp.setTopComponent(new // InlineHelpPanel(galaxy.getRepositoryConstants().repo_Security_Tip(), 15)); mainPanel.add(cp); table = createRowTable(); cp.add(table); int col = 1; table.setWidget(0, 0, new Image("images/clearpixel.gif")); for (Iterator itr = permissions.iterator(); itr.hasNext(); ) { WPermission p = (WPermission) itr.next(); table.setWidget(0, col, createTitleText(p.getDescription())); col++; } rows = new ArrayList<String>(); for (Iterator itr = groups2Permissions.keySet().iterator(); itr.hasNext(); ) { rows.add(((WGroup) itr.next()).getName()); } Collections.sort(rows); for (Iterator itr = groups2Permissions.entrySet().iterator(); itr.hasNext(); ) { Map.Entry e = (Map.Entry) itr.next(); final WGroup role = (WGroup) e.getKey(); final String groupName = role.getName(); final Hyperlink hl = new Hyperlink(groupName, "groups/" + role.getId()); int row = rows.indexOf(groupName) + 1; // certain groups should not be removed or edited via the GUI boolean isUberGroup = groupName.equals("Administrators") || groupName.equals("Anonymous"); if (isUberGroup) { table.setWidget(row, 0, new Label(groupName)); } else { table.setWidget(row, 0, hl); } Collection grants = (Collection) e.getValue(); for (Iterator gItr = grants.iterator(); gItr.hasNext(); ) { WPermissionGrant pg = (WPermissionGrant) gItr.next(); int permCol = getPermissionColumn(pg.getPermission().getName()); if (permCol != -1) { Widget w = createGrantWidget(pg, isUberGroup); table.setWidget(row, permCol, w); } } row++; } // table.getFlexCellFormatter().setColSpan(rows.size() + 1, 0, col); SelectionListener listener = new SelectionListener<ComponentEvent>() { public void componentSelected(ComponentEvent ce) { Button btn = (Button) ce.getComponent(); if (btn == applyButton) { beginApply(); } if (btn == resetButton) { // Go back to the previously saved state. errorPanel.clearErrorMessage(); doShowPage(); } } }; applyButton = new Button(administrationConstants.save(), listener); resetButton = new Button(administrationConstants.cancel(), listener); ButtonBar bb = new ButtonBar(); bb.add(applyButton); bb.add(resetButton); bb.add(createHistoryButton(administrationConstants.newAdmin(), "groups/new")); // table.setWidget(rows.size() + 1, 0, bb); cp.add(bb); cp.layout(true); }