@Override
  public String getURL(PortletRequest portletRequest, PortletResponse portletResponse) {

    PortletURL portletURL =
        PortalUtil.getControlPanelPortletURL(
            portletRequest, MBPortletKeys.MESSAGE_BOARDS_ADMIN, PortletRequest.RENDER_PHASE);

    portletURL.setParameter("mvcRenderCommandName", "/message_boards/move_thread");
    portletURL.setParameter("redirect", PortalUtil.getCurrentURL(portletRequest));

    try {
      MBCategory category = ActionUtil.getCategory(portletRequest);

      portletURL.setParameter("mbCategoryId", String.valueOf(getCategoryId(category)));

      MBMessage message = ActionUtil.getMessage(portletRequest);

      portletURL.setParameter("threadId", String.valueOf(message.getThreadId()));
    } catch (Exception e) {
      return null;
    }

    return portletURL.toString();
  }
  @Override
  public boolean isShow(PortletRequest portletRequest) {
    try {
      MBCategory category = ActionUtil.getCategory(portletRequest);

      ThemeDisplay themeDisplay = (ThemeDisplay) portletRequest.getAttribute(WebKeys.THEME_DISPLAY);

      if (MBCategoryPermission.contains(
          themeDisplay.getPermissionChecker(),
          themeDisplay.getScopeGroupId(),
          getCategoryId(category),
          ActionKeys.MOVE_THREAD)) {

        return true;
      }
    } catch (Exception e) {
    }

    return false;
  }