+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.argeo.security.ui.admin.views;
-import java.util.ArrayList;
-
import org.argeo.ArgeoException;
-import org.argeo.security.ArgeoSecurityService;
-import org.argeo.security.ArgeoUser;
+import org.argeo.security.UserAdminService;
import org.argeo.security.ui.admin.SecurityAdminPlugin;
import org.argeo.security.ui.admin.commands.AddRole;
-import org.argeo.security.ui.admin.commands.OpenArgeoUserEditor;
-import org.eclipse.core.commands.Command;
-import org.eclipse.core.commands.IParameter;
-import org.eclipse.core.commands.Parameterization;
-import org.eclipse.core.commands.ParameterizedCommand;
-import org.eclipse.jface.viewers.DoubleClickEvent;
-import org.eclipse.jface.viewers.IDoubleClickListener;
import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.commands.ICommandService;
import org.eclipse.ui.handlers.IHandlerService;
import org.eclipse.ui.part.ViewPart;
/** List all roles. */
public class RolesView extends ViewPart {
- public final static String ID = "org.argeo.security.ui.rolesView";
+ public final static String ID = "org.argeo.security.ui.admin.adminRolesView";
private Text newRole;
private TableViewer viewer;
- private ArgeoSecurityService securityService;
+ private UserAdminService userAdminService;
private String addNewRoleText = "<add new role here>";
viewer = new TableViewer(table);
viewer.setContentProvider(new RolesContentProvider());
viewer.setLabelProvider(new UsersLabelProvider());
+ getViewSite().setSelectionProvider(viewer);
viewer.setInput(getViewSite());
- viewer.addDoubleClickListener(new ViewDoubleClickListener());
}
@Override
viewer.getTable().setFocus();
}
- public void setSecurityService(ArgeoSecurityService securityService) {
- this.securityService = securityService;
+ public void setUserAdminService(UserAdminService userAdminService) {
+ this.userAdminService = userAdminService;
}
public String getAddNewRoleText() {
private class RolesContentProvider implements IStructuredContentProvider {
public Object[] getElements(Object inputElement) {
- return securityService.listEditableRoles().toArray();
+ return userAdminService.listEditableRoles().toArray();
}
public void dispose() {
}
- class ViewDoubleClickListener implements IDoubleClickListener {
- public void doubleClick(DoubleClickEvent evt) {
- Object obj = ((IStructuredSelection) evt.getSelection())
- .getFirstElement();
-
- if (obj instanceof ArgeoUser) {
- ArgeoUser argeoUser = (ArgeoUser) obj;
-
- IWorkbench iw = SecurityAdminPlugin.getDefault().getWorkbench();
- IHandlerService handlerService = (IHandlerService) iw
- .getService(IHandlerService.class);
- try {
- String commandId = OpenArgeoUserEditor.COMMAND_ID;
- String paramName = OpenArgeoUserEditor.PARAM_USERNAME;
-
- // TODO: factorize this
- // execute related command
- IWorkbenchWindow window = iw.getActiveWorkbenchWindow();
- ICommandService cmdService = (ICommandService) window
- .getService(ICommandService.class);
- Command cmd = cmdService.getCommand(commandId);
- ArrayList<Parameterization> parameters = new ArrayList<Parameterization>();
- IParameter iparam = cmd.getParameter(paramName);
- Parameterization param = new Parameterization(iparam,
- argeoUser.getUsername());
- parameters.add(param);
- ParameterizedCommand pc = new ParameterizedCommand(cmd,
- parameters.toArray(new Parameterization[parameters
- .size()]));
- handlerService = (IHandlerService) window
- .getService(IHandlerService.class);
- handlerService.executeCommand(pc, null);
- } catch (Exception e) {
- throw new ArgeoException("Cannot open editor", e);
- }
-
- }
- }
- }
-
public String getNewRole() {
return newRole.getText();
}