diff --git a/packages/dmn-js-literal-expression/src/Editor.js b/packages/dmn-js-literal-expression/src/Editor.js index 09ce9ccf..91da0303 100644 --- a/packages/dmn-js-literal-expression/src/Editor.js +++ b/packages/dmn-js-literal-expression/src/Editor.js @@ -1,3 +1,5 @@ +import { DmnVariableResolverModule } from '@bpmn-io/dmn-variable-resolver'; + import ExpressionLanguagesModule from 'dmn-js-shared/lib/features/expression-languages'; import DataTypesModule from 'dmn-js-shared/lib/features/data-types'; @@ -26,7 +28,8 @@ export default class Editor extends Viewer { ModelingModule, ExpressionLanguagesModule, DataTypesModule, - TextareaEditorComponent + TextareaEditorComponent, + DmnVariableResolverModule ]; } } \ No newline at end of file diff --git a/packages/dmn-js-literal-expression/src/features/textarea/components/TextareaEditorComponent.js b/packages/dmn-js-literal-expression/src/features/textarea/components/TextareaEditorComponent.js index 60bfb07b..ccd299b2 100644 --- a/packages/dmn-js-literal-expression/src/features/textarea/components/TextareaEditorComponent.js +++ b/packages/dmn-js-literal-expression/src/features/textarea/components/TextareaEditorComponent.js @@ -12,6 +12,7 @@ export default class TextareaEditorComponent extends Component { this._viewer = context.injector.get('viewer'); this._expressionLanguages = context.injector.get('expressionLanguages'); + this._variableResolver = context.injector.get('variableResolver', false); this.editLiteralExpressionText = this.editLiteralExpressionText.bind(this); this.onElementsChanged = this.onElementsChanged.bind(this); @@ -49,17 +50,26 @@ export default class TextareaEditorComponent extends Component { this._expressionLanguages.getDefault().value; } + _getVariables() { + const businessObject = this.getLiteralExpression(); + + return this._variableResolver && + this._variableResolver.getVariables(businessObject); + } + render() { // there is only one single element const { text } = this.getLiteralExpression(); const Editor = this.getEditor(); + const variables = this._getVariables(); return ( + onChange={ this.editLiteralExpressionText } + variables={ variables } /> ); } } @@ -70,6 +80,7 @@ class FeelEditor extends Component { className={ this.props.className } value={ this.props.value } onInput={ this.props.onChange } + variables={ this.props.variables } />; } }