List of usage examples for org.apache.wicket.ajax.markup.html AjaxLink AjaxLink
public AjaxLink(final String id, final IModel<T> model)
From source file:com.francetelecom.clara.cloud.presentation.designer.services.nodeprocessing.LogicalNodeProcessingServicePanel.java
License:Apache License
private void initComponents() { getServiceForm().add(new CacheActivatedImage("nodeprocessingIcon", new ResourceModel("nodeprocessing-icon").getObject())); // Online help link String completeHelpUrl = ""; try {/*from ww w. j a v a 2 s . com*/ completeHelpUrl = new StringResourceModel("portal.designer.logical.service.online_manual.baseUrl", null) .getString() + new StringResourceModel( "portal.designer.logical.service.online_manual." + getLogicalModelType(), null) .getString(); } catch (Exception e) { //do nothing } ExternalLink onlineHelpLink = new ExternalLink("onlineHelpLink", completeHelpUrl); getServiceForm().add(onlineHelpLink); if (completeHelpUrl.isEmpty()) { onlineHelpLink.setVisible(false); } // FUNCTIONNAL PARAMETERS /*RequiredTextField<String> label = new RequiredTextField<String>("label"); label.setLabel(new StringResourceModel("portal.designer.service.cfjava.label",null)); label.add(new PropertyValidator<>()); getServiceForm().add(label); RequiredTextField<String> groupId = new RequiredTextField<String>("softwareReference.groupId"); groupId.setLabel(new StringResourceModel("portal.designer.service.cfjava.softwareReference.groupId",null)); groupId.add(new PropertyValidator<>()); getServiceForm().add(groupId); RequiredTextField<String> artifactId = new RequiredTextField<String>("softwareReference.artifactId"); artifactId.setLabel(new StringResourceModel("portal.designer.service.cfjava.softwareReference.artifactId",null)); artifactId.add(new PropertyValidator<>()); getServiceForm().add(artifactId); RequiredTextField<?> version = new RequiredTextField("softwareReference.version"); version.setLabel(new StringResourceModel("portal.designer.service.cfjava.softwareReference.version",null)); version.add(new PropertyValidator<>()); getServiceForm().add(version); TextField classifier = new TextField("softwareReference.classifier", String.class); classifier.setLabel(new StringResourceModel("portal.designer.service.cfjava.softwareReference.classifier",null)); classifier.add(new PropertyValidator<>()); getServiceForm().add(classifier); CheckBox optionalSoftwareReference=new CheckBox("optionalSoftwareReference"); optionalSoftwareReference.setLabel(new StringResourceModel("portal.designer.service.cfjava.optionalSoftwareReference",null)); getServiceForm().add(optionalSoftwareReference); TextField minMemoryMbHint = new TextField("minMemoryMbHint"); minMemoryMbHint.setLabel(new StringResourceModel("portal.designer.service.cfjava.minMemoryMbHint",null)); minMemoryMbHint.add(new AttributeModifier("class","small")); minMemoryMbHint.add(new PropertyValidator<>()); getServiceForm().add(minMemoryMbHint); */ //****** Change Icon ******// final TextField<String> iconUrl = new TextField<String>("iconUrl"); iconUrl.setLabel(new StringResourceModel("portal.designer.service.cfjava.iconUrl", null)); //iconUrl.add(new AttributeModifier("title", new StringResourceModel("portal.designer.service.cfjava.iconUrl.help",null))); //Add Wicket validation for URL iconUrl.add(new UrlValidator()); iconUrl.add(new PropertyValidator<>()); iconUrl.add(new OnChangeAjaxBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { // Important, DO NOT DELETE // By Calling OnChangeAjaxBehavior, we update iconUrl field model to can push button preview with updated model } @Override protected void onError(AjaxRequestTarget target, RuntimeException e) { iconUrl.updateModel(); // The feedback is handle when click on preview button so we need to updateModel when there is an error } }); getServiceForm().add(iconUrl); getServiceForm().add(new CacheActivatedImage("imageHelp.iconUrl", getString("image.help"))); WebMarkupContainer imageContainer = new WebMarkupContainer("imageContainer"); final WebMarkupContainer icon = new WebMarkupContainer("icon"); icon.setOutputMarkupId(true); icon.setOutputMarkupPlaceholderTag(true); if (iconUrl.getModelObject() == null || iconUrl.getModelObject().equals("")) { setDefaultIconAndUpdateFeedBack(icon, null, ""); } else { setCustomIconAndUpdateFeedBack(icon, iconUrl, null); } imageContainer.add(icon); final Label feedback = new Label("feedbackError", new Model<String>("")); feedback.setOutputMarkupId(true); imageContainer.add(feedback); AjaxLink preview = new AjaxLink("preview", new Model()) { @Override public void onClick(AjaxRequestTarget target) { try { //If null or empty when click on preview button, clean feedBack and display default image if (iconUrl.getModelObject() == null || iconUrl.getModelObject().equals("")) { setDefaultIconAndCleanFeedBack(icon, feedback); } // Else try to display custom image else { //Construct URL to test integrity of what user typing URL url = new URL(iconUrl.getModelObject().toString()); if (iconUrl.getModelObject() != null) { setCustomIconAndUpdateFeedBack(icon, iconUrl, feedback); } } } catch (MalformedURLException e) { setDefaultIconAndUpdateFeedBack(icon, feedback, e.getMessage()); e.printStackTrace(); } target.add(icon); target.add(feedback); } }; imageContainer.add(preview); getServiceForm().add(imageContainer); }
From source file:com.francetelecom.clara.cloud.presentation.releases.ReleaseActionPanel.java
License:Apache License
public ReleaseActionPanel(String id, final IModel<ApplicationRelease> model, final DataTable dataTable, final ManageApplicationRelease manageApplicationRelease) { super(id, model); this.manageApplicationRelease = manageApplicationRelease; deleteBtn = new AjaxLink<ApplicationRelease>("release-delete", getModel()) { @Override//from w w w. j av a 2 s. c om public void onClick(AjaxRequestTarget target) { try { manageApplicationRelease.deleteApplicationRelease(getModelObject().getUID()); target.add(dataTable); if (getPage() instanceof SelectedAppPage) { ((SelectedAppPage) getPage()).updateAppInfopanel(target); } } catch (ObjectNotFoundException e) { BusinessExceptionHandler handler = new BusinessExceptionHandler(this); handler.error(e); target.add(this.getPage()); } catch (BusinessException e) { // String errMsg = getString("portal.release.action.delete.envexists"); String errMsg = new ResourceModel("portal.release.action.delete.envexists").getObject(); logger.error(errMsg); error(errMsg); } target.add(this.getPage()); } @Override protected void updateAjaxAttributes(AjaxRequestAttributes attributes) { String releaseName = getModelObject().getApplication().getLabel() + " - " + getModelObject().getReleaseVersion(); attributes.getAjaxCallListeners() .add(new DeleteConfirmationDecorator( WicketUtils.getStringResourceModel(this, "portal.release.action.delete.confirm", new Model<String[]>(new String[] { releaseName })).getObject())); // attributes.getAjaxCallListeners().add(new DeleteConfirmationDecorator(getString("portal.release.action.delete.confirm", new Model<String[]>(new String[]{ releaseName })))); } @Override public boolean isVisible() { return canBeDeleted(); } }; deleteBtn.add(new AttributeAppender("title", new ResourceModel("portal.release.action.delete"))); WebMarkupContainer deleteDisabledSpan = new WebMarkupContainer("rel-delete-disable"); if (canBeDeleted()) { deleteDisabledSpan.setVisible(false); } add(deleteDisabledSpan); deleteSpan = new WebMarkupContainer("deleteImg"); deleteBtn.add(deleteSpan); add(deleteBtn); Link<ApplicationRelease> editBtn = new Link<ApplicationRelease>("release-edit", getModel()) { @Override public void onClick() { PageParameters params = new PageParameters(); params.set("appUid", getModelObject().getApplication().getUID()); params.set("releaseUid", getModelObject().getUID()); params.set("edit", "1"); SelectedReleasePage releasePage = new SelectedReleasePage(params); setResponsePage(releasePage); } @Override public boolean isVisible() { return getModelObject().getApplication().isEditable(); } }; editBtn.add(new AttributeAppender("title", new ResourceModel("portal.release.action.edit"))); editSpan = new WebMarkupContainer("editImg"); editBtn.add(editSpan); add(editBtn); WebMarkupContainer editDisabledSpan = new WebMarkupContainer("release-edit-disable"); if (getModelObject().getApplication().isEditable()) { editDisabledSpan.setVisible(false); } add(editDisabledSpan); Link<ApplicationRelease> editArchitectureBtn = new Link<ApplicationRelease>("release-edit-architecture", getModel()) { @Override public void onClick() { PageParameters params = new PageParameters(); params.set("appUid", getModelObject().getApplication().getUID()); params.set("releaseUid", getModelObject().getUID()); DesignerPage designerPage = new DesignerPage(params); setResponsePage(designerPage); } }; // editArchitectureBtn .add(new AttributeAppender("title", new ResourceModel("portal.release.designer.edit.button"))); editArchitectureSpan = new WebMarkupContainer("editArchitectureImg"); editArchitectureBtn.add(editArchitectureSpan); add(editArchitectureBtn); }
From source file:com.lyndir.lhunath.snaplog.webapp.tab.GalleryTabPanel.java
License:Apache License
/** * Create a new {@link GalleryTabPanel} instance. * * @param id The wicket ID that will hold the {@link GalleryTabPanel}. * @param userModel The user whose gallery to show. *//*from w w w . ja v a2s. c om*/ public GalleryTabPanel(final String id) { super(id, new GalleryTabModels(new IModel<User>() { @Override public void detach() { } @Override public User getObject() { return SnaplogSession.get().getFocusedUser(); } @Override public void setObject(final User object) { SnaplogSession.get().setFocusedUser(object); } }).getModel()); // Page info add(new Label("tagsTitleUsername", getModelObject().decoratedUsername())); add(new Label("tagsHelp", msgs.tagsHelp(new LoadableDetachableModel<Boolean>() { @Override protected Boolean load() { return SnaplogSession.get().isAuthenticated(); } }, new LoadableDetachableModel<Boolean>() { @Override protected Boolean load() { return ObjectUtils.isEqual(getModelObject().getObject(), SnaplogSession.get().getActiveUser()); } }, new LoadableDetachableModel<Boolean>() { @Override protected Boolean load() { return tags.getItemCount() == 0; } }, getModelObject().username())).setEscapeModelStrings(false)); // List of tags // TODO: Make this data view top-level to provide Source enumeration elsewhere. add(tags = new AbstractTagsView("tags", getModelObject(), TAGS_PER_PAGE) { @Override protected void populateItem(final Item<Tag> tagItem) { tagItem.add(new AjaxLink<Tag>("link", tagItem.getModel()) { { add(new MediaView("cover", cover(getModel()), Quality.THUMBNAIL, false)); add(new Label("title", getModelObject().getName())); // TODO: Fix HTML injection. add(new Label("description", getModelObject().getDescription()) .setEscapeModelStrings(false)); } @Override public void onClick(final AjaxRequestTarget target) { Tab.TAG.activateWithState(new TagTabPanel.TagTabState(getModelObject())); } }); } }); }
From source file:com.lyndir.lhunath.snaplog.webapp.view.MediaView.java
License:Apache License
/** * @param id The wicket ID of this component. * @param model The model that will provide the {@link Media} to show in this view. * @param quality The quality at which to show the {@link Media}. * @param clickable <code>true</code>: The media will be clickable. When clicked, the {@link #onClick(AjaxRequestTarget)} will be * fired.<br> <code>false</code>: The media will not be clickable. There is no need to implement {@link * #onClick(AjaxRequestTarget)}. */// w w w . j a v a 2s. c om public MediaView(final String id, final IModel<Media> model, final Quality quality, final boolean clickable) { super(id, model); // The media container. WebMarkupContainer media = new WebMarkupContainer("media"); add(media.add(new AttributeAppender("class", new Model<String>(quality.getName()), " "))); // The media image link/container. WebMarkupContainer image; if (clickable) { image = new AjaxFallbackLink<Media>("image", getModel()) { @Override public void onClick(final AjaxRequestTarget target) { MediaView.this.onClick(target); } @Override public boolean isVisible() { return getModelObject() != null; } }; media.add(new CSSClassAttributeAppender("link")); } else image = new WebMarkupContainer("image") { @Override public boolean isVisible() { return getModelObject() != null; } }; media.add(image); media.add(new WebMarkupContainer("tools") { { add(new ExternalLink("original", new LoadableDetachableModel<String>() { @Override protected String load() { try { URL resourceURL = sourceDelegate.findResourceURL(SnaplogSession.get().newToken(), getModelObject(), Quality.ORIGINAL); if (resourceURL == null) // TODO: May want to display something useful to the user like a specific "not-found" thumbnail. return null; return resourceURL.toExternalForm(); } catch (PermissionDeniedException ignored) { // TODO: May want to display something useful to the user like a specific "denied" thumbnail. return null; } } }) { @Override protected void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) { if (!renderAsMini(markupStream, openTag)) super.onComponentTagBody(markupStream, openTag); } }); add(new AjaxLink<Media>("share", getModel()) { @Override public void onClick(final AjaxRequestTarget target) { try { Tab.SHARED.activateWithState(new SharedTabPanel.SharedTabState(getModelObject())); } catch (PermissionDeniedException e) { error(e.getLocalizedMessage()); } } @Override protected void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) { if (!renderAsMini(markupStream, openTag)) super.onComponentTagBody(markupStream, openTag); } @Override public boolean isVisible() { return securityService.hasAccess(Permission.ADMINISTER, SnaplogSession.get().newToken(), getModelObject()); } }); add(new WebMarkupContainer("permissions") { @Override protected void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) { if (!renderAsMini(markupStream, openTag)) super.onComponentTagBody(markupStream, openTag); } @Override public boolean isVisible() { return securityService.hasAccess(Permission.ADMINISTER, SnaplogSession.get().newToken(), getModelObject()); } }); add(new Link<Media>("delete", getModel()) { @Override public void onClick() { try { sourceDelegate.delete(SnaplogSession.get().newToken(), getModelObject()); } catch (PermissionDeniedException e) { error(e.getLocalizedMessage()); } } @Override protected void onComponentTagBody(final MarkupStream markupStream, final ComponentTag openTag) { if (!renderAsMini(markupStream, openTag)) super.onComponentTagBody(markupStream, openTag); } @Override public boolean isVisible() { return securityService.hasAccess(Permission.ADMINISTER, SnaplogSession.get().newToken(), getModelObject()); } }); add(CSSClassAttributeAppender.of(new LoadableDetachableModel<String>() { @Override protected String load() { return isMini(quality) ? "mini" : null; } })); } @Override public boolean isVisible() { return getModelObject() != null; } private boolean renderAsMini(final MarkupStream markupStream, final ComponentTag openTag) { if (isMini(quality)) { // Discard all elements from the markup stream until our close tag. while (markupStream.hasMore()) if (markupStream.next().closes(openTag)) break; replaceComponentTagBody(markupStream, openTag, ""); return true; } return false; } }); image.add(new AttributeModifier("style", true, new LoadableDetachableModel<String>() { @Override protected String load() { try { URL resourceURL = sourceDelegate.findResourceURL(SnaplogSession.get().newToken(), getModelObject(), quality); if (resourceURL == null) // TODO: May want to display something useful to the user like a specific "not-found" thumbnail. return null; return String.format("background-image: url('%s')", resourceURL.toExternalForm()); } catch (PermissionDeniedException ignored) { // TODO: May want to display something useful to the user like a specific "denied" thumbnail. return null; } } })); image.add(new ContextImage("thumb", new LoadableDetachableModel<String>() { @Override protected String load() { logger.dbg("Loading Media: %s, Quality: %s", getModelObject(), quality); try { URL resourceURL = sourceDelegate.findResourceURL(SnaplogSession.get().newToken(), getModelObject(), Quality.THUMBNAIL); if (resourceURL == null) // TODO: May want to display something useful to the user like a specific "not-found" thumbnail. return null; return resourceURL.toExternalForm(); } catch (PermissionDeniedException ignored) { // TODO: May want to display something useful to the user like a specific "denied" thumbnail. return null; } } })); image.add(new ContextImage("full", new LoadableDetachableModel<String>() { @Override protected String load() { try { URL resourceURL = sourceDelegate.findResourceURL(SnaplogSession.get().newToken(), getModelObject(), quality); if (resourceURL == null) // TODO: May want to display something useful to the user like a specific "not-found" thumbnail. return null; return resourceURL.toExternalForm(); } catch (PermissionDeniedException ignored) { // TODO: May want to display something useful to the user like a specific "denied" thumbnail. return null; } } }) { @Override public boolean isVisible() { return quality == Quality.FULLSCREEN; } }); image.add(new Label("caption", new LoadableDetachableModel<String>() { @Override protected String load() { return getCaptionString(); } }) { @Override public boolean isVisible() { return getModelObject() != null; } }); }
From source file:com.socialsite.course.answer.AnswerPanel.java
License:Open Source License
public AnswerPanel(final String id, final IModel<Answer> model, final MarkupContainer dependent) { super(id, model); final Answer answer = model.getObject(); final User user = answer.getUser(); // user image UserLink<User> userImageLink;//from w w w . j av a 2s . c o m final Model<User> senderModel = new Model<User>(user); add(userImageLink = new UserLink<User>("imagelink", senderModel)); userImageLink.add(new ImagePanel("userthumb", user.getId(), ImageType.USER, user.getLastModified(), true)); Link<User> name; add(name = new UserLink<User>("home", senderModel)); name.add(new Label("username", user.getUserName())); add(new Label("date", DateUtils.relativeTime(answer.getTime()))); add(new Label("answer", answer.getText()).setEscapeModelStrings(false)); MarkupContainer commentPanel; add(commentPanel = new CommentsPanel("comments", model)); add(new AddCommentPanel("addcomment", model, commentPanel)); add(new AjaxLink<Answer>("delete", model) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { anserDao.delete(getModelObject()); target.addComponent(dependent); } @Override public boolean isVisible() { return (hasRole(SocialSiteRoles.STAFF) || getModelObject().getUser().getId() == getSessionUserId()); } }); }
From source file:com.socialsite.course.comment.CommentPanel.java
License:Open Source License
public CommentPanel(final String id, final IModel<Comment> model) { super(id, model); setOutputMarkupId(true);//from ww w. ja v a2 s. c o m final Comment comment = model.getObject(); add(new Label("comment", comment.getText()).setEscapeModelStrings(false)); final User user = comment.getUser(); final Model<User> senderModel = new Model<User>(user); Link<User> name; add(name = new UserLink<User>("home", senderModel)); name.add(new Label("username", user.getUserName())); add(new Label("date", DateUtils.relativeTime(comment.getTime()))); add(new AjaxLink<Comment>("delete", model) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { commentDao.delete(getModelObject()); CommentPanel.this.setVisible(false); target.addComponent(CommentPanel.this); } @Override public boolean isVisible() { // let the staff and author to delete the comment return (hasRole(SocialSiteRoles.STAFF) || getModelObject().getUser().getId() == getSessionUserId()); } }); }
From source file:com.socialsite.course.question.QuestionPanel.java
License:Open Source License
public QuestionPanel(final String id, final IModel<Question> model, final MarkupContainer dependent) { super(id, model); final Question question = model.getObject(); final User user = question.getUser(); // user image UserLink<User> userImageLink;/*from w ww . j a v a 2 s . c o m*/ final Model<User> senderModel = new Model<User>(user); add(userImageLink = new UserLink<User>("imagelink", senderModel)); userImageLink.add(new ImagePanel("userthumb", user.getId(), ImageType.USER, user.getLastModified(), true)); Link<User> name; add(name = new UserLink<User>("home", senderModel)); name.add(new Label("username", user.getUserName())); add(new Label("date", DateUtils.relativeTime(question.getTime()))); final Link<Question> questionLink = new Link<Question>("questionlink", model) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick() { SessionUser user = SocialSiteSession.get().getSessionUser(); if (getModelObject().getCourse().getStaff().getId() == user.getId()) { user.setRoles(SocialSiteRoles.staffRole); } else { user.setRoles(SocialSiteRoles.userRole); } setResponsePage(new QuestionPage(model)); } }; add(questionLink); questionLink.add(new Label("heading", question.getHeading())); // Question // TODO show only first two lines of the Question add(new Label("question", question.getText()).setEscapeModelStrings(false)); add(new AjaxLink<Question>("delete", model) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { questionDao.delete(getModelObject()); target.addComponent(dependent); } @Override public boolean isVisible() { return (hasRole(SocialSiteRoles.STAFF) || getSessionUserId() == getModelObject().getUser().getId()); } }); }
From source file:com.socialsite.message.FriendRequestMsgPanel.java
License:Open Source License
public FriendRequestMsgPanel(final String id, final FriendRequestMsg friendRequestMsg, final WebMarkupContainer container) { super(id);/* w w w. j a va 2 s .c o m*/ UserLink<User> user; final User sender = friendRequestMsg.getSender(); // user image UserLink<User> userImageLink; final Model<User> senderModel = new Model<User>(sender); add(userImageLink = new UserLink<User>("imagelink", senderModel)); userImageLink .add(new ImagePanel("userthumb", sender.getId(), ImageType.USER, sender.getLastModified(), true)); add(user = new UserLink<User>("user", new Model<User>(friendRequestMsg.getSender()))); user.add(new Label("name", friendRequestMsg.getSender().getUserName())); add(new Label("message", friendRequestMsg.getMessage())); add(new Link<FriendRequestMsg>("yes", new Model<FriendRequestMsg>(friendRequestMsg)) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick() { FriendRequestMsg friendRequestMsg = getModelObject(); friendRequestMsg = (FriendRequestMsg) messageDao.load(friendRequestMsg.getId()); // add him as the friend final User user = friendRequestMsg.getSender(); user.addFriend(friendRequestMsg.getUsers().iterator().next()); // save the user userDao.save(user); // remove the friend request messageDao.delete(friendRequestMsg); } }); add(new AjaxLink<FriendRequestMsg>("no", new Model<FriendRequestMsg>(friendRequestMsg)) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick(final AjaxRequestTarget target) { // remove the friend request messageDao.delete(getModelObject()); // update the list target.addComponent(container); } }); add(new Label("time", relativeTime(friendRequestMsg.getTime()))); }
From source file:com.socialsite.message.StaffRequestMsgPanel.java
License:Open Source License
public StaffRequestMsgPanel(final String id, final IModel<StaffRequestMsg> model, final WebMarkupContainer container) { super(id, model); UserLink<User> user;/*www . j av a 2 s . c om*/ final StaffRequestMsg staffRequestMsg = model.getObject(); final User sender = staffRequestMsg.getSender(); // user image UserLink<User> userImageLink; final Model<User> senderModel = new Model<User>(sender); add(userImageLink = new UserLink<User>("imagelink", senderModel)); userImageLink .add(new ImagePanel("userthumb", sender.getId(), ImageType.USER, sender.getLastModified(), true)); add(user = new UserLink<User>("user", new Model<User>(staffRequestMsg.getSender()))); user.add(new Label("name", staffRequestMsg.getSender().getUserName())); add(new Link<StaffRequestMsg>("yes", model) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick() { StaffRequestMsg staffRequestMsg = getModelObject(); staffRequestMsg = (StaffRequestMsg) messageDao.load(staffRequestMsg.getId()); // add him as the friend final Staff staff = staffRequestMsg.getSender(); final University university = staffRequestMsg.getUniversity(); university.addStaff(staff); universityDao.save(university); // remove the friend request messageDao.delete(staffRequestMsg); // update the list } }); add(new AjaxLink<StaffRequestMsg>("no", model) { /** * */ private static final long serialVersionUID = 1L; @Override public void onClick(final AjaxRequestTarget target) { // remove the friend request messageDao.delete(getModelObject()); // update the list target.addComponent(container); } }); add(new Label("time", DateUtils.relativeTime(staffRequestMsg.getTime()))); }
From source file:com.tysanclan.site.projectewok.components.EmailChangeConfirmationPanel.java
License:Open Source License
public EmailChangeConfirmationPanel(String id, User user) { super(id);/*from w ww. j av a2 s . c o m*/ EmailChangeConfirmationFilter filter = new EmailChangeConfirmationFilter(); filter.setUser(user); filter.addOrderBy("id", true); List<EmailChangeConfirmation> confirmations = emailChangeConfirmationDAO.findByFilter(filter); EmailChangeConfirmation confirmation = null; if (!confirmations.isEmpty()) { confirmation = confirmations.get(0); } else { setVisible(false); } Form<EmailChangeConfirmation> confirmationForm = new Form<EmailChangeConfirmation>("confirmForm", ModelMaker.wrap(confirmation)) { private static final long serialVersionUID = 1L; @SpringBean private UserService userService; @SpringBean private EmailChangeConfirmationDAO _emailChangeConfirmationDAO; /** * @see org.apache.wicket.markup.html.form.Form#onSubmit() */ @SuppressWarnings("unchecked") @Override protected void onSubmit() { EmailChangeConfirmation conf = getModelObject(); TextField<String> codeField = (TextField<String>) get("code"); String code = codeField.getModelObject(); if (code.equals(conf.getActivationKey())) { userService.setUserMail(conf.getUser(), conf.getEmail()); _emailChangeConfirmationDAO.delete(conf); onConfirmed(); } else { error("Confirmation code incorrect"); } } }; add(confirmationForm); confirmationForm.add(new Label("mail", confirmation != null ? confirmation.getEmail() : "")); confirmationForm.add(new TextField<String>("code", new Model<String>(""))); confirmationForm.add(new AjaxLink<EmailChangeConfirmation>("cancel", ModelMaker.wrap(confirmation)) { private static final long serialVersionUID = 1L; @SpringBean private EmailChangeConfirmationDAO _emailChangeConfirmationDAO; /** * @see org.apache.wicket.ajax.markup.html.AjaxLink#onClick(org.apache.wicket.ajax.AjaxRequestTarget) */ @Override public void onClick(AjaxRequestTarget target) { EmailChangeConfirmation conf = (EmailChangeConfirmation) getModelObject(); _emailChangeConfirmationDAO.delete(conf); onCancel(); } }); }