View Javadoc
1   package org.argeo.connect.ui.widgets;
2   
3   import static javax.jcr.Property.JCR_TITLE;
4   
5   import javax.jcr.Node;
6   import javax.jcr.Property;
7   import javax.jcr.RepositoryException;
8   
9   import org.argeo.cms.text.TextSection;
10  import org.argeo.cms.ui.CmsEditable;
11  import org.argeo.cms.util.CmsUtils;
12  import org.argeo.docbook.jcr.DocBookNames;
13  import org.argeo.docbook.jcr.DocBookTypes;
14  import org.eclipse.swt.widgets.Composite;
15  
16  /** Text editor where sections and subsections can be managed by the user. */
17  public class DocumentTextEditor extends AbstractDbkViewer {
18  	private static final long serialVersionUID = 6049661610883342325L;
19  
20  	public DocumentTextEditor(Composite parent, int style, Node textNode, CmsEditable cmsEditable)
21  			throws RepositoryException {
22  		super(new TextSection(parent, style, textNode), style, cmsEditable);
23  		refresh();
24  		getMainSection().setLayoutData(CmsUtils.fillWidth());
25  	}
26  
27  	@Override
28  	protected void initModel(Node textNode) throws RepositoryException {
29  		if (isFlat())
30  			textNode.addNode(DocBookNames.DBK_PARA, DocBookTypes.PARA);
31  		else
32  			textNode.setProperty(JCR_TITLE, textNode.getName());
33  	}
34  
35  	@Override
36  	protected Boolean isModelInitialized(Node textNode) throws RepositoryException {
37  		return textNode.hasProperty(Property.JCR_TITLE) || textNode.hasNode(DocBookNames.DBK_PARA)
38  				|| (!isFlat() && textNode.hasNode(DocBookNames.DBK_SECTION));
39  	}
40  
41  }