]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.ui.admin/src/org/argeo/security/ui/admin/internal/providers/UserAdminAbstractLP.java
89901fa7c49c1c17675cc8eb5b5d349ea4a0c0a2
[lgpl/argeo-commons.git] / org.argeo.security.ui.admin / src / org / argeo / security / ui / admin / internal / providers / UserAdminAbstractLP.java
1 package org.argeo.security.ui.admin.internal.providers;
2
3 import javax.naming.InvalidNameException;
4 import javax.naming.ldap.LdapName;
5
6 import org.argeo.ArgeoException;
7 import org.argeo.osgi.useradmin.LdifName;
8 import org.argeo.security.ui.admin.internal.UiAdminUtils;
9 import org.eclipse.jface.resource.JFaceResources;
10 import org.eclipse.jface.viewers.ColumnLabelProvider;
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.graphics.Font;
13 import org.eclipse.swt.widgets.Display;
14 import org.osgi.service.useradmin.User;
15
16 /**
17 * Utility class that add font modifications to a column label provider
18 * depending on the given user properties
19 */
20 public abstract class UserAdminAbstractLP extends ColumnLabelProvider {
21 private static final long serialVersionUID = 137336765024922368L;
22
23 // private Font italic;
24 private Font bold;
25
26 @Override
27 public Font getFont(Object element) {
28 // Self as bold
29 try {
30 LdapName selfUserName = UiAdminUtils.getLdapName();
31 String userName = UiAdminUtils.getProperty((User) element,
32 LdifName.dn.name());
33 LdapName userLdapName = new LdapName(userName);
34 if (userLdapName.equals(selfUserName)) {
35 if (bold == null)
36 bold = JFaceResources.getFontRegistry()
37 .defaultFontDescriptor().setStyle(SWT.BOLD)
38 .createFont(Display.getCurrent());
39 return bold;
40 }
41 } catch (InvalidNameException e) {
42 throw new ArgeoException("cannot parse dn for " + element, e);
43 }
44
45 // Disabled as Italic
46 // Node userProfile = (Node) elem;
47 // if (!userProfile.getProperty(ARGEO_ENABLED).getBoolean())
48 // return italic;
49
50 return null;
51 // return super.getFont(element);
52 }
53
54 @Override
55 public String getText(Object element) {
56 User user = (User) element;
57 return getText(user);
58 }
59
60 public void setDisplay(Display display) {
61 // italic = JFaceResources.getFontRegistry().defaultFontDescriptor()
62 // .setStyle(SWT.ITALIC).createFont(display);
63 bold = JFaceResources.getFontRegistry().defaultFontDescriptor()
64 .setStyle(SWT.BOLD).createFont(Display.getCurrent());
65 }
66
67 public abstract String getText(User user);
68 }