diff --git a/components-api/src/main/java/pl/touk/nussknacker/engine/api/editor/EditorType.java b/components-api/src/main/java/pl/touk/nussknacker/engine/api/editor/EditorType.java index 765388b0960..836c19cd176 100644 --- a/components-api/src/main/java/pl/touk/nussknacker/engine/api/editor/EditorType.java +++ b/components-api/src/main/java/pl/touk/nussknacker/engine/api/editor/EditorType.java @@ -17,5 +17,6 @@ public enum EditorType { TYPED_TABULAR_DATA_EDITOR, SPEL_EDITOR, JSON_TEMPLATE_EDITOR, - MULTI_SELECT_EDITOR + MULTI_SELECT_EDITOR, + SPEL_EXPRESSIONS_LIST_EDITOR, } diff --git a/components-api/src/main/scala/pl/touk/nussknacker/engine/api/definition/ParameterEditor.scala b/components-api/src/main/scala/pl/touk/nussknacker/engine/api/definition/ParameterEditor.scala index 8ca161210c5..71fcc1a12aa 100644 --- a/components-api/src/main/scala/pl/touk/nussknacker/engine/api/definition/ParameterEditor.scala +++ b/components-api/src/main/scala/pl/touk/nussknacker/engine/api/definition/ParameterEditor.scala @@ -100,3 +100,5 @@ case object CronParameterEditor extends ParameterEditor with StaticParameterEdit @JsonCodec case class MultiSelectEditor(possibleValues: List[MultiSelectFixedValue]) extends ParameterEditor with StaticParameterEditor + +case object SpelExpressionsListEditor extends ParameterEditor diff --git a/engine/flink/components/base-unbounded/src/main/scala/pl/touk/nussknacker/engine/flink/util/transformer/aggregate/sampleTransformers.scala b/engine/flink/components/base-unbounded/src/main/scala/pl/touk/nussknacker/engine/flink/util/transformer/aggregate/sampleTransformers.scala index f4af4ea2fc9..25c105bf9f0 100644 --- a/engine/flink/components/base-unbounded/src/main/scala/pl/touk/nussknacker/engine/flink/util/transformer/aggregate/sampleTransformers.scala +++ b/engine/flink/components/base-unbounded/src/main/scala/pl/touk/nussknacker/engine/flink/util/transformer/aggregate/sampleTransformers.scala @@ -30,7 +30,7 @@ object sampleTransformers { @MethodToInvoke(returnType = classOf[AnyRef]) def execute( - @ParamName("groupBy") groupBy: LazyParameter[AnyRef], + @ParamName("groupBy") @Editor(`type` = EditorType.SPEL_EXPRESSIONS_LIST_EDITOR) groupBy: LazyParameter[AnyRef], @ParamName("aggregator") @AdditionalVariables(Array(new AdditionalVariable(name = "AGG", clazz = classOf[AggregateHelper]))) @Editor( @@ -90,7 +90,7 @@ object sampleTransformers { @MethodToInvoke(returnType = classOf[AnyRef]) def execute( - @ParamName("groupBy") groupBy: LazyParameter[AnyRef], + @ParamName("groupBy") @Editor(`type` = EditorType.SPEL_EXPRESSIONS_LIST_EDITOR) groupBy: LazyParameter[AnyRef], @ParamName("aggregator") @AdditionalVariables(Array(new AdditionalVariable(name = "AGG", clazz = classOf[AggregateHelper]))) @Editor( @@ -154,7 +154,7 @@ object sampleTransformers { @MethodToInvoke(returnType = classOf[AnyRef]) def execute( - @ParamName("groupBy") groupBy: LazyParameter[AnyRef], + @ParamName("groupBy") @Editor(`type` = EditorType.SPEL_EXPRESSIONS_LIST_EDITOR) groupBy: LazyParameter[AnyRef], @ParamName("aggregator") @AdditionalVariables(Array(new AdditionalVariable(name = "AGG", clazz = classOf[AggregateHelper]))) @Editor( diff --git a/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorBasedLanguageDeterminer.scala b/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorBasedLanguageDeterminer.scala index e8ae0fc8dc7..3fd94b61f22 100644 --- a/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorBasedLanguageDeterminer.scala +++ b/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorBasedLanguageDeterminer.scala @@ -11,7 +11,7 @@ object EditorBasedLanguageDeterminer { case BoolParameterEditor | DateParameterEditor | TimeParameterEditor | DateTimeParameterEditor | TextareaParameterEditor | DurationParameterEditor(_) | PeriodParameterEditor(_) | CronParameterEditor | FixedValuesParameterEditor(_) | FixedValuesWithIconParameterEditor(_) | - FixedValuesWithRadioParameterEditor(_) => + FixedValuesWithRadioParameterEditor(_) | SpelExpressionsListEditor => Expression.Language.Spel case JsonParameterEditor | MultiSelectEditor(_) => Expression.Language.Json case JsonTemplateParameterEditor => Expression.Language.JsonTemplate diff --git a/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorPossibleValuesBasedDefaultValueDeterminer.scala b/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorPossibleValuesBasedDefaultValueDeterminer.scala index 6ff83c1485d..ff69df3c47f 100644 --- a/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorPossibleValuesBasedDefaultValueDeterminer.scala +++ b/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/defaults/EditorPossibleValuesBasedDefaultValueDeterminer.scala @@ -47,6 +47,7 @@ protected object EditorPossibleValuesBasedDefaultValueDeterminer extends Paramet case DateTimeParameterEditor => None case BoolParameterEditor => None case TextareaParameterEditor => None + case SpelExpressionsListEditor => None } } diff --git a/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/editor/EditorExtractor.scala b/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/editor/EditorExtractor.scala index 76a57ee9d50..e890d5b93f3 100644 --- a/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/editor/EditorExtractor.scala +++ b/scenario-compiler/src/main/scala/pl/touk/nussknacker/engine/definition/component/parameter/editor/EditorExtractor.scala @@ -44,20 +44,21 @@ object EditorExtractor { .map(value => FixedExpressionValue(value.expression(), value.label())) .toList ) - case EditorType.DATE_EDITOR => DateParameterEditor - case EditorType.TIME_EDITOR => TimeParameterEditor - case EditorType.DATE_TIME_EDITOR => DateTimeParameterEditor - case EditorType.DURATION_EDITOR => DurationParameterEditor(editor.timeRangeComponents().toList) - case EditorType.PERIOD_EDITOR => PeriodParameterEditor(editor.timeRangeComponents().toList) - case EditorType.CRON_EDITOR => CronParameterEditor - case EditorType.TEXTAREA_EDITOR => TextareaParameterEditor - case EditorType.JSON_EDITOR => JsonParameterEditor - case EditorType.SQL_EDITOR => SqlParameterEditor - case EditorType.SPEL_TEMPLATE_EDITOR => SpelTemplateParameterEditor - case EditorType.DICT_EDITOR => DictParameterEditor(editor.dictId()) - case EditorType.TYPED_TABULAR_DATA_EDITOR => TabularTypedDataEditor - case EditorType.SPEL_EDITOR => SpelParameterEditor - case EditorType.JSON_TEMPLATE_EDITOR => JsonTemplateParameterEditor + case EditorType.DATE_EDITOR => DateParameterEditor + case EditorType.TIME_EDITOR => TimeParameterEditor + case EditorType.DATE_TIME_EDITOR => DateTimeParameterEditor + case EditorType.DURATION_EDITOR => DurationParameterEditor(editor.timeRangeComponents().toList) + case EditorType.PERIOD_EDITOR => PeriodParameterEditor(editor.timeRangeComponents().toList) + case EditorType.CRON_EDITOR => CronParameterEditor + case EditorType.TEXTAREA_EDITOR => TextareaParameterEditor + case EditorType.JSON_EDITOR => JsonParameterEditor + case EditorType.SQL_EDITOR => SqlParameterEditor + case EditorType.SPEL_TEMPLATE_EDITOR => SpelTemplateParameterEditor + case EditorType.DICT_EDITOR => DictParameterEditor(editor.dictId()) + case EditorType.TYPED_TABULAR_DATA_EDITOR => TabularTypedDataEditor + case EditorType.SPEL_EDITOR => SpelParameterEditor + case EditorType.SPEL_EXPRESSIONS_LIST_EDITOR => SpelExpressionsListEditor + case EditorType.JSON_TEMPLATE_EDITOR => JsonTemplateParameterEditor case EditorType.MULTI_SELECT_EDITOR => MultiSelectEditor( editor