View Javadoc
1   package org.argeo.people.ui.providers;
2   
3   import javax.jcr.Node;
4   import javax.jcr.PropertyType;
5   import javax.jcr.RepositoryException;
6   
7   import org.argeo.people.PeopleException;
8   import org.eclipse.jface.viewers.ColumnLabelProvider;
9   import org.eclipse.swt.graphics.Image;
10  
11  /**
12   * Manage display of a boolean property, given an image for true and one for
13   * false
14   */
15  public class BooleanFlagLabelProvider extends ColumnLabelProvider {
16  	private static final long serialVersionUID = 1L;
17  
18  	private final String propertyName;
19  	private final Image imgTrue;
20  	private final Image imgFalse;
21  
22  	public BooleanFlagLabelProvider(String propertyName, Image imgTrue,
23  			Image imgFalse) {
24  		this.propertyName = propertyName;
25  		this.imgTrue = imgTrue;
26  		this.imgFalse = imgFalse;
27  	}
28  
29  	@Override
30  	public String getText(Object element) {
31  		return null;
32  	}
33  
34  	@Override
35  	public Image getImage(Object element) {
36  		boolean isPrimary = false;
37  		try {
38  			Node currNode = ((Node) element);
39  			if (currNode.hasProperty(propertyName)
40  					&& currNode.getProperty(propertyName).getValue().getType() == PropertyType.BOOLEAN)
41  				isPrimary = currNode.getProperty(propertyName).getBoolean();
42  		} catch (RepositoryException e) {
43  			throw new PeopleException("Unable to get " + propertyName
44  					+ " value for node " + element, e);
45  		}
46  
47  		if (isPrimary) {
48  			return imgTrue;
49  		} else {
50  			return imgFalse;
51  		}
52  	}
53  }