Example usage for org.apache.wicket.ajax AjaxRequestTarget getLastFocusedElementId

List of usage examples for org.apache.wicket.ajax AjaxRequestTarget getLastFocusedElementId

Introduction

In this page you can find the example usage for org.apache.wicket.ajax AjaxRequestTarget getLastFocusedElementId.

Prototype

String getLastFocusedElementId();

Source Link

Document

Returns the HTML id of the last focused element.

Usage

From source file:com.hubeleon.wicketlist.HomePage.java

License:Open Source License

public HomePage() {

    final WebMarkupContainer divList = new WebMarkupContainer("ochConfirmCDRsTable");
    divList.setOutputMarkupId(true);/*from  w  w w  .  java  2 s  . c  o  m*/
    divList.setOutputMarkupPlaceholderTag(true);
    setVersioned(false);

    final List<CDRInfo> cdrInfoArray = new ArrayList();
    if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Development) {
        try (Closeable closeable = ObjectifyService.begin()) {
            System.out.println(" #######  get all cdr list");
            List<CDRInfo> ths = ofy().load().type(CDRInfo.class).list();
            cdrInfoArray.addAll(ths);
        }
    }

    final ListView list = new ListView<CDRInfo>("listview", cdrInfoArray) {

        protected void populateItem(final ListItem<CDRInfo> listItem) {

            final CDRInfo cdr = (CDRInfo) listItem.getModelObject();

            System.out.println("Populating List for  " + cdr.getCdrId() + " with status  "
                    + cdr.getCdrStatusType() + " retrieved from database ");

            listItem.setOutputMarkupId(true);
            listItem.setOutputMarkupPlaceholderTag(true);

            listItem.add(new Label("cdr", (cdr.getCdrId() != null ? cdr.getCdrId() : "")));
            listItem.add(new Label("evseId", (cdr.getEvseId() != null ? cdr.getEvseId() : "")));
            final Label lblStatus = new Label("status", new PropertyModel<String>(cdr, "cdrStatusType"));
            lblStatus.setOutputMarkupId(true);
            lblStatus.setOutputMarkupPlaceholderTag(true);

            listItem.add(lblStatus);

            listItem.add(new Label("startDateTime",
                    (cdr.getStartDateTime().toString() != null ? cdr.getStartDateTime().toString() : "")));
            listItem.add(new Label("endDateTime",
                    (cdr.getEndDateTime().toString() != null ? cdr.getEndDateTime().toString() : "")));
            listItem.add(new Label("duration", (cdr.getDuration() != null ? cdr.getDuration() : "")));

            listItem.add(new Label("instance", cdr.getInstance() != null ? cdr.getInstance() : ""));
            listItem.add(new Label("tokenType", cdr.getTokenType() != null ? cdr.getTokenType() : ""));
            listItem.add(new Label("tokenSubType", cdr.getTokenSubType() != null ? cdr.getTokenSubType() : ""));
            listItem.add(new Label("contractId", cdr.getContractId() != null ? cdr.getContractId() : ""));
            listItem.add(new Label("liveAuthId", cdr.getLiveAuthId() != null ? cdr.getLiveAuthId() : ""));

            final Form<CDRInfo> form = new Form<CDRInfo>("myForm", new Model(cdr)) {

                /**
                 * 
                 */
                private static final long serialVersionUID = 1L;

                protected void onSubmit(AjaxRequestTarget target, Form<CDRInfo> form) {
                    CDRInfo c = (CDRInfo) this.getModelObject();
                    System.err.println("######## STATUS:" + c.getCdrStatusType());
                    //this.setResponsePage(new MovieDisplayPage(movie));
                };
            };

            form.setOutputMarkupId(true);
            form.setOutputMarkupPlaceholderTag(true);

            final HiddenField currentState = new HiddenField("currentState",
                    new PropertyModel<String>(cdr, "cdrStatusType"));
            currentState.setOutputMarkupId(true);
            form.add(currentState);

            final HiddenField hcdr = new HiddenField("cdrId", new PropertyModel<String>(cdr, "cdrId"));
            hcdr.setOutputMarkupId(true);
            form.add(hcdr);

            final Model<String> btnStyle = new Model<String>("btn-warning");

            AjaxButton btn = new AjaxButton("stateAcceptButton",
                    new PropertyModel<String>(cdr, "cdrStatusType"), form) {

                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);
                    attributes.setWicketAjaxResponse(false);
                }

                protected void onClick(AjaxRequestTarget target, Form form) {

                }

                protected void onSubmit(AjaxRequestTarget target, Form form) {
                    System.out.println(" ####### " + hcdr.getDefaultModelObjectAsString() + " - "
                            + currentState.getDefaultModelObjectAsString());
                    if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Development) {
                        try (Closeable closeable = ObjectifyService.begin()) {
                            CDRInfo result = (CDRInfo) ofy().load().type(CDRInfo.class)
                                    .id(hcdr.getDefaultModelObjectAsString()).now();
                            result.setCdrStatusType("Accepted");
                            System.out.println("Persisting to database " + result.getCdrId() + " - "
                                    + result.getCdrStatusType() + " ::: " + target.getLastFocusedElementId());
                            ofy().save().entity(result).now();
                            setReuseItems(true);
                            addStateChange();
                            modelChanging();
                            // Remove item and invalidate listView
                            List<CDRInfo> currentList = (List<CDRInfo>) getList();
                            for (CDRInfo i : currentList) {
                                if (i.getCdrId().equalsIgnoreCase(result.getCdrId())) {
                                    System.out.println("#### Found entry and updating state to : "
                                            + result.getCdrStatusType());
                                    currentList.remove(i);
                                    i.setCdrStatusType(result.getCdrStatusType());
                                    System.out.println("#### set list " + currentList);
                                    setList(currentList);
                                    target.appendJavaScript(" document.getElementById('" + lblStatus.getId()
                                            + "').value='" + result.getCdrStatusType() + "';");
                                    System.out.println("#### model changed ");
                                    modelChanged();
                                    System.out.println("#### remove all ");
                                    removeAll();
                                    break;
                                } else {
                                    System.out.println("#### NOT FOUND as charge record " + i.getCdrId()
                                            + ", while we are looking for " + result.getCdrId());
                                }
                            }
                        }
                    }
                    target.add(lblStatus);
                    setResponsePage(HomePage.class);
                }

            };

            btn.add(AttributeModifier.append("class", btnStyle));

            btn.add(new AttributeModifier("cdrStatusType", cdr) {
                protected String newValue(final String currentValue, final String replacementValue) {
                    System.out
                            .println("######## New Value 1:" + replacementValue + " old value " + currentValue);
                    return currentValue + replacementValue;
                }

            });

            form.add(btn);

            AjaxButton btnReject = new AjaxButton("stateRejectButton",
                    new PropertyModel<String>(cdr, "cdrStatusType"), form) {

                protected void updateAjaxAttributes(AjaxRequestAttributes attributes) {
                    super.updateAjaxAttributes(attributes);
                    attributes.setWicketAjaxResponse(false);
                    System.out.println("########updateAjaxAttributes");
                }

                protected void onSubmit(AjaxRequestTarget target, Form form) {
                    System.out.println(" ####### " + hcdr.getDefaultModelObjectAsString() + " - "
                            + currentState.getDefaultModelObjectAsString());
                    if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Development) {
                        try (Closeable closeable = ObjectifyService.begin()) {
                            CDRInfo result = (CDRInfo) ofy().load().type(CDRInfo.class)
                                    .id(hcdr.getDefaultModelObjectAsString()).now();
                            result.setCdrStatusType("Rejected");
                            System.out.println("Persisting to database " + result.getCdrId() + " - "
                                    + result.getCdrStatusType() + " ::: " + target.getLastFocusedElementId());
                            ofy().save().entity(result).now();
                            getList().remove(result);
                        }
                    }
                    target.add(divList);
                }

            };

            btnReject.add(AttributeModifier.append("class", btnStyle));

            btnReject.add(new AttributeModifier("cdrStatusType", cdr) {
                protected String newValue(final String currentValue, final String replacementValue) {
                    System.out.println("######## New Value Reject Button:" + replacementValue + " old value "
                            + currentValue);
                    return currentValue + replacementValue;
                }

            });

            form.add(btnReject);
            listItem.add(form);

        }
    };
    list.setOutputMarkupId(true);
    list.setOutputMarkupPlaceholderTag(true);
    divList.setOutputMarkupId(true);
    divList.setOutputMarkupPlaceholderTag(true);
    divList.add(list);

    add(divList);

}