code: private ParallelTransition buildSlideTransition(final boolean isReverse, final SlideModel<SlideStep> previousSlideModel, final SlideModel<SlideStep> selectedSlideModel) {
          final ParallelTransition slideAnimation = ParallelTransitionBuilder.create().build();
  
          if (previousSlideModel != null) {
              final Animation a = isReverse ? previousSlideModel.getShowAnimation() : previousSlideModel.getHideAnimation();
              if (a != null) {
                  slideAnimation.getChildren().add(a);
              }
          }
          if (this.selectedSlideModel != null) {
              final Animation a = isReverse ? this.selectedSlideModel.getHideAnimation() : this.selectedSlideModel.getShowAnimation();
              if (a != null) {
                  slideAnimation.getChildren().add(a);
              }
          }
  
          final SlideModel<SlideStep> csm = selectedSlideModel;
          // final SlideModel<SlideStep> psm = previousSlideModel;
          slideAnimation.setOnFinished(new javafx.event.EventHandler<ActionEvent>() {
  
              @Override
              public void handle(final ActionEvent arg0) {
                  // // Hide previous slide
                  // if (psm != null) {
                  // getView().getRootNode().getChildren().removeAll(psm.getRootNode());
                  // }
  
                  // FIX ME NOT APPROPRIATED !!!
                  if (previousSlideModel instanceof AbstractBaseModel) {
                      ((AbstractBaseModel<?>) previousSlideModel).doHideView(null);
                  }
                  if (selectedSlideModel instanceof AbstractBaseModel) {
                      ((AbstractBaseModel<?>) selectedSlideModel).doShowView(null);
                  }
  
                  // Hide all other slides
                  if (csm != null) {
                      Node node;
                      for (int i = view().node().getChildren().size() - 1; i >= 0; i--) {
                          node = view().node().getChildren().get(i);
                          if (csm.node() != node) {
                              view().node().getChildren().remove(node);
                          }
                      }
                  }
              }
          });
          return slideAnimation;
      }
docs: Get the animation to use between slides.
  
  @param isReverse true for reverse mode
  @param previousSlideModel the previous slide model
  @param selectedSlideModel the current slide model
  
  @return the animation to show