/**
* 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.text.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;
import com.liferay.dynamic.data.mapping.model.LocalizedValue;
/**
* @author Lino Alves
*/
@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", "displayStyle", "required"}
)
}
)
}
),
@DDMFormLayoutPage(
title = "properties",
value = {
@DDMFormLayoutRow(
{
@DDMFormLayoutColumn(
size = 12,
value = {
"predefinedValue", "dataSourceType",
"ddmDataProviderInstanceId",
"ddmDataProviderInstanceOutput", "options",
"placeholder", "visibilityExpression",
"validation", "fieldNamespace", "indexType",
"localizable", "readOnly", "dataType", "type",
"name", "showLabel", "repeatable", "tooltip"
}
)
}
)
}
)
}
)
public interface TextDDMFormFieldTypeSettings
extends DefaultDDMFormFieldTypeSettings {
@DDMFormField(
label = "%create-list",
optionLabels = {"%manually", "%from-data-provider"},
optionValues = {"manual", "data-provider"}, predefinedValue = "manual",
properties = {"showLabel=false"}, type = "radio",
visibilityExpression = "TRUE"
)
public String dataSourceType();
@DDMFormField(
label = "%choose-a-data-provider",
properties = {
"dataSourceType=data-provider",
"ddmDataProviderInstanceId=getDataProviderInstances"
},
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"
},
type = "select",
visibilityExpression = "equals(dataSourceType, \"data-provider\")"
)
public String ddmDataProviderInstanceOutput();
@DDMFormField(
label = "%my-text-field-has",
optionLabels = {"%a-single-line", "%multiple-lines"},
optionValues = {"singleline", "multiline"},
predefinedValue = "singleline", properties = {"inline=true"},
type = "radio"
)
public String displayStyle();
@DDMFormField(
dataType = "ddm-options", label = "%options",
properties = {"showLabel=false", "allowEmptyOptions=true"},
required = false, type = "options",
visibilityExpression = "equals(dataSourceType, \"manual\")"
)
public DDMFormFieldOptions options();
@DDMFormField(
dataType = "string", label = "%placeholder-text",
properties = {
"placeholder=%enter-placeholder-text",
"tooltip=%enter-text-that-assists-the-user-but-is-not-submitted-as-a-field-value"
},
type = "text"
)
public LocalizedValue placeholder();
@DDMFormField(visibilityExpression = "FALSE")
public LocalizedValue tooltip();
@DDMFormField(
dataType = "string", label = "%validation", type = "validation"
)
@Override
public DDMFormFieldValidation validation();
}