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.connect.util.ConnectUtils;
7   import org.argeo.eclipse.ui.EclipseUiUtils;
8   import org.argeo.eclipse.ui.jcr.lists.SimpleJcrNodeLabelProvider;
9   
10  /**
11   * Wraps the getText() method of the SimpleJcrNodeLabelProvider to remove
12   * invalid characters, typically the ampersand from the returned String.
13   * Retrieves relevant node using the selector name or the Row.getNode() method
14   * if no name has been provided considering then that the row contains only one
15   * node (typically for xpath queries). It also works if element is directly a
16   * node
17   */
18  public class JcrHtmlLabelProvider extends SimpleJcrNodeLabelProvider {
19  	private static final long serialVersionUID = 2134911527741337612L;
20  
21  	private String selectorName;
22  
23  	public JcrHtmlLabelProvider(String selectorName, String propertyName) {
24  		super(propertyName);
25  		if (EclipseUiUtils.notEmpty(selectorName))
26  			this.selectorName = selectorName;
27  	}
28  
29  	public JcrHtmlLabelProvider(String propertyName) {
30  		super(propertyName);
31  	}
32  
33  	@Override
34  	public String getText(Object element) {
35  		Node currNode = ConnectJcrUtils.getNodeFromElement(element, selectorName);
36  		return ConnectUtils.replaceAmpersand(super.getText(currNode));
37  	}
38  }