1 package org
.argeo
.security
.ui
.admin
.internal
.providers
;
3 import org
.argeo
.ArgeoException
;
4 import org
.argeo
.eclipse
.ui
.workbench
.WorkbenchUiPlugin
;
5 import org
.argeo
.security
.ui
.admin
.internal
.parts
.UserEditor
;
6 import org
.argeo
.security
.ui
.admin
.internal
.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
;
17 * Default double click listener for the various user tables, will open the
18 * clicked item in the editor
20 public class UserTableDefaultDClickListener
implements IDoubleClickListener
{
21 public void doubleClick(DoubleClickEvent evt
) {
22 if (evt
.getSelection().isEmpty())
24 Object obj
= ((IStructuredSelection
) evt
.getSelection())
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());
33 // Works around the fact that dynamic setting of the editor icon
34 // causes NPE after a login/logout on RAP
35 if (user
instanceof Group
)
36 iwp
.openEditor(uei
, UserEditor
.GROUP_EDITOR_ID
);
38 iwp
.openEditor(uei
, UserEditor
.USER_EDITOR_ID
);
39 } catch (PartInitException pie
) {
40 throw new ArgeoException("Unable to open UserEditor for " + user
,