/**
  * {@inheritdoc}
  */
 public function buildConfigurationForm(array $form, FormStateInterface $form_state)
 {
     $form = [];
     // If we are on admin/config/system/actions and use CREATE AN ADVANCED ACTION
     // Then $context only contains:
     // - $context['actions_label'] = "Change workflow state of post to new state"
     // - $context['actions_type'] = "entity"
     //
     // If we are on a VBO action form, then $context only contains:
     // - $context['entity_type'] = "node"
     // - $context['view'] = "(Object) view"
     // - $context['settings'] = "array()"
     // @todo: test with multiple workflows per entity.
     $wids = workflow_get_workflow_names();
     $wid = array_keys($wids)[0];
     // Get the common Workflow, or create a dummy Workflow.
     $workflow = $wid ? Workflow::load($wid) : Workflow::create(['id' => 'dummy_action', 'label' => 'dummy_action']);
     $current_state = $workflow->getCreationState();
     /* // @TODO D8-port
         // Show the current state and the Workflow form to allow state changing.
         // N.B. This part is replicated in hook_node_view, workflow_tab_page, workflow_vbo.
         if ($workflow) {
           $field = _workflow_info_field($field_name, $workflow);
           $field_name = $field['field_name'];
           $field_id = $field['id'];
           $instance = field_info_instance($entity_type, $field_name, $entity_bundle);
     
           // Hide the submit button. VBO has its own 'next' button.
           $instance['widget']['settings']['submit_function'] = '';
           if (!$field_id) {
             // This is a Workflow Node workflow. Set widget options as in v7.x-1.2
             $field['settings']['widget']['comment'] = isset($workflow->options['comment_log_tab']) ? $workflow->options['comment_log_tab'] : 1; // vs. ['comment_log_node'];
             $field['settings']['widget']['current_status'] = TRUE;
             // As stated above, the options list is probably very long, so let's use select list.
             $field['settings']['widget']['options'] = 'select';
             // Do not show the default [Update workflow] button on the form.
             $instance['widget']['settings']['submit_function'] = '';
           }
         }
     
         // Add the form/widget to the formatter, and include the nid and field_id in the form id,
         // to allow multiple forms per page (in listings, with hook_forms() ).
         // Ultimately, this is a wrapper for WorkflowDefaultWidget.
         // $form['workflow_current_state'] = workflow_state_formatter($entity_type, $entity, $field, $instance);
         $form_id = implode('_', array(
           'workflow_transition_form',
           $entity_type,
           $entity_id,
           $field_id
         ));
     */
     $transition = $this->getTransitionForConfiguration($current_state);
     // Add the WorkflowTransitionForm to the page.
     // Here, not the $element is added, but the entity form.
     $element = [];
     // Just to be explicit.
     $element['#default_value'] = $transition;
     $form += WorkflowTransitionElement::transitionElement($element, $form_state, $form);
     // Remove the transition: generates an error upon saving the action definition.
     unset($form['workflow_transition']);
     // Todo D8: add the entity form.
     //$form = \Drupal::getContainer()->get('entity.form_builder')->getForm($transition, 'add');
     // Remove the action button. The Entity itself has one.
     //unset($element['actions']);
     // Make adaptations for VBO-form:
     $entity = $transition->getTargetEntity();
     $field_name = $transition->getFieldName();
     $force = $this->configuration['force'];
     // Override the options widget.
     $form['to_sid']['#description'] = t('Please select the state that should be assigned when this action runs.');
     // Add Field_name. @todo?? Add 'field_name' to WorkflowTransitionElement?
     $form['field_name'] = array('#type' => 'select', '#title' => t('Field name'), '#description' => t('Choose the field name.'), '#options' => _workflow_info_field_names($entity), '#default_value' => $field_name, '#required' => TRUE, '#weight' => -20);
     // Add Force. @todo?? Add 'force' to WorkflowTransitionElement?
     $form['force'] = array('#type' => 'checkbox', '#title' => t('Force transition'), '#description' => t('If this box is checked, the new state will be assigned even if workflow permissions disallow it.'), '#default_value' => $force, '#weight' => -19);
     // Change comment field.
     $form['comment'] = array('#title' => t('Message'), '#description' => t('This message will be written into the workflow history log when the action
   runs. You may include the following variables: %state, %title, %user.')) + $form['comment'];
     return $form;
 }