code: protected <E extends Event> void linkUi(final Node node, final javafx.event.EventType<E> eventType, final Class<? extends Model> modelClass, final Callback<E, Boolean> callback,
              final WaveData<?>... waveData) {
  
          boolean noHookFound = true;
          // Check if the contract is respected by searching a placeholder from WaveData
          WaveData<?> wd;
          for (int i = 0; i < waveData.length && noHookFound; i++) {
              wd = waveData[i];
              if ((JRebirthWaves.ATTACH_UI_NODE_PLACEHOLDER.equals(wd.key()) || JRebirthWaves.ADD_UI_CHILDREN_PLACEHOLDER.equals(wd.key()))
                      && wd.value() != null) {
                  noHookFound = false;
              }
          }
          // Stop the process if no placeholder have been found to attach the model-view created
          if (noHookFound) {
              throw new CoreRuntimeException("LinkUi must be called with either JRebirthWaves.ATTACH_UI_NODE_PLACEHOLDER or JRebirthWaves.ADD_UI_CHILDREN_PLACEHOLDER Wave Data provided");
          }
  
          // LinkUi
          node.addEventHandler(eventType, event -> {
              if (callback == null || callback.call(event)) {
                  model().attachUi(modelClass, waveData);
              }
          });
      }
docs: Link an User Interface action to an event triggered on a node.
  
  Don't forget to add a placeholder to indicate where to attach the model node created
  
  @param node the node to follow
  @param eventType the type of the event to follow
  @param modelClass the model to display
  @param callback the call back to use to check if the ui can be attached
  @param waveData additional Wave data, Must contain either #JRebirthWaves.ATTACH_UI_NODE_PLACEHOLDER or #JRebirthWaves.ADD_UI_CHILDREN_PLACEHOLDER wave data to indicate where to attach the
  created model
  
  @param <E> The type of JavaFX Event to track