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
13
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 }