diff --git a/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/LayoutGenerationHelper.java b/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/LayoutGenerationHelper.java index 3de66d6..f5c96bd 100644 --- a/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/LayoutGenerationHelper.java +++ b/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/LayoutGenerationHelper.java @@ -63,6 +63,15 @@ public class LayoutGenerationHelper { WidgetTypeDefRegistry widgetTypeRegistry, DocumentWidgetModel bareModel, DocumentSchema schema, String parentFieldPath, Field field) { + return getDocumentWidgetModel(widgetTypeRegistry, bareModel, schema, + parentFieldPath, field, false); + } + + public static DocumentWidgetModel getDocumentWidgetModel( + WidgetTypeDefRegistry widgetTypeRegistry, + DocumentWidgetModel bareModel, DocumentSchema schema, + String parentFieldPath, Field field, + boolean addBackwardCompatMultiValueItem) { String fieldId = field.getId(); String fieldType = field.getType(); boolean fieldIsMulti = field.isMultiValue(); @@ -109,14 +118,15 @@ public class LayoutGenerationHelper { fieldPath = fieldId; } List defaultSubs = LayoutGenerationHelper.getLayoutSubWidgetModels( - widgetTypeRegistry, schema, fieldPath, field); + widgetTypeRegistry, schema, fieldPath, field, + addBackwardCompatMultiValueItem); if (defaultSubs != null && !defaultSubs.isEmpty()) { bareModel.setSubWidgets(defaultSubs); } return bareModel; } - public static TaskWidgetModel getTasktWidgetModel( + public static TaskWidgetModel getTaskWidgetModel( WidgetTypeDefRegistry widgetTypeRegistry, TaskWidgetModel bareModel, DocumentSchema schema, String parentFieldPath, Field field) { @@ -170,6 +180,15 @@ public class LayoutGenerationHelper { public static List getLayoutSubWidgetModels( WidgetTypeDefRegistry widgetTypeRegistry, Map schemas, LayoutWidgetModel parentWidget) { + return getLayoutSubWidgetModels(widgetTypeRegistry, schemas, + parentWidget, false); + } + + public static List getLayoutSubWidgetModels( + WidgetTypeDefRegistry widgetTypeRegistry, + Map schemas, + LayoutWidgetModel parentWidget, + boolean addBackwardCompatMultiValueItem) { // resolve parent field and schema to initialize sub widget models. DocumentSchema schema = null; String parentFieldPath = null; @@ -220,18 +239,19 @@ public class LayoutGenerationHelper { } } return getLayoutSubWidgetModels(widgetTypeRegistry, schema, - parentFieldPath, parentField); + parentFieldPath, parentField, addBackwardCompatMultiValueItem); } public static List getLayoutSubWidgetModels( WidgetTypeDefRegistry widgetTypeRegistry, DocumentSchema schema, - String parentFieldPath, Field parentField) { + String parentFieldPath, Field parentField, + boolean addBackwardCompatMultiValueItem) { if (parentField == null) { return null; } List models = new ArrayList(); List subFields = null; - if (parentField.isMultiValue()) { + if (parentField.isMultiValue() && addBackwardCompatMultiValueItem) { Field subField = new Field(""); subField.setType(parentField.getType()); subField.setSubFields(parentField.getSubFields()); diff --git a/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/task/TaskLayoutWidgetPalette.java b/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/task/TaskLayoutWidgetPalette.java index 956fdb5..a5e0495 100644 --- a/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/task/TaskLayoutWidgetPalette.java +++ b/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/client/features/layout/ui/task/TaskLayoutWidgetPalette.java @@ -67,7 +67,7 @@ public class TaskLayoutWidgetPalette extends DocumentWidgetPalette { continue; } TaskWidgetModel model = new TaskWidgetModel(); - model = LayoutGenerationHelper.getTasktWidgetModel( + model = LayoutGenerationHelper.getTaskWidgetModel( widgetTypeRegistry, model, schema, null, field); models.add(model); } @@ -88,8 +88,8 @@ public class TaskLayoutWidgetPalette extends DocumentWidgetPalette { } return vpanel; } - - + + @Override protected void addSystemSchemaPanel(ListBox list, DeckPanel deck) { //dont add system schema panel on task layout editor diff --git a/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/core/builders/LayoutBuildHandler.java b/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/core/builders/LayoutBuildHandler.java index a2a59b6..af58ce0 100644 --- a/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/core/builders/LayoutBuildHandler.java +++ b/nuxeo-studio-ui/src/main/java/org/nuxeo/studio/core/builders/LayoutBuildHandler.java @@ -630,7 +630,7 @@ public class LayoutBuildHandler { } else { fields.addElement("field").setText(propName); } - if (isSubWidget || StringUtils.isEmpty(propName)) { + if (StringUtils.isEmpty(propName)) { fields.addElement("field").setText("filename"); } else { String filenameField; @@ -809,7 +809,7 @@ public class LayoutBuildHandler { Field parentField = schema.getField(parentFieldPath); subWidgets = LayoutGenerationHelper.getLayoutSubWidgetModels( widgetTypeRegistry, schema, - parentFieldPath, parentField); + parentFieldPath, parentField, false); } } }