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 2010/10/14 18:36:17 UTC

svn commit: r1022605 - in /incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench: ./ details/

Author: fmui
Date: Thu Oct 14 16:36:17 2010
New Revision: 1022605

URL: http://svn.apache.org/viewvc?rev=1022605&view=rev
Log:
- added type tab to workbench

Added:
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypeSplitPane.java   (with props)
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/TypesPanel.java   (with props)
Modified:
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ChangeLogFrame.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java
    incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/DetailsTabs.java

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ChangeLogFrame.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ChangeLogFrame.java?rev=1022605&r1=1022604&r2=1022605&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ChangeLogFrame.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/ChangeLogFrame.java Thu Oct 14 16:36:17 2010
@@ -73,6 +73,10 @@ public class ChangeLogFrame extends JFra
         inputPanel.add(new JLabel("Change Log Token:"), BorderLayout.LINE_START);
 
         changeLogTokenField = new JTextField();
+        try {
+            changeLogTokenField.setText(model.getRepositoryInfo().getLatestChangeLogToken());
+        } catch (Exception e1) {
+        }
         inputPanel.add(changeLogTokenField, BorderLayout.CENTER);
 
         JButton loadButton = new JButton("Load");

Added: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypeSplitPane.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypeSplitPane.java?rev=1022605&view=auto
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypeSplitPane.java (added)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypeSplitPane.java Thu Oct 14 16:36:17 2010
@@ -0,0 +1,314 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.workbench;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+
+import javax.swing.JCheckBox;
+import javax.swing.JScrollPane;
+import javax.swing.JSplitPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.table.AbstractTableModel;
+import javax.swing.table.TableColumn;
+
+import org.apache.chemistry.opencmis.client.api.ObjectType;
+import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
+import org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
+import org.apache.chemistry.opencmis.workbench.swing.CollectionRenderer;
+import org.apache.chemistry.opencmis.workbench.swing.InfoPanel;
+
+public class TypeSplitPane extends JSplitPane {
+
+    private static final long serialVersionUID = 1L;
+
+    private TypeInfoPanel typePanel;
+    private PropertyDefinitionTable propertyDefinitionTable;
+
+    public TypeSplitPane() {
+        super(JSplitPane.VERTICAL_SPLIT);
+        createGUI();
+    }
+
+    private void createGUI() {
+        typePanel = new TypeInfoPanel();
+        propertyDefinitionTable = new PropertyDefinitionTable();
+
+        setLeftComponent(new JScrollPane(typePanel));
+        setRightComponent(new JScrollPane(propertyDefinitionTable));
+
+        setDividerLocation(300);
+    }
+
+    public void setType(ObjectType type) {
+        typePanel.setType(type);
+        propertyDefinitionTable.setType(type);
+    }
+
+    static class TypeInfoPanel extends InfoPanel {
+
+        private static final long serialVersionUID = 1L;
+
+        private JTextField nameField;
+        private JTextField descriptionField;
+        private JTextField idField;
+        private JTextField localNamespaceField;
+        private JTextField localNameField;
+        private JTextField queryNameField;
+        private JTextField baseTypeField;
+        private JCheckBox creatableBox;
+        private JCheckBox fileableBox;
+        private JCheckBox queryableBox;
+        private JCheckBox aclBox;
+        private JCheckBox policyBox;
+        private JCheckBox versionableBox;
+        private JTextField contentStreamAllowedField;
+        private JTextField allowedSourceTypesField;
+        private JTextField allowedTargetTypesField;
+
+        public TypeInfoPanel() {
+            super();
+            createGUI();
+        }
+
+        public void setType(ObjectType type) {
+            if (type != null) {
+                nameField.setText(type.getDisplayName());
+                descriptionField.setText(type.getDescription());
+                idField.setText(type.getId());
+                localNamespaceField.setText(type.getLocalNamespace());
+                localNameField.setText(type.getLocalName());
+                queryNameField.setText(type.getQueryName());
+                baseTypeField.setText(type.getBaseTypeId().value());
+                creatableBox.setSelected(is(type.isCreatable()));
+                fileableBox.setSelected(is(type.isFileable()));
+                queryableBox.setSelected(is(type.isQueryable()));
+                aclBox.setSelected(is(type.isControllableAcl()));
+                policyBox.setSelected(is(type.isControllablePolicy()));
+
+                if (type instanceof DocumentTypeDefinition) {
+                    DocumentTypeDefinition docType = (DocumentTypeDefinition) type;
+                    versionableBox.setVisible(true);
+                    versionableBox.setSelected(is(docType.isVersionable()));
+                    contentStreamAllowedField.setVisible(true);
+                    contentStreamAllowedField.setText(docType.getContentStreamAllowed() == null ? "???" : docType
+                            .getContentStreamAllowed().toString());
+                } else {
+                    versionableBox.setVisible(false);
+                    contentStreamAllowedField.setVisible(false);
+                }
+
+                if (type instanceof RelationshipTypeDefinition) {
+                    RelationshipTypeDefinition relationshipType = (RelationshipTypeDefinition) type;
+                    allowedSourceTypesField.setVisible(true);
+                    allowedSourceTypesField.setText(relationshipType.getAllowedSourceTypeIds() == null ? "???"
+                            : relationshipType.getAllowedSourceTypeIds().toString());
+                    allowedTargetTypesField.setVisible(true);
+                    allowedTargetTypesField.setText(relationshipType.getAllowedTargetTypeIds() == null ? "???"
+                            : relationshipType.getAllowedTargetTypeIds().toString());
+                } else {
+                    allowedSourceTypesField.setVisible(false);
+                    allowedTargetTypesField.setVisible(false);
+                }
+            } else {
+                nameField.setText("");
+                descriptionField.setText("");
+                idField.setText("");
+                localNamespaceField.setText("");
+                localNameField.setText("");
+                queryNameField.setText("");
+                baseTypeField.setText("");
+                creatableBox.setSelected(false);
+                fileableBox.setSelected(false);
+                queryableBox.setSelected(false);
+                aclBox.setSelected(false);
+                policyBox.setSelected(false);
+                versionableBox.setVisible(false);
+                contentStreamAllowedField.setVisible(false);
+                allowedSourceTypesField.setVisible(false);
+                allowedTargetTypesField.setVisible(false);
+            }
+
+            revalidate();
+        }
+
+        private void createGUI() {
+            setupGUI();
+
+            nameField = addLine("Name:", true);
+            descriptionField = addLine("Description:");
+            idField = addLine("Id:");
+            localNamespaceField = addLine("Local Namespace:");
+            localNameField = addLine("Local Name:");
+            queryNameField = addLine("Query Name:");
+            baseTypeField = addLine("Base Type:");
+            creatableBox = addCheckBox("Creatable:");
+            fileableBox = addCheckBox("Fileable:");
+            queryableBox = addCheckBox("Queryable:");
+            aclBox = addCheckBox("ACL controlable:");
+            policyBox = addCheckBox("Policy controlable:");
+            versionableBox = addCheckBox("Versionable:");
+            contentStreamAllowedField = addLine("Content stream allowed:");
+            allowedSourceTypesField = addLine("Allowed source types:");
+            allowedTargetTypesField = addLine("Allowed target types:");
+        }
+
+        private boolean is(Boolean b) {
+            if (b == null) {
+                return false;
+            }
+
+            return b.booleanValue();
+        }
+    }
+
+    static class PropertyDefinitionTable extends JTable {
+
+        private static final long serialVersionUID = 1L;
+
+        private static final String[] COLUMN_NAMES = { "Name", "Id", "Description", "Local Namespace", "Local Name",
+                "Query Name", "Type", "Cardinality", "Updatability", "Queryable", "Required", "Inherited",
+                "Default Value", "Choices" };
+        private static final int[] COLUMN_WIDTHS = { 200, 200, 200, 200, 200, 200, 80, 80, 80, 50, 50, 50, 200, 200 };
+
+        private ObjectType type;
+        private List<PropertyDefinition<?>> propertyDefintions;
+
+        public PropertyDefinitionTable() {
+            setDefaultRenderer(Collection.class, new CollectionRenderer());
+            setModel(new PropertyDefinitionTableModel(this));
+
+            setAutoResizeMode(AUTO_RESIZE_OFF);
+
+            for (int i = 0; i < COLUMN_WIDTHS.length; i++) {
+                TableColumn column = getColumnModel().getColumn(i);
+                column.setPreferredWidth(COLUMN_WIDTHS[i]);
+            }
+
+            setFillsViewportHeight(true);
+        }
+
+        public void setType(ObjectType type) {
+            this.type = type;
+
+            if ((type != null) && (type.getPropertyDefinitions() != null)) {
+                propertyDefintions = new ArrayList<PropertyDefinition<?>>();
+                for (PropertyDefinition<?> propDef : type.getPropertyDefinitions().values()) {
+                    propertyDefintions.add(propDef);
+                }
+
+                Collections.sort(propertyDefintions, new Comparator<PropertyDefinition<?>>() {
+                    public int compare(PropertyDefinition<?> pd1, PropertyDefinition<?> pd2) {
+                        return pd1.getId().compareTo(pd2.getId());
+                    }
+                });
+            } else {
+                propertyDefintions = null;
+            }
+
+            ((AbstractTableModel) getModel()).fireTableDataChanged();
+        }
+
+        public ObjectType getType() {
+            return type;
+        }
+
+        public List<PropertyDefinition<?>> getPropertyDefinitions() {
+            return propertyDefintions;
+        }
+
+        static class PropertyDefinitionTableModel extends AbstractTableModel {
+
+            private static final long serialVersionUID = 1L;
+
+            private PropertyDefinitionTable table;
+
+            public PropertyDefinitionTableModel(PropertyDefinitionTable table) {
+                this.table = table;
+            }
+
+            public String getColumnName(int columnIndex) {
+                return COLUMN_NAMES[columnIndex];
+            }
+
+            public int getColumnCount() {
+                return COLUMN_NAMES.length;
+            }
+
+            public int getRowCount() {
+                if (table.getPropertyDefinitions() == null) {
+                    return 0;
+                }
+
+                return table.getPropertyDefinitions().size();
+            }
+
+            public Object getValueAt(int rowIndex, int columnIndex) {
+                PropertyDefinition<?> propDef = table.getPropertyDefinitions().get(rowIndex);
+
+                switch (columnIndex) {
+                case 0:
+                    return propDef.getDisplayName();
+                case 1:
+                    return propDef.getId();
+                case 2:
+                    return propDef.getDescription();
+                case 3:
+                    return propDef.getLocalNamespace();
+                case 4:
+                    return propDef.getLocalName();
+                case 5:
+                    return propDef.getQueryName();
+                case 6:
+                    return propDef.getPropertyType();
+                case 7:
+                    return propDef.getCardinality();
+                case 8:
+                    return propDef.getUpdatability();
+                case 9:
+                    return propDef.isQueryable();
+                case 10:
+                    return propDef.isRequired();
+                case 11:
+                    return propDef.isInherited();
+                case 12:
+                    return propDef.getDefaultValue();
+                case 13:
+                    return propDef.getChoices();
+                }
+
+                return null;
+            }
+
+            @Override
+            public Class<?> getColumnClass(int columnIndex) {
+                if ((columnIndex == 12) || (columnIndex == 13)) {
+                    return Collection.class;
+                }
+
+                return super.getColumnClass(columnIndex);
+            }
+        }
+    }
+}

Propchange: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypeSplitPane.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java?rev=1022605&r1=1022604&r2=1022605&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TypesFrame.java Thu Oct 14 16:36:17 2010
@@ -20,35 +20,21 @@ package org.apache.chemistry.opencmis.wo
 
 import java.awt.Cursor;
 import java.awt.Dimension;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 
-import javax.swing.JCheckBox;
 import javax.swing.JFrame;
 import javax.swing.JScrollPane;
 import javax.swing.JSplitPane;
-import javax.swing.JTable;
-import javax.swing.JTextField;
 import javax.swing.JTree;
 import javax.swing.event.TreeSelectionEvent;
 import javax.swing.event.TreeSelectionListener;
-import javax.swing.table.AbstractTableModel;
-import javax.swing.table.TableColumn;
 import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.TreeSelectionModel;
 
 import org.apache.chemistry.opencmis.client.api.ObjectType;
 import org.apache.chemistry.opencmis.client.api.Tree;
-import org.apache.chemistry.opencmis.commons.definitions.DocumentTypeDefinition;
-import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
-import org.apache.chemistry.opencmis.commons.definitions.RelationshipTypeDefinition;
 import org.apache.chemistry.opencmis.workbench.model.ClientModel;
-import org.apache.chemistry.opencmis.workbench.swing.CollectionRenderer;
-import org.apache.chemistry.opencmis.workbench.swing.InfoPanel;
 
 public class TypesFrame extends JFrame {
 
@@ -59,8 +45,7 @@ public class TypesFrame extends JFrame {
     private ClientModel model;
 
     private JTree typesTree;
-    private TypeInfoPanel typePanel;
-    private PropertyDefinitionTable propertyDefinitionTable;
+    private TypeSplitPane typePanel;
 
     public TypesFrame(ClientModel model) {
         super();
@@ -90,18 +75,12 @@ public class TypesFrame extends JFrame {
 
                 ObjectType type = ((TypeNode) node.getUserObject()).getType();
                 typePanel.setType(type);
-                propertyDefinitionTable.setType(type);
             }
         });
 
-        typePanel = new TypeInfoPanel();
-        propertyDefinitionTable = new PropertyDefinitionTable();
+        typePanel = new TypeSplitPane();
 
-        JSplitPane typeSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, new JScrollPane(typePanel),
-                new JScrollPane(propertyDefinitionTable));
-        typeSplitPane.setDividerLocation(300);
-
-        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(typesTree), typeSplitPane);
+        JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, new JScrollPane(typesTree), typePanel);
         splitPane.setDividerLocation(300);
 
         add(splitPane);
@@ -161,250 +140,4 @@ public class TypesFrame extends JFrame {
             return type.getDisplayName() + " (" + type.getId() + ")";
         }
     }
-
-    static class TypeInfoPanel extends InfoPanel {
-
-        private static final long serialVersionUID = 1L;
-
-        private JTextField nameField;
-        private JTextField descriptionField;
-        private JTextField idField;
-        private JTextField localNamespaceField;
-        private JTextField localNameField;
-        private JTextField queryNameField;
-        private JTextField baseTypeField;
-        private JCheckBox creatableBox;
-        private JCheckBox fileableBox;
-        private JCheckBox queryableBox;
-        private JCheckBox aclBox;
-        private JCheckBox policyBox;
-        private JCheckBox versionableBox;
-        private JTextField contentStreamAllowedField;
-        private JTextField allowedSourceTypesField;
-        private JTextField allowedTargetTypesField;
-
-        public TypeInfoPanel() {
-            super();
-            createGUI();
-        }
-
-        public void setType(ObjectType type) {
-            if (type != null) {
-                nameField.setText(type.getDisplayName());
-                descriptionField.setText(type.getDescription());
-                idField.setText(type.getId());
-                localNamespaceField.setText(type.getLocalNamespace());
-                localNameField.setText(type.getLocalName());
-                queryNameField.setText(type.getQueryName());
-                baseTypeField.setText(type.getBaseTypeId().value());
-                creatableBox.setSelected(is(type.isCreatable()));
-                fileableBox.setSelected(is(type.isFileable()));
-                queryableBox.setSelected(is(type.isQueryable()));
-                aclBox.setSelected(is(type.isControllableAcl()));
-                policyBox.setSelected(is(type.isControllablePolicy()));
-
-                if (type instanceof DocumentTypeDefinition) {
-                    DocumentTypeDefinition docType = (DocumentTypeDefinition) type;
-                    versionableBox.setVisible(true);
-                    versionableBox.setSelected(is(docType.isVersionable()));
-                    contentStreamAllowedField.setVisible(true);
-                    contentStreamAllowedField.setText(docType.getContentStreamAllowed() == null ? "???" : docType
-                            .getContentStreamAllowed().toString());
-                } else {
-                    versionableBox.setVisible(false);
-                    contentStreamAllowedField.setVisible(false);
-                }
-
-                if (type instanceof RelationshipTypeDefinition) {
-                    RelationshipTypeDefinition relationshipType = (RelationshipTypeDefinition) type;
-                    allowedSourceTypesField.setVisible(true);
-                    allowedSourceTypesField.setText(relationshipType.getAllowedSourceTypeIds() == null ? "???"
-                            : relationshipType.getAllowedSourceTypeIds().toString());
-                    allowedTargetTypesField.setVisible(true);
-                    allowedTargetTypesField.setText(relationshipType.getAllowedTargetTypeIds() == null ? "???"
-                            : relationshipType.getAllowedTargetTypeIds().toString());
-                } else {
-                    allowedSourceTypesField.setVisible(false);
-                    allowedTargetTypesField.setVisible(false);
-                }
-            } else {
-                nameField.setText("");
-                descriptionField.setText("");
-                idField.setText("");
-                localNamespaceField.setText("");
-                localNameField.setText("");
-                queryNameField.setText("");
-                baseTypeField.setText("");
-                creatableBox.setSelected(false);
-                fileableBox.setSelected(false);
-                queryableBox.setSelected(false);
-                aclBox.setSelected(false);
-                policyBox.setSelected(false);
-                versionableBox.setVisible(false);
-                contentStreamAllowedField.setVisible(false);
-                allowedSourceTypesField.setVisible(false);
-                allowedTargetTypesField.setVisible(false);
-            }
-
-            revalidate();
-        }
-
-        private void createGUI() {
-            setupGUI();
-
-            nameField = addLine("Name:", true);
-            descriptionField = addLine("Description:");
-            idField = addLine("Id:");
-            localNamespaceField = addLine("Local Namespace:");
-            localNameField = addLine("Local Name:");
-            queryNameField = addLine("Query Name:");
-            baseTypeField = addLine("Base Type:");
-            creatableBox = addCheckBox("Creatable:");
-            fileableBox = addCheckBox("Fileable:");
-            queryableBox = addCheckBox("Queryable:");
-            aclBox = addCheckBox("ACL controlable:");
-            policyBox = addCheckBox("Policy controlable:");
-            versionableBox = addCheckBox("Versionable:");
-            contentStreamAllowedField = addLine("Content stream allowed:");
-            allowedSourceTypesField = addLine("Allowed source types:");
-            allowedTargetTypesField = addLine("Allowed target types:");
-        }
-
-        private boolean is(Boolean b) {
-            if (b == null) {
-                return false;
-            }
-
-            return b.booleanValue();
-        }
-    }
-
-    static class PropertyDefinitionTable extends JTable {
-
-        private static final long serialVersionUID = 1L;
-
-        private static final String[] COLUMN_NAMES = { "Name", "Id", "Description", "Local Namespace", "Local Name",
-                "Query Name", "Type", "Cardinality", "Updatability", "Queryable", "Required", "Inherited",
-                "Default Value", "Choices" };
-        private static final int[] COLUMN_WIDTHS = { 200, 200, 200, 200, 200, 200, 80, 80, 80, 50, 50, 50, 200, 200 };
-
-        private ObjectType type;
-        private List<PropertyDefinition<?>> propertyDefintions;
-
-        public PropertyDefinitionTable() {
-            setDefaultRenderer(Collection.class, new CollectionRenderer());
-            setModel(new PropertyDefinitionTableModel(this));
-
-            setAutoResizeMode(AUTO_RESIZE_OFF);
-
-            for (int i = 0; i < COLUMN_WIDTHS.length; i++) {
-                TableColumn column = getColumnModel().getColumn(i);
-                column.setPreferredWidth(COLUMN_WIDTHS[i]);
-            }
-
-            setFillsViewportHeight(true);
-        }
-
-        public void setType(ObjectType type) {
-            this.type = type;
-
-            if ((type != null) && (type.getPropertyDefinitions() != null)) {
-                propertyDefintions = new ArrayList<PropertyDefinition<?>>();
-                for (PropertyDefinition<?> propDef : type.getPropertyDefinitions().values()) {
-                    propertyDefintions.add(propDef);
-                }
-
-                Collections.sort(propertyDefintions, new Comparator<PropertyDefinition<?>>() {
-                    public int compare(PropertyDefinition<?> pd1, PropertyDefinition<?> pd2) {
-                        return pd1.getId().compareTo(pd2.getId());
-                    }
-                });
-            } else {
-                propertyDefintions = null;
-            }
-
-            ((AbstractTableModel) getModel()).fireTableDataChanged();
-        }
-
-        public ObjectType getType() {
-            return type;
-        }
-
-        public List<PropertyDefinition<?>> getPropertyDefinitions() {
-            return propertyDefintions;
-        }
-
-        static class PropertyDefinitionTableModel extends AbstractTableModel {
-
-            private static final long serialVersionUID = 1L;
-
-            private PropertyDefinitionTable table;
-
-            public PropertyDefinitionTableModel(PropertyDefinitionTable table) {
-                this.table = table;
-            }
-
-            public String getColumnName(int columnIndex) {
-                return COLUMN_NAMES[columnIndex];
-            }
-
-            public int getColumnCount() {
-                return COLUMN_NAMES.length;
-            }
-
-            public int getRowCount() {
-                if (table.getPropertyDefinitions() == null) {
-                    return 0;
-                }
-
-                return table.getPropertyDefinitions().size();
-            }
-
-            public Object getValueAt(int rowIndex, int columnIndex) {
-                PropertyDefinition<?> propDef = table.getPropertyDefinitions().get(rowIndex);
-
-                switch (columnIndex) {
-                case 0:
-                    return propDef.getDisplayName();
-                case 1:
-                    return propDef.getId();
-                case 2:
-                    return propDef.getDescription();
-                case 3:
-                    return propDef.getLocalNamespace();
-                case 4:
-                    return propDef.getLocalName();
-                case 5:
-                    return propDef.getQueryName();
-                case 6:
-                    return propDef.getPropertyType();
-                case 7:
-                    return propDef.getCardinality();
-                case 8:
-                    return propDef.getUpdatability();
-                case 9:
-                    return propDef.isQueryable();
-                case 10:
-                    return propDef.isRequired();
-                case 11:
-                    return propDef.isInherited();
-                case 12:
-                    return propDef.getDefaultValue();
-                case 13:
-                    return propDef.getChoices();
-                }
-
-                return null;
-            }
-
-            @Override
-            public Class<?> getColumnClass(int columnIndex) {
-                if ((columnIndex == 12) || (columnIndex == 13)) {
-                    return Collection.class;
-                }
-
-                return super.getColumnClass(columnIndex);
-            }
-        }
-    }
 }

Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/DetailsTabs.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/DetailsTabs.java?rev=1022605&r1=1022604&r2=1022605&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/DetailsTabs.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/DetailsTabs.java Thu Oct 14 16:36:17 2010
@@ -37,6 +37,7 @@ public class DetailsTabs extends JTabbed
     private ACLTable aclTable;
     private PolicyTable policyTable;
     private VersionTable versionTable;
+    private TypesPanel typesPanel;
     private ExtensionsPanel extensionsPanel;
 
     public DetailsTabs(ClientModel model) {
@@ -55,6 +56,7 @@ public class DetailsTabs extends JTabbed
         aclTable = new ACLTable(model);
         policyTable = new PolicyTable(model);
         versionTable = new VersionTable(model);
+        typesPanel = new TypesPanel(model);
         extensionsPanel = new ExtensionsPanel(model);
 
         addTab("Object", objectPanel);
@@ -65,6 +67,7 @@ public class DetailsTabs extends JTabbed
         addTab("ACL", new JScrollPane(aclTable));
         addTab("Policies", new JScrollPane(policyTable));
         addTab("Versions", new JScrollPane(versionTable));
+        addTab("Type", new JScrollPane(typesPanel));
         addTab("Extensions", new JScrollPane(extensionsPanel));
     }
 }

Added: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/TypesPanel.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/TypesPanel.java?rev=1022605&view=auto
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/TypesPanel.java (added)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/TypesPanel.java Thu Oct 14 16:36:17 2010
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.chemistry.opencmis.workbench.details;
+
+import org.apache.chemistry.opencmis.client.api.CmisObject;
+import org.apache.chemistry.opencmis.workbench.TypeSplitPane;
+import org.apache.chemistry.opencmis.workbench.model.ClientModel;
+import org.apache.chemistry.opencmis.workbench.model.ClientModelEvent;
+import org.apache.chemistry.opencmis.workbench.model.ObjectListener;
+
+public class TypesPanel extends TypeSplitPane implements ObjectListener {
+
+    private static final long serialVersionUID = 1L;
+
+    private ClientModel model;
+
+    public TypesPanel(ClientModel model) {
+        super();
+
+        this.model = model;
+        model.addObjectListener(this);
+    }
+
+    @Override
+    public void objectLoaded(ClientModelEvent event) {
+        CmisObject object = model.getCurrentObject();
+
+        if (object == null) {
+            setType(null);
+        } else {
+            setType(object.getType());
+        }
+    }
+}

Propchange: incubator/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/details/TypesPanel.java
------------------------------------------------------------------------------
    svn:eol-style = native