1 package org.argeo.connect.ui.widgets;
2
3 import java.util.ArrayList;
4 import java.util.LinkedHashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import org.argeo.connect.UserAdminService;
9 import org.argeo.eclipse.ui.EclipseUiUtils;
10 import org.eclipse.swt.widgets.Text;
11 import org.osgi.service.useradmin.User;
12
13
14 @Deprecated
15 public class ExistingGroupsDropDown extends ConnectAbstractDropDown {
16 private final UserAdminService userService;
17 private final boolean includeUsers;
18 private final boolean includeSystemRoles;
19
20
21
22 private Map<String, User> userMap = new LinkedHashMap<String, User>();
23
24
25
26
27
28
29
30 public ExistingGroupsDropDown(Text text, UserAdminService userAdminService, boolean includeUsers,
31 boolean includeSystemRoles) {
32 super(text);
33 this.userService = userAdminService;
34 this.includeUsers = includeUsers;
35 this.includeSystemRoles = includeSystemRoles;
36 init();
37 }
38
39 public void resetDN(String dn) {
40 if (EclipseUiUtils.notEmpty(dn))
41 reset(userService.getUserDisplayName(dn));
42 else
43 reset("");
44 }
45
46 @Override
47 public String getText() {
48 String groupId = null;
49 String dname = super.getText();
50 if (EclipseUiUtils.notEmpty(dname))
51 groupId = userMap.get(dname).getName();
52 return groupId;
53 }
54
55 @Override
56 protected List<String> getFilteredValues(String filter) {
57 List<User> users = userService.listGroups(filter, includeUsers, includeSystemRoles);
58 userMap.clear();
59 List<String> res = new ArrayList<String>();
60
61 for (User user : users) {
62 String dn = user.getName();
63 String userDName = userService.getUserDisplayName(dn);
64 userMap.put(userDName, user);
65 res.add(userDName);
66 }
67 return res;
68 }
69 }