Remove 32 bits SWT.
[lgpl/argeo-commons.git] / org.argeo.cms.ui.workbench / src / org / argeo / cms / ui / workbench / internal / jcr / parts / NodeVersionHistoryPage.java
index 4e3d9932ac8f2aaae7ae932fca2f69cb511502e4..166ece9d82977098c74c319962e2d1b21d7cfc64 100644 (file)
@@ -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<String, PropertyDiff> 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<VersionDiff> listHistoryDiff() {
                try {
                        List<VersionDiff> res = new ArrayList<VersionDiff>();
-                       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<String, PropertyDiff> diffs = JcrUtils.diffProperties(
-                                                       predecessor.getFrozenNode(), node);
+                                       Map<String, PropertyDiff> 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);
                                        }
                                }