You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by fm...@apache.org on 2012/02/02 20:48:43 UTC

svn commit: r1239790 - /chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java

Author: fmui
Date: Thu Feb  2 19:48:43 2012
New Revision: 1239790

URL: http://svn.apache.org/viewvc?rev=1239790&view=rev
Log:
Workbench: added extension tree to repository info window

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java?rev=1239790&r1=1239789&r2=1239790&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/RepositoryInfoFrame.java Thu Feb  2 19:48:43 2012
@@ -19,12 +19,19 @@
 package org.apache.chemistry.opencmis.workbench;
 
 import java.awt.Dimension;
+import java.util.List;
 
+import javax.swing.BorderFactory;
 import javax.swing.JFrame;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
+import javax.swing.JTree;
+import javax.swing.tree.DefaultMutableTreeNode;
+import javax.swing.tree.DefaultTreeModel;
+import javax.swing.tree.TreeSelectionModel;
 
 import org.apache.chemistry.opencmis.commons.data.AclCapabilities;
+import org.apache.chemistry.opencmis.commons.data.CmisExtensionElement;
 import org.apache.chemistry.opencmis.commons.data.PermissionMapping;
 import org.apache.chemistry.opencmis.commons.data.RepositoryCapabilities;
 import org.apache.chemistry.opencmis.commons.data.RepositoryInfo;
@@ -163,6 +170,34 @@ public class RepositoryInfoFrame extends
                     addComponent("Permission mapping:", new JScrollPane(permMapTable));
                 }
             }
+
+            if (repInfo.getExtensions() != null && !repInfo.getExtensions().isEmpty()) {
+                JTree extensionsTree = new JTree();
+                extensionsTree.setRootVisible(false);
+                extensionsTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
+       
+                DefaultMutableTreeNode extRootNode = new DefaultMutableTreeNode("Extensions");
+                addExtension(extRootNode, repInfo.getExtensions());
+
+                extensionsTree.setModel(new DefaultTreeModel(extRootNode));
+
+                addComponent("Extensions:", new JScrollPane(extensionsTree));
+            }
+        }
+
+        private void addExtension(DefaultMutableTreeNode parent, List<CmisExtensionElement> extensions) {
+            if ((extensions == null) || (extensions.isEmpty())) {
+                return;
+            }
+
+            for (CmisExtensionElement ext : extensions) {
+                DefaultMutableTreeNode node = new DefaultMutableTreeNode(new ExtensionNode(ext));
+                parent.add(node);
+
+                if (ext.getChildren().size() > 0) {
+                    addExtension(node, ext.getChildren());
+                }
+            }
         }
 
         private boolean is(Boolean b) {
@@ -180,5 +215,21 @@ public class RepositoryInfoFrame extends
 
             return o.toString();
         }
+
+        static class ExtensionNode {
+            private final CmisExtensionElement extension;
+
+            public ExtensionNode(CmisExtensionElement extension) {
+                this.extension = extension;
+            }
+
+            @Override
+            public String toString() {
+                return (extension.getNamespace() == null ? "" : "{" + extension.getNamespace() + "}")
+                        + extension.getName()
+                        + (!extension.getAttributes().isEmpty() ? " " + extension.getAttributes() : "")
+                        + (extension.getChildren().isEmpty() ? ": " + extension.getValue() : "");
+            }
+        }
     }
 }