package edu.ualberta.med.biobank.dialogs.user; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import edu.ualberta.med.biobank.common.action.security.ManagerContext; import edu.ualberta.med.biobank.gui.common.dialogs.BgcDialogPage; import edu.ualberta.med.biobank.gui.common.dialogs.BgcDialogWithPages; import edu.ualberta.med.biobank.model.Group; import edu.ualberta.med.biobank.model.Role; import edu.ualberta.med.biobank.model.User; public class UserManagementDialog extends BgcDialogWithPages { private final ManagerContext context; public UserManagementDialog(Shell parentShell, ManagerContext context) { super(parentShell); this.context = context; } @Override protected String getTitleAreaMessage() { return "Select the security information to display"; } @Override protected String getTitleAreaTitle() { return "User/Group Management"; } @Override protected String getDialogShellTitle() { return "User/Group Management"; } @Override protected void createButtonsForButtonBar(Composite parent) { createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); } @Override protected List<BgcDialogPage> createPages() { List<BgcDialogPage> nodes = new ArrayList<BgcDialogPage>(); nodes.add(new UsersPage(this, context) { @Override protected List<User> getCurrentAllUsersList() { return context.getUsers(); } }); nodes.add(new GroupsPage(this, context) { @Override protected List<Group> getCurrentAllGroupsList() { return context.getGroups(); } }); if (context.isRoleManager()) { nodes.add(new RolesPage(this) { @Override protected List<Role> getCurrentAllRolesList() { return context.getRoles(); } }); } return nodes; } @Override protected BgcDialogPage getDefaultSelection() { return getPages().get(0); } }