Example usage for org.apache.wicket.markup.repeater.data ListDataProvider ListDataProvider

List of usage examples for org.apache.wicket.markup.repeater.data ListDataProvider ListDataProvider

Introduction

In this page you can find the example usage for org.apache.wicket.markup.repeater.data ListDataProvider ListDataProvider.

Prototype

public ListDataProvider() 

Source Link

Document

Constructs an empty provider.

Usage

From source file:org.sakaiproject.attendance.tool.panels.GradingRulesListPanel.java

License:Educational Community License

public GradingRulesListPanel(String id, FeedbackPanel feedbackPanel, boolean needRegrade) {
    super(id);/*from   www. j a  v  a2  s . c om*/

    enable(feedbackPanel);

    this.needRegrade = needRegrade;

    final ListDataProvider<GradingRule> rulesProvider = new ListDataProvider<GradingRule>() {
        @Override
        protected List<GradingRule> getData() {
            return attendanceLogic.getGradingRulesForSite(attendanceLogic.getCurrentAttendanceSite());
        }
    };

    final DataView<GradingRule> rules = new DataView<GradingRule>("rules", rulesProvider) {
        @Override
        protected void populateItem(Item<GradingRule> item) {
            GradingRule gradingRule = item.getModelObject();
            final Label rule = new Label("rule",
                    MessageFormat.format(getString("attendance.settings.grading.rule.sentence"),
                            String.valueOf(gradingRule.getPoints()), getStatusString(gradingRule.getStatus()),
                            String.valueOf(gradingRule.getStartRange()),
                            String.valueOf(gradingRule.getEndRange())));
            rule.setEscapeModelStrings(false);
            item.add(rule);
            final Form<GradingRule> deleteForm = new Form<>("delete-form", item.getModel());
            item.add(deleteForm);

            deleteForm.add(new AjaxButton("delete-rule-button", deleteForm) {
                private static final long serialVersionUID = 1L;

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

                    final boolean result = attendanceLogic
                            .deleteGradingRule((GradingRule) form.getModelObject());

                    if (result) {
                        setNeedRegrade(true);
                        target.add(GradingRulesListPanel.this.regradeForm);
                    } else {
                        GradingRulesListPanel.this.pageFeedbackPanel
                                .error(getString("attendance.grading.delete.rule.error"));
                        target.add(GradingRulesListPanel.this.pageFeedbackPanel);
                    }
                    target.add(GradingRulesListPanel.this);
                }

                @Override
                protected void onError(AjaxRequestTarget target, Form<?> form) {
                    target.add(GradingRulesListPanel.this.pageFeedbackPanel);
                }
            });

        }
    };
    rules.setOutputMarkupId(true);

    add(rules);

    this.regradeForm = new Form("regrade-form1") {
        @Override
        public boolean isVisible() {
            return getNeedRegrade();
        }
    };
    regradeForm.add(new AjaxButton("regrade-submit1", regradeForm) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            super.onSubmit(target, form);

            attendanceLogic.regradeAll(attendanceLogic.getCurrentAttendanceSite());

            GradingRulesListPanel.this.pageFeedbackPanel.info(getString("attendance.grading.regrade.success"));

            target.add(GradingRulesListPanel.this);
            target.add(GradingRulesListPanel.this.pageFeedbackPanel);
            setNeedRegrade(false);
            target.add(GradingRulesListPanel.this.regradeForm);
        }

        @Override
        protected void onError(AjaxRequestTarget target, Form<?> form) {
            target.add(GradingRulesListPanel.this.pageFeedbackPanel);
        }
    });
    this.regradeForm.setOutputMarkupId(true);
    add(regradeForm);
}

From source file:org.sakaiproject.ddo.tool.pages.AdminPage.java

License:Educational Community License

public AdminPage() {
    disableLink(adminPageLink);/*w w  w.java  2 s  .co  m*/

    final WebMarkupContainer staffContainer = new WebMarkupContainer("staffContainer");
    staffContainer.setOutputMarkupId(true);
    add(staffContainer);

    ListDataProvider<String> studentWorkerList = new ListDataProvider<String>() {
        @Override
        protected List<String> getData() {
            return new ArrayList<String>(sakaiProxy.getStudentWorkerIds());
        }
    };
    DataView staffDataView = new DataView<String>("ddoStaff", studentWorkerList) {
        @Override
        protected void populateItem(Item item) {
            final String userId = (String) item.getModelObject();
            item.add(new Label("staff-name", sakaiProxy.getUserSortName(userId)));
            item.add(new Label("staff-username", sakaiProxy.getUserDisplayId(userId)));
            item.add(new TextField<String>("staff-userId", Model.of(userId)));
        }
    };

    staffContainer.add(staffDataView);

    final AddBean addStaffBean = new AddBean();

    final Form<AddBean> addStaffForm = new Form<AddBean>("addStaffForm",
            new CompoundPropertyModel<AddBean>(addStaffBean));

    FormComponent formComponent;

    formComponent = new RequiredTextField<String>("userName");
    formComponent.setLabel(new ResourceModel("form.addstaff"));

    addStaffForm.add(formComponent);
    addStaffForm.add(new SimpleFormComponentLabel("add-staff-label", formComponent));

    addStaffForm.add(new AjaxButton("ajax-add-staff", addStaffForm) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            String userId = sakaiProxy.getUserIdForEid(addStaffBean.getUserName());
            boolean success = sakaiProxy.addUserToDDO(userId, DDOConstants.DDO_STAFF_ROLE);
            if (success) {
                info("User " + addStaffBean.getUserName() + " added to DDO Staff.");
                //refresh list
                target.add(staffContainer);
            } else {
                error("Failed to add user " + addStaffBean.getUserName() + " to DDO Staff.");
            }
            target.add(feedbackPanel);
        }

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

    add(addStaffForm);

    final RemoveBean removeStaffBean = new RemoveBean();
    final Form<RemoveBean> removeStaffForm = new Form<RemoveBean>("removeStaffForm",
            new CompoundPropertyModel<RemoveBean>(removeStaffBean));

    FormComponent fc;

    fc = new RequiredTextField<String>("userId");

    removeStaffForm.add(fc);

    removeStaffForm.add(new AjaxButton("ajax-remove-staff", removeStaffForm) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            boolean success = sakaiProxy.removeUserFromDDO(removeStaffBean.getUserId());
            if (success) {
                info("User " + sakaiProxy.getUserDisplayId(removeStaffBean.getUserId())
                        + " removed from DDO Staff.");
                //refresh list
                target.add(staffContainer);
            } else {
                error("Failed to remove user " + sakaiProxy.getUserDisplayId(removeStaffBean.getUserId())
                        + " from DDO Staff.");
            }
            target.add(feedbackPanel);
        }

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

    add(removeStaffForm);

    Link<Void> refreshPage = new Link<Void>("refreshPage") {
        public void onClick() {
            setResponsePage(new AdminPage());
        }
    };
    add(refreshPage);

    final WebMarkupContainer closedContainer = new WebMarkupContainer("closedContainer");
    closedContainer.setOutputMarkupId(true);
    add(closedContainer);

    final ClosedBean closedBean = new ClosedBean();
    final Form<ClosedBean> closedForm = new Form<>("closedForm", new CompoundPropertyModel<>(closedBean));

    FormComponent closedValue = new CheckBox("closed");
    FormComponent closedMessage = new TextArea<String>("message");

    closedForm.add(closedValue);
    closedForm.add(closedMessage);

    closedForm.add(new AjaxButton("ajax-close-ddo", closedForm) {
        @Override
        protected void onSubmit(AjaxRequestTarget target, Form<?> form) {
            boolean closeDDO = closedBean.isClosed();
            sakaiProxy.setDDORealmProperty(DDOConstants.PROP_CLOSED, closeDDO);
            sakaiProxy.setDDORealmProperty(DDOConstants.PROP_CLOSED_MESSAGE, closedBean.getMessage());

            info(closeDDO ? getString("ddo.closed.true") : getString("ddo.closed.false"));
            target.add(closedContainer);
            target.add(feedbackPanel);
        }

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

    closedForm.add(new Label("closed-section-label", getString("ddo.closed.header")));

    closedContainer.add(closedForm);

    add(new Label("closedSectionHeader", getString("ddo.closed.section.header")));
}