/**
   * @see
   *     org.opencms.ade.galleries.client.preview.A_CmsResourcePreview#selectResource(java.lang.String,
   *     java.lang.String)
   */
  @Override
  public void selectResource(String resourcePath, String title) {

    CmsCroppingParamBean param;
    switch (getGalleryMode()) {
      case widget:
        param = getInitialCroppingParameter(resourcePath);
        if (CmsPreviewUtil.isAdvancedWidget()) {
          CmsPreviewUtil.setVfsImage(
              resourcePath,
              param.getScaleParam(),
              param.getFormatName(),
              ((double) param.getTargetWidth() / param.getTargetHeight()) + "");
        } else {
          CmsPreviewUtil.setResourcePath(
              resourcePath
                  + ((param.isCropped() || param.isScaled()) ? "?" + param.toString() : ""));
        }
        break;
      case editor:
        Map<String, String> attributes = new HashMap<String, String>();
        attributes.put("title", title);
        param = getInitialCroppingParameter(resourcePath);
        attributes.put("width", String.valueOf(param.getResultingWidth()));
        attributes.put("height", String.valueOf(param.getResultingHeight()));
        CmsPreviewUtil.setImage(CmsCoreProvider.get().link(resourcePath), attributes);
        CmsPreviewUtil.closeDialog();
        break;
      case ade:
      case view:
      default:
        // nothing to do here, should not be called
        break;
    }
  }
  /** @see org.opencms.ade.galleries.client.preview.A_CmsResourcePreview#setResource() */
  @Override
  public void setResource() {

    if (m_handler == null) {
      throw new UnsupportedOperationException("Preview handler not initialized");
    }
    CmsCroppingParamBean croppingParam = m_handler.getCroppingParam();

    switch (getGalleryMode()) {
      case widget:
        if (CmsPreviewUtil.isAdvancedWidget()) {
          CmsPreviewUtil.setVfsImage(
              m_infoBean.getResourcePath(),
              croppingParam.getScaleParam(),
              croppingParam.getFormatName(),
              ((double) croppingParam.getTargetWidth() / croppingParam.getTargetHeight()) + "");
        } else {
          CmsPreviewUtil.setResourcePath(
              m_infoBean.getResourcePath()
                  + ((croppingParam.isCropped() || croppingParam.isScaled())
                      ? "?" + croppingParam.toString()
                      : ""));
        }
        break;
      case editor:
        Map<String, String> attributes = m_handler.getImageAttributes();
        CmsPreviewUtil.setImage(
            CmsCoreProvider.get()
                .link(
                    m_infoBean.getResourcePath()
                        + ((croppingParam.isCropped() || croppingParam.isScaled())
                            ? "?" + croppingParam.toString()
                            : "")),
            attributes);
        break;
      case ade:
      case view:
      default:
        // nothing to do here, should not be called
        break;
    }
  }