From 19cdc820a8e008483ea04bf54dd8dfe13c2901e6 Mon Sep 17 00:00:00 2001 From: jensp Date: Wed, 20 Apr 2016 15:48:31 +0000 Subject: [PATCH] CCM NG: Some JavaDoc for the classees providing the admin UI for users, groups and roles. git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4020 8810af33-2d31-482b-a856-94f89814c4df --- .../usersgroupsroles/UsersGroupsRolesTab.java | 48 +++++++++---- .../groups/GroupAddMemberForm.java | 21 ++++-- .../usersgroupsroles/groups/GroupAdmin.java | 72 +++++++++++++++++-- .../usersgroupsroles/groups/GroupDetails.java | 4 +- .../usersgroupsroles/groups/GroupForm.java | 11 ++- .../groups/GroupMembersTable.java | 3 +- .../groups/GroupPropertySheetModel.java | 28 ++++++-- .../GroupPropertySheetModelBuilder.java | 3 + .../usersgroupsroles/groups/GroupsTable.java | 3 +- .../roles/RoleAddMemberForm.java | 3 +- .../usersgroupsroles/roles/RoleAdmin.java | 3 +- .../usersgroupsroles/roles/RoleDetails.java | 3 +- .../usersgroupsroles/roles/RoleForm.java | 6 +- .../roles/RoleMembersTable.java | 3 +- .../roles/RolePermissionsForm.java | 4 ++ .../roles/RolePermissionsTable.java | 3 +- .../roles/RolePropertySheetModel.java | 7 +- .../roles/RolePropertySheetModelBuilder.java | 3 +- .../usersgroupsroles/roles/RolesTable.java | 3 +- .../usersgroupsroles/users/ActionLinks.java | 6 +- .../usersgroupsroles/users/EmailForm.java | 3 +- .../usersgroupsroles/users/EmailTable.java | 4 +- .../users/EmailTableModel.java | 3 +- .../users/EmailTableModelBuilder.java | 3 +- .../users/GroupMembershipsForm.java | 3 +- .../users/GroupsRolesTable.java | 7 +- .../users/GroupsRolesTableModel.java | 3 +- .../users/GroupsRolesTableModelBuilder.java | 3 +- .../usersgroupsroles/users/NewUserForm.java | 5 +- .../users/PasswordSetForm.java | 4 +- .../users/PrimaryEmailTable.java | 3 +- .../users/PrimaryEmailTableModel.java | 3 +- .../users/PrimaryEmailTableModelBuilder.java | 3 +- .../users/RoleMembershipsForm.java | 3 +- .../usersgroupsroles/users/UserAdmin.java | 44 +----------- .../usersgroupsroles/users/UserDetails.java | 3 +- .../usersgroupsroles/users/UserEditForm.java | 2 + .../users/UserPropertySheetModel.java | 6 ++ .../users/UserPropertySheetModelBuilder.java | 3 +- .../usersgroupsroles/users/UsersTable.java | 3 +- .../users/UsersTablePanel.java | 3 +- 41 files changed, 242 insertions(+), 109 deletions(-) diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java index da20a77d7..10b388c83 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/UsersGroupsRolesTab.java @@ -40,7 +40,14 @@ import java.util.ArrayList; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Root component of the administration UI for users, groups and roles. + * This class creates the menu on the left side and connects the menu with the + * specific UIs for users, groups and roles. + * + * @see UserAdmin + * @see GroupAdmin + * @see RoleAdmin + * * @author Jens Pelzetter */ public class UsersGroupsRolesTab extends LayoutPanel { @@ -63,15 +70,6 @@ public class UsersGroupsRolesTab extends LayoutPanel { }); sections.setClassAttr("navbar"); -// final BoxPanel usersPanel = new BoxPanel(); -// usersPanel.add(new Label("Users Panel")); - -// final BoxPanel groupsPanel = new BoxPanel(); -// groupsPanel.add(new Label("Groups Panel")); - -// final BoxPanel rolesPanel = new BoxPanel(); -// rolesPanel.add(new Label("Roles Panel")); - final BoxPanel body = new BoxPanel(); addSection( new Label(new GlobalizedMessage( @@ -96,6 +94,13 @@ public class UsersGroupsRolesTab extends LayoutPanel { setBody(body); } + /** + * Helper method for adding a section + * + * @param label The label of the section. + * @param component The component which provides the section. + * @param panel The panel to which the component is added. + */ private void addSection(final Label label, final Component component, final BoxPanel panel) { @@ -105,17 +110,25 @@ public class UsersGroupsRolesTab extends LayoutPanel { panel.add(component); keys.add(label); } - + + /** + * Register the components in the page + * + * @param page The Admin UI page. + */ @Override public void register(final Page page) { Assert.isUnlocked(this); components.forEach(c -> page.setVisibleDefault(c, false)); - //page.setVisibleDefault(components.get(0), true); - - } + /** + * Sets the current section. + * + * @param index The index of the section. + * @param state The page state. + */ public void setSection(final int index, final PageState state) { sections.setSelectedKey(state, String.valueOf(index)); for(int i = 0; i < components.size(); i++) { @@ -132,6 +145,9 @@ public class UsersGroupsRolesTab extends LayoutPanel { } } + /** + * Model Builder for the section list. + */ private class SectionsListModelBuilder extends LockableImpl implements ListModelBuilder { @@ -142,12 +158,14 @@ public class UsersGroupsRolesTab extends LayoutPanel { sections.setSelectedKey(state, String.valueOf(0)); } - //sections.setSelectedKey(state, String.valueOf(0)); return new SectionsListModel(state); } } + /** + * Model for the section list. + */ private class SectionsListModel implements ListModel { private int index = -1; diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java index 0c6be163d..72f3ba224 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAddMemberForm.java @@ -19,6 +19,7 @@ package com.arsdigita.ui.admin.usersgroupsroles.groups; import com.arsdigita.bebop.ActionLink; +import com.arsdigita.bebop.BoxPanel; import com.arsdigita.bebop.Component; import com.arsdigita.bebop.ControlLink; import com.arsdigita.bebop.Form; @@ -51,7 +52,12 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for adding a new member to group. The form contains a form for searching + * members (uses the user name, the family name, the given name and the primary + * email address). After a search term was send, a table with all matching users + * is displayed. The table also contains an action link for adding a user to the + * group which is currently selected.. + * * @author Jens Pelzetter */ class GroupAddMemberForm extends Form { @@ -72,16 +78,17 @@ class GroupAddMemberForm extends Form { super("groupAddMemberForm"); + final BoxPanel links = new BoxPanel(BoxPanel.VERTICAL); final ActionLink backToGroup = new ActionLink(new GlobalizedMessage( "ui.admin.group_details.add_member.back", ADMIN_BUNDLE)); backToGroup.addActionListener(e -> { groupAdmin.hideGroupMemberAddForm(e.getPageState()); }); - add(backToGroup); + links.add(backToGroup); - final Label header = new Label(); - header.setClassAttr("heading"); - header.addPrintListener(e -> { + final Label heading = new Label(); + heading.setClassAttr("heading"); + heading.addPrintListener(e -> { final PageState state = e.getPageState(); final Label target = (Label) e.getTarget(); @@ -96,7 +103,9 @@ class GroupAddMemberForm extends Form { new String[]{group.getName()})); }); - add(header); + links.add(heading); + + add(links); memberName = new TextField(MEMBER_NAME); memberName.setLabel(new GlobalizedMessage( diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAdmin.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAdmin.java index 242f096d6..e9ae06842 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAdmin.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupAdmin.java @@ -33,24 +33,50 @@ import com.arsdigita.globalization.GlobalizedMessage; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * UI for managing the groups (collections of users) in the system. * * @author Jens Pelzetter */ public class GroupAdmin extends BoxPanel { + /** + * Parameter for the currently selected group. + */ private final StringParameter groupIdParameter; + /** + * Model for the current selected group. + */ private final ParameterSingleSelectionModel selectedGroupId; + /** + * Text field for the filter UI for filtering the groups table. + */ private final TextField groupsTableFilter; + /** + * The panel containing the groups table and some supporting UI elements. + */ private final BoxPanel groupsTablePanel; + /** + * The groups table itself. + */ private final GroupsTable groupsTable; + /** + * The form for creating new groups and editing the properties of existing + * groups. + */ private final GroupForm groupForm; + /** + * The component which displays the details of a group. + */ private final GroupDetails groupDetails; + /** + * The form for adding members to a group. + */ private final GroupAddMemberForm groupAddMemberForm; public GroupAdmin() { super(BoxPanel.VERTICAL); - setBasicProperties(); + setIdAttr("groupAdmin"); final Label heading = new Label(new GlobalizedMessage( "ui.admin.groups.heading", ADMIN_BUNDLE)); @@ -103,6 +129,12 @@ public class GroupAdmin extends BoxPanel { } + /** + * Register the top level components of the UI in the page. Otherwise we + * can't control their visibility. + * + * @param page + */ @Override public void register(final Page page) { super.register(page); @@ -115,11 +147,11 @@ public class GroupAdmin extends BoxPanel { page.setVisibleDefault(groupAddMemberForm, false); } - private void setBasicProperties() { - setIdAttr("groupAdmin"); - - } - + /** + * Sets the groups details visible and all other components invisible. + * + * @param state The current {@link PageState}. + */ protected void showGroupDetails(final PageState state) { groupsTablePanel.setVisible(state, false); groupForm.setVisible(state, false); @@ -127,6 +159,12 @@ public class GroupAdmin extends BoxPanel { groupAddMemberForm.setVisible(state, false); } + /** + * Sets the groups details invisible and sets the groups table visible. Also + * clears the {@link #selectedGroupId}. + * + * @param state The current {@link PageState}. + */ protected void hideGroupDetails(final PageState state) { selectedGroupId.clearSelection(state); groupsTablePanel.setVisible(state, true); @@ -135,6 +173,12 @@ public class GroupAdmin extends BoxPanel { groupAddMemberForm.setVisible(state, false); } + /** + * Shows the form for creating new groups or editing the properties of + * existing groups. + * + * @param state The current {@link PageState}. + */ protected void showGroupForm(final PageState state) { groupsTablePanel.setVisible(state, false); groupForm.setVisible(state, true); @@ -142,6 +186,12 @@ public class GroupAdmin extends BoxPanel { groupAddMemberForm.setVisible(state, false); } + /** + * Hides the group form and shows the groups table or the groups details + * depending of a group is selected or not. + * + * @param state The current {@link PageState}. + */ protected void hideGroupForm(final PageState state) { //We want to show the groups table if no group is selected and the //group details if a group is selected. @@ -153,6 +203,11 @@ public class GroupAdmin extends BoxPanel { groupAddMemberForm.setVisible(state, false); } + /** + * Shows the form for adding a member to a group. A group must be selected. + * + * @param state The current {@link PageState}. + */ protected void showGroupMemberAddForm(final PageState state) { groupsTablePanel.setVisible(state, false); groupForm.setVisible(state, false); @@ -160,6 +215,11 @@ public class GroupAdmin extends BoxPanel { groupAddMemberForm.setVisible(state, true); } + /** + * Hides the form for adding members to a group and shows the group details. + * + * @param state The current {@link PageState}. + */ protected void hideGroupMemberAddForm(final PageState state) { groupsTablePanel.setVisible(state, false); groupForm.setVisible(state, false); diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java index 20b3eaa2a..69b7c7173 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupDetails.java @@ -33,7 +33,9 @@ import org.libreccm.security.GroupRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Panel which contains several components showing the properties of a group + * including a table of the members of the group. + * * @author Jens Pelzetter */ class GroupDetails extends BoxPanel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java index e5593993b..c650daab6 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupForm.java @@ -34,6 +34,15 @@ import org.libreccm.security.GroupRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * Form used for creating new groups and editing the properties of existing + * groups. + * + * If a group is selected (the provided {@link ParameterSingleSelectionModel} + * has a none null value) the group identified by that ID is loaded and the + * values are put into the fields and the changes are written back to the group + * when the form is submitted. + * + * If no group is selected a new group is created when the form is submitted. * * @author Jens Pelzetter */ @@ -47,7 +56,7 @@ class GroupForm extends Form { public GroupForm( final GroupAdmin groupAdmin, final ParameterSingleSelectionModel selectedGroupId) { - + super("groupform"); final Label heading = new Label(e -> { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java index fee82c655..1c406a4cb 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupMembersTable.java @@ -47,7 +47,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Table which all members of a group. + * * @author Jens Pelzetter */ class GroupMembersTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModel.java index 0058e6895..98d4be657 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModel.java @@ -33,11 +33,22 @@ import java.util.TreeSet; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * The model for the property sheet of a group. The {@link GroupProperty} enum + * contains a list of all rows of the property sheet. The {@link #nextRow()} + * method of this model uses an iterator to iterate over the values of the enum + * and sets value of the {@link #currentProperty} field. Based on the value of + * the {@link #currentProperty} field the {@link #getValue()} method decides + * which information is shown. * * @author Jens Pelzetter */ class GroupPropertySheetModel implements PropertySheetModel { + /** + * An enum which identifies the rows of the property sheet. The + * {@link #nextRow()} method uses an iterator to iterate over all values the + * property. + */ private static enum GroupProperty { GROUP_NAME, ROLES @@ -79,7 +90,7 @@ class GroupPropertySheetModel implements PropertySheetModel { private GlobalizedMessage generateGlobalizedLabel( final GroupProperty property) { - final String key = String.join("", + final String key = String.join("", "ui.admin.group.property_sheet.", property.toString().toLowerCase()); return new GlobalizedMessage(key, ADMIN_BUNDLE); @@ -97,18 +108,27 @@ class GroupPropertySheetModel implements PropertySheetModel { } } + /** + * Helper method for retrieving all roles assigned to group. The roles are + * retrieved from the selected group, their names are than put into a sorted + * set which sorted alphabetically and the passed to a {@link StringJoiner} + * which creates a string which all roles separated by a comma. + * + * @return A string containing the names of all roles assigned to the group + * in alphabetical order separated by a comma. + */ private String retrieveRoles() { final Set roleMemberships = selectedGroup .getRoleMemberships(); - + final SortedSet roles = new TreeSet<>((r1, r2) -> { return r1.compareTo(r2); }); - + roleMemberships.forEach(m -> { roles.add(m.getRole().getName()); }); - + return String.join(", ", roles.toArray(new String[roles.size()])); } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java index 9549c6091..4ca639dd0 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupPropertySheetModelBuilder.java @@ -30,6 +30,8 @@ import org.libreccm.security.Group; import org.libreccm.security.GroupRepository; /** + * Model builder for the group property sheet creating the + * {@link GroupPropertySheetModel}. * * @author Jens Pelzetter */ @@ -58,4 +60,5 @@ class GroupPropertySheetModelBuilder return new GroupPropertySheetModel(selectedGroup); } + } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java index 88430735a..cd2fbc3ee 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/groups/GroupsTable.java @@ -44,7 +44,8 @@ import org.libreccm.security.GroupRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Table listing all groups. + * * @author Jens Pelzetter */ class GroupsTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java index a9a096010..f96546de3 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAddMemberForm.java @@ -53,7 +53,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for adding members (users or groups) to a role. + * * @author Jens Pelzetter */ class RoleAddMemberForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAdmin.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAdmin.java index 225dff85e..adac85fa8 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAdmin.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleAdmin.java @@ -33,7 +33,8 @@ import com.arsdigita.globalization.GlobalizedMessage; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * UI for managing roles. + * * @author Jens Pelzetter */ public class RoleAdmin extends BoxPanel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java index 41f645bff..21c5d8fc0 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleDetails.java @@ -33,7 +33,8 @@ import org.libreccm.security.RoleRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Shows the properties of a role including the members of the role. + * * @author Jens Pelzetter */ class RoleDetails extends BoxPanel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java index aad6ce91d..565b7932d 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleForm.java @@ -34,7 +34,11 @@ import org.libreccm.security.RoleRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for creating new roles and editing existing roles. If a role + * is selected the form is populated with the values of an existing role. When + * the form is submitted either a new role is created or an existing group + * is updated. + * * @author Jens Pelzetter */ class RoleForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java index a396d35d9..fdc5cba9a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RoleMembersTable.java @@ -49,7 +49,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Table showing all members (users or groups) of a role. + * * @author Jens Pelzetter */ class RoleMembersTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java index 30854d1a5..84a714c93 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsForm.java @@ -38,6 +38,10 @@ import org.libreccm.security.RoleRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * A basic form for add permissions to role. Usually the applications should + * provide better and more comfortable forms for editing their specific + * permissions. This form is provided to give the administrator the possibility + * to manage permissions in a generic way. * * @author Jens Pelzetter */ diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java index e84b2ce0b..29d025035 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePermissionsTable.java @@ -47,7 +47,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Table displaying all permissions granted to a role. + * * @author Jens Pelzetter */ class RolePermissionsTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModel.java index 8e92d6458..a6ffbd2cd 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModel.java @@ -29,7 +29,12 @@ import java.util.Iterator; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * The model for the property sheet of a role. The {@link RoleProperty} + * enum contains all properties which are shown in the property sheet. The + * {@link #nextRow()} method iterates over these properties and sets the + * value {@link #currentProperty} field. The {@link #getValue()} method + * returns the value for the {@code currentProperty}. + * * @author Jens Pelzetter */ class RolePropertySheetModel implements PropertySheetModel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java index 697f2fc28..3b1d79790 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolePropertySheetModelBuilder.java @@ -30,7 +30,8 @@ import org.libreccm.security.Role; import org.libreccm.security.RoleRepository; /** - * + * Model builder for the {@link RolePropertySheetModel}. + * * @author Jens Pelzetter */ class RolePropertySheetModelBuilder extends LockableImpl diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java index c5b5563e0..4ff28d2a7 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/roles/RolesTable.java @@ -44,7 +44,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Filterable table showing all roles. + * * @author Jens Pelzetter */ class RolesTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java index b432ee92e..cc817e770 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/ActionLinks.java @@ -36,20 +36,22 @@ import javax.mail.MessagingException; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * A panel contains several action links used in the {@link UserDetails} + * component. * * @author Jens Pelzetter */ class ActionLinks extends BoxPanel { private static final Logger LOGGER = LogManager.getLogger(ActionLinks.class); - + public ActionLinks(final UserAdmin userAdmin, final ParameterSingleSelectionModel selectedUserId) { super(BoxPanel.HORIZONTAL); setIdAttr("userDetailsActionLinks"); - + final ActionLink editUserDetailsLink = new ActionLink( new GlobalizedMessage("ui.admin.user_details.edit", ADMIN_BUNDLE)); editUserDetailsLink.addActionListener(e -> { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java index 6c9530e13..7b4dc7ca1 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailForm.java @@ -38,7 +38,8 @@ import org.libreccm.security.UserRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for editing and adding email addresses to a user. + * * @author Jens Pelzetter */ class EmailForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java index b97c0da79..98bf402f7 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTable.java @@ -39,7 +39,9 @@ import org.libreccm.security.UserRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Table showing the additional email addresses associated with a user. + * Please note that the additional email addresses property will maybe removed. + * * @author Jens Pelzetter */ class EmailTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModel.java index eab4b6169..56d8266b5 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModel.java @@ -30,7 +30,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Model for the {@link EmailTable}. + * * @author Jens Pelzetter */ class EmailTableModel implements TableModel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java index 0e9c63cdd..5dff76850 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/EmailTableModelBuilder.java @@ -30,7 +30,8 @@ import org.libreccm.security.User; import org.libreccm.security.UserRepository; /** - * + * Model builder for the {@link EmailTableModel}. + * * @author Jens Pelzetter */ class EmailTableModelBuilder extends LockableImpl diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java index 6a0cddab2..ddcefcce7 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupMembershipsForm.java @@ -50,7 +50,8 @@ import java.util.stream.IntStream; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for editing the group memberships of a user. + * * @author Jens Pelzetter */ class GroupMembershipsForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTable.java index dd6e1380a..1f24f9be9 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTable.java @@ -31,7 +31,12 @@ import com.arsdigita.bebop.table.TableColumn; import com.arsdigita.bebop.table.TableColumnModel; /** - * + * Table showing the roles and groups of a user. The table has three rows. The + * first one show the groups to which the user is assigned. The second row + * shows all roles to which are directly assigned to a user. + * The third row shows all roles which are assigned to the user, either directly + * or via one of the groups the user is assigned to. + * * @author Jens Pelzetter */ class GroupsRolesTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModel.java index 700ba6967..8a5d68848 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModel.java @@ -32,7 +32,8 @@ import java.util.Set; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Model for the {@link GroupsRolesTable}. + * * @author Jens Pelzetter */ class GroupsRolesTableModel implements TableModel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java index e40e8e180..fa62f6b4a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/GroupsRolesTableModelBuilder.java @@ -30,7 +30,8 @@ import org.libreccm.security.User; import org.libreccm.security.UserRepository; /** - * + * Model builder for the {@link GroupsRolesTableModel}. + * * @author Jens Pelzetter */ class GroupsRolesTableModelBuilder extends LockableImpl diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/NewUserForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/NewUserForm.java index 4405bfd4e..a51ed39e4 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/NewUserForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/NewUserForm.java @@ -29,8 +29,6 @@ import com.arsdigita.bebop.form.Option; import com.arsdigita.bebop.form.Password; import com.arsdigita.bebop.form.RadioGroup; import com.arsdigita.bebop.form.TextField; -import com.arsdigita.bebop.parameters.NotEmptyValidationListener; -import com.arsdigita.bebop.parameters.StringLengthValidationListener; import com.arsdigita.globalization.GlobalizedMessage; import org.apache.logging.log4j.util.Strings; @@ -45,7 +43,8 @@ import javax.mail.MessagingException; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for creating new users. + * * @author Jens Pelzetter */ class NewUserForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java index 40637733d..9e5d2814d 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PasswordSetForm.java @@ -24,7 +24,6 @@ import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.ParameterSingleSelectionModel; import com.arsdigita.bebop.SaveCancelSection; import com.arsdigita.bebop.form.Password; -import com.arsdigita.bebop.parameters.NotEmptyValidationListener; import com.arsdigita.globalization.GlobalizedMessage; import org.apache.logging.log4j.util.Strings; @@ -36,7 +35,8 @@ import org.libreccm.security.UserRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for setting the password of a user. + * * @author Jens Pelzetter */ class PasswordSetForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTable.java index d237edf96..5553b1479 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTable.java @@ -34,7 +34,8 @@ import com.arsdigita.globalization.GlobalizedMessage; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Table showing the primary email of an user. + * * @author Jens Pelzetter */ class PrimaryEmailTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModel.java index 665a75295..7802ea487 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModel.java @@ -27,7 +27,8 @@ import org.libreccm.security.User; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Model for the {@link PrimaryEmailTable}. + * * @author Jens Pelzetter */ class PrimaryEmailTableModel implements TableModel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java index e9ab2e455..b39b334dd 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/PrimaryEmailTableModelBuilder.java @@ -30,7 +30,8 @@ import org.libreccm.security.User; import org.libreccm.security.UserRepository; /** - * + * Model builder for the {@link PrimaryEmailTableModel}. + * * @author Jens Pelzetter */ class PrimaryEmailTableModelBuilder extends LockableImpl diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java index 3fca68803..d01ec094a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/RoleMembershipsForm.java @@ -50,7 +50,8 @@ import java.util.stream.IntStream; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Form for editing the role memberships of a user. + * * @author Jens Pelzetter */ class RoleMembershipsForm extends Form { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserAdmin.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserAdmin.java index c691699e7..a27f22791 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserAdmin.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserAdmin.java @@ -18,55 +18,15 @@ */ package com.arsdigita.ui.admin.usersgroupsroles.users; -import com.arsdigita.bebop.ActionLink; import com.arsdigita.bebop.BoxPanel; -import com.arsdigita.bebop.Form; -import com.arsdigita.bebop.FormData; -import com.arsdigita.bebop.FormProcessException; -import com.arsdigita.bebop.Label; import com.arsdigita.bebop.Page; import com.arsdigita.bebop.PageState; import com.arsdigita.bebop.ParameterSingleSelectionModel; -import com.arsdigita.bebop.SaveCancelSection; -import com.arsdigita.bebop.Text; -import com.arsdigita.bebop.form.CheckboxGroup; -import com.arsdigita.bebop.form.Option; -import com.arsdigita.bebop.form.Password; -import com.arsdigita.bebop.form.RadioGroup; -import com.arsdigita.bebop.form.TextField; -import com.arsdigita.bebop.parameters.NotEmptyValidationListener; -import com.arsdigita.bebop.parameters.StringLengthValidationListener; import com.arsdigita.bebop.parameters.StringParameter; -import com.arsdigita.globalization.GlobalizedMessage; -import com.arsdigita.util.UncheckedWrapperException; - -import org.libreccm.cdi.utils.CdiUtil; -import org.libreccm.core.EmailAddress; -import org.libreccm.security.ChallengeManager; -import org.libreccm.security.Group; -import org.libreccm.security.GroupManager; -import org.libreccm.security.GroupRepository; -import org.libreccm.security.Role; -import org.libreccm.security.RoleManager; -import org.libreccm.security.RoleRepository; -import org.libreccm.security.User; -import org.libreccm.security.UserManager; -import org.libreccm.security.UserRepository; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.SortedSet; -import java.util.TooManyListenersException; -import java.util.TreeSet; -import java.util.stream.IntStream; - -import javax.mail.MessagingException; - -import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * UI for managing users. + * * @author Jens Pelzetter */ public class UserAdmin extends BoxPanel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserDetails.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserDetails.java index 2d9f93de1..3d3e1f2cc 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserDetails.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserDetails.java @@ -27,7 +27,8 @@ import com.arsdigita.globalization.GlobalizedMessage; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Displays the properties of a user. + * * @author Jens Pelzetter */ class UserDetails extends BoxPanel { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java index 9362bc5e5..4d8420739 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserEditForm.java @@ -37,6 +37,8 @@ import org.libreccm.security.UserRepository; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * Form for editing the properties of a user. There separate forms for some + * properties like the password, the group memberships or the role memberships. * * @author Jens Pelzetter */ diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModel.java index cfe6c34cc..e06443fdf 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModel.java @@ -29,6 +29,11 @@ import org.libreccm.security.User; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** + * Model for the user properties sheet in the {@link UserDetails}. the + * {@link UserProperty} enum contains the properties the show. The + * {@link #nextRow()} method iterators over this properties and sets the + * {@link #currentProperty} field. The {@link #getValue()} returns the value for + * the current property. * * @author Jens Pelzetter */ @@ -104,4 +109,5 @@ class UserPropertySheetModel implements PropertySheetModel { return ""; } } + } diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java index 154c28c37..00271072a 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UserPropertySheetModelBuilder.java @@ -29,7 +29,8 @@ import org.libreccm.security.User; import org.libreccm.security.UserRepository; /** - * + * Model builder for the {@link UserPropertySheetModelBuilder}. + * * @author Jens Pelzetter */ class UserPropertySheetModelBuilder diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTable.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTable.java index e7142fa11..82468b21f 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTable.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTable.java @@ -46,7 +46,8 @@ import java.util.List; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * A filterable table showing all users. + * * @author Jens Pelzetter */ class UsersTable extends Table { diff --git a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTablePanel.java b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTablePanel.java index 327562266..287c0d9c3 100644 --- a/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTablePanel.java +++ b/ccm-core/src/main/java/com/arsdigita/ui/admin/usersgroupsroles/users/UsersTablePanel.java @@ -30,7 +30,8 @@ import com.arsdigita.globalization.GlobalizedMessage; import static com.arsdigita.ui.admin.AdminUiConstants.*; /** - * + * Panel containing the {@link UsersTable} and the filter form for the table. + * * @author Jens Pelzetter */ class UsersTablePanel extends BoxPanel {