]> git.argeo.org Git - lgpl/argeo-commons.git/blob - UserTableDefaultDClickListener.java
a25163b1546bfe8f183ea2bc2e795ac617f282b2
[lgpl/argeo-commons.git] / UserTableDefaultDClickListener.java
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 * Default double click listener for the various user tables, will open the
18 * clicked item in the editor
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 // 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);
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 }