/**
   * Adds the given execution statement to the lifeline view it covers.
   *
   * @param executionStatement the {@link ExecutionStatement} to add
   */
  private void addStatementView(ExecutionStatement executionStatement) {
    Lifeline lifeline = executionStatement.getCovered().get(0);
    LifelineView lifelineView = lifelines.get(lifeline);
    int modelIndex = getModelIndex(executionStatement);

    // Currently we assume that the statements specification is always an opaque expression.
    // If this changes we need to adaptively get the actual value.
    TextView textView =
        new TextView(executionStatement, RamPackage.Literals.EXECUTION_STATEMENT__SPECIFICATION);
    textView.setNoFill(false);
    textView.setNoStroke(false);
    textView.setFillColor(Colors.MESSAGE_STATEMENT_FILL_COLOR);

    ITextViewHandler textViewHandler =
        HandlerFactoryMessageView.INSTANCE.getExecutionStatementHandler();

    textView.registerTapProcessor(textViewHandler);
    textView.registerInputProcessor(
        new TapAndHoldProcessor(RamApp.getApplication(), Constants.TAP_AND_HOLD_DURATION));
    textView.addGestureListener(TapAndHoldProcessor.class, textViewHandler);
    textView.addGestureListener(
        TapAndHoldProcessor.class,
        new TapAndHoldVisualizer(RamApp.getApplication(), RamApp.getActiveScene().getCanvas()));
    textView.setPlaceholderText(Strings.PH_SPECIFY_STATEMENT);
    addChild(textView);

    lifelineView.addStatement(textView, executionStatement, modelIndex);
    fragments.put(executionStatement, textView);

    layoutMessageView();
  }
 @Override
 protected void registerInputProcessors() {
   registerInputProcessor(new PanProcessorTwoFingers(RamApp.getApplication()));
   registerInputProcessor(new RightClickDragProcessor(RamApp.getApplication()));
   registerInputProcessor(new ZoomProcessor(RamApp.getApplication()));
   registerInputProcessor(new MouseWheelProcessor(RamApp.getApplication()));
 }