/** * Build the widget * * @param user the logged in user * @return the {@link Widget} */ protected Widget buildUserIdentityCard() { final FlowPanel theIDWidget = new FlowPanel(); theIDWidget.setStylePrimaryName("bonita_identification"); final FlowPanel theLeftAlignedBox = new FlowPanel(); theLeftAlignedBox.setStylePrimaryName("bonita_identified-left"); theIDWidget.add(theLeftAlignedBox); final Image theAvatar = new Image("images/avatar-default.gif"); theAvatar.setStyleName("bonita_avatar"); theLeftAlignedBox.add(theAvatar); final FlowPanel theRightAlignedBox = new FlowPanel(); theRightAlignedBox.setStylePrimaryName("bonita_identified-right"); theLeftAlignedBox.add(theRightAlignedBox); HTML theUserIdentity = null; if (user.isAnonymous()) { theUserIdentity = new HTML(FormsResourceBundle.getMessages().anonymousLabel()); } else { theUserIdentity = new HTML(user.getUsername()); } theUserIdentity.setStylePrimaryName("bonita_identif-1"); theRightAlignedBox.add(theUserIdentity); Anchor theLogoutLink = null; if (user.isAnonymous()) { theLogoutLink = new Anchor(FormsResourceBundle.getMessages().loginButtonLabel()); } else { theLogoutLink = new Anchor(FormsResourceBundle.getMessages().logoutButtonLabel()); } theLogoutLink.setStylePrimaryName("bonita_identif-2"); final URLUtils urlUtils = URLUtilsFactory.getInstance(); final List<String> paramsToRemove = new ArrayList<String>(); paramsToRemove.add(URLUtils.LOCALE_PARAM); final List<String> hashParamsToRemove = new ArrayList<String>(); if (user.isAutoLogin()) { hashParamsToRemove.add(URLUtils.AUTO_LOGIN_PARAM); } else { hashParamsToRemove.add(URLUtils.USER_CREDENTIALS_PARAM); } if (!user.isAnonymous()) { for (final Entry<String, Object> hashParamEntry : context.entrySet()) { hashParamsToRemove.add(hashParamEntry.getKey()); } } Map<String, String> hashParamsToAdd = new HashMap<String, String>(); hashParamsToAdd.put(URLUtils.TODOLIST_PARAM, "true"); hashParamsToAdd.put(URLUtils.VIEW_MODE_PARAM, "app"); final String theRedirectURL = urlUtils.rebuildUrl(paramsToRemove, null, hashParamsToRemove, hashParamsToAdd); String theURL = "?" + URLUtils.REDIRECT_URL_PARAM + "="; try { theURL += URL.encodeQueryString(theRedirectURL); } catch (final Exception e) { Window.alert("Unable to redirect to login page: Invalid URL"); theURL += GWT.getModuleBaseURL(); } theLogoutLink.setHref(theURL); theRightAlignedBox.add(theLogoutLink); return theIDWidget; }