1 package org.argeo.cms.ui.workbench.internal.useradmin.providers;
2
3 import org.argeo.cms.CmsException;
4 import org.argeo.cms.ui.workbench.WorkbenchUiPlugin;
5 import org.argeo.cms.ui.workbench.internal.useradmin.parts.UserEditor;
6 import org.argeo.cms.ui.workbench.internal.useradmin.parts.UserEditorInput;
7 import org.eclipse.jface.viewers.DoubleClickEvent;
8 import org.eclipse.jface.viewers.IDoubleClickListener;
9 import org.eclipse.jface.viewers.IStructuredSelection;
10 import org.eclipse.ui.IWorkbenchPage;
11 import org.eclipse.ui.IWorkbenchWindow;
12 import org.eclipse.ui.PartInitException;
13 import org.osgi.service.useradmin.Group;
14 import org.osgi.service.useradmin.User;
15
16
17
18
19
20 public class UserTableDefaultDClickListener implements IDoubleClickListener {
21 public void doubleClick(DoubleClickEvent evt) {
22 if (evt.getSelection().isEmpty())
23 return;
24 Object obj = ((IStructuredSelection) evt.getSelection())
25 .getFirstElement();
26 User user = (User) obj;
27 IWorkbenchWindow iww = WorkbenchUiPlugin.getDefault().getWorkbench()
28 .getActiveWorkbenchWindow();
29 IWorkbenchPage iwp = iww.getActivePage();
30 UserEditorInput uei = new UserEditorInput(user.getName());
31
32 try {
33
34
35 if (user instanceof Group)
36 iwp.openEditor(uei, UserEditor.GROUP_EDITOR_ID);
37 else
38 iwp.openEditor(uei, UserEditor.USER_EDITOR_ID);
39 } catch (PartInitException pie) {
40 throw new CmsException("Unable to open UserEditor for " + user, pie);
41 }
42 }
43 }