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 2013/03/21 14:20:48 UTC
svn commit: r1459297 - in /chemistry/opencmis/trunk:
chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/
chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencm...
Author: fmui
Date: Thu Mar 21 13:20:47 2013
New Revision: 1459297
URL: http://svn.apache.org/r1459297
Log:
TCK: added first simple secondary types test
Added:
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/SecondaryTypesTest.java (with props)
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/TestParameters.java
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/CreateAndDeleteTypeTest.java
chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/TypesTestGroup.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java
chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CreateDialog.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/AbstractSessionTest.java Thu Mar 21 13:20:47 2013
@@ -117,6 +117,7 @@ public abstract class AbstractSessionTes
private Boolean supportsRelationships;
private Boolean supportsPolicies;
private Boolean supportsItems;
+ private Boolean supportsSecondaries;
public BindingType getBinding() {
if (getParameters() == null) {
@@ -197,6 +198,15 @@ public abstract class AbstractSessionTes
return objectTypeId;
}
+ protected String getSecondaryTestTypeId() {
+ String objectTypeId = getParameters().get(TestParameters.DEFAULT_SECONDARY_TYPE);
+ if (objectTypeId == null) {
+ objectTypeId = TestParameters.DEFAULT_SECONDARY_TYPE_VALUE;
+ }
+
+ return objectTypeId;
+ }
+
// --- helpers ---
protected String[] getAllProperties(CmisObject object) {
@@ -781,6 +791,20 @@ public abstract class AbstractSessionTes
return supportsItems.booleanValue();
}
+ protected boolean hasSecondaries(Session session) {
+ if (supportsSecondaries == null) {
+ supportsSecondaries = Boolean.FALSE;
+ for (ObjectType type : session.getTypeChildren(null, false)) {
+ if (BaseTypeId.CMIS_SECONDARY.value().equals(type.getId())) {
+ supportsSecondaries = Boolean.TRUE;
+ break;
+ }
+ }
+ }
+
+ return supportsSecondaries.booleanValue();
+ }
+
protected CmisTestResult checkObject(Session session, CmisObject object, String[] properties, String message) {
List<CmisTestResult> results = new ArrayList<CmisTestResult>();
Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/TestParameters.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/TestParameters.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/TestParameters.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/impl/TestParameters.java Thu Mar 21 13:20:47 2013
@@ -31,6 +31,9 @@ public class TestParameters {
public static final String DEFAULT_ITEM_TYPE = "org.apache.chemistry.opencmis.tck.default.itemType";
public static final String DEFAULT_ITEM_TYPE_VALUE = "cmis:item";
+ public static final String DEFAULT_SECONDARY_TYPE = "org.apache.chemistry.opencmis.tck.default.secondaryType";
+ public static final String DEFAULT_SECONDARY_TYPE_VALUE = "cmis:secondary";
+
public static final String DEFAULT_TEST_FOLDER_PARENT = "org.apache.chemistry.opencmis.tck.default.testFolderParent";
public static final String DEFAULT_TEST_FOLDER_PARENT_VALUE = "/";
Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/BaseTypesTest.java Thu Mar 21 13:20:47 2013
@@ -34,6 +34,7 @@ import org.apache.chemistry.opencmis.cli
import org.apache.chemistry.opencmis.commons.definitions.TypeDefinition;
import org.apache.chemistry.opencmis.commons.enums.BaseTypeId;
import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
+import org.apache.chemistry.opencmis.commons.exceptions.CmisBaseException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisInvalidArgumentException;
import org.apache.chemistry.opencmis.commons.exceptions.CmisObjectNotFoundException;
import org.apache.chemistry.opencmis.tck.CmisTestResult;
@@ -152,6 +153,20 @@ public class BaseTypesTest extends Abstr
} catch (CmisObjectNotFoundException e) {
addResult(createResult(WARNING, "Secondary type not available!", e, false));
}
+ } else {
+ try {
+ session.getTypeDefinition(BaseTypeId.CMIS_ITEM.value());
+ addResult(createResult(FAILURE, "CMIS 1.0 repository returns cmis:item type definition!"));
+ } catch (CmisBaseException e) {
+ // expected
+ }
+
+ try {
+ session.getTypeDefinition(BaseTypeId.CMIS_SECONDARY.value());
+ addResult(createResult(FAILURE, "CMIS 1.0 repository returns cmis:secondary type definition!"));
+ } catch (CmisBaseException e) {
+ // expected
+ }
}
int numOfTypes = runTypeChecks(session, session.getTypeDescendants(null, -1, true));
Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/CreateAndDeleteTypeTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/CreateAndDeleteTypeTest.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/CreateAndDeleteTypeTest.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/CreateAndDeleteTypeTest.java Thu Mar 21 13:20:47 2013
@@ -59,7 +59,7 @@ public class CreateAndDeleteTypeTest ext
@Override
public void run(Session session) {
if (session.getRepositoryInfo().getCmisVersion() == CmisVersion.CMIS_1_0) {
- addResult(createResult(SKIPPED, "Items are not supporetd by CMIS 1.0. Test skipped!"));
+ addResult(createResult(SKIPPED, "Type mutability is not supporetd by CMIS 1.0. Test skipped!"));
return;
}
@@ -155,7 +155,8 @@ public class CreateAndDeleteTypeTest ext
"The number of defined properties and the number of non-inherited properties don't match!");
addResult(assertEquals(newTypeDef.getPropertyDefinitions().size(), newPropDefs.size(), null, failure));
- // check the order of the properties, which must match the order of the original type definition
+ // check the order of the properties, which must match the order of the
+ // original type definition
// (OpenCMIS keeps the order of the property definitions.)
int i = 0;
for (Map.Entry<String, PropertyDefinition<?>> propDef : newTypeDef.getPropertyDefinitions().entrySet()) {
Added: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/SecondaryTypesTest.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/SecondaryTypesTest.java?rev=1459297&view=auto
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/SecondaryTypesTest.java (added)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/SecondaryTypesTest.java Thu Mar 21 13:20:47 2013
@@ -0,0 +1,168 @@
+/*
+ * 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.tck.tests.types;
+
+import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.FAILURE;
+import static org.apache.chemistry.opencmis.tck.CmisTestResultStatus.SKIPPED;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.chemistry.opencmis.client.api.Document;
+import org.apache.chemistry.opencmis.client.api.Folder;
+import org.apache.chemistry.opencmis.client.api.ObjectType;
+import org.apache.chemistry.opencmis.client.api.SecondaryType;
+import org.apache.chemistry.opencmis.client.api.Session;
+import org.apache.chemistry.opencmis.commons.PropertyIds;
+import org.apache.chemistry.opencmis.commons.definitions.PropertyDefinition;
+import org.apache.chemistry.opencmis.commons.enums.CmisVersion;
+import org.apache.chemistry.opencmis.commons.enums.Updatability;
+import org.apache.chemistry.opencmis.tck.CmisTestResult;
+import org.apache.chemistry.opencmis.tck.impl.AbstractSessionTest;
+
+public class SecondaryTypesTest extends AbstractSessionTest {
+ @Override
+ public void init(Map<String, String> parameters) {
+ super.init(parameters);
+ setName("Secondary Types Test");
+ setDescription("Creates documents, attaches and detaches secondary types, checks the properties, and finally deletes the test documents.");
+ }
+
+ @Override
+ public void run(Session session) {
+ if (session.getRepositoryInfo().getCmisVersion() == CmisVersion.CMIS_1_0) {
+ addResult(createResult(SKIPPED, "Secondary types are not supporetd by CMIS 1.0. Test skipped!"));
+ return;
+ }
+
+ if (!hasSecondaries(session)) {
+ addResult(createResult(SKIPPED, "Repository doesn't support secondary types. Test skipped!"));
+ return;
+ }
+
+ // check cmis:secondaryObjectTypeIds property definition
+ ObjectType docType = session.getTypeDefinition(getDocumentTestTypeId());
+ PropertyDefinition<?> secTypesPropDef = docType.getPropertyDefinitions().get(
+ PropertyIds.SECONDARY_OBJECT_TYPE_IDS);
+ if (secTypesPropDef == null) {
+ addResult(createResult(FAILURE, "Test document type has no " + PropertyIds.SECONDARY_OBJECT_TYPE_IDS
+ + " property!"));
+ return;
+ } else if (secTypesPropDef.getUpdatability() != Updatability.READWRITE) {
+ addResult(createResult(SKIPPED,
+ "Test document type does not allow attaching secondary types. Test skipped!"));
+ return;
+ }
+
+ // create a test folder
+ Folder testFolder = createTestFolder(session);
+
+ try {
+ createDocumentAndAttachSecondaryType(session, testFolder);
+ createDocumentWithSecondaryType(session, testFolder);
+ } finally {
+ // delete the test folder
+ deleteTestFolder();
+ }
+ }
+
+ private void createDocumentAndAttachSecondaryType(Session session, Folder testFolder) {
+ CmisTestResult f;
+
+ Document doc = createDocument(session, testFolder, "createandattach.txt", "Secondary Type Test");
+
+ try {
+ String secondaryTestTypeId = getSecondaryTestTypeId();
+
+ // -- attach secondary type
+ List<String> secondaryTypes = new ArrayList<String>();
+
+ // copy already attached secondary types, if there are any
+ if (doc.getSecondaryTypes() != null) {
+ for (SecondaryType secType : doc.getSecondaryTypes()) {
+ secondaryTypes.add(secType.getId());
+ }
+ }
+
+ secondaryTypes.add(secondaryTestTypeId);
+
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, secondaryTypes);
+
+ // attach secondary type
+ Document newDoc = (Document) doc.updateProperties(properties);
+
+ // check if the secondary type is there
+ boolean found = false;
+ if (newDoc.getSecondaryTypes() == null) {
+ addResult(createResult(FAILURE, "Document does not have the attached secondary type!"));
+ } else {
+ for (SecondaryType secType : newDoc.getSecondaryTypes()) {
+ if (secondaryTestTypeId.equals(secType.getId())) {
+ found = true;
+ break;
+ }
+ }
+
+ f = createResult(FAILURE, "Document does not have the attached secondary type!");
+ addResult(assertIsTrue(found, null, f));
+ }
+
+ // -- detach secondary type
+ if (found) {
+ secondaryTypes = new ArrayList<String>();
+
+ for (SecondaryType secType : newDoc.getSecondaryTypes()) {
+ if (!secondaryTestTypeId.equals(secType.getId())) {
+ secondaryTypes.add(secType.getId());
+ }
+ }
+
+ properties = new HashMap<String, Object>();
+ properties.put(PropertyIds.SECONDARY_OBJECT_TYPE_IDS, secondaryTypes);
+
+ // attach secondary type
+ Document newDoc2 = (Document) doc.updateProperties(properties);
+
+ found = false;
+ if (newDoc2.getSecondaryTypes() != null) {
+ for (SecondaryType secType : newDoc2.getSecondaryTypes()) {
+ if (secondaryTestTypeId.equals(secType.getId())) {
+ found = true;
+ break;
+ }
+ }
+ }
+
+ f = createResult(FAILURE, "Document still has the detached secondary type!");
+ addResult(assertIsFalse(found, null, f));
+ }
+
+ } finally {
+ deleteObject(doc);
+ }
+ }
+
+ private void createDocumentWithSecondaryType(Session session, Folder testFolder) {
+ // TODO
+ }
+
+}
Propchange: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/SecondaryTypesTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/TypesTestGroup.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/TypesTestGroup.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/TypesTestGroup.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-tck/src/main/java/org/apache/chemistry/opencmis/tck/tests/types/TypesTestGroup.java Thu Mar 21 13:20:47 2013
@@ -35,5 +35,6 @@ public class TypesTestGroup extends Abst
addTest(new BaseTypesTest());
addTest(new CreateAndDeleteTypeTest());
+ addTest(new SecondaryTypesTest());
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/TckDialog.java Thu Mar 21 13:20:47 2013
@@ -196,19 +196,23 @@ public class TckDialog {
configPanel.setBorder(BorderFactory.createEmptyBorder(0, 5, 0, 0));
final JComboBox folderComboBox = addComboBox(configPanel, "Test folder type:",
- BaseTypeId.CMIS_FOLDER.value(), TestParameters.DEFAULT_FOLDER_TYPE_VALUE);
+ BaseTypeId.CMIS_FOLDER.value(), TestParameters.DEFAULT_FOLDER_TYPE_VALUE, true);
configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
final JComboBox documentComboBox = addComboBox(configPanel, "Test document type:",
- BaseTypeId.CMIS_DOCUMENT.value(), TestParameters.DEFAULT_DOCUMENT_TYPE_VALUE);
+ BaseTypeId.CMIS_DOCUMENT.value(), TestParameters.DEFAULT_DOCUMENT_TYPE_VALUE, true);
configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
final JComboBox relationshipComboBox = addComboBox(configPanel, "Test relationship type:",
- BaseTypeId.CMIS_RELATIONSHIP.value(), TestParameters.DEFAULT_RELATIONSHIP_TYPE_VALUE);
+ BaseTypeId.CMIS_RELATIONSHIP.value(), TestParameters.DEFAULT_RELATIONSHIP_TYPE_VALUE, true);
configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
final JComboBox itemComboBox = addComboBox(configPanel, "Test item type:", BaseTypeId.CMIS_ITEM.value(),
- TestParameters.DEFAULT_ITEM_TYPE_VALUE);
+ TestParameters.DEFAULT_ITEM_TYPE_VALUE, true);
+ configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
+
+ final JComboBox secondaryComboBox = addComboBox(configPanel, "Test secondary type:",
+ BaseTypeId.CMIS_SECONDARY.value(), TestParameters.DEFAULT_SECONDARY_TYPE_VALUE, false);
configPanel.add(Box.createRigidArea(new Dimension(1, 10)));
configPanel.add(new JLabel("Test folder path:"));
@@ -251,6 +255,10 @@ public class TckDialog {
if (itemComboBox.isEnabled()) {
parameters.put(TestParameters.DEFAULT_ITEM_TYPE, (String) itemComboBox.getSelectedItem());
}
+ if (secondaryComboBox.isEnabled()) {
+ parameters.put(TestParameters.DEFAULT_SECONDARY_TYPE,
+ (String) secondaryComboBox.getSelectedItem());
+ }
parameters.put(TestParameters.DEFAULT_TEST_FOLDER_PARENT, testParentFolderField.getText());
runner.setParameters(parameters);
@@ -291,12 +299,13 @@ public class TckDialog {
model.nodeChanged((TreeNode) model.getRoot());
}
- private JComboBox addComboBox(JPanel panel, String title, String rootTypeId, String defaultTypeId) {
+ private JComboBox addComboBox(JPanel panel, String title, String rootTypeId, String defaultTypeId,
+ boolean creatableOnly) {
final JLabel label = new JLabel(title);
label.setAlignmentX(Component.LEFT_ALIGNMENT);
panel.add(label);
- List<ObjectType> types = model.getCreateableTypes(rootTypeId);
+ List<ObjectType> types = model.getTypesAsList(rootTypeId, creatableOnly);
String[] typeIds = new String[types.size()];
int i = 0;
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/model/ClientModel.java Thu Mar 21 13:20:47 2013
@@ -329,7 +329,7 @@ public class ClientModel {
return clientSession.getSession().createRelationship(properties, null, null, null);
}
- public synchronized List<ObjectType> getCreateableTypes(String rootTypeId) {
+ public synchronized List<ObjectType> getTypesAsList(String rootTypeId, boolean creatableOnly) {
List<ObjectType> result = new ArrayList<ObjectType>();
ObjectType rootType = null;
@@ -340,10 +340,14 @@ public class ClientModel {
}
List<Tree<ObjectType>> types = clientSession.getSession().getTypeDescendants(rootTypeId, -1, false);
- addType(types, result);
+ addType(types, result, creatableOnly);
- boolean isCreatable = (rootType.isCreatable() == null ? true : rootType.isCreatable().booleanValue());
- if (isCreatable) {
+ if (creatableOnly) {
+ boolean isCreatable = (rootType.isCreatable() == null ? true : rootType.isCreatable().booleanValue());
+ if (isCreatable) {
+ result.add(rootType);
+ }
+ } else {
result.add(rootType);
}
@@ -356,17 +360,20 @@ public class ClientModel {
return result;
}
- private void addType(List<Tree<ObjectType>> types, List<ObjectType> resultList) {
+ private void addType(List<Tree<ObjectType>> types, List<ObjectType> resultList, boolean creatableOnly) {
for (Tree<ObjectType> tt : types) {
if (tt.getItem() != null) {
- boolean isCreatable = (tt.getItem().isCreatable() == null ? true : tt.getItem().isCreatable()
- .booleanValue());
-
- if (isCreatable) {
+ if (creatableOnly) {
+ boolean isCreatable = (tt.getItem().isCreatable() == null ? true : tt.getItem().isCreatable()
+ .booleanValue());
+ if (isCreatable) {
+ resultList.add(tt.getItem());
+ }
+ } else {
resultList.add(tt.getItem());
}
- addType(tt.getChildren(), resultList);
+ addType(tt.getChildren(), resultList, creatableOnly);
}
}
}
Modified: chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CreateDialog.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CreateDialog.java?rev=1459297&r1=1459296&r2=1459297&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CreateDialog.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-workbench/chemistry-opencmis-workbench/src/main/java/org/apache/chemistry/opencmis/workbench/swing/CreateDialog.java Thu Mar 21 13:20:47 2013
@@ -82,7 +82,7 @@ public abstract class CreateDialog exten
}
protected Object[] getTypes(String rootTypeId) {
- List<ObjectType> types = model.getCreateableTypes(rootTypeId);
+ List<ObjectType> types = model.getTypesAsList(rootTypeId, true);
Object[] result = new Object[types.size()];