1 package org
.argeo
.cms
.e4
.users
;
3 import org
.argeo
.cms
.CmsException
;
4 import org
.argeo
.naming
.LdapAttrs
;
5 import org
.eclipse
.e4
.ui
.model
.application
.ui
.basic
.MPart
;
6 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EPartService
;
7 import org
.eclipse
.e4
.ui
.workbench
.modeling
.EPartService
.PartState
;
8 import org
.eclipse
.jface
.viewers
.DoubleClickEvent
;
9 import org
.eclipse
.jface
.viewers
.IDoubleClickListener
;
10 import org
.eclipse
.jface
.viewers
.IStructuredSelection
;
11 import org
.osgi
.service
.useradmin
.Group
;
12 import org
.osgi
.service
.useradmin
.User
;
15 * Default double click listener for the various user tables, will open the
16 * clicked item in the editor
18 public class UserTableDefaultDClickListener
implements IDoubleClickListener
{
19 private final EPartService partService
;
21 public UserTableDefaultDClickListener(EPartService partService
) {
22 this.partService
= partService
;
25 public void doubleClick(DoubleClickEvent evt
) {
26 if (evt
.getSelection().isEmpty())
28 Object obj
= ((IStructuredSelection
) evt
.getSelection()).getFirstElement();
29 User user
= (User
) obj
;
31 String entityEditorId
= getEditorId(user
);
32 MPart part
= partService
.createPart(entityEditorId
);
33 part
.setLabel(user
.toString());
34 part
.getPersistedState().put(LdapAttrs
.uid
.name(), user
.getName());
36 // the provided part is be shown
37 partService
.showPart(part
, PartState
.ACTIVATE
);
39 // IWorkbenchWindow iww = WorkbenchUiPlugin.getDefault().getWorkbench()
40 // .getActiveWorkbenchWindow();
41 // IWorkbenchPage iwp = iww.getActivePage();
42 // UserEditorInput uei = new UserEditorInput(user.getName());
46 // Works around the fact that dynamic setting of the editor icon
47 // causes NPE after a login/logout on RAP
48 // if (user instanceof Group)
49 // iwp.openEditor(uei, UserEditor.GROUP_EDITOR_ID);
51 // iwp.openEditor(uei, UserEditor.USER_EDITOR_ID);
52 } catch (Exception pie
) {
53 throw new CmsException("Unable to open UserEditor for " + user
, pie
);
57 protected String
getEditorId(User user
) {
58 if (user
instanceof Group
)
59 return "org.argeo.cms.e4.partdescriptor.groupEditor";
61 return "org.argeo.cms.e4.partdescriptor.userEditor";