View Javadoc
1   package org.argeo.cms.ui.useradmin;
2   
3   import org.argeo.api.NodeConstants;
4   import org.argeo.cms.auth.UserAdminUtils;
5   import org.eclipse.jface.resource.JFaceResources;
6   import org.eclipse.jface.viewers.ColumnLabelProvider;
7   import org.eclipse.swt.SWT;
8   import org.eclipse.swt.graphics.Font;
9   import org.eclipse.swt.graphics.Image;
10  import org.eclipse.swt.widgets.Display;
11  import org.osgi.service.useradmin.Role;
12  import org.osgi.service.useradmin.User;
13  
14  /** Centralize label providers for the group table */
15  class UserLP extends ColumnLabelProvider {
16  	private static final long serialVersionUID = -4645930210988368571L;
17  
18  	final static String COL_ICON = "colID.icon";
19  	final static String COL_DN = "colID.dn";
20  	final static String COL_DISPLAY_NAME = "colID.displayName";
21  	final static String COL_DOMAIN = "colID.domain";
22  
23  	final String currType;
24  
25  	// private Font italic;
26  	private Font bold;
27  
28  	UserLP(String colId) {
29  		this.currType = colId;
30  	}
31  
32  	@Override
33  	public Font getFont(Object element) {
34  		// Current user as bold
35  		if (UserAdminUtils.isCurrentUser(((User) element))) {
36  			if (bold == null)
37  				bold = JFaceResources.getFontRegistry().defaultFontDescriptor().setStyle(SWT.BOLD)
38  						.createFont(Display.getCurrent());
39  			return bold;
40  		}
41  		return null;
42  	}
43  
44  	@Override
45  	public Image getImage(Object element) {
46  		if (COL_ICON.equals(currType)) {
47  			User user = (User) element;
48  			String dn = user.getName();
49  			if (dn.endsWith(NodeConstants.ROLES_BASEDN))
50  				return UsersImages.ICON_ROLE;
51  			else if (user.getType() == Role.GROUP)
52  				return UsersImages.ICON_GROUP;
53  			else
54  				return UsersImages.ICON_USER;
55  		} else
56  			return null;
57  	}
58  
59  	@Override
60  	public String getText(Object element) {
61  		User user = (User) element;
62  		return getText(user);
63  
64  	}
65  
66  	public String getText(User user) {
67  		if (COL_DN.equals(currType))
68  			return user.getName();
69  		else if (COL_DISPLAY_NAME.equals(currType))
70  			return UserAdminUtils.getCommonName(user);
71  		else if (COL_DOMAIN.equals(currType))
72  			return UserAdminUtils.getDomainName(user);
73  		else
74  			return "";
75  	}
76  }