/modules/apps/dynamic-data-mapping/dynamic-data-mapping-test-util/src/main/java/com/liferay/dynamic/data/mapping/test/util/DDMFormTestUtil.java

http://github.com/liferay/liferay-portal · Java · 321 lines · 215 code · 90 blank · 16 comment · 5 complexity · 2be89b9212a57a121a09929580172065 MD5 · raw file

  1. /**
  2. * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
  3. *
  4. * This library is free software; you can redistribute it and/or modify it under
  5. * the terms of the GNU Lesser General Public License as published by the Free
  6. * Software Foundation; either version 2.1 of the License, or (at your option)
  7. * any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful, but WITHOUT
  10. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  11. * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
  12. * details.
  13. */
  14. package com.liferay.dynamic.data.mapping.test.util;
  15. import com.liferay.dynamic.data.mapping.form.field.type.constants.DDMFormFieldTypeConstants;
  16. import com.liferay.dynamic.data.mapping.model.DDMForm;
  17. import com.liferay.dynamic.data.mapping.model.DDMFormField;
  18. import com.liferay.dynamic.data.mapping.model.DDMFormFieldOptions;
  19. import com.liferay.dynamic.data.mapping.model.LocalizedValue;
  20. import com.liferay.petra.string.StringPool;
  21. import com.liferay.portal.kernel.test.util.RandomTestUtil;
  22. import com.liferay.portal.kernel.util.LocaleUtil;
  23. import java.util.LinkedHashSet;
  24. import java.util.List;
  25. import java.util.Locale;
  26. import java.util.Set;
  27. /**
  28. * @author Marcellus Tavares
  29. */
  30. public class DDMFormTestUtil {
  31. public static void addDDMFormFields(
  32. DDMForm ddmForm, DDMFormField... ddmFormFieldsArray) {
  33. List<DDMFormField> ddmFormFields = ddmForm.getDDMFormFields();
  34. for (DDMFormField ddmFormField : ddmFormFieldsArray) {
  35. ddmFormFields.add(ddmFormField);
  36. }
  37. }
  38. public static DDMFormField addDocumentLibraryDDMFormField(
  39. DDMForm ddmForm, String fieldName) {
  40. List<DDMFormField> ddmFormFields = ddmForm.getDDMFormFields();
  41. DDMFormField ddmFormField = createDDMFormField(
  42. fieldName, RandomTestUtil.randomString(),
  43. DDMFormFieldTypeConstants.DOCUMENT_LIBRARY, "document-library",
  44. true, false, true);
  45. ddmFormField.setDDMForm(ddmForm);
  46. ddmFormField.setLocalizable(true);
  47. ddmFormField.setFieldNamespace("ddm");
  48. ddmFormFields.add(ddmFormField);
  49. return ddmFormField;
  50. }
  51. public static void addNestedTextDDMFormFields(
  52. DDMFormField ddmFormField, String... fieldNames) {
  53. List<DDMFormField> nestedDDMFormFields =
  54. ddmFormField.getNestedDDMFormFields();
  55. for (String fieldName : fieldNames) {
  56. nestedDDMFormFields.add(
  57. createLocalizableTextDDMFormField(fieldName));
  58. }
  59. }
  60. public static void addTextDDMFormFields(
  61. DDMForm ddmForm, String... fieldNames) {
  62. List<DDMFormField> ddmFormFields = ddmForm.getDDMFormFields();
  63. for (String fieldName : fieldNames) {
  64. DDMFormField ddmFormField = createLocalizableTextDDMFormField(
  65. fieldName);
  66. ddmFormField.setDDMForm(ddmForm);
  67. ddmFormFields.add(ddmFormField);
  68. }
  69. }
  70. public static Set<Locale> createAvailableLocales(Locale... locales) {
  71. Set<Locale> availableLocales = new LinkedHashSet<>();
  72. for (Locale locale : locales) {
  73. availableLocales.add(locale);
  74. }
  75. return availableLocales;
  76. }
  77. public static DDMForm createDDMForm(
  78. Set<Locale> availableLocales, Locale defaultLocale) {
  79. DDMForm ddmForm = new DDMForm();
  80. ddmForm.setAvailableLocales(availableLocales);
  81. ddmForm.setDefaultLocale(defaultLocale);
  82. return ddmForm;
  83. }
  84. public static DDMForm createDDMForm(String... fieldNames) {
  85. DDMForm ddmForm = createDDMForm(
  86. createAvailableLocales(LocaleUtil.US), LocaleUtil.US);
  87. addTextDDMFormFields(ddmForm, fieldNames);
  88. return ddmForm;
  89. }
  90. public static DDMFormField createDDMFormField(
  91. String name, String label, String type, String dataType,
  92. boolean localizable, boolean repeatable, boolean required) {
  93. DDMFormField ddmFormField = new DDMFormField(name, type);
  94. ddmFormField.setDataType(dataType);
  95. ddmFormField.setFieldReference(name);
  96. ddmFormField.setLocalizable(localizable);
  97. ddmFormField.setRepeatable(repeatable);
  98. ddmFormField.setRequired(required);
  99. LocalizedValue localizedValue = ddmFormField.getLabel();
  100. localizedValue.addString(LocaleUtil.US, label);
  101. return ddmFormField;
  102. }
  103. public static DDMFormField createDDMFormField(
  104. String name, String label, String type, String dataType,
  105. boolean localizable, boolean repeatable, boolean required, String tip) {
  106. return createDDMFormField(
  107. name, label, type, dataType, localizable, repeatable, required, tip,
  108. null);
  109. }
  110. public static DDMFormField createDDMFormField(
  111. String name, String label, String type, String dataType,
  112. boolean localizable, boolean repeatable, boolean required, String tip,
  113. String option) {
  114. return createDDMFormField(
  115. name, label, type, dataType, localizable, repeatable, required, tip,
  116. null, option);
  117. }
  118. public static DDMFormField createDDMFormField(
  119. String name, String label, String type, String dataType,
  120. boolean localizable, boolean repeatable, boolean required, String tip,
  121. String predefinedValue, String option) {
  122. return createDDMFormField(
  123. name, label, type, dataType, localizable, repeatable, required, tip,
  124. predefinedValue, null, null, option);
  125. }
  126. public static DDMFormField createDDMFormField(
  127. String name, String label, String type, String dataType,
  128. boolean localizable, boolean repeatable, boolean required, String tip,
  129. String predefinedValue, String placeHolder, String toolTip,
  130. String option) {
  131. DDMFormField ddmFormField = createDDMFormField(
  132. name, label, type, dataType, localizable, repeatable, required);
  133. LocalizedValue tipLocalizedValue =
  134. DDMFormValuesTestUtil.createLocalizedValue(tip, LocaleUtil.US);
  135. ddmFormField.setTip(tipLocalizedValue);
  136. LocalizedValue predefinedValueLocalizedValue =
  137. DDMFormValuesTestUtil.createLocalizedValue(
  138. predefinedValue, LocaleUtil.US);
  139. ddmFormField.setPredefinedValue(predefinedValueLocalizedValue);
  140. LocalizedValue placeHolderLocalizedValue =
  141. DDMFormValuesTestUtil.createLocalizedValue(
  142. placeHolder, LocaleUtil.US);
  143. ddmFormField.setProperty("placeholder", placeHolderLocalizedValue);
  144. LocalizedValue toolTipLocalizedValue =
  145. DDMFormValuesTestUtil.createLocalizedValue(toolTip, LocaleUtil.US);
  146. ddmFormField.setProperty("tooltip", toolTipLocalizedValue);
  147. DDMFormFieldOptions ddmFormFieldOptions = new DDMFormFieldOptions();
  148. ddmFormFieldOptions.addOptionLabel(option, LocaleUtil.US, option);
  149. ddmFormField.setDDMFormFieldOptions(ddmFormFieldOptions);
  150. LocalizedValue localizedValue = ddmFormField.getLabel();
  151. localizedValue.addString(LocaleUtil.US, label);
  152. return ddmFormField;
  153. }
  154. public static DDMFormField createGridDDMFormField(
  155. String name, String label, String type, String dataType,
  156. boolean localizable, boolean repeatable, boolean required, String tip,
  157. String option) {
  158. DDMFormField ddmFormField = createDDMFormField(
  159. name, label, type, dataType, localizable, repeatable, required, tip,
  160. null, null, null, option);
  161. DDMFormFieldOptions ddmFormFieldOptions =
  162. ddmFormField.getDDMFormFieldOptions();
  163. ddmFormField.setProperty("columns", ddmFormFieldOptions);
  164. ddmFormField.setProperty("rows", ddmFormFieldOptions);
  165. return ddmFormField;
  166. }
  167. public static DDMFormField createLocalizableTextDDMFormField(String name) {
  168. return createTextDDMFormField(name, true, false, false);
  169. }
  170. public static DDMFormField createNumericDDMFormField(
  171. String name, String label, String dataType, boolean localizable,
  172. boolean repeatable, boolean required, String tip, String placeHolder,
  173. String toolTip) {
  174. return createDDMFormField(
  175. name, label, "numeric", dataType, localizable, repeatable, required,
  176. tip, null, placeHolder, toolTip, null);
  177. }
  178. public static DDMFormField createRedirectButtonDDMFormField(
  179. Object[] buttonLabel, Object[] message, Object[] messageArguments,
  180. Object[] mvcRenderCommandName, String name, Object[] parameters,
  181. Object[] portletId, Object[] title) {
  182. DDMFormField ddmFormField = createDDMFormField(
  183. name, null, DDMFormFieldTypeConstants.REDIRECT_BUTTON,
  184. StringPool.BLANK, false, false, false, null, null, null, null,
  185. null);
  186. ddmFormField.setProperty("buttonLabel", buttonLabel);
  187. ddmFormField.setProperty("messageArguments", messageArguments);
  188. ddmFormField.setProperty("messageKey", message);
  189. ddmFormField.setProperty("mvcRenderCommandName", mvcRenderCommandName);
  190. ddmFormField.setProperty("parameters", parameters);
  191. ddmFormField.setProperty("portletId", portletId);
  192. ddmFormField.setProperty("title", title);
  193. return ddmFormField;
  194. }
  195. public static DDMFormField createSearchLocationDDMFormField(
  196. LocalizedValue layout, String name, LocalizedValue visibleFields) {
  197. DDMFormField ddmFormField = createDDMFormField(
  198. name, null, DDMFormFieldTypeConstants.SEARCH_LOCATION, null, false,
  199. false, false, null, null, null, null, null);
  200. ddmFormField.setProperty("layout", layout);
  201. ddmFormField.setProperty("visibleFields", visibleFields);
  202. return ddmFormField;
  203. }
  204. public static DDMFormField createSeparatorDDMFormField(
  205. String name, boolean repeatable) {
  206. DDMFormField ddmFormField = new DDMFormField(name, "separator");
  207. ddmFormField.setRepeatable(repeatable);
  208. LocalizedValue localizedValue = ddmFormField.getLabel();
  209. localizedValue.addString(LocaleUtil.US, name);
  210. return ddmFormField;
  211. }
  212. public static DDMFormField createTextDDMFormField(
  213. String name, boolean localizable, boolean repeatable,
  214. boolean required) {
  215. return createDDMFormField(
  216. name, name, "text", "string", localizable, repeatable, required);
  217. }
  218. public static DDMFormField createTextDDMFormField(
  219. String name, String label, boolean localizable, boolean repeatable,
  220. boolean required) {
  221. return createDDMFormField(
  222. name, label, "text", "string", localizable, repeatable, required);
  223. }
  224. public static void setIndexTypeProperty(
  225. DDMForm ddmForm, String indexTypeValue) {
  226. List<DDMFormField> ddmFormFields = ddmForm.getDDMFormFields();
  227. for (DDMFormField ddmFormField : ddmFormFields) {
  228. ddmFormField.setIndexType(indexTypeValue);
  229. }
  230. }
  231. }