/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.dynamic.data.mapping.type.select.internal; import com.liferay.dynamic.data.mapping.annotations.DDMForm; import com.liferay.dynamic.data.mapping.annotations.DDMFormField; import com.liferay.dynamic.data.mapping.annotations.DDMFormLayout; import com.liferay.dynamic.data.mapping.annotations.DDMFormLayoutColumn; import com.liferay.dynamic.data.mapping.annotations.DDMFormLayoutPage; import com.liferay.dynamic.data.mapping.annotations.DDMFormLayoutRow; import com.liferay.dynamic.data.mapping.annotations.DDMFormRule; import com.liferay.dynamic.data.mapping.form.field.type.DefaultDDMFormFieldTypeSettings; import com.liferay.dynamic.data.mapping.model.DDMFormFieldOptions; import com.liferay.dynamic.data.mapping.model.DDMFormFieldValidation; /** * @author Marcellus Tavares */ @DDMForm( rules = { @DDMFormRule( actions = { "call('getDataProviderInstanceOutputParameters', 'dataProviderInstanceId=ddmDataProviderInstanceId', 'ddmDataProviderInstanceOutput=outputParameterNames')" }, condition = "not(equals(getValue('ddmDataProviderInstanceId'), 0))" ) } ) @DDMFormLayout( paginationMode = com.liferay.dynamic.data.mapping.model.DDMFormLayout.TABBED_MODE, value = { @DDMFormLayoutPage( title = "basic", value = { @DDMFormLayoutRow( { @DDMFormLayoutColumn( size = 12, value = { "label", "tip", "required", "dataSourceType", "options", "ddmDataProviderInstanceId", "ddmDataProviderInstanceOutput" } ) } ) } ), @DDMFormLayoutPage( title = "properties", value = { @DDMFormLayoutRow( { @DDMFormLayoutColumn( size = 12, value = { "predefinedValue", "visibilityExpression", "validation", "fieldNamespace", "indexType", "localizable", "readOnly", "dataType", "type", "name", "showLabel", "repeatable", "multiple" } ) } ) } ) } ) public interface SelectDDMFormFieldTypeSettings extends DefaultDDMFormFieldTypeSettings { @DDMFormField( label = "%create-list", optionLabels = {"%manually", "%from-data-provider"}, optionValues = {"manual", "data-provider"}, predefinedValue = "manual", type = "radio" ) public String dataSourceType(); @DDMFormField( label = "%choose-a-data-provider", required = true, type = "select", visibilityExpression = "equals(dataSourceType, \"data-provider\")" ) public long ddmDataProviderInstanceId(); @DDMFormField( label = "%choose-an-output-parameter", properties = { "tooltip=%choose-an-output-parameter-for-a-data-provider-previously-created" }, required = true, type = "select", visibilityExpression = "equals(dataSourceType, \"data-provider\")" ) public String ddmDataProviderInstanceOutput(); @DDMFormField( label = "%allow-multiple-selections", properties = {"showAsSwitcher=true"} ) public boolean multiple(); @DDMFormField( dataType = "ddm-options", label = "%options", properties = {"showLabel=false"}, required = true, type = "options", visibilityExpression = "equals(dataSourceType, \"manual\")" ) public DDMFormFieldOptions options(); @DDMFormField(visibilityExpression = "FALSE") @Override public DDMFormFieldValidation validation(); }