View Javadoc
1   package org.argeo.people.web.parts;
2   
3   import javax.jcr.Node;
4   import javax.jcr.RepositoryException;
5   
6   import org.argeo.cms.ui.CmsUiProvider;
7   import org.argeo.connect.resources.ResourcesService;
8   import org.argeo.eclipse.ui.EclipseUiUtils;
9   import org.argeo.people.ui.PeopleUiSnippets;
10  import org.eclipse.rap.rwt.RWT;
11  import org.eclipse.swt.SWT;
12  import org.eclipse.swt.layout.GridLayout;
13  import org.eclipse.swt.widgets.Composite;
14  import org.eclipse.swt.widgets.Control;
15  import org.eclipse.swt.widgets.Label;
16  
17  /**
18   * Displays a single people:contact node including buttons and formatted display
19   * of the contact value
20   */
21  public class SingleContactPart implements CmsUiProvider {
22  	/* DEPENDENCY INJECTION */
23  	private ResourcesService resourcesService;
24  	private ContactButtonsPart contactButtonsPart;
25  
26  	@Override
27  	public Control createUi(Composite parent, Node context) throws RepositoryException {
28  		parent.setLayout(new GridLayout(2, false));
29  		Composite left = new Composite(parent, SWT.NO_FOCUS);
30  		contactButtonsPart.createUi(left, context);
31  		Composite right = new Composite(parent, SWT.NO_FOCUS);
32  		populateReadOnlyPanel(right, context);
33  		parent.layout();
34  
35  		return parent;
36  	}
37  
38  	protected void populateReadOnlyPanel(final Composite readOnlyPanel, Node context) {
39  		readOnlyPanel.setLayout(EclipseUiUtils.noSpaceGridLayout());
40  		Label label = new Label(readOnlyPanel, SWT.WRAP);
41  		label.setData(RWT.MARKUP_ENABLED, Boolean.TRUE);
42  		String addressHtml = PeopleUiSnippets.getContactDisplaySnippet(resourcesService, context);
43  		label.setText(addressHtml);
44  	}
45  
46  	/* DEPENDENCY INJECTION */
47  	public void setResourcesService(ResourcesService resourcesService) {
48  		this.resourcesService = resourcesService;
49  	}
50  
51  	public void setContactButtonsPart(ContactButtonsPart contactButtonsPart) {
52  		this.contactButtonsPart = contactButtonsPart;
53  	}
54  }