View Javadoc
1   package org.argeo.connect.ui.util;
2   
3   import javax.jcr.Node;
4   
5   import org.argeo.connect.util.ConnectJcrUtils;
6   import org.argeo.eclipse.ui.EclipseUiUtils;
7   import org.argeo.eclipse.ui.jcr.lists.SimpleJcrNodeLabelProvider;
8   
9   /**
10   * Wraps the getText() method of the SimpleJcrNodeLabelProvider. Retrieves
11   * relevant node using the selector name or the Row.getNode() method if no name
12   * has been provided considering then that the row contains only one node
13   * (typically for xpath queries)
14   */
15  public class JcrRowLabelProvider extends SimpleJcrNodeLabelProvider {
16  	private static final long serialVersionUID = 3265805393751537765L;
17  
18  	private String selectorName;
19  
20  	public JcrRowLabelProvider(String selectorName, String propertyName) {
21  		super(propertyName);
22  		if (EclipseUiUtils.notEmpty(selectorName))
23  			this.selectorName = selectorName;
24  	}
25  
26  	public JcrRowLabelProvider(String selectorName, String propertyName,
27  			String dateFormatPattern, String numberFormatPattern) {
28  		super(propertyName, dateFormatPattern, numberFormatPattern);
29  		if (EclipseUiUtils.notEmpty(selectorName))
30  			this.selectorName = selectorName;
31  	}
32  
33  	public JcrRowLabelProvider(String propertyName) {
34  		super(propertyName);
35  	}
36  
37  	@Override
38  	public String getText(Object element) {
39  		Node currNode = ConnectJcrUtils.getNodeFromElement(element, selectorName);
40  		return super.getText(currNode);
41  	}
42  }