Example usage for org.apache.wicket Component urlFor

List of usage examples for org.apache.wicket Component urlFor

Introduction

In this page you can find the example usage for org.apache.wicket Component urlFor.

Prototype

public final CharSequence urlFor(final ResourceReference resourceReference, PageParameters parameters) 

Source Link

Document

Returns a URL that references a shared resource through the provided resource reference.

Usage

From source file:com.pushinginertia.wicket.core.util.ComponentUtils.java

License:Open Source License

/**
 * Constructs the full URL to redirect to for a given target page and its parameters, with the option to override
 * the host name./*from  w ww.j a v a 2  s . co  m*/
 * @param component component the call is being made from (used to obtain the container request)
 * @param hostName host name to use in the constructed URL
 * @param targetPage target page
 * @param pageParameters parameters for the target page (may be null)
 * @return full URL
 * @see org.apache.wicket.request.UrlRenderer#renderFullUrl(org.apache.wicket.request.Url)
 */
public static String constructRedirectUrl(final Component component, final String hostName,
        final Class<? extends Page> targetPage, final PageParameters pageParameters) {
    ValidateAs.notNull(component, "component");
    ValidateAs.notNull(targetPage, "targetPage");

    final HttpServletRequest req = (HttpServletRequest) component.getRequest().getContainerRequest();

    final String relativePath = component.urlFor(targetPage, pageParameters).toString();
    final String requestURI = req.getRequestURI();
    String absolutePath;
    try {
        absolutePath = RequestUtils.toAbsolutePath(requestURI, relativePath);
    } catch (final StringIndexOutOfBoundsException e) {
        // sometimes the wicket method throws an exception when the input is something like:
        // requestPath="/404", relativePagePath="../../../page-name"
        // strip all leading occurrences of "../" from the relativePath
        final StringBuilder sb = new StringBuilder(relativePath);
        while (sb.indexOf("../") == 0) {
            sb.delete(0, 3);
        }
        absolutePath = sb.toString();
    } catch (final RuntimeException e) {
        // this call can throw StringIndexOutOfBoundsException: String index out of range: -1
        // it seems to be a wicket bug but I need to log the input to figure out how to reproduce it
        LOG.error("Error constructing absolute path for inputs requestPath=[" + requestURI
                + "], relativePagePath=[" + relativePath + "]", e);
        throw e;
    }

    return constructUrl(component, hostName, absolutePath);
}

From source file:com.userweave.components.MailMessageProviderImpl.java

License:Open Source License

public String getUrl(Component component, String token, Locale locale, Class<? extends WebPage> page) {
    PageParameters parameters = new PageParameters();
    parameters.set(0, token);//from   ww w.jav a  2  s . c  o m
    parameters.set(1, LocalizationUtils.getLocaleShort(locale));

    //return component.urlFor(SigninPage.class, parameters).toString();

    return RequestCycle.get().getUrlRenderer()
            .renderFullUrl(Url.parse(component.urlFor(page, parameters).toString()));
}

From source file:com.userweave.dao.impl.ProjectInvitationDaoImpl.java

License:Open Source License

@Override
public void sendInvitation(String recipantEmail, User addresser, Project project, Role role, Locale locale,
        final Component localeStringProvider) {
    ProjectInvitation invitation = new ProjectInvitation();

    invitation.setAddressee(null);//from   w w  w.  j  av  a 2  s .  co  m

    invitation.setEmail(recipantEmail);

    invitation.setAddresser(addresser);

    invitation.setProject(project);

    invitation.setRole(role);

    this.save(invitation);

    userService.sendInvitationMail(UserWeaveSession.get().getUser(), recipantEmail, locale,
            new MailMessageProviderImpl(localeStringProvider) {

                @Override
                public String getUrl(Component component, String token, Locale locale,
                        Class<? extends WebPage> page) {

                    PageParameters parameters = new PageParameters();
                    parameters.set(0, token);
                    parameters.set(1, LocalizationUtils.getLocaleShort(locale));

                    String url = RequestCycle.get().getUrlRenderer().renderFullUrl(
                            Url.parse(component.urlFor(RegisterUser.class, parameters).toString()));

                    return url;

                    //               return  component.urlFor(RegisterUser.class, parameters).toString();
                }

                @Override
                public String getMailSubject() {
                    User user = UserWeaveSession.get().getUser();

                    return new StringResourceModel("subject_invite", localeStringProvider, null,
                            new Object[] { user.getForename(), user.getSurname() }).getString();
                }

                @Override
                public String getMailMessage(String urlStr) {
                    User user = UserWeaveSession.get().getUser();

                    return new StringResourceModel("mail_invite", localeStringProvider, null,
                            new Object[] { user.getForename(), user.getSurname(), urlStr }).getString();
                }
            });
}

From source file:com.userweave.pages.user.invitation.InviteUserPanel.java

License:Open Source License

public void invite(AjaxRequestTarget target) {
    if (email != null) {
        email = email.toLowerCase();/*from   w w w.j av  a  2 s.  c om*/
    }

    if (!RegisterUser.checkMail(email)) {
        // FIXME: I18N
        error("email_incorrect_pattern");
        return;
    } else {

        final User userx = userService.findByEmail(email);
        if (userx != null) {
            // FIXME: I18N
            error("user_already_exists");
            return;
        }
    }

    userService.sendInvitationMail(UserWeaveSession.get().getUser(), email, locale,
            new MailMessageProviderImpl(this) {

                @Override
                public String getUrl(Component component, String token, Locale locale,
                        Class<? extends WebPage> page) {

                    PageParameters parameters = new PageParameters();
                    parameters.set(0, token);
                    parameters.set(1, LocalizationUtils.getLocaleShort(locale));

                    //return component.urlFor(Session.get().getDefaultPageMap(), RegisterUser.class, parameters).toString();
                    return component.urlFor(RegisterUser.class, parameters).toString();
                }

                @Override
                public String getMailSubject() {
                    User user = UserWeaveSession.get().getUser();

                    return new StringResourceModel("subject_invite", InviteUserPanel.this, null,
                            new Object[] { user.getForename(), user.getSurname() }).getString();
                }

                @Override
                public String getMailMessage(String urlStr) {
                    User user = UserWeaveSession.get().getUser();

                    return new StringResourceModel("mail_invite", InviteUserPanel.this, null,
                            new Object[] { user.getForename(), user.getSurname(), urlStr }).getString();
                }
            });

    onInvite(target);
}

From source file:org.apache.openmeetings.web.pages.auth.SignInPage.java

License:Apache License

public static String getRedirectUri(OAuthServer server, Component component) {
    String result = "";
    if (server.getId() != null) {
        try {//from w w  w .j a  v a2 s .  c  om
            String base = getBean(ConfigurationDao.class).getBaseUrl();
            URI uri = new URI(base
                    + component.urlFor(SignInPage.class, new PageParameters().add("oauthid", server.getId())));
            result = uri.normalize().toString();
        } catch (URISyntaxException e) {
            log.error("Unexpected error while getting redirect URL", e);
        }
    }
    return result;
}

From source file:org.efaps.ui.wicket.behaviors.dojo.LazyIframeBehavior.java

License:Apache License

/**
 * Render the links for the head.//from  w w w .j ava2s .  c om
 *
 * @param _component component the header will be rendered for
 * @param _response resonse to add
 */
@Override
public void renderHead(final Component _component, final IHeaderResponse _response) {
    super.renderHead(_component, _response);
    final StringBuilder js = new StringBuilder()
            .append("require([\"dojo/ready\",\"dijit/registry\",\"dojo/dom-construct\"],")
            .append(" function(ready, registry, domConstruct) {").append("ready(function() {")
            .append("registry.byId(\"").append(_component.getMarkupId())
            .append("\").set(\"content\", domConstruct.create(\"iframe\", {");

    if (this.frameMarkupId != null) {
        js.append("\"id\": \"").append(this.frameMarkupId).append("\",");
    }

    js.append("\"src\": \"").append(_component.urlFor(ILinkListener.INTERFACE, new PageParameters()))
            .append("\",\"style\": \"border: 0; width: 100%; height: 99%\", \"nodeId\": \"jan\"").append("}));")
            .append("});});");
    _response.render(JavaScriptHeaderItem.forScript(js, _component.getMarkupId()));
}

From source file:org.sakaiproject.scorm.ui.player.util.Utils.java

License:Educational Community License

public final static String generateUrl(IBehavior behavior, RequestListenerInterface rlix, Component component,
        boolean isRelative) {

    if (component == null)
        throw new IllegalArgumentException("Behavior must be bound to a component to create the URL");

    final RequestListenerInterface rli = IBehaviorListener.INTERFACE;

    String relativePagePath = component.urlFor(behavior, rli).toString();

    String url = null;//from w  w  w  . jav  a 2s. co  m

    if (!isRelative) {
        WebRequest webRequest = (WebRequest) component.getRequest();
        HttpServletRequest servletRequest = webRequest.getHttpServletRequest();
        //url.append(servletRequest.getContextPath()).append("/");
        //String requestUrl = servletRequest.getRequestURL().toString();
        //url = RequestUtils.toAbsolutePath(requestUrl, relativePagePath);
        String contextPath = servletRequest.getContextPath();
        String relativePath = relativePagePath.replaceAll("\\.\\.\\/", "");
        url = new StringBuilder(contextPath).append("/").append(relativePath).toString();
    } else {
        url = relativePagePath;
    }

    return url;
}

From source file:org.wicketTutorial.ajaxlistener.behavior.DisableComponentListener.java

License:Apache License

protected CharSequence getIndicatorUrl(Component component) {
    return component.urlFor(indicatorReference, null);
}