code: @Override
      protected void perform(final Wave wave) {
  
          Model hideModel = waveBean(wave).hideModel();
          if (hideModel == null && waveBean(wave).hideModelKey() != null) {
              hideModel = localFacade().globalFacade().uiFacade().retrieve(waveBean(wave).hideModelKey());
          }
  
          Node hideNode = null;
  
          if (hideModel == null) {
              LOGGER.warn("Impossible to detach a model because hideModel is null");
          } else {
  
              hideModel.doHideView(wave);
  
              hideNode = hideModel.node();
  
              if (hideNode == null) {
                  LOGGER.warn("Impossible to dettach model {} because the node is null", hideModel.getClass().getSimpleName());
              } else {
                  if (waveBean(wave).uniquePlaceHolder() != null) {
                      waveBean(wave).uniquePlaceHolder().set(null);
                  } else if (waveBean(wave).childrenPlaceHolder() != null) {
                      waveBean(wave).childrenPlaceHolder().remove(hideNode);
                  } else {
                      LOGGER.warn("Impossible to detach model {}, no place holder found", hideModel.getClass().getSimpleName());
                  }
              }
          }
  
      }
docs: {@inheritDoc}