Example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink

List of usage examples for org.apache.wicket.markup.html.form SubmitLink SubmitLink

Introduction

In this page you can find the example usage for org.apache.wicket.markup.html.form SubmitLink SubmitLink.

Prototype

public SubmitLink(String id) 

Source Link

Document

With this constructor the SubmitLink must be inside a Form.

Usage

From source file:org.sakaiproject.profile2.tool.pages.panels.ChangeProfilePictureUpload.java

License:Educational Community License

/**
 * Does the actual rendering of the panel
 * @param userUuid//from w  w  w.  j  a v  a  2s . co  m
 */
private void renderChangeProfilePictureUpload(final String userUuid) {

    //setup form   
    Form<Void> form = new Form<Void>("form") {
        private static final long serialVersionUID = 1L;

        public void onSubmit() {

            //get file that was uploaded
            FileUpload upload = uploadField.getFileUpload();

            if (upload == null) {
                log.error("Profile.ChangeProfilePicture.onSubmit: upload was null.");
                //error(new StringResourceModel("error.no.file.uploaded", this, null).getString());
                feedback.setDefaultModel(new ResourceModel("error.no.file.uploaded"));
                return;
            } else if (upload.getSize() == 0) {
                log.error("Profile.ChangeProfilePicture.onSubmit: upload was empty.");
                //error(new StringResourceModel("error.empty.file.uploaded", this, null).getString());
                feedback.setDefaultModel(new ResourceModel("error.empty.file.uploaded"));
                return;
            } else if (!ProfileUtils.checkContentTypeForProfileImage(upload.getContentType())) {
                log.error(
                        "Profile.ChangeProfilePicture.onSubmit: invalid file type uploaded for profile picture");
                //error(new StringResourceModel("error.invalid.image.type", this, null).getString());
                feedback.setDefaultModel(new ResourceModel("error.invalid.image.type"));
                return;
            } else {

                String mimeType = upload.getContentType();
                //String fileName = upload.getClientFileName();

                //ok so get bytes of file uploaded
                byte[] imageBytes = upload.getBytes();

                //add image using ProfileImageLogic which scales and sets up CHS automatically
                if (imageLogic.setUploadedProfileImage(userUuid, imageBytes, mimeType, null)) {

                    //log it
                    log.info("User " + userUuid + " successfully changed profile picture by upload.");

                    //post update event
                    sakaiProxy.postEvent(ProfileConstants.EVENT_PROFILE_IMAGE_CHANGE_UPLOAD,
                            "/profile/" + userUuid, true);

                    if (true == sakaiProxy.isWallEnabledGlobally()
                            && false == sakaiProxy.isSuperUserAndProxiedToUser(userUuid)) {
                        wallLogic.addNewEventToWall(ProfileConstants.EVENT_PROFILE_IMAGE_CHANGE_UPLOAD,
                                sakaiProxy.getCurrentUserId());
                    }

                    //refresh image data
                    if (sakaiProxy.isSuperUserAndProxiedToUser(userUuid)) {
                        setResponsePage(new MyProfile(userUuid));
                    } else {
                        setResponsePage(new MyProfile());
                    }
                } else {
                    //error(new StringResourceModel("error.file.save.failed", this, null).getString());
                    feedback.setDefaultModel(new ResourceModel("error.file.save.failed"));
                    return;
                }

            }

        }

    };

    //get the max upload size from Sakai
    int maxSize = sakaiProxy.getMaxProfilePictureSize();

    //setup form
    form.setMaxSize(Bytes.megabytes(maxSize));
    form.setOutputMarkupId(true);
    form.setMultiPart(true);

    //add warning message if superUser and not editing own image
    Label editWarning = new Label("editWarning");
    editWarning.setVisible(false);
    if (sakaiProxy.isSuperUserAndProxiedToUser(userUuid)) {
        editWarning.setDefaultModel(new StringResourceModel("text.edit.other.warning", null,
                new Object[] { sakaiProxy.getUserDisplayName(userUuid) }));
        editWarning.setEscapeModelStrings(false);
        editWarning.setVisible(true);
    }
    form.add(editWarning);

    //close button component
    CloseButton closeButton = new CloseButton("closeButton", this);
    closeButton.setOutputMarkupId(true);
    form.add(closeButton);

    //text
    Label textSelectImage = new Label("textSelectImage",
            new StringResourceModel("text.upload.image.file", null, new Object[] { maxSize }));
    form.add(textSelectImage);

    //upload
    uploadField = new FileUploadField("picture");
    uploadField.setMarkupId("pictureupload");
    uploadField.setOutputMarkupId(true);
    form.add(uploadField);

    //feedback for form submit action
    feedback = new FeedbackPanel("feedback");
    feedback.setOutputMarkupId(true);
    form.add(feedback);

    //submit button
    IndicatingAjaxButton submitButton = new IndicatingAjaxButton("submit", new ResourceModel("button.upload")) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            target.add(feedback);
        }

        // update feedback panel if validation failed
        protected void onError(AjaxRequestTarget target, Form form) {
            log.debug("ChangeProfilePictureUpload.onSubmit validation failed.");
            target.add(feedback);
        }

    };
    form.add(submitButton);

    //remove link
    final boolean isDefault = imageLogic.profileImageIsDefault(userUuid);
    WebMarkupContainer orRemove = new WebMarkupContainer("orRemove") {

        public boolean isVisible() {
            return !isDefault; //only show if its not default
        }
    };

    SubmitLink removeLink = new SubmitLink("remove") {
        @Override
        public void onSubmit() {
            boolean removed = imageLogic.resetProfileImage(userUuid);
            if (removed) {
                //refresh image data
                if (sakaiProxy.isSuperUserAndProxiedToUser(userUuid)) {
                    setResponsePage(new MyProfile(userUuid));
                } else {
                    setResponsePage(new MyProfile());
                }
            }
        }
    };
    removeLink.setDefaultFormProcessing(false); //don't let it submit the form
    removeLink.add(
            new JavascriptEventConfirmation("onclick", new ResourceModel("link.image.current.remove.confirm")));

    orRemove.add(removeLink);
    form.add(orRemove);

    //add form to page
    add(form);
}

From source file:org.wicketstuff.minis.ListViewFormComponentReuseManagerPage.java

License:Apache License

@SuppressWarnings("serial")
public ListViewFormComponentReuseManagerPage(final PageParameters parameters) {
    final Form<List<Row>> form = new Form<List<Row>>("rowsForm");
    add(form);//  w w  w . j  a v a 2 s .  c om

    form.add(new Button("addRowButton") {
        @Override
        public void onSubmit() {
            rows.add(new Row());
        }
    }.setDefaultFormProcessing(false));

    form.add(new ListView<Row>("rowsList", new PropertyModel<List<Row>>(this, "rows")) {
        @Override
        protected void populateItem(final ListItem<Row> item) {
            final Row row = item.getModelObject();

            item.add(new Label("index", new AbstractReadOnlyModel<Integer>() {
                @Override
                public Integer getObject() {
                    return item.getIndex() + 1;
                }
            }));
            ListViewFormComponentReuseManager.addOrReuse(item,
                    new RequiredTextField<String>("key", new PropertyModel<String>(row, "key")));
            ListViewFormComponentReuseManager.addOrReuse(item,
                    new TextField<String>("value", new PropertyModel<String>(row, "value")));

            item.add(new SubmitLink("removeRowLink") {
                @Override
                public void onSubmit() {
                    getList().remove(item.getModelObject());
                    getParent().getParent().removeAll();
                };
            }.setDefaultFormProcessing(false));
            item.add(new SubmitLink("moveUpLink") {
                @Override
                public boolean isVisible() {
                    return getList().indexOf(item.getModelObject()) > 0;
                };

                @Override
                public void onSubmit() {
                    final int index = getList().indexOf(item.getModelObject());
                    Collections.swap(getList(), index, index - 1);
                    getParent().getParent().removeAll();
                };
            }.setDefaultFormProcessing(false));
            item.add(new SubmitLink("moveDownLink") {
                @Override
                public boolean isVisible() {
                    return getList().indexOf(item.getModelObject()) < getList().size() - 1;
                };

                @Override
                public void onSubmit() {
                    final int index = getList().indexOf(item.getModelObject());
                    Collections.swap(getList(), index, index + 1);
                    getParent().getParent().removeAll();
                };
            }.setDefaultFormProcessing(false));
        }
    }.setReuseItems(true));
}

From source file:org.wicketstuff.poi.ListViewFormComponentReuseManagerPage.java

License:Apache License

@SuppressWarnings("serial")
public ListViewFormComponentReuseManagerPage() {
    rows.add(new Row("foo", 0));
    rows.add(new Row("bar", 1));
    final Form<List<Row>> form = new Form<List<Row>>("rowsForm");
    add(form);//w ww  . j a v  a  2  s.  com
    form.add(new Button("addRowButton") {
        @Override
        public void onSubmit() {
            rows.add(new Row());
        }
    }.setDefaultFormProcessing(false));
    form.add(new Link<Void>("exportToExcel") {
        @Override
        public void onClick() {
            IRequestHandler handler = new TableComponentAsXlsHandler(form.get("rowsList"), "example.xls");
            RequestCycle.get().scheduleRequestHandlerAfterCurrent(handler);
        }
    });
    form.add(new ListView<Row>("rowsList", new PropertyModel<List<Row>>(this, "rows")) {
        @Override
        protected void populateItem(final ListItem<Row> item) {
            final Row row = item.getModelObject();

            item.add(new Label("index", new AbstractReadOnlyModel<Integer>() {
                @Override
                public Integer getObject() {
                    return item.getIndex() + 1;
                }
            }));
            ListViewFormComponentReuseManager.addOrReuse(item,
                    new RequiredTextField<String>("key", new PropertyModel<String>(row, "key")));
            ListViewFormComponentReuseManager.addOrReuse(item,
                    new TextField<Integer>("value", new PropertyModel<Integer>(row, "value")));

            item.add(new SubmitLink("removeRowLink") {
                @Override
                public void onSubmit() {
                    getList().remove(item.getModelObject());
                    getParent().getParent().removeAll();
                };
            }.setDefaultFormProcessing(false));
            item.add(new SubmitLink("moveUpLink") {
                @Override
                public boolean isVisible() {
                    return getList().indexOf(item.getModelObject()) > 0;
                };

                @Override
                public void onSubmit() {
                    final int index = getList().indexOf(item.getModelObject());
                    Collections.swap(getList(), index, index - 1);
                    getParent().getParent().removeAll();
                };
            }.setDefaultFormProcessing(false));
            item.add(new SubmitLink("moveDownLink") {
                @Override
                public boolean isVisible() {
                    return getList().indexOf(item.getModelObject()) < getList().size() - 1;
                };

                @Override
                public void onSubmit() {
                    final int index = getList().indexOf(item.getModelObject());
                    Collections.swap(getList(), index, index + 1);
                    getParent().getParent().removeAll();
                };
            }.setDefaultFormProcessing(false));
        }
    }.setReuseItems(true));
}

From source file:org.yes.cart.web.page.component.customer.address.AddressForm.java

License:Apache License

/**
 * Create address form./* w  w  w  .  java2  s. c o m*/
 *
 * @param s                      form id
 * @param addressIModel          address model.
 * @param addressType            address type
 * @param successPage            success page class
 * @param successPageParameters  success page parameters
 * @param cancelPage             optional cancel page class
 * @param cancelPageParameters   optional  cancel page parameters
 */
public AddressForm(final String s, final IModel<Address> addressIModel, final String addressType,
        final Class<? extends Page> successPage, final PageParameters successPageParameters,
        final Class<? extends Page> cancelPage, final PageParameters cancelPageParameters) {

    super(s, addressIModel);

    this.successPage = successPage;
    this.successPageParameters = successPageParameters;

    final Address address = addressIModel.getObject();

    preprocessAddress(address);
    final boolean creating = address.getAddressId() == 0L;

    final List<State> stateList = getStateList(address.getCountryCode());
    final List<Country> countryList = addressBookFacade.getAllCountries(ShopCodeContext.getShopCode(),
            addressType);

    RepeatingView fields = new RepeatingView(FIELDS);

    add(fields);

    final String lang = getLocale().getLanguage();
    values = addressBookFacade.getShopCustomerAddressAttributes(address.getCustomer(),
            ApplicationDirector.getCurrentShop(), addressType);

    final Map<String, AttrValue> valuesMap = new HashMap<String, AttrValue>();
    for (final AttrValue av : values) {
        valuesMap.put(av.getAttribute().getVal(), av);
        try {
            final Object val = PropertyUtils.getProperty(address, av.getAttribute().getVal());
            av.setVal(val != null ? String.valueOf(val) : null);
        } catch (Exception e) {
            LOG.error("Unable to get address property for {}, prop {}", av.getAttribute(),
                    av.getAttribute().getVal());
        }
    }

    final AttrValue stateCode = valuesMap.get("stateCode");
    final AbstractChoice<State, State> stateDropDownChoice = new DropDownChoice<State>(STATE,
            new StateModel(new PropertyModel(stateCode, "val"), stateList), stateList)
                    .setChoiceRenderer(new StateRenderer());
    final boolean needState = !stateList.isEmpty();
    stateDropDownChoice.setRequired(needState);
    stateDropDownChoice.setVisible(needState);

    final AttrValue countryCode = valuesMap.get("countryCode");
    final AbstractChoice<Country, Country> countryDropDownChoice = new DropDownChoice<Country>(COUNTRY,
            new CountryModel(new PropertyModel(countryCode, "val"), countryList), countryList) {

        @Override
        protected void onSelectionChanged(final Country country) {
            super.onSelectionChanged(country);
            stateDropDownChoice.setChoices(getStateList(country.getCountryCode()));
            final boolean needState = !stateDropDownChoice.getChoices().isEmpty();
            stateDropDownChoice.setRequired(needState);
            stateDropDownChoice.setVisible(needState);
            if (valuesMap.containsKey("stateCode")) {
                valuesMap.get("stateCode").setVal(StringUtils.EMPTY);
            }
        }

        @Override
        protected boolean wantOnSelectionChangedNotifications() {
            return true;
        }

    }.setChoiceRenderer(new CountryRenderer());
    countryDropDownChoice.setRequired(true);

    for (final AttrValue attrValue : values) {

        WebMarkupContainer row;

        if ("countryCode".equals(attrValue.getAttribute().getVal())) {
            row = new WebMarkupContainer(fields.newChildId());
            row.add(getLabel(attrValue, lang));
            row.add(new Fragment("editor", "countryCodeEditor", this).add(countryDropDownChoice));
        } else if ("stateCode".equals(attrValue.getAttribute().getVal())) {
            row = new WebMarkupContainer(fields.newChildId()) {
                @Override
                public boolean isVisible() {
                    return stateDropDownChoice.isVisible();
                }
            };
            row.add(getLabel(attrValue, lang));
            row.add(new Fragment("editor", "stateCodeEditor", this).add(stateDropDownChoice));
        } else {
            row = new WebMarkupContainer(fields.newChildId());
            row.add(getLabel(attrValue, lang));
            row.add(getEditor(attrValue, false));
        }

        fields.add(row);

    }

    final AbstractLink submit = new SubmitLink(ADD_ADDRESS) {

        @Override
        public void onSubmit() {

            final Address addr = getModelObject();

            final boolean isNew = addr.getAddressId() == 0;

            final ShoppingCart cart = ((AbstractWebPage) getPage()).getCurrentCart();
            if (isNew || cart.getLogonState() == ShoppingCart.LOGGED_IN) {

                for (final AttrValue value : values) {
                    try {
                        PropertyUtils.setProperty(addr, value.getAttribute().getVal(), value.getVal());
                    } catch (Exception e) {
                        LOG.error("Unable to set address property for {}, prop {}", value.getAttribute(),
                                value.getAttribute().getVal());
                    }
                }

                final Shop shop = ((AbstractWebPage) getPage()).getCurrentCustomerShop();
                addressBookFacade.createOrUpdate(addr, shop);

                // if we just added new address that became new default or we modified an address that is in the cart
                // reset address
                if (isNew && addr.isDefaultAddress()
                        || Long.valueOf(addr.getAddressId()).equals(cart.getOrderInfo().getBillingAddressId())
                        || Long.valueOf(addr.getAddressId())
                                .equals(cart.getOrderInfo().getDeliveryAddressId())) {
                    final String key = Address.ADDR_TYPE_BILLING.equals(addressType)
                            ? ShoppingCartCommand.CMD_SETADDRESES_P_BILLING_ADDRESS
                            : ShoppingCartCommand.CMD_SETADDRESES_P_DELIVERY_ADDRESS;
                    shoppingCartCommandFactory.execute(ShoppingCartCommand.CMD_SETADDRESES, cart,
                            (Map) new HashMap() {
                                {
                                    put(ShoppingCartCommand.CMD_SETADDRESES,
                                            ShoppingCartCommand.CMD_SETADDRESES);
                                    put(key, addr);
                                }
                            });
                }
            }
            setResponsePage(successPage, successPageParameters);
        }

    };

    add(submit);
    submit.add(new Label("addAddressLabel",
            WicketUtil.createStringResourceModel(this, creating ? "create" : "save")));

    final Component cancel = new SubmitLink(CANCEL_LINK) {

        @Override
        public void onSubmit() {
            setResponsePage(cancelPage, cancelPageParameters);
        }

    }.setDefaultFormProcessing(false).setVisible(cancelPage != null);

    add(cancel);

}

From source file:org.yes.cart.web.page.component.customer.address.ManageAddressesView.java

License:Apache License

/**
 * Create panel to manage addresses/*from ww  w .  j av a2  s .c o  m*/
 *
 * @param panelId             panel id
 * @param customerModel customer model
 * @param addressType   address type to show
 * @param returnToCheckout true if need to return to checkout page after address creation.
 */
public ManageAddressesView(final String panelId, final IModel<Customer> customerModel, final String addressType,
        final boolean returnToCheckout) {

    super(panelId, customerModel);

    final List<Address> allowed = determineAllowedAddresses(customerModel, addressType);

    add(new Form(SELECT_ADDRESSES_FORM)
            .add(new RadioGroup<Address>(ADDRESS_RADIO_GROUP, new Model<Address>(addressBookFacade
                    .getDefaultAddress(customerModel.getObject(), getCurrentCustomerShop(), addressType))) {

                @Override
                protected void onSelectionChanged(final Object o) {
                    final Address address = (Address) o;
                    super.onSelectionChanged(address);
                    addressBookFacade.useAsDefault(address, getCurrentCustomerShop());
                    final String key = Address.ADDR_TYPE_BILLING.equals(addressType)
                            ? ShoppingCartCommand.CMD_SETADDRESES_P_BILLING_ADDRESS
                            : ShoppingCartCommand.CMD_SETADDRESES_P_DELIVERY_ADDRESS;
                    shoppingCartCommandFactory.execute(ShoppingCartCommand.CMD_SETADDRESES, getCurrentCart(),
                            (Map) new HashMap() {
                                {
                                    put(ShoppingCartCommand.CMD_SETADDRESES,
                                            ShoppingCartCommand.CMD_SETADDRESES);
                                    put(key, address);
                                }
                            });
                    ((AbstractWebPage) getPage()).persistCartIfNecessary();
                }

                @Override
                protected boolean wantOnSelectionChangedNotifications() {
                    return true;
                }

            }.add(new Label(ADDRESS_LABEL, new StringResourceModel("addressType" + addressType, this, null)))
                    .add(new SubmitLink(CREATE_LINK) {
                        @Override
                        public void onSubmit() {

                            final Pair<Class<? extends Page>, PageParameters> target = determineAddressPage(
                                    returnToCheckout, 0L, addressType);
                            setResponsePage(target.getFirst(), target.getSecond());

                        }
                    }.setDefaultFormProcessing(false)).add(new ListView<Address>(ADDRESSES_LIST, allowed) {
                        protected void populateItem(final ListItem<Address> addressListItem) {
                            populateAddress(addressListItem, addressListItem.getModelObject(),
                                    returnToCheckout);
                        }
                    }))
            .setVisible(customerModel.getObject() != null));

}

From source file:org.yes.cart.web.page.component.customer.address.ManageAddressesView.java

License:Apache License

/**
 * * Populate address entry//from   w w w.  j a v a  2  s  .c  o  m
 *
 * @param addressListItem list item
 * @param address         address entry
 */
protected void populateAddress(final ListItem<Address> addressListItem, final Address address,
        final boolean returnToCheckout) {

    final String addressString = addressBookFacade.formatAddressFor(address, getCurrentShop(),
            (Customer) getDefaultModelObject(), getLocale().getLanguage());

    addressListItem.add(new Radio<Address>(ADDRESS_RADIO, new Model<Address>(address)))
            .add(new Label(FORMATTED_ADDRESS, makeHtml(addressString)).setEscapeModelStrings(false))
            .add(new SubmitLink(EDIT_LINK) {
                @Override
                public void onSubmit() {

                    final Pair<Class<? extends Page>, PageParameters> target = determineAddressPage(
                            returnToCheckout, address.getAddressId(), address.getAddressType());
                    setResponsePage(target.getFirst(), target.getSecond());

                }
            }.setDefaultFormProcessing(false)).add(new SubmitLink(DELETE_LINK) {
                /** {@inheritDoc} */
                @Override
                public void onSubmit() {
                    final Shop shop = ((AbstractWebPage) getPage()).getCurrentCustomerShop();
                    addressBookFacade.remove(address, shop);
                    if (returnToCheckout) {
                        setResponsePage((Class) wicketPagesMounter.getPageProviderByUri("/checkout").get());
                    } else {
                        setResponsePage((Class) wicketPagesMounter.getPageProviderByUri("/profile").get());
                    }
                }
            }.setDefaultFormProcessing(false));
}

From source file:org.yes.cart.web.page.component.customer.dynaform.DynaFormPanel.java

License:Apache License

/**
 * Construct dynamic form./* w ww. j  a v a2s.c o m*/
 *
 * @param id            component id.
 * @param customerModel customer model
 */
public DynaFormPanel(final String id, final IModel<Customer> customerModel) {

    super(id, customerModel);

    final Shop shop = getCurrentShop();
    final Customer customer = (Customer) getDefaultModelObject();

    final List<Pair<AttrValueCustomer, Boolean>> attrValueCollection = customerService
            .getCustomerProfileAttributes(shop, customer);

    final Form form = new Form(FORM) {

        @Override
        protected void onSubmit() {
            LOG.debug("Attributes will be updated for customer [{}]", customer.getEmail());

            final Map<String, String> values = new HashMap<String, String>();
            for (Pair<? extends AttrValue, Boolean> av : attrValueCollection) {
                LOG.debug("Attribute with code [{}] has value [{}], readonly [{}]", new Object[] {
                        av.getFirst().getAttribute().getCode(), av.getFirst().getVal(), av.getSecond() });
                if (av.getSecond() != null && !av.getSecond()) {
                    if ("salutation".equals(av.getFirst().getAttribute().getCode())) {
                        customer.setSalutation(av.getFirst().getVal());
                    } else if ("firstname".equals(av.getFirst().getAttribute().getCode())) {
                        if (StringUtils.isNotBlank(av.getFirst().getVal())) {
                            customer.setFirstname(av.getFirst().getVal());
                        }
                    } else if ("middlename".equals(av.getFirst().getAttribute().getCode())) {
                        customer.setMiddlename(av.getFirst().getVal());
                    } else if ("lastname".equals(av.getFirst().getAttribute().getCode())) {
                        if (StringUtils.isNotBlank(av.getFirst().getVal())) {
                            customer.setLastname(av.getFirst().getVal());
                        }
                    } else if (!av.getFirst().getAttribute().isMandatory()
                            || StringUtils.isNotBlank(av.getFirst().getVal())) {
                        values.put(av.getFirst().getAttribute().getCode(), av.getFirst().getVal());
                    }
                }
            }

            customerService.updateCustomerAttributes(getCurrentShop(), customer, values);
            info(getLocalizer().getString("profileUpdated", this));
        }
    };

    addOrReplace(form);

    RepeatingView fields = new RepeatingView(FIELDS);

    form.add(fields);

    final String lang = getLocale().getLanguage();

    for (Pair<? extends AttrValue, Boolean> attrValue : attrValueCollection) {

        WebMarkupContainer row = new WebMarkupContainer(fields.newChildId());

        row.add(getLabel(attrValue.getFirst(), lang));

        row.add(getEditor(attrValue.getFirst(), attrValue.getSecond()));

        fields.add(row);

    }

    form.add(new SubmitLink(SAVE_LINK));

    form.add(new Label(CONTENT, ""));

}

From source file:org.yes.cart.web.page.component.customer.password.PasswordPanel.java

License:Apache License

/**
 * Construct form to reset password./*from  www.j av a2s.c om*/
 *
 * @param s             panel id
 * @param customerModel customer model
 */
public PasswordPanel(final String s, final IModel<Customer> customerModel) {

    super(s, customerModel);

    add(new Form<Customer>(PASSWORD_FORM, customerModel) {

        @Override
        protected void onSubmit() {
            customerServiceFacade.resetPassword(getCurrentShop(), getModelObject());

            info(WicketUtil
                    .createStringResourceModel(this, "newPasswordRequestEmailSent",
                            Collections.<String, Object>singletonMap("email", getModelObject().getEmail()))
                    .getString());
            super.onSubmit();
        }

    }.add(new SubmitLink(SAVE_LINK)));

}

From source file:org.yes.cart.web.page.payment.callback.PayPalReturnUrlPage.java

License:Apache License

/**
 * Construct receipt and  confirmation page.
 *
 * @param params page parameters//from   w ww .ja v  a 2 s  . c o m
 */
public PayPalReturnUrlPage(final PageParameters params) {

    super(params);

    final String orderGuid = ApplicationDirector.getShoppingCart().getGuid();

    final CustomerOrder customerOrder = checkoutServiceFacade.findByGuid(orderGuid);

    final PaymentProcessor paymentProcessor = paymentProcessorFactory.create(customerOrder.getPgLabel(),
            customerOrder.getShop().getCode());

    final PaymentGatewayExternalForm paymentGatewayExternalForm = (PaymentGatewayExternalForm) paymentProcessor
            .getPaymentGateway();

    paymentProcessor.setPaymentGateway(paymentGatewayExternalForm);

    final Payment payment = paymentProcessor
            .createPaymentsToAuthorize(customerOrder, true, Collections.EMPTY_MAP, "tmp").get(0);
    // TODO: YC-156 exception handling

    try {

        // we are on step 4 according
        // to https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECGettingStarted
        final Map<String, String> nvpCallResult = paymentGatewayExternalForm
                .getExpressCheckoutDetails(getPageParameters().get("token").toString());

        //Add out information to perform order transition when user click pay
        nvpCallResult.put("orderGuid", ApplicationDirector.getShoppingCart().getGuid());

        final String payerStatus = nvpCallResult.get("PAYERSTATUS");

        final boolean checkoutDetailOk = paymentGatewayExternalForm.isSuccess(nvpCallResult)
                && "verified".equalsIgnoreCase(payerStatus);

        final SubmitLink payLink = new SubmitLink(PAY_LINK);
        payLink.setVisible(checkoutDetailOk);

        final Label infoLabel = new Label(INFO_LABEL);

        add(new StatelessForm(FORM) {

            @Override
            protected void onSubmit() {

                try {
                    paymentCallBackHandlerFacade.handlePaymentCallback(nvpCallResult,
                            ApplicationDirector.getShoppingCart().getOrderInfo().getPaymentGatewayLabel());

                    final CustomerOrder customerOrder = checkoutServiceFacade
                            .findByGuid(ApplicationDirector.getShoppingCart().getGuid());

                    if (checkoutServiceFacade.isOrderPaymentSuccessful(customerOrder)) {

                        addOrReplace(new Label(INFO_LABEL, new StringResourceModel("paymentOk", this, null,
                                (Object) customerOrder.getOrdernum()).getString()

                        ).setEscapeModelStrings(false));

                        payLink.setVisible(false);

                        shoppingCartCommandFactory.execute(ShoppingCartCommand.CMD_CLEAN,
                                ApplicationDirector.getShoppingCart(),
                                Collections.singletonMap(ShoppingCartCommand.CMD_CLEAN, null));

                    } else {
                        // TODO: YC-156 lacks information to show what the real problem is
                        error(getLocalizer().getString("paymentFailed", this));

                    }

                } catch (OrderException e) {

                    ShopCodeContext.getLog(this).error("Cant handle payment callback ", e);

                    error(getLocalizer().getString("paymentFailed", this));
                }

                super.onSubmit();
            }

        }.add(payLink).add(infoLabel).add(new FeedbackPanel(FEEDBACK)));

        if (checkoutDetailOk) {
            info(new StringResourceModel("confirmPayment", this, null, payment.getPaymentAmount(),
                    payment.getOrderCurrency()).getString());
        } else {
            error(getLocalizer().getString("badStatus", this));
        }

        add(new StandardHeader(HEADER));
        add(new StandardFooter(FOOTER));

        add(new ServerSideJs("serverSideJs"));
        add(new HeaderMetaInclude("headerInclude"));

    } catch (IOException e) {
        ShopCodeContext.getLog(this).error("Cant call paypal gateway ", e);
    }
}

From source file:se.inera.axel.riv.webconsole.RivShsServiceMappingEditPage.java

License:Open Source License

@SuppressWarnings({ "unchecked", "rawtypes" })
public RivShsServiceMappingEditPage(PageParameters params) {
    super(params);

    add(new FeedbackPanel("feedback"));

    RivShsServiceMapping mapping = null;
    String id = params.get("id").toString();
    if (id != null) {
        mapping = mappingRepository.findOne(id);
    }//from  w  w  w. j a v  a2 s . com
    if (mapping == null) {
        mapping = new RivShsServiceMapping();
    }
    IModel<RivShsServiceMapping> mappingModel = new CompoundPropertyModel<RivShsServiceMapping>(mapping);
    Form<RivShsServiceMapping> form = new Form<RivShsServiceMapping>("form", mappingModel) {
        @Override
        protected void onSubmit() {
            super.onSubmit();
            RivShsServiceMapping rivShsMapping = getModelObject();

            mappingRepository.save(rivShsMapping);
            setResponsePage(RivShsServiceMappingsPage.class);
        }

        private static final long serialVersionUID = 1L;
    };
    form.add(new ControlGroupContainer(new TextField<String>("rivServiceNamespace").setRequired(true)));

    List<ShsProduct> products = productService.findAll();
    Collections.sort(products, ShsProductComparator.getComparator());
    IChoiceRenderer<String> productRenderer = new ShsProductChoiceRenderer(products);
    form.add(new ControlGroupContainer(
            new DropDownChoice("shsProductId", productsAsIdList(products), productRenderer).setRequired(true)));

    form.add(new ControlGroupContainer(new TextField<String>("rivServiceEndpoint")));
    form.add(new SubmitLink("submit"));
    add(form);
}