]> git.argeo.org Git - lgpl/argeo-commons.git/blob - UserDragListener.java
ccc76f46ac50c85fa48b85ff330c2de45e23414a
[lgpl/argeo-commons.git] / UserDragListener.java
1 package org.argeo.cms.ui.workbench.internal.useradmin.providers;
2
3 import org.eclipse.jface.viewers.IStructuredSelection;
4 import org.eclipse.jface.viewers.Viewer;
5 import org.eclipse.swt.dnd.DragSourceEvent;
6 import org.eclipse.swt.dnd.DragSourceListener;
7 import org.osgi.service.useradmin.User;
8
9 /** Default drag listener to modify group and users via the UI */
10 public class UserDragListener implements DragSourceListener {
11 private static final long serialVersionUID = -2074337775033781454L;
12 private final Viewer viewer;
13
14 public UserDragListener(Viewer viewer) {
15 this.viewer = viewer;
16 }
17
18 public void dragStart(DragSourceEvent event) {
19 // TODO implement finer checks
20 IStructuredSelection selection = (IStructuredSelection) viewer
21 .getSelection();
22 if (selection.isEmpty() || selection.size() > 1)
23 event.doit = false;
24 else
25 event.doit = true;
26 }
27
28 public void dragSetData(DragSourceEvent event) {
29 // TODO Support multiple selection
30 Object obj = ((IStructuredSelection) viewer.getSelection())
31 .getFirstElement();
32 if (obj != null) {
33 User user = (User) obj;
34 event.data = user.getName();
35 }
36 }
37
38 public void dragFinished(DragSourceEvent event) {
39 }
40 }