Example usage for org.springframework.web.context.support WebApplicationContextUtils getWebApplicationContext

List of usage examples for org.springframework.web.context.support WebApplicationContextUtils getWebApplicationContext

Introduction

In this page you can find the example usage for org.springframework.web.context.support WebApplicationContextUtils getWebApplicationContext.

Prototype

@Nullable
public static WebApplicationContext getWebApplicationContext(ServletContext sc) 

Source Link

Document

Find the root WebApplicationContext for this web app, typically loaded via org.springframework.web.context.ContextLoaderListener .

Usage

From source file:org.jumpmind.symmetric.SymmetricWebServer.java

public RestService getRestService() {
    ServletContext servletContext = getServletContext();
    WebApplicationContext rootContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    return rootContext.getBean(RestService.class);
}

From source file:org.kuali.mobility.tags.angular.PageTag.java

public void doTag() throws JspException {
    String appcacheEnabled;/*from   w  w  w .  j a  v a 2  s  .  co m*/

    PageContext pageContext = (PageContext) getJspContext();
    HttpServletRequest hsr = (HttpServletRequest) pageContext.getRequest();
    ServletContext servletContext = pageContext.getServletContext();
    WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    setKmeProperties((Properties) ac.getBean("kmeProperties"));

    CoreService coreService = (CoreService) ac.getBean("coreService");
    Properties kmeProperties = (Properties) ac.getBean("kmeProperties");
    Locale locale = RequestContextUtils.getLocale((HttpServletRequest) pageContext.getRequest());
    MessageSource ms = (MessageSource) ac.getBean("messageSource");

    User user = (User) pageContext.getSession().getAttribute(AuthenticationConstants.KME_USER_KEY);
    String contextPath = servletContext.getContextPath();

    appcacheEnabled = kmeProperties.getProperty("appcache.enabled", "true");

    JspWriter out = pageContext.getOut();
    StringBuilder builder = new StringBuilder();
    try {
        builder.append("<!DOCTYPE html>");
        builder.append("<html");
        if (!appcacheEnabled.equals("false")) {
            LOG.debug("Appcache Enabled");
            builder.append(" manifest=\"CONTEXT_PATH/kme.appcache\"");
        }
        if (null != getNgAppName()) {
            builder.append(" ng-app=\"");
            builder.append(getNgAppName());
            builder.append("\"");
        }
        builder.append(">");

        builder.append("<head>");
        builder.append("<title>");
        builder.append(getTitle());
        builder.append("</title>");
        builder.append("<link href=\"");
        builder.append(kmeProperties.getProperty("favico.url", "http://www.kuali.org/favicon.ico"));
        builder.append("\" rel=\"icon\" />");
        builder.append("<link href=\"");
        builder.append(kmeProperties.getProperty("favico.url", "http://www.kuali.org/favicon.ico"));
        builder.append("\" rel=\"shortcut icon\" />");

        builder.append("<link rel=\"apple-touch-icon\" href=\"CONTEXT_PATH/touch-icon-iphone.png\"/>");
        builder.append(
                "<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"CONTEXT_PATH/touch-icon-ipad.png\"/>");
        builder.append(
                "<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"CONTEXT_PATH/touch-icon-iphone-retina.png\"/>");
        builder.append(
                "<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"CONTEXT_PATH/touch-icon-ipad-retina.png\"/>");

        builder.append(
                "<script src=\"//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js\"></script>\n");
        builder.append(
                "<script src=\"//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js\"></script>\n");
        builder.append(
                "<script src=\"//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular-route.js\"></script>\n");
        builder.append(
                "<script src=\"//ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular-sanitize.js\"></script>\n");

        builder.append("<script src=\"CONTEXT_PATH/js/jquery.cookie.js\"></script>");
        builder.append("<script src=\"CONTEXT_PATH/js/ui3/ui-bootstrap-tpls-0.10.0.min.js\"></script>\n");
        builder.append("<script src=\"CONTEXT_PATH/js/bootstrap.js\"></script>\n");
        builder.append("<script src=\"CONTEXT_PATH/js/bootbox.js\"></script>\n");

        builder.append("<!-- Latest compiled and minified CSS -->\n");
        builder.append(
                "<link rel=\"stylesheet\" href=\"//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css\"/>\n");
        builder.append("<link href=\"CONTEXT_PATH/css/ui3/kme.css\" rel=\"stylesheet\" type=\"text/css\"/>\n");
        builder.append(
                "<link href=\"CONTEXT_PATH/css/ui3/institution.css\" rel=\"stylesheet\" type=\"text/css\"/>\n");
        // Attach all CSS files
        for (String cssFile : getCssFilenames()) {
            builder.append("<link href=\"CONTEXT_PATH/css/ui3/");
            builder.append(cssFile);
            builder.append(".css\" rel=\"stylesheet\" type=\"text/css\"/>\n");
        }
        builder.append("<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/BrowserDetect.js\"></script>\n");
        builder.append("<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/ServerDetails.js\"></script>\n");

        if (isPlatform(Device.TYPE_IOS)) {
            if (isPhoneGap("1.4.1")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/phonegap-1.4.1.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/ChildBrowser.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/barcodescanner.js\"></script>\n");
                //                builder.append("<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/Connection.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/PushHandler.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/Badge.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/applicationPreferences.js\"></script>\n");
            } else if (isPhoneGap("1.7.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/cordova-1.7.0.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/ChildBrowser.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/barcodescanner.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/ActionSheet.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/Badge.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/LocalNotifications.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/Notifications.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/PrintPlugin.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/1.7.0/applicationPreferences.js\"></script>\n");
            } else if (isPhoneGap("2.2.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/cordova-2.2.0.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/ActionSheet.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/applicationPreferences.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/AudioStreamer.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/Badge.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/barcodescanner.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.2.0/ChildBrowser.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/PushHandler.js\"></script>\n");
            } else if (isPhoneGap("2.3.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.3.0/cordova-2.3.0.js\"></script>\n");
            } else if (isPhoneGap("2.4.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.4.0/cordova-2.4.0.js\"></script>\n");
            } else if (isPhoneGap("2.5.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.5.0/cordova-2.5.0.js\"></script>\n");
            } else if (isPhoneGap("2.6.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.6.0/cordova-2.6.0.js\"></script>\n");
            } else if (isPhoneGap("2.7.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.7.0/cordova-2.7.0.js\"></script>\n");
            } else if (isPhoneGap("2.8.1")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/iOS/2.8.1/cordova.js\"></script>\n");
            }
        } else if (isPlatform(Device.TYPE_ANDROID)) {
            builder.append(
                    "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/PushConfig.js\"></script>\n");
            if (isPhoneGap("2.2.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/cordova-2.2.0.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/childbrowser.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/barcodescanner.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/statusbarnotification.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/datePickerPlugin.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/applicationPreferences.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/AudioStreamer.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/GCMPlugin.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/2.2.0/CORDOVA_GCM_script.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/PushHandler.js\"></script>\n");
            } else {
                builder.append("<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/phonegap-"
                        + getPhonegap() + ".js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/childbrowser.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/barcodescanner.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/statusbarnotification.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/C2DMPlugin.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/PG_C2DM_script.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/android/PushHandler.js\"></script>\n");
            }
        } else if (isPlatform(Device.TYPE_BLACKBERRY)) {
            builder.append(
                    "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/PushConfig.js\"></script>\n");
            if (isPhoneGap("2.2.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/blackberry/2.2.0/cordova-2.2.0.js\"></script>\n");
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/blackberry/2.2.0/kme-application.js\"></script>\n");
            }
        } else if (isPlatform(Device.TYPE_WINDOWS)) {
            if (isPhoneGap("2.2.0")) {
                builder.append(
                        "<script type=\"text/javascript\" src=\"CONTEXT_PATH/js/windowsMobile/2.2.0/cordova-2.2.0.js\"></script>\n");
            }
        }

        /* Google Analytics */
        String profileId = coreService.findGoogleAnalyticsProfileId().trim();
        if (!disableGoogleAnalytics && profileId.length() > 0) {
            String profileDomain = coreService.getGoogleAnalyticsProfileDomain().trim();
            if (coreService.isGoogleUniversalAnalytics() && !profileDomain.isEmpty()) {
                out.println("<script type=\"text/javascript\">");
                out.println("(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){");
                out.println("(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),");
                out.println("m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)");
                out.println("})(window,document,'script','//www.google-analytics.com/analytics.js','ga');");

                out.println("ga('create', '" + profileId + "', '" + profileDomain + "'); ");
                out.println("ga('send', 'pageview');");
                out.println("</script>");
            } else {
                out.println("<script type=\"text/javascript\">");
                out.println("var _gaq = _gaq || [];");
                out.println("_gaq.push(['_setAccount', '" + profileId + "']);");
                out.println("_gaq.push(['_trackPageview']);");
                out.println("(function() {");
                out.println(
                        "var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;");
                out.println(
                        "ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';");
                out.println(
                        "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);");
                out.println("})();");
                out.println("</script>");
            }
        }

        if (isUsesGoogleMaps()) {
            builder.append(
                    "<script type=\"text/javascript\" src=\"https://maps.google.com/maps/api/js?libraries=geometry&v=3.exp&sensor=true");
            if (null != getMapLocale() && !getMapLocale().isEmpty()) {
                builder.append("&language=");
                builder.append(getMapLocale());
            }
            if (null != getMapCallbackFunction() && !getMapCallbackFunction().isEmpty()) {
                builder.append("&callback=");
                builder.append(getMapCallbackFunction());
            }
            builder.append("\"></script>\n");
            //                builder.append("<script type=\"text/javascript\" src=\"//maps.google.com/maps/api/js?libraries=geometry&v=3&sensor=true\"></script>\n");
            builder.append(
                    "<script type=\"text/javascript\" src=\"//google-maps-utility-library-v3.googlecode.com/svn/trunk/styledmarker/src/StyledMarker.js\"></script>\n");
            builder.append(
                    "<script type=\"text/javascript\" src=\"//google-maps-utility-library-v3.googlecode.com/svn/trunk/markerwithlabel/src/markerwithlabel.js\"></script>\n");
        }

        if ("mapquest".equalsIgnoreCase(getKmeProperties().getProperty("maps.api"))) {
            builder.append(
                    "<script type=\"text/javascript\" src=\"http://www.mapquestapi.com/sdk/js/v7.0.s/mqa.toolkit.js?key=Fmjtd%7Cluubnu6r2q%2C8n%3Do5-9uyllr\"></script>\n");
        }

        for (String javascript : getJsFilenames()) {
            builder.append("<script type=\"text/javascript\" src=\"CONTEXT_PATH/");
            builder.append(getToolName());
            builder.append("/js/");
            builder.append(javascript);
            builder.append(".js\"></script>\n");
        }

        builder.append(
                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\">\n");
        builder.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n");

        builder.append("</head>");
        builder.append("<body");
        if (null != getToolName()) {
            builder.append(" id=\"");
            builder.append(getToolName());
            builder.append("\"");
        }
        if (null != getNgControllerName()) {
            builder.append(" ng-controller=\"");
            builder.append(getNgControllerName());
            builder.append("\"");
        }
        if (null != getNgInitFunction()) {
            builder.append(" data-ng-init=\"");
            builder.append(getNgInitFunction());
            builder.append("()\"");
        }
        builder.append(">\n");

        builder.append(
                "    <nav class=\"kme-top-nav navbar navbar-default navbar-fixed-top\" role=\"navigation\">\n");
        //back
        if (!isHideBackButton()) {
            boolean showButton = true;
            if (("true".equalsIgnoreCase(getKmeProperties().getProperty("shim.backbutton.ios"))
                    && isPlatform(Device.TYPE_IOS))
                    || ("true".equalsIgnoreCase(getKmeProperties().getProperty("shim.backbutton.android"))
                            && isPlatform(Device.TYPE_ANDROID))) {
                showButton = false;
            }
            if (showButton) {
                if ("left".equalsIgnoreCase(getKmeProperties().getProperty("nav.back.position"))) {
                    builder.append("        <div class=\"nav navbar-nav  pull-left kme-nav-back\">\n");
                } else if ("right".equalsIgnoreCase(getKmeProperties().getProperty("nav.back.position"))) {
                    builder.append("        <div class=\"nav navbar-nav  pull-right kme-nav-back\">\n");
                } else {
                    builder.append("        <div class=\"nav navbar-nav  pull-left kme-nav-back\">\n");
                }

                builder.append("            <a ng-click=\"");
                if (null == getBackFunction() || getBackFunction().isEmpty()) {
                    builder.append("kmeNavLeft");
                } else {
                    builder.append(getBackFunction());
                }
                builder.append(
                        "()\" class=\"ur-small-element\"><span class=\"glyphicon glyphicon-chevron-left white\"></span></a>\n");
                builder.append("        </div>\n");
            }
        }
        //end back

        //menu
        if (!isHideMenuButton()) {
            boolean showButton = true;
            if (("true".equalsIgnoreCase(getKmeProperties().getProperty("shim.homebutton.ios"))
                    && isPlatform(Device.TYPE_IOS))
                    || ("true".equalsIgnoreCase(getKmeProperties().getProperty("shim.homebutton.android"))
                            && isPlatform(Device.TYPE_ANDROID))) {
                showButton = false;
            }
            if (showButton) {
                if ("left".equalsIgnoreCase(getKmeProperties().getProperty("nav.menu.position"))) {
                    builder.append("        <div class=\"nav navbar-nav pull-left dropdown kme-nav-menu\">\n");
                } else if ("right".equalsIgnoreCase(getKmeProperties().getProperty("nav.menu.position"))) {
                    builder.append("        <div class=\"nav navbar-nav pull-right dropdown kme-nav-menu\">\n");
                } else {
                    builder.append("        <div class=\"nav navbar-nav pull-right dropdown kme-nav-menu\">\n");
                }
                builder.append(
                        "            <a class=\"dropdown-toggle ur-small-element\" href=\"#\" ><span class=\"glyphicon glyphicon-align-justify white\"></span></a>\n");
                builder.append("            <ul class=\"dropdown-menu\">\n");
                //home
                builder.append("                <li><a href=\"CONTEXT_PATH/home\">Home</a></li>\n");
                //end home
                builder.append(
                        "                <li ng-repeat=\"menu in menuItems.menus\" ng-class=\"{divider:menu.divider}\"><a href=\"CONTEXT_PATH{{menu.url}}\" _target=\"self\">{{menu.label}}</a></li>\n");
                if ("true".equalsIgnoreCase(kmeProperties.getProperty("home.preferences.enabled", "true"))) {
                    builder.append("                <li class=\"divider\"></li>\n");
                    builder.append(
                            "                <li><a href=\"CONTEXT_PATH/preferences\">Preferences</a></li>\n");
                }
                builder.append("            </ul>\n");
                builder.append("        </div>\n");
            }
        }
        //end menu

        builder.append("        <div class=\"navbar-header navbar-text \">");
        builder.append(getTitle());
        builder.append("</div>\n");

        builder.append("    </nav>\n");

        String output = builder.toString();
        output = output.replaceAll("CONTEXT_PATH", contextPath);
        out.println(output);
        getJspBody().invoke(out);
        out.println("</body>");
        out.println("</html>");
    } catch (Exception e) {
        LOG.error(e.getLocalizedMessage(), e);
    }
}

From source file:org.kuali.mobility.tags.LocalisedFieldTag.java

@Override
public void doTag() throws JspException, IOException {
    PageContext pageContext = (PageContext) getJspContext();
    ServletContext servletContext = pageContext.getServletContext();
    WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(servletContext);

    final List<String> languages = (List) ac.getBean("supportedLanguages");
    this.messageSource = (MessageSource) ac.getBean("messageSource");
    final LocaleResolver localeResolver = (LocaleResolver) ac.getBean("localeResolver");
    final Locale currentLocale = localeResolver.resolveLocale((HttpServletRequest) pageContext.getRequest());
    final JspWriter out = pageContext.getOut();

    final String label = getMessage(labelCode, currentLocale);

    out.println("<div data-role=\"l10nBox\" data-l10n-field=\"" + name + "\">");
    out.println("<label>" + label + ": </label>");
    this.writeHiddenInputCode(out);
    this.writeLanguageOptions(out, languages);
    this.writeLanguageInputs(out, languages);
    out.println("</div>");
    super.doTag();
}

From source file:org.kuali.mobility.tags.MultiPageTag.java

public void doTag() throws JspException {
    PageContext pageContext = (PageContext) getJspContext();

    HttpServletRequest hsr = (HttpServletRequest) pageContext.getRequest();
    Cookie cks[] = hsr.getCookies();//from   w  w w .  ja  v  a2s  . c om
    if (cks != null) {
        for (Cookie c : cks) {
            if (c.getName().equals("jqmHeader")) {
                setJqmHeader(c.getValue());
                //LOG.info("---jqmHeader: " + jqmHeader);
            }
        }
    }

    ServletContext servletContext = pageContext.getServletContext();
    WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    setAuthMapper((AuthenticationMapper) ac.getBean("authenticationMapper"));
    CoreService coreService = (CoreService) ac.getBean("coreService");
    Properties kmeProperties = (Properties) ac.getBean("kmeProperties");
    User user = (User) pageContext.getSession().getAttribute(AuthenticationConstants.KME_USER_KEY);
    String contextPath = servletContext.getContextPath();
    JspWriter out = pageContext.getOut();
    try {
        out.println("<!DOCTYPE html>");

        if (!getAppcacheEnabled().equals("false")) {
            LOG.debug("Appcache Enabled");
            out.println("<html manifest=\"" + contextPath + "/"
                    + (StringUtils.isEmpty(getAppcacheFilename()) ? "kme.appcache"
                            : getAppcacheFilename().trim())
                    + "\">");
        } else {
            LOG.debug("Appcache Disabled");
            out.println("<html>");
        }

        out.println("<head>");
        out.println("<title>" + getTitle() + "</title>");
        out.println(
                "<link href=\"" + kmeProperties.getProperty("favico.url", "http://www.kuali.org/favicon.ico")
                        + "\" rel=\"icon\" />");
        out.println(
                "<link href=\"" + kmeProperties.getProperty("favico.url", "http://www.kuali.org/favicon.ico")
                        + "\" rel=\"shortcut icon\" />");
        //           out.println("<link rel=\"apple-touch-icon\" href=\"" + contextPath + "/apple-touch-icon-precomposed.png\"/>");

        out.println("<link rel=\"apple-touch-icon\" href=\"" + contextPath + "/touch-icon-iphone.png\"/>");
        out.println("<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"" + contextPath
                + "/touch-icon-ipad.png\"/>");
        out.println("<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"" + contextPath
                + "/touch-icon-iphone-retina.png\"/>");
        out.println("<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"" + contextPath
                + "/touch-icon-ipad-retina.png\"/>");

        out.println("<link href=\"" + contextPath
                + "/css/jquery.mobile.css\" rel=\"stylesheet\" type=\"text/css\" />");
        out.println("<link href=\"" + contextPath
                + "/css/jquery-mobile-fluid960.css\" rel=\"stylesheet\" type=\"text/css\" />");
        out.println("<link href=\"" + contextPath + "/css/kme.css\" rel=\"stylesheet\" type=\"text/css\" />");
        out.println("<link href=\"" + contextPath
                + "/css/institution.css\" rel=\"stylesheet\" type=\"text/css\" />");
        // Attach all CSS files
        for (String cssFile : getCssFilenames()) {
            out.println("<link href=\"" + contextPath + "/css/" + cssFile
                    + ".css\" rel=\"stylesheet\" type=\"text/css\" />");
        }

        out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.cookie.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/custom.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.mobile.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.tmpl.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.validate.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.validate.ready.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.templates.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.transit.min.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/BrowserDetect.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/ServerDetails.js\"></script>");

        if (isNative()) {
            out.println(
                    "<script type=\"text/javascript\" src=\"" + contextPath + "/js/PushConfig.js\"></script>");
        }

        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.autoellipsis-1.0.3.min.js\"></script>");

        //            if (getPlatform() != null && getPlatform().equals("iOS")) {
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/phonegap-" + getPhonegap() + ".js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/ChildBrowser.js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/barcodescanner.js\"></script>");
        ////                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/Connection.js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/PushHandler.js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/Badge.js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/applicationPreferences.js\"></script>");
        //            } else if (getPlatform() != null && getPlatform().equals("Android")) {
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/phonegap-" + getPhonegap() + ".js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/childbrowser.js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/barcodescanner.js\"></script>");
        //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/statusbarnotification.js\"></script>");
        //                //out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/C2DMPlugin.js\"></script>");
        //                //out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/PG_C2DM_script.js\"></script>");
        //            }

        if (isPlatform(Device.TYPE_IOS)) {
            if (isPhoneGap("1.4.1")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/phonegap-1.4.1.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/ChildBrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/barcodescanner.js\"></script>");
                //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/Connection.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/PushHandler.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/Badge.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/applicationPreferences.js\"></script>");
            } else if (isPhoneGap("1.7.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/cordova-1.7.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/ChildBrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/ActionSheet.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/Badge.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/LocalNotifications.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/Notifications.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/PrintPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/applicationPreferences.js\"></script>");
            } else if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/cordova-2.2.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/ActionSheet.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/applicationPreferences.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/AudioStreamer.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/Badge.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/ChildBrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/PushHandler.js\"></script>");
            } else if (isPhoneGap("2.3.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.3.0/cordova-2.3.0.js\"></script>");
            } else if (isPhoneGap("2.4.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.4.0/cordova-2.4.0.js\"></script>");
            } else if (isPhoneGap("2.5.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.5.0/cordova-2.5.0.js\"></script>");
            } else if (isPhoneGap("2.6.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.6.0/cordova-2.6.0.js\"></script>");
            } else if (isPhoneGap("2.7.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.7.0/cordova-2.7.0.js\"></script>");
            } else if (isPhoneGap("2.8.1")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.8.1/cordova.js\"></script>");
            }
        } else if (isPlatform(Device.TYPE_ANDROID)) {
            if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/cordova-2.2.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/childbrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/statusbarnotification.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/datePickerPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/applicationPreferences.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/AudioStreamer.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/GCMPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/CORDOVA_GCM_script.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/PushHandler.js\"></script>");
            } else {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/phonegap-"
                        + getPhonegap() + ".js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/childbrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/statusbarnotification.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/C2DMPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/PG_C2DM_script.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/PushHandler.js\"></script>");
            }
        } else if (isPlatform(Device.TYPE_BLACKBERRY)) {
            if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/PushConfig.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/blackberry/2.2.0/cordova-2.2.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/blackberry/2.2.0/kme-application.js\"></script>");
            }
        } else if (isPlatform(Device.TYPE_WINDOWS)) {
            if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/windowsMobile/2.2.0/cordova-2.2.0.js\"></script>");
            }
        }

        String profileId = coreService.findGoogleAnalyticsProfileId().trim();
        if (!isDisableGoogleAnalytics() && profileId.length() > 0) {
            out.println("<script type=\"text/javascript\">");
            out.println("var _gaq = _gaq || [];");
            out.println("_gaq.push(['_setAccount', '" + profileId + "']);");
            out.println("_gaq.push(['_trackPageview']);");
            out.println("(function() {");
            out.println(
                    "var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;");
            out.println(
                    "ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';");
            out.println(
                    "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);");
            out.println("})();");
            out.println("</script>");
        }

        if (isUsesGoogleMaps()) {
            if (getMapLocale() != null) {
                out.println(
                        "<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=true&language="
                                + getMapLocale() + "\"></script>");
            } else {
                out.println(
                        "<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=true\"></script>");
            }
        }

        // Now add all the javascripts
        for (String javascript : getJsFilenames()) {
            out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/" + javascript
                    + ".js\"></script>");
        }

        //            out.println("<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />");
        //            out.println("<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\" />");
        out.println(
                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\">");
        out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");
        out.println("</head>");

        if (getOnBodyLoad() != null) {
            out.println("<body onload='" + getOnBodyLoad() + "'>");
        } else {
            out.println("<body>");
        }

        getJspBody().invoke(out);

        out.println("</body>");
        out.println("</html>");
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    }
}

From source file:org.kuali.mobility.tags.PageTag.java

public void doTag() throws JspException {
    PageContext pageContext = (PageContext) getJspContext();
    HttpServletRequest hsr = (HttpServletRequest) pageContext.getRequest();

    Cookie cks[] = hsr.getCookies();// w ww  .j ava  2s.c om
    if (cks != null) {
        for (Cookie c : cks) {
            if (c.getName().equals("jqmHeader")) {
                jqmHeader = c.getValue();
                //LOG.info("---jqmHeader: " + jqmHeader);
            }
        }
    }

    ServletContext servletContext = pageContext.getServletContext();
    WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(servletContext);

    setAuthMapper((AuthenticationMapper) ac.getBean("authenticationMapper"));
    CoreService coreService = (CoreService) ac.getBean("coreService");
    Properties kmeProperties = (Properties) ac.getBean("kmeProperties");
    Locale locale = RequestContextUtils.getLocale((HttpServletRequest) pageContext.getRequest());
    MessageSource ms = (MessageSource) ac.getBean("messageSource");
    String msgCatString = null;

    User user = (User) pageContext.getSession().getAttribute(AuthenticationConstants.KME_USER_KEY);
    String contextPath = servletContext.getContextPath();
    JspWriter out = pageContext.getOut();
    try {
        out.println("<!DOCTYPE html>");

        if (getAppcacheEnabled().isEmpty()) {
            setAppcacheEnabled(kmeProperties.getProperty("appcache.enabled", "true"));
        }

        LOG.info("param.appcacheEnabled: " + getAppcacheEnabled());

        if (!appcacheEnabled.equals("false")) {
            LOG.debug("Appcache Enabled");
            out.println("<html manifest=\"" + contextPath + "/"
                    + (StringUtils.isEmpty(getAppcacheFilename()) ? "kme.appcache"
                            : getAppcacheFilename().trim())
                    + "\">");
        } else {
            LOG.debug("Appcache Disabled");
            out.println("<html>");
        }

        out.println("<head>");
        out.println("<title>" + getTitle() + "</title>");
        out.println(
                "<link href=\"" + kmeProperties.getProperty("favico.url", "http://www.kuali.org/favicon.ico")
                        + "\" rel=\"icon\" />");
        out.println(
                "<link href=\"" + kmeProperties.getProperty("favico.url", "http://www.kuali.org/favicon.ico")
                        + "\" rel=\"shortcut icon\" />");

        out.println("<link rel=\"apple-touch-icon\" href=\"" + contextPath + "/touch-icon-iphone.png\"/>");
        out.println("<link rel=\"apple-touch-icon\" sizes=\"72x72\" href=\"" + contextPath
                + "/touch-icon-ipad.png\"/>");
        out.println("<link rel=\"apple-touch-icon\" sizes=\"114x114\" href=\"" + contextPath
                + "/touch-icon-iphone-retina.png\"/>");
        out.println("<link rel=\"apple-touch-icon\" sizes=\"144x144\" href=\"" + contextPath
                + "/touch-icon-ipad-retina.png\"/>");

        out.println("<link href=\"" + contextPath
                + "/css/jquery.mobile.css\" rel=\"stylesheet\" type=\"text/css\" />");
        out.println("<link href=\"" + contextPath
                + "/css/jquery-mobile-fluid960.css\" rel=\"stylesheet\" type=\"text/css\" />");
        out.println("<link href=\"" + contextPath + "/css/kme.css\" rel=\"stylesheet\" type=\"text/css\" />");
        out.println("<link href=\"" + contextPath
                + "/css/institution.css\" rel=\"stylesheet\" type=\"text/css\" />");

        addTheme();

        // Attach all CSS files
        for (String cssFile : getCssFilenames()) {
            out.println("<link href=\"" + contextPath + "/css/" + cssFile
                    + ".css\" rel=\"stylesheet\" type=\"text/css\" />");
        }

        out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.cookie.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/ServerDetails.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/custom.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.mobile.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.tmpl.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/jquery.validate.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.validate.ready.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.templates.js\"></script>");
        out.println("<script type=\"text/javascript\" src=\"" + contextPath
                + "/js/jquery.transit.min.js\"></script>");
        out.println(
                "<script type=\"text/javascript\" src=\"" + contextPath + "/js/BrowserDetect.js\"></script>");

        if (this.isNative()) {
            out.println(
                    "<script type=\"text/javascript\" src=\"" + contextPath + "/js/PushConfig.js\"></script>");
        }

        //         out.println("<script src=\"http://jsconsole.com/remote.js?2EA94DB3-FD2F-4FF8-B41E-AB2B9A064544\"></script>");
        if (isPlatform(Device.TYPE_IOS)) {
            if (isPhoneGap("1.4.1")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/phonegap-1.4.1.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/ChildBrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/barcodescanner.js\"></script>");
                //                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/iOS/Connection.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/PushHandler.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/Badge.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/applicationPreferences.js\"></script>");
            } else if (isPhoneGap("1.7.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/cordova-1.7.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/ChildBrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/ActionSheet.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/Badge.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/LocalNotifications.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/Notifications.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/PrintPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/1.7.0/applicationPreferences.js\"></script>");
            } else if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/cordova-2.2.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/ActionSheet.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/applicationPreferences.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/AudioStreamer.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/Badge.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.2.0/ChildBrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/PushHandler.js\"></script>");
            } else if (isPhoneGap("2.3.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.3.0/cordova-2.3.0.js\"></script>");
            } else if (isPhoneGap("2.4.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.4.0/cordova-2.4.0.js\"></script>");
            } else if (isPhoneGap("2.5.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.5.0/cordova-2.5.0.js\"></script>");
            } else if (isPhoneGap("2.6.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.6.0/cordova-2.6.0.js\"></script>");
            } else if (isPhoneGap("2.7.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.7.0/cordova-2.7.0.js\"></script>");
            } else if (isPhoneGap("2.8.1")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/iOS/2.8.1/cordova.js\"></script>");
            }
        } else if (isPlatform(Device.TYPE_ANDROID)) {
            if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/cordova-2.2.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/childbrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/statusbarnotification.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/datePickerPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/applicationPreferences.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/AudioStreamer.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/GCMPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/2.2.0/CORDOVA_GCM_script.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/PushHandler.js\"></script>");

            } else {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/android/phonegap-"
                        + getPhonegap() + ".js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/childbrowser.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/barcodescanner.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/statusbarnotification.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/C2DMPlugin.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/PG_C2DM_script.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/android/PushHandler.js\"></script>");
            }
        } else if (isPlatform(Device.TYPE_BLACKBERRY)) {
            if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/blackberry/2.2.0/cordova-2.2.0.js\"></script>");
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/blackberry/2.2.0/kme-application.js\"></script>");
            }
        } else if (isPlatform(Device.TYPE_WINDOWS)) {
            if (isPhoneGap("2.2.0")) {
                out.println("<script type=\"text/javascript\" src=\"" + contextPath
                        + "/js/windowsMobile/2.2.0/cordova-2.2.0.js\"></script>");
            }
        }

        /* Google Analytics */
        String profileId = coreService.findGoogleAnalyticsProfileId().trim();
        if (!disableGoogleAnalytics && profileId.length() > 0) {
            String profileDomain = coreService.getGoogleAnalyticsProfileDomain().trim();
            if (coreService.isGoogleUniversalAnalytics() && !profileDomain.isEmpty()) {
                out.println("<script type=\"text/javascript\">");
                out.println("(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){");
                out.println("(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),");
                out.println("m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)");
                out.println("})(window,document,'script','//www.google-analytics.com/analytics.js','ga');");

                out.println("ga('create', '" + profileId + "', '" + profileDomain + "'); ");
                out.println("ga('send', 'pageview');");
                out.println("</script>");
            } else {
                out.println("<script type=\"text/javascript\">");
                out.println("var _gaq = _gaq || [];");
                out.println("_gaq.push(['_setAccount', '" + profileId + "']);");
                out.println("_gaq.push(['_trackPageview']);");
                out.println("(function() {");
                out.println(
                        "var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;");
                out.println(
                        "ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';");
                out.println(
                        "var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);");
                out.println("})();");
                out.println("</script>");
            }
        }

        if (isUsesGoogleMaps()) {
            if (getMapLocale() != null) {
                out.println(
                        "<script type=\"text/javascript\" src=\"https://maps.google.com/maps/api/js?sensor=true&language="
                                + getMapLocale() + "\"></script>");
            } else {
                out.println(
                        "<script type=\"text/javascript\" src=\"https://maps.google.com/maps/api/js?sensor=true\"></script>");
            }
        }

        // Now add all the javascripts
        for (String javascript : getJsFilenames()) {
            out.println("<script type=\"text/javascript\" src=\"" + contextPath + "/js/" + javascript
                    + ".js\"></script>");
        }
        out.println(
                "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0\">");
        //            out.println("<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />");
        //            out.println("<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\" />");
        out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">");

        out.println("</head>");

        if (getOnBodyLoad() != null) {
            out.println("<body onload='" + getOnBodyLoad() + "'>");
        } else {
            out.println("<body>");
        }

        out.println("<div data-role=\"page\" id=\"" + getId() + "\">");

        LOG.info("----" + jqmHeader);
        if (getJqmHeader() != null && getJqmHeader().equals("hide")) {
            LOG.info("---- Hide Header");
            out.println("<div data-role=\"header\" style=\"display:none\">");
        } else if (getJqmHeader() != null && getJqmHeader().equals("fixed")) {
            LOG.info("---- Fixed Header");
            out.println("<div data-role=\"header\" data-position=\"fixed\">");
        } else {
            LOG.info("---- Show Header");
            out.println("<div data-role=\"header\">");
        }

        if (isLoginButton() || getAuthMapper().getLoginURL() != null) {
            if (user == null || user.isPublicUser()) {
                msgCatString = ms.getMessage("shared.login", null, "Login", locale);
                out.println("<a href=\""
                        + (getLoginButtonURL() != null ? getLoginButtonURL()
                                : (getAuthMapper().getLoginURL() != null ? getAuthMapper().getLoginURL()
                                        : contextPath + "/login"))
                        + "\" data-role=\"button\" data-icon=\"lock\">" + msgCatString + "</a>");
            } else {
                msgCatString = ms.getMessage("shared.logout", null, "Logout", locale);
                out.println("<a href=\""
                        + (getLogoutButtonURL() != null ? getLogoutButtonURL()
                                : (getAuthMapper().getLogoutURL() != null ? getAuthMapper().getLogoutURL()
                                        : contextPath + "/logout"))
                        + "\" data-role=\"button\" data-icon=\"unlock\">" + msgCatString + "</a>");
            }
        }
        if (isBackButton()) {
            msgCatString = ms.getMessage("shared.back", null, "Back", locale);
            //            out.println("<a href=\"" + (getBackButtonURL() != null ? getBackButtonURL() : "javascript: history.go(-1)") + "\" class=\"ui-btn-left\" data-icon=\"back\" data-iconpos=\"notext\">" + msgCatString + "</a>");
            boolean showButton = true;
            if (null == this.getPhonegap() || "".equalsIgnoreCase(getPhonegap())) {
                // showButton = true;
            } else {
                if (null != kmeProperties) {
                    StringBuilder builder = new StringBuilder("shim.backbutton.");
                    builder.append(this.getPlatform().toLowerCase());
                    if (kmeProperties.containsKey(builder.toString())
                            && "false".equalsIgnoreCase(kmeProperties.getProperty(builder.toString()))) {
                        showButton = false;
                    }
                }
            }
            if (showButton) {
                out.println("<a href=\""
                        + ((getBackButtonURL() != null && StringUtils.isNotBlank(getBackButtonURL()))
                                ? getBackButtonURL()
                                : "javascript: history.go(-1)")
                        + "\" class=\"ui-btn-left\" data-icon=\"back\" data-iconpos=\"notext\">" + msgCatString
                        + "</a>");
            }
        }
        out.println("<h1>" + getTitle() + "</h1>");
        if (isPreferencesButton()) {
            if (null != kmeProperties
                    && "true".equalsIgnoreCase(kmeProperties.getProperty("home.preferences.enabled", "true"))) {
                msgCatString = ms.getMessage("shared.preferences", null, "Preferences", locale);
                out.println("<a href=\""
                        + (getPreferencesButtonURL() != null ? getPreferencesButtonURL()
                                : contextPath + "/preferences")
                        + "\" class=\"ui-btn-right\" data-icon=\"gear\" data-iconpos=\"notext\">" + msgCatString
                        + "</a>");
            }
        }
        if (isHomeButton()) {
            msgCatString = ms.getMessage("shared.home", null, "Home", locale);
            //            out.println("<a href=\"" + contextPath + "/home\" class=\"ui-btn-right\" data-icon=\"home\" data-iconpos=\"notext\">" + msgCatString + "</a>");
            boolean homeButton = true;
            if (null == this.getPhonegap() || "".equalsIgnoreCase(getPhonegap())) {
                // showButton = true;
            } else {
                if (null != kmeProperties) {
                    StringBuilder builder = new StringBuilder("shim.homebutton.");
                    builder.append(this.getPlatform().toLowerCase());
                    if (kmeProperties.containsKey(builder.toString())
                            && "false".equalsIgnoreCase(kmeProperties.getProperty(builder.toString()))) {
                        homeButton = false;
                    }
                }
            }
            if (homeButton) {
                out.println("<a href=\"" + contextPath
                        + "/home\" class=\"ui-btn-right\" data-icon=\"home\" data-iconpos=\"notext\">"
                        + msgCatString + "</a>");
            }
        }
        out.println("</div>");
        getJspBody().invoke(out);
        out.println("</div>");
        out.println("</body>");
        out.println("</html>");
    } catch (Exception e) {
        LOG.error(e.getMessage(), e);
    }
}

From source file:org.kuali.mobility.tags.PageTag.java

/**
 * Adds the theme to the page if there is one available
 *
 * @throws IOException/*from  w w w  .  j  a v a2  s .  c o m*/
 */
void addTheme() throws IOException {
    PageContext pageContext = (PageContext) getJspContext();
    HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
    ServletContext servletContext = pageContext.getServletContext();
    WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    Properties kmeProperties = (Properties) ac.getBean("kmeProperties");
    User user = (User) request.getSession().getAttribute(Constants.KME_USER_KEY);

    boolean useCampusTheme = kmeProperties != null
            && "true".equals(kmeProperties.getProperty("theme.perCampus", "false"));
    String viewingCampus = user == null ? null : user.getViewCampus();
    String defaultTheme = kmeProperties == null ? null : kmeProperties.getProperty("theme.default");
    String themeToAdd = null;

    // 1 - if this tag requests a theme, we attempt to use it
    if (!StringUtils.isEmpty(this.theme) && ac.getResource("/css/theme-" + this.theme + ".css").exists()) {
        themeToAdd = this.theme;
    }
    // 2 - Try and use campus theme if configured to use it
    if (themeToAdd == null && useCampusTheme && !StringUtils.isEmpty(viewingCampus)
            && ac.getResource("/css/theme-" + viewingCampus + ".css").exists()) {
        themeToAdd = viewingCampus;
    }
    // 3 - Use default theme
    if (themeToAdd == null && !StringUtils.isEmpty(defaultTheme)
            && ac.getResource("/css/theme-" + defaultTheme + ".css").exists()) {
        themeToAdd = defaultTheme;
    }

    if (themeToAdd != null) {
        pageContext.getOut().println("<link href=\"" + request.getContextPath() + "/css/theme-" + themeToAdd
                + ".css\" rel=\"stylesheet\" type=\"text/css\" />");
    }
}

From source file:org.kuali.mobility.writer.tags.ArticleImageTag.java

public void doTag() {
    PageContext pageContext = (PageContext) getJspContext();
    JspWriter out = pageContext.getOut();
    HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
    String contextPath = request.getContextPath();
    ServletContext servletContext = pageContext.getServletContext();
    WebApplicationContext ac = WebApplicationContextUtils.getWebApplicationContext(servletContext);

    IconsService iconService = (IconsService) ac.getBean("iconsService");

    String thumbNailPath;/* www.ja  va 2 s .  c  o  m*/
    String fullPath = null;
    final String instanceURL = contextPath + prefix + instance;
    /*
     * First check if the article exits, and it has image media.
     * If it does not exist or has no image, we need to use
     * the default image for that instance of the tool
     */
    if (article == null || article.getImage() == null || article.getImage().getId() == 0) {

        /*
         * Check if there is an icon themed for this instance of the writer tool
         */
        if (StringUtils.isEmpty(instance) && iconService.getIcon(WRITER_ICON_NAME, instance) != null) {
            thumbNailPath = contextPath + "/getIcon/" + WRITER_ICON_NAME + "-" + instance + "-80@2.png";
        } else {
            thumbNailPath = contextPath + "/getIcon/WriterArticle-80@2.png";
        }
    } else {
        thumbNailPath = instanceURL + "/media/" + article.getImage().getId() + "?thumb=1";
        fullPath = instanceURL + "/media/view/" + article.getImage().getId();
    }
    boolean addLink = (wrapLink && fullPath != null);
    boolean isNative = (Boolean) request.getSession(true).getAttribute(NativeCookieInterceptor.SESSION_NATIVE);
    try {
        // Wrap with link if required
        if (addLink && isNative) {
            String serverPath = request.getScheme() + "://" + request.getServerName();
            if (request.getServerPort() != 80) {
                serverPath += ":" + request.getServerPort();
            }
            serverPath += fullPath;
            writeChildBrowserJS(out, serverPath);
        } else if (addLink) {
            out.print("<a href=\"");
            out.print(fullPath);
            out.print("\">");
        }

        // Put image container
        out.print("<img src=\"");
        out.print(thumbNailPath);
        out.print("\"");

        // Add image id if specified
        if (this.id != null) {
            out.print(" id=\"");
            out.print(this.id);
            out.print("\"");
        }

        // Add style if specified
        if (this.style != null) {
            out.print(" style=\"");
            out.print(this.style);
            out.print("\"");
        }

        out.print(" />");

        // Close wrapping link
        if (addLink) {
            out.print("</a>");
        }
    } catch (IOException e) {
        LOG.error(e.getMessage(), e);
    }
}

From source file:org.libreplan.web.common.components.Autocomplete.java

private Object getBean(String classname) {
    HttpServletRequest servletRequest = (HttpServletRequest) Executions.getCurrent().getNativeRequest();
    ServletContext servletContext = servletRequest.getSession().getServletContext();

    WebApplicationContext webApplicationContext = WebApplicationContextUtils
            .getWebApplicationContext(servletContext);

    return webApplicationContext.getBean(classname);
}

From source file:org.libreplan.web.common.components.bandboxsearch.BandboxMultipleSearch.java

private Object getBean(String beanName) {
    HttpServletRequest servletRequest = (HttpServletRequest) Executions.getCurrent().getNativeRequest();
    ServletContext servletContext = servletRequest.getSession().getServletContext();

    WebApplicationContext webApplicationContext = WebApplicationContextUtils
            .getWebApplicationContext(servletContext);

    return webApplicationContext.getBean(beanName);
}