public String getView() {

    if (userview.getSetting().getTheme() != null
        && !(userview.getSetting().getTheme() instanceof UserviewV5Theme)) {
      return "ubuilder/view";
    }

    String mobileViewRedirection = mobileViewRedirection();
    if (mobileViewRedirection != null) {
      return mobileViewRedirection;
    }

    String homePageRedirection = homePageRedirection();
    if (homePageRedirection != null) {
      return homePageRedirection;
    }

    String loginPageRedirection = loginPageRedirection();
    if (loginPageRedirection != null) {
      return loginPageRedirection;
    }

    init();

    return "ubuilder/v5view";
  }
 public void init() {
   if (userview.getSetting().getTheme() != null) {
     theme = (UserviewV5Theme) userview.getSetting().getTheme();
   } else {
     theme = new DefaultV5EmptyTheme();
   }
 }
  public String getPreviewView() {
    if (userview.getSetting().getTheme() != null
        && !(userview.getSetting().getTheme() instanceof UserviewV5Theme)) {
      return "ubuilder/preview";
    }

    init();

    return "ubuilder/v5view";
  }
  public UserviewThemeProcesser(Userview userview, HttpServletRequest request) {
    this.userview = userview;
    this.request = request;

    isAuthorized =
        userview.getSetting().getPermission() == null
            || (userview.getSetting().getPermission() != null
                && userview.getSetting().getPermission().isAuthorize());
    if (!isAuthorized) {
      this.userview.setCurrent(null);
    }
  }
  public String getLoginView() {
    if (userview.getSetting().getTheme() != null
        && !(userview.getSetting().getTheme() instanceof UserviewV5Theme)) {
      return "ubuilder/login";
    }

    String loginRedirection = loginRedirection();
    if (loginRedirection != null) {
      return loginRedirection;
    }

    isLoginPage = true;
    init();

    return "ubuilder/v5view";
  }
  protected String mobileViewRedirection() {
    boolean mobileAgent = (!MobileUtil.isMobileDisabled() && MobileUtil.isMobileUserAgent(request));
    boolean disableMobileView =
        "true".equalsIgnoreCase(userview.getSetting().getPropertyString("mobileViewDisabled"));
    boolean desktopCookie = false;
    Cookie[] cookies = request.getCookies();
    if (cookies != null) {
      for (Cookie cookie : cookies) {
        if ("desktopSite".equals(cookie.getName())) {
          if ("true".equalsIgnoreCase(cookie.getValue())) {
            desktopCookie = true;
          }
          break;
        }
      }
    }

    if (mobileAgent && !disableMobileView && !desktopCookie) {
      String url =
          "/web/mobile/"
              + userview.getParamString("appId")
              + "/"
              + userview.getPropertyString("id")
              + "/"
              + userview.getParamString("key")
              + "/";
      if (!userview.getParamString("menuId").isEmpty()) {
        url += userview.getParamString("menuId");
      }
      return "redirect:" + url;
    }
    return null;
  }