]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/maintenance/Browse.java
Merge security.ui bundle in the cms.ui.workbench bundle
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / maintenance / Browse.java
index 83f62fc8a433dd0d5848fba33b59c4f39fdefb63..7dafd72c4b8075678b533cf850bec25849c6a568 100644 (file)
@@ -16,7 +16,7 @@ import javax.jcr.PropertyType;
 import javax.jcr.RepositoryException;
 import javax.jcr.Value;
 
-import org.argeo.ArgeoException;
+import org.argeo.cms.CmsException;
 import org.argeo.cms.CmsTypes;
 import org.argeo.cms.CmsUiProvider;
 import org.argeo.cms.text.Img;
@@ -79,7 +79,7 @@ public class Browse implements CmsUiProvider {
                        throws RepositoryException {
                if (context == null)
                        // return null;
-               throw new CmsException("Context cannot be null");
+                       throw new CmsException("Context cannot be null");
                GridLayout layout = CmsUtils.noSpaceGridLayout();
                layout.numColumns = 2;
                parent.setLayout(layout);
@@ -216,7 +216,7 @@ public class Browse implements CmsUiProvider {
                                                e.doit = false;
                                        }
                                } catch (RepositoryException e1) {
-                                       throw new ArgeoException(
+                                       throw new CmsException(
                                                        "Unexpected error in key management for "
                                                                        + currEdited + "with filter "
                                                                        + filterTxt.getText(), e1);
@@ -235,7 +235,7 @@ public class Browse implements CmsUiProvider {
                        refreshFilters(node);
                        refreshBrowser(node);
                } catch (RepositoryException re) {
-                       throw new ArgeoException("Unable to update browser for " + node, re);
+                       throw new CmsException("Unable to update browser for " + node, re);
                }
        }
 
@@ -255,6 +255,9 @@ public class Browse implements CmsUiProvider {
                        currParPath = JcrUtils.parentPath(currNodePath);
                if ("".equals(currParPath))
                        currParPath = "/";
+               
+               
+               
 
                Object[][] colMatrix = new Object[browserCols.size()][2];
 
@@ -291,6 +294,15 @@ public class Browse implements CmsUiProvider {
                                ((FilterEntitiesVirtualTable) colMatrix[l][1]).dispose();
                        }
 
+               // Remove disposed columns
+               // TODO investigate and fix the mechanism that leave them there after
+               // disposal
+               if (browserCols.containsKey(currNodePath)) {
+                       FilterEntitiesVirtualTable currCol = browserCols.get(currNodePath);
+                       if (currCol.isDisposed())
+                               browserCols.remove(currNodePath);
+               }
+
                if (!browserCols.containsKey(currNodePath))
                        createBrowserColumn(colViewer, node);
 
@@ -323,12 +335,16 @@ public class Browse implements CmsUiProvider {
                try {
                        return node.getPath();
                } catch (RepositoryException e) {
-                       throw new ArgeoException("Unable to get path for node " + node, e);
+                       throw new CmsException("Unable to get path for node " + node, e);
                }
        }
 
        private Point imageWidth = new Point(250, 0);
 
+       /**
+        * Recreates the content of the box that displays information about the
+        * current selected node.
+        */
        private Control createNodeView(Composite parent, Node context)
                        throws RepositoryException {
 
@@ -441,7 +457,7 @@ public class Browse implements CmsUiProvider {
                                NodeIterator nit = context.getNodes(filter);
                                refreshFilteredList(nit);
                        } catch (RepositoryException e) {
-                               throw new ArgeoException("Unable to filter " + getNode()
+                               throw new CmsException("Unable to filter " + getNode()
                                                + " children with filter " + filter, e);
                        }
 
@@ -540,7 +556,7 @@ public class Browse implements CmsUiProvider {
                                                        }
                                                }
                                        } catch (RepositoryException ie) {
-                                               throw new ArgeoException("Error while managing arrow "
+                                               throw new CmsException("Error while managing arrow "
                                                                + "events in the browser for " + selected, ie);
                                        }
                                }
@@ -589,7 +605,7 @@ public class Browse implements CmsUiProvider {
                                        try {
                                                return curr.getName();
                                        } catch (RepositoryException e) {
-                                               throw new ArgeoException("Unable to get name for"
+                                               throw new CmsException("Unable to get name for"
                                                                + curr);
                                        }
                                }