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