X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui.workbench%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fworkbench%2Finternal%2Fjcr%2Fparts%2FNodeVersionHistoryPage.java;h=166ece9d82977098c74c319962e2d1b21d7cfc64;hb=5b444174cd13680f99944026877f6cac2e1faba1;hp=4e3d9932ac8f2aaae7ae932fca2f69cb511502e4;hpb=23b7a170cae60b500e9d45551f26b5075eba73a4;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/jcr/parts/NodeVersionHistoryPage.java b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/jcr/parts/NodeVersionHistoryPage.java index 4e3d9932a..166ece9d8 100644 --- a/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/jcr/parts/NodeVersionHistoryPage.java +++ b/org.argeo.cms.ui.workbench/src/org/argeo/cms/ui/workbench/internal/jcr/parts/NodeVersionHistoryPage.java @@ -33,11 +33,12 @@ import javax.jcr.version.VersionHistory; import javax.jcr.version.VersionIterator; import javax.jcr.version.VersionManager; +import org.argeo.cms.ui.CmsConstants; +import org.argeo.cms.ui.jcr.FullVersioningTreeContentProvider; +import org.argeo.cms.ui.jcr.JcrDClickListener; +import org.argeo.cms.ui.jcr.VersionLabelProvider; import org.argeo.cms.ui.workbench.WorkbenchUiPlugin; import org.argeo.cms.ui.workbench.internal.WorkbenchConstants; -import org.argeo.cms.ui.workbench.internal.jcr.FullVersioningTreeContentProvider; -import org.argeo.cms.ui.workbench.internal.jcr.GenericNodeDoubleClickListener; -import org.argeo.cms.ui.workbench.internal.jcr.VersionLabelProvider; import org.argeo.eclipse.ui.EclipseUiException; import org.argeo.jcr.JcrUtils; import org.argeo.jcr.PropertyDiff; @@ -63,14 +64,13 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout; * Offers two main sections : one to display a text area with a summary of all * variations between a version and its predecessor and one tree view that * enable browsing - * */ -public class NodeVersionHistoryPage extends FormPage implements - WorkbenchConstants { + */ +public class NodeVersionHistoryPage extends FormPage implements WorkbenchConstants { // private final static Log log = LogFactory // .getLog(NodeVersionHistoryPage.class); // Utils - protected DateFormat timeFormatter = new SimpleDateFormat(DATE_TIME_FORMAT); + protected DateFormat timeFormatter = new SimpleDateFormat(CmsConstants.DATE_TIME_FORMAT); // business objects private Node currentNode; @@ -80,8 +80,7 @@ public class NodeVersionHistoryPage extends FormPage implements private TreeViewer nodesViewer; private FormToolkit tk; - public NodeVersionHistoryPage(FormEditor editor, String title, - Node currentNode) { + public NodeVersionHistoryPage(FormEditor editor, String title, Node currentNode) { super(editor, "NodeVersionHistoryPage", title); this.currentNode = currentNode; } @@ -90,59 +89,48 @@ public class NodeVersionHistoryPage extends FormPage implements ScrolledForm form = managedForm.getForm(); form.setText(WorkbenchUiPlugin.getMessage("nodeVersionHistoryPageTitle")); tk = managedForm.getToolkit(); + Composite innerBox = form.getBody(); + // Composite innerBox = new Composite(body, SWT.NO_FOCUS); GridLayout twt = new GridLayout(1, false); twt.marginWidth = twt.marginHeight = 5; - Composite body = form.getBody(); - body.setLayout(twt); - + innerBox.setLayout(twt); try { if (!currentNode.isNodeType(NodeType.MIX_VERSIONABLE)) { - tk.createLabel(body, - WorkbenchUiPlugin.getMessage("warningUnversionableNode")); + tk.createLabel(innerBox, WorkbenchUiPlugin.getMessage("warningUnversionableNode")); } else { - createHistorySection(form.getBody()); - createTreeSection(form.getBody()); + createHistorySection(innerBox); + createTreeSection(innerBox); } } catch (RepositoryException e) { - throw new EclipseUiException( - "Unexpected error while checking if node is versionable", e); + throw new EclipseUiException("Unable to check if node is versionable", e); } } protected void createTreeSection(Composite parent) { - // Section Layout & MetaData Section section = tk.createSection(parent, Section.TWISTIE); section.setLayoutData(new GridData(GridData.FILL_BOTH)); section.setText(WorkbenchUiPlugin.getMessage("versionTreeSectionTitle")); - // Section Body Composite body = tk.createComposite(section, SWT.FILL); - // WARNING : 2 following lines are compulsory or body won't be - // displayed. - body.setLayout(new GridLayout()); section.setClient(body); - - body.setLayoutData(new GridData(GridData.FILL_BOTH)); section.setExpanded(true); + body.setLayoutData(new GridData(GridData.FILL_BOTH)); + body.setLayout(new GridLayout()); nodeContentProvider = new FullVersioningTreeContentProvider(); nodesViewer = createNodeViewer(body, nodeContentProvider); nodesViewer.setInput(currentNode); } - protected TreeViewer createNodeViewer(Composite parent, - final ITreeContentProvider nodeContentProvider) { + protected TreeViewer createNodeViewer(Composite parent, final ITreeContentProvider nodeContentProvider) { final TreeViewer tmpNodeViewer = new TreeViewer(parent, SWT.MULTI); - tmpNodeViewer.getTree().setLayoutData( - new GridData(SWT.FILL, SWT.FILL, true, true)); + tmpNodeViewer.getTree().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); tmpNodeViewer.setContentProvider(nodeContentProvider); tmpNodeViewer.setLabelProvider(new VersionLabelProvider()); - tmpNodeViewer - .addDoubleClickListener(new GenericNodeDoubleClickListener( - tmpNodeViewer)); + tmpNodeViewer.addDoubleClickListener(new JcrDClickListener(tmpNodeViewer)); return tmpNodeViewer; } @@ -155,13 +143,12 @@ public class NodeVersionHistoryPage extends FormPage implements section.setLayout(twt); // Set title of the section - section.setText(WorkbenchUiPlugin - .getMessage("versionHistorySectionTitle")); + section.setText(WorkbenchUiPlugin.getMessage("versionHistorySectionTitle")); - final Text styledText = tk.createText(section, "", SWT.FULL_SELECTION - | SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL); - styledText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); + final Text styledText = tk.createText(section, "", + SWT.FULL_SELECTION | SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL); section.setClient(styledText); + styledText.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB)); refreshHistory(styledText); styledText.setEditable(false); section.setExpanded(false); @@ -192,14 +179,11 @@ public class NodeVersionHistoryPage extends FormPage implements if (lst.get(i).getUserId() != null) main.append("UserId : " + lst.get(i).getUserId()); - if (lst.get(i).getUserId() != null - && lst.get(i).getUpdateTime() != null) + if (lst.get(i).getUserId() != null && lst.get(i).getUpdateTime() != null) main.append(", "); if (lst.get(i).getUpdateTime() != null) - main.append("Date : " - + timeFormatter.format(lst.get(i).getUpdateTime() - .getTime()) + ")\n"); + main.append("Date : " + timeFormatter.format(lst.get(i).getUpdateTime().getTime()) + ")\n"); StringBuffer buf = new StringBuffer(""); Map diffs = lst.get(i).getDiffs(); @@ -213,15 +197,13 @@ public class NodeVersionHistoryPage extends FormPage implements if (refValue != null) { if (refValue.getType() == PropertyType.DATE) { - refValueStr = timeFormatter.format(refValue - .getDate().getTime()); + refValueStr = timeFormatter.format(refValue.getDate().getTime()); } else refValueStr = refValue.getString(); } if (newValue != null) { if (newValue.getType() == PropertyType.DATE) { - newValueStr = timeFormatter.format(newValue - .getDate().getTime()); + newValueStr = timeFormatter.format(newValue.getDate().getTime()); } else newValueStr = newValue.getString(); } @@ -232,8 +214,7 @@ public class NodeVersionHistoryPage extends FormPage implements buf.append(" > "); buf.append(newValueStr); buf.append("\n"); - } else if (pd.getType() == PropertyDiff.ADDED - && !"".equals(newValueStr)) { + } else if (pd.getType() == PropertyDiff.ADDED && !"".equals(newValueStr)) { // we don't list property that have been added with an // empty string as value buf.append(prop).append(": "); @@ -254,16 +235,13 @@ public class NodeVersionHistoryPage extends FormPage implements } catch (RepositoryException e) { throw new EclipseUiException("Cannot generate history for node", e); } - } public List listHistoryDiff() { try { List res = new ArrayList(); - VersionManager versionManager = currentNode.getSession() - .getWorkspace().getVersionManager(); - VersionHistory versionHistory = versionManager - .getVersionHistory(currentNode.getPath()); + VersionManager versionManager = currentNode.getSession().getWorkspace().getVersionManager(); + VersionHistory versionHistory = versionManager.getVersionHistory(currentNode.getPath()); VersionIterator vit = versionHistory.getAllLinearVersions(); while (vit.hasNext()) { @@ -278,28 +256,21 @@ public class NodeVersionHistoryPage extends FormPage implements } if (predecessor == null) {// original } else { - Map diffs = JcrUtils.diffProperties( - predecessor.getFrozenNode(), node); + Map diffs = JcrUtils.diffProperties(predecessor.getFrozenNode(), node); if (!diffs.isEmpty()) { String lastUserName = null; Calendar lastUpdate = null; try { - if (currentNode - .isNodeType(NodeType.MIX_LAST_MODIFIED)) { - lastUserName = node.getProperty( - Property.JCR_LAST_MODIFIED_BY) - .getString(); - lastUpdate = node.getProperty( - Property.JCR_LAST_MODIFIED).getDate(); + if (currentNode.isNodeType(NodeType.MIX_LAST_MODIFIED)) { + lastUserName = node.getProperty(Property.JCR_LAST_MODIFIED_BY).getString(); + lastUpdate = node.getProperty(Property.JCR_LAST_MODIFIED).getDate(); } else - lastUpdate = version.getProperty( - Property.JCR_CREATED).getDate(); + lastUpdate = version.getProperty(Property.JCR_CREATED).getDate(); } catch (Exception e) { // Silent that info is optional } - VersionDiff vd = new VersionDiff(lastUserName, - lastUpdate, diffs); + VersionDiff vd = new VersionDiff(lastUserName, lastUpdate, diffs); res.add(vd); } }