@Override
  public String getEditStructureDefaultValuesURL(
      LiferayPortletRequest liferayPortletRequest,
      LiferayPortletResponse liferayPortletResponse,
      DDMStructure structure,
      String redirectURL,
      String backURL)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.JOURNAL,
            PortletRequest.RENDER_PHASE);

    portletURL.setParameter("struts_action", "/journal/edit_article");
    portletURL.setParameter("redirect", redirectURL);
    portletURL.setParameter("backURL", backURL);
    portletURL.setParameter("groupId", String.valueOf(structure.getGroupId()));
    portletURL.setParameter(
        "classNameId", String.valueOf(PortalUtil.getClassNameId(DDMStructure.class)));
    portletURL.setParameter("classPK", String.valueOf(structure.getStructureId()));
    portletURL.setParameter("structureId", structure.getStructureKey());
    portletURL.setWindowState(LiferayWindowState.POP_UP);

    return portletURL.toString();
  }
  @Override
  public PortletURL getURLViewDiffs(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.JOURNAL,
            PortletRequest.RENDER_PHASE);

    JournalArticle previousApprovedArticle =
        JournalArticleLocalServiceUtil.getPreviousApprovedArticle(_article);

    if (previousApprovedArticle.getVersion() == _article.getVersion()) {
      return null;
    }

    portletURL.setParameter("struts_action", "/journal/compare_versions");
    portletURL.setParameter("groupId", String.valueOf(_article.getGroupId()));
    portletURL.setParameter("articleId", _article.getArticleId());
    portletURL.setParameter("sourceVersion", String.valueOf(previousApprovedArticle.getVersion()));
    portletURL.setParameter("targetVersion", String.valueOf(_article.getVersion()));

    return portletURL;
  }
  @Override
  public PortletURL getURLView(
      LiferayPortletResponse liferayPortletResponse, WindowState windowState) {

    LiferayPortletURL liferayPortletURL =
        liferayPortletResponse.createLiferayPortletURL(
            PortletKeys.BOOKMARKS, PortletRequest.RENDER_PHASE);

    try {
      liferayPortletURL.setWindowState(windowState);
    } catch (WindowStateException wse) {
    }

    return liferayPortletURL;
  }
  @Override
  public PortletURL getURLEdit(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.DOCUMENT_LIBRARY,
            PortletRequest.RENDER_PHASE);

    portletURL.setParameter("mvcRenderCommandName", "/document_library/edit_file_entry");
    portletURL.setParameter("fileEntryId", String.valueOf(_fileEntry.getFileEntryId()));

    return portletURL;
  }
  @Override
  public PortletURL getURLEdit(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.MESSAGE_BOARDS,
            PortletRequest.RENDER_PHASE);

    portletURL.setParameter("struts_action", "/message_boards/edit_message");
    portletURL.setParameter("messageId", String.valueOf(_message.getMessageId()));

    return portletURL;
  }
  @Override
  public PortletURL getURLEdit(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.USERS_ADMIN,
            PortletRequest.RENDER_PHASE);

    portletURL.setParameter("struts_action", "/users_admin/edit_user");
    portletURL.setParameter("p_u_i_d", String.valueOf(_user.getUserId()));

    return portletURL;
  }
  @Override
  public PortletURL getURLEdit(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            BookmarksPortletKeys.BOOKMARKS_ADMIN,
            PortletRequest.RENDER_PHASE);

    portletURL.setParameter("struts_action", "/bookmarks/edit_entry");
    portletURL.setParameter("folderId", String.valueOf(_entry.getFolderId()));
    portletURL.setParameter("entryId", String.valueOf(_entry.getEntryId()));

    return portletURL;
  }
  @Override
  public PortletURL getURLEdit(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.JOURNAL,
            PortletRequest.RENDER_PHASE);

    portletURL.setParameter("struts_action", "/journal/edit_article");
    portletURL.setParameter("groupId", String.valueOf(_article.getGroupId()));
    portletURL.setParameter("articleId", _article.getArticleId());
    portletURL.setParameter("version", String.valueOf(_article.getVersion()));

    return portletURL;
  }
  @Override
  public PortletURL getURLExport(
      LiferayPortletRequest liferayPortletRequest, LiferayPortletResponse liferayPortletResponse)
      throws Exception {

    PortletURL portletURL =
        liferayPortletResponse.createLiferayPortletURL(
            getControlPanelPlid(liferayPortletRequest),
            PortletKeys.DOCUMENT_LIBRARY,
            PortletRequest.ACTION_PHASE);

    portletURL.setParameter("javax.portlet.action", "/document_library/get_file");
    portletURL.setParameter("groupId", String.valueOf(_fileEntry.getRepositoryId()));
    portletURL.setParameter("folderId", String.valueOf(_fileEntry.getFolderId()));
    portletURL.setParameter("title", String.valueOf(_fileEntry.getTitle()));

    return portletURL;
  }