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

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

Introduction

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

Prototype

protected DataView(String id, IDataProvider<T> dataProvider) 

Source Link

Usage

From source file:org.patientview.radar.web.pages.admin.AdminUsersPage.java

License:Open Source License

public AdminUsersPage() {
    final ProfessionalUserDataProvider professionalUserDataProvider = new ProfessionalUserDataProvider(
            userManager);/*from  w  w  w.ja  va 2 s  .c o  m*/

    add(new ResourceLink("exportPdf",
            RadarResourceFactory.getExportResource(exportManager.getProfessionalUsersExportData(ExportType.PDF),
                    "users" + AdminsBasePage.EXPORT_FILE_NAME_SUFFIX, ExportType.PDF)));

    add(new ResourceLink("exportExcel",
            RadarResourceFactory.getExportResource(
                    exportManager.getProfessionalUsersExportData(ExportType.EXCEL),
                    "users" + AdminsBasePage.EXPORT_FILE_NAME_SUFFIX, ExportType.EXCEL)));

    add(new BookmarkablePageLink<AdminUserPage>("addNewUser", AdminUserPage.class));

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

    final DataView<ProfessionalUser> userList = new DataView<ProfessionalUser>("users",
            professionalUserDataProvider) {
        @Override
        protected void populateItem(Item<ProfessionalUser> item) {
            builtDataViewRow(item);
        }
    };
    userList.setItemsPerPage(RESULTS_PER_PAGE);
    usersContainer.add(userList);

    // add paging element
    usersContainer
            .add(new RadarAjaxPagingNavigator("navigator", userList, professionalUserDataProvider.size()));

    // add sort links to the table column headers
    for (Map.Entry<String, String> entry : getSortFields().entrySet()) {
        add(new SortLink(entry.getKey(), entry.getValue(), professionalUserDataProvider, userList,
                Arrays.asList(usersContainer)));
    }

    // button to clear all the filter fields for each colum
    final ClearLink clearButton = new ClearLink("clearButton", professionalUserDataProvider, userList,
            usersContainer);
    add(clearButton);

    // add a search field to the top of each column - these will AND each search
    for (Map.Entry<String, String> entry : getFilterFields().entrySet()) {
        add(new SearchField(entry.getKey(), entry.getValue(), professionalUserDataProvider, userList,
                Arrays.asList(usersContainer, clearButton)));
    }

    // add a date filter
    add(new SearchDateField("searchDateRegistered",
            ProfessionalUserFilter.UserField.REGISTRATION_DATE.getDatabaseFieldName(),
            professionalUserDataProvider, userList, Arrays.asList(usersContainer, clearButton)));
}

From source file:org.patientview.radar.web.pages.patient.ExistingPatientsListingPage.java

License:Open Source License

public ExistingPatientsListingPage() {

    DemographicsDataProvider demographicsDataProvider = new DemographicsDataProvider(demographicsManager,
            RadarSecuredSession.get().getUser());

    // List existing patients
    add(new DataView<Patient>("patients", demographicsDataProvider) {
        @Override// w  w  w  . jav a 2s  . com
        protected void populateItem(Item<Patient> item) {
            // Populate fields
            Patient patient = item.getModelObject();

            // TODO: this is terrible as we need to check disease groups to know where to send it - well done abul
            // TODO: need to implement a patient base page with the constructors needed and then have an enum map
            // TODO: that maps disease ids to the page they need to go to so we dont need all these ifs
            if (patient.getDiseaseGroup() != null
                    && (patient.getDiseaseGroup().getId().equals(DiseaseGroup.SRNS_DISEASE_GROUP_ID)
                            || patient.getDiseaseGroup().getId().equals(DiseaseGroup.MPGN_DISEASEGROUP_ID))) {
                item.add(new BookmarkablePageLink<SrnsPatientPage>("edit", SrnsPatientPage.class,
                        SrnsPatientPage.getParameters(patient)));
            } else if (patient.getDiseaseGroup() != null
                    && patient.getDiseaseGroup().getId().equals(DiseaseGroup.ALPORT_DISEASEGROUP_ID)) {
                item.add(new BookmarkablePageLink<AlportPatientPage>("edit", AlportPatientPage.class,
                        AlportPatientPage.getPageParameters(patient)));
            } else if (patient.getDiseaseGroup() != null
                    && patient.getDiseaseGroup().getId().equals(DiseaseGroup.HNF1B_DISEASEGROUP_ID)) {
                item.add(new BookmarkablePageLink<AlportPatientPage>("edit", HNF1BPatientPage.class,
                        HNF1BPatientPage.getPageParameters(patient)));
            } else {
                item.add(new BookmarkablePageLink<GenericPatientPage>("edit", GenericPatientPage.class,
                        GenericPatientPage.getPageParameters(patient)));
            }

            item.add(new Label("surname"), new Label("forename"));
            item.add(DateLabel.forDatePattern("dob", RadarApplication.DATE_PATTERN2));
            item.add(new Label("id", Long.toString(patient.getRadarNo())));

            String diseaseGroup = "";
            if (patient.getDiseaseGroup() != null) {
                diseaseGroup = patient.getDiseaseGroup().getId();
            }

            item.add(new Label("diagnosis", diseaseGroup));

            item.add(new Label("nhsNumber", patient.getNhsno()).setEscapeModelStrings(false));
            item.add(new Label("hospitalnumber"));
            item.add(DateLabel.forDatePattern("dateReg", RadarApplication.DATE_PATTERN2));
            item.add(new Label("status.abbreviation",
                    patient.getStatusModel() != null ? patient.getStatusModel().getAbbreviation() : ""));
            item.add(new Label("renalUnit.name"));

            item.add(new Label("rrtModalityEunm"));
            DemographicsUserDetail demographicsUserDetail = demographicsManager
                    .getDemographicsUserDetail(patient.getNhsno(), patient.getUnitcode());

            item.add(new Label("lastverificationdate",
                    formatDate(demographicsUserDetail.getLastverificationdate())));
            item.add(new Label("email", patient.getEmailAddress()));

            item.add(new Label("lastlogon", formatDate(demographicsUserDetail.getLastlogon())));
            item.add(
                    new Label("accountlocked", "" + (demographicsUserDetail.isAccountlocked() ? "Yes" : "No")));
        }

        private String formatDate(Date date) {
            return date == null ? "" : DateFormatUtils.format(date, RadarApplication.DATE_PATTERN2);
        }
    });
}

From source file:org.patientview.radar.web.pages.RecruitmentPage.java

License:Open Source License

public RecruitmentPage() {
    DataView<Patient> demographicsDataView = new DataView<Patient>("recruitmenItem",
            new DemographicsDataProvider(demographicsManager)) {
        @Override//from  w  w w  .  j av  a  2 s .co  m
        protected void populateItem(Item<Patient> item) {
            Patient patient = item.getModelObject();
            item.add(new Label("renalUnit.name"));
            item.add(new Label("id"));
            item.add(new Label("diagnosis", diagnosisManager.getDiagnosisName(patient)));
            item.add(DateLabel.forDatePattern("dateReg", RadarApplication.DATE_PATTERN2));
            item.add(new Label("status.abbreviation"));
        }
    };

    add(demographicsDataView);
}

From source file:org.sakaiproject.attendance.tool.pages.AddEventPage.java

License:Educational Community License

public AddEventPage(AttendanceEvent aE) {
    disableLink(addEventLink);//from w  w  w .j a va2s.c  om

    add(new Label("items-header", getString("attendance.items.header")));

    this.attendanceEvent = aE;

    this.eventFormContainer = new WebMarkupContainer("event-form-container");
    eventFormContainer.setOutputMarkupId(true);

    if (attendanceEvent != null) {
        this.deleteItem = new ConfirmationLink<Void>("delete-event", getString("attendance.delete.confirm")) {
            @Override
            public void onClick(AjaxRequestTarget ajaxRequestTarget) {
                String name = attendanceEvent.getName();
                if (attendanceLogic.deleteAttendanceEvent(attendanceEvent)) {
                    getSession().info(name + " deleted successfully.");
                    refreshPageComponents(ajaxRequestTarget);
                }
            }
        };

    } else {
        // Add dummy/hidden delete link
        this.deleteItem = new ConfirmationLink<Void>("delete-event", "") {
            @Override
            public void onClick(AjaxRequestTarget ajaxRequestTarget) {
                // Do nothing
            }
        };
        deleteItem.setVisible(false);
    }
    eventFormContainer.add(deleteItem);

    eventForm = createForm();
    eventFormContainer.add(eventForm);

    eventFormContainer.add(new Label("add-edit-header", getString("attendance.add.edit.header")));

    add(eventFormContainer);

    this.eventListContainer = new WebMarkupContainer("event-list-container");
    eventListContainer.setOutputMarkupId(true);

    this.eventDataProvider = new EventDataProvider();

    DataView<AttendanceEvent> attendanceEventDataView = new DataView<AttendanceEvent>("event-list",
            eventDataProvider) {
        @Override
        protected void populateItem(final Item<AttendanceEvent> item) {
            ConfirmationLink<Void> deleteLink = new ConfirmationLink<Void>("delete-link",
                    getString("attendance.delete.confirm")) {
                @Override
                public void onClick(AjaxRequestTarget ajaxRequestTarget) {
                    String name = item.getModelObject().getName();
                    if (attendanceLogic.deleteAttendanceEvent(item.getModelObject())) {
                        getSession().info(name + " deleted successfully.");
                        refreshPageComponents(ajaxRequestTarget);
                    } else {
                        getSession().error("Failed to delete " + name);
                        refreshPageComponents(ajaxRequestTarget);
                    }
                }
            };
            item.add(deleteLink);
            Link<Void> editLink = new Link<Void>("edit-link") {
                @Override
                public void onClick() {
                    setResponsePage(new AddEventPage(item.getModelObject()));
                }
            };
            item.add(editLink);
            Link<Void> eventLink = new Link<Void>("event-link") {
                private static final long serialVersionUID = 1L;

                public void onClick() {
                    setResponsePage(new EventView(item.getModelObject(), BasePage.ITEMS_PAGE));
                }
            };
            eventLink.add(new Label("event-name", item.getModelObject().getName()));
            item.add(eventLink);
            item.add(new Label("item-date", item.getModelObject().getStartDateTime()));
        }
    };

    eventListContainer.add(attendanceEventDataView);
    eventListContainer.add(new Label("items-list-header", getString("attendance.items.list.header")));

    add(eventListContainer);
}

From source file:org.sakaiproject.attendance.tool.pages.EventView.java

License:Educational Community License

private void createTable() {
    Set<AttendanceRecord> records = this.attendanceEvent.getRecords();

    add(new Label("student-name", new ResourceModel("attendance.event.view.student.name")));

    add(new AttendanceRecordFormHeaderPanel("record-header"));

    // Generate records if none exist
    if (records == null || records.isEmpty()) {
        List<AttendanceRecord> recordList = attendanceLogic.updateAttendanceRecordsForEvent(
                this.attendanceEvent, this.attendanceEvent.getAttendanceSite().getDefaultStatus());
        records = new HashSet<>(recordList);
    } else {/*from   w w w .  java  2  s .c  o  m*/
        // Generate records for added students
        List<String> currentStudentIds = sakaiProxy.getCurrentSiteMembershipIds();
        for (AttendanceRecord record : records) {
            currentStudentIds.remove(record.getUserID());
        }
        List<AttendanceRecord> recordList = attendanceLogic.updateMissingRecordsForEvent(this.attendanceEvent,
                this.attendanceEvent.getAttendanceSite().getDefaultStatus(), currentStudentIds);
        records.addAll(recordList);
    }
    this.attendanceEvent.setRecords(records);

    // Add form to filter table
    final Form<?> filterForm = new Form<Void>("filter-table-form") {
        @Override
        protected void onSubmit() {
            setResponsePage(new EventView(attendanceEvent, returnPage, groupChoice.getModelObject()));
        }
    };

    add(filterForm);

    List<String> groupIds = sakaiProxy.getAvailableGroupsForCurrentSite();
    Collections.sort(groupIds, new Comparator<String>() {
        @Override
        public int compare(String o1, String o2) {
            return sakaiProxy.getGroupTitleForCurrentSite(o1)
                    .compareTo(sakaiProxy.getGroupTitleForCurrentSite(o2));
        }
    });
    groupChoice = new DropDownChoice<>("group-choice", new PropertyModel<>(this, "selectedGroup"), groupIds,
            new IChoiceRenderer<String>() {
                @Override
                public Object getDisplayValue(String s) {
                    return sakaiProxy.getGroupTitleForCurrentSite(s);
                }

                @Override
                public String getIdValue(String s, int i) {
                    return s;
                }
            });
    groupChoice.setNullValid(true);

    groupChoice.add(new AjaxFormSubmitBehavior("onchange") {
        @Override
        protected void onSubmit(AjaxRequestTarget target) {
            super.onSubmit(target);
        }
    });
    filterForm.add(groupChoice);
    filterForm.add(new Label("group-choice-label", new ResourceModel("attendance.event.view.filter")));

    add(new DataView<AttendanceRecord>("records",
            new AttendanceRecordProvider(this.attendanceEvent, selectedGroup)) {
        @Override
        protected void populateItem(final Item<AttendanceRecord> item) {
            final String stuId = item.getModelObject().getUserID();
            final String sortName = sakaiProxy.getUserSortName(stuId);
            final String displayId = sakaiProxy.getUserDisplayId(stuId);
            Label stuName = new Label("stu-name", sortName + " (" + displayId + ")");

            Link<Void> studentLink = new Link<Void>("stu-link") {
                @Override
                public void onClick() {
                    setResponsePage(new StudentView(stuId, item.getModelObject().getAttendanceEvent().getId(),
                            returnPage));
                }
            };
            studentLink.add(stuName);
            item.add(studentLink);
            item.add(new AttendanceRecordFormDataPanel("record", item.getModel(), returnPage, feedbackPanel));
        }
    });
}

From source file:org.sakaiproject.attendance.tool.pages.Overview.java

License:Educational Community License

private void createHeaders() {
    // Main header
    Label headerOverview = new Label("header-overview", new ResourceModel("attendance.overview.header"));

    String addButtonText = (new ResourceModel("attendance.add.button")).getObject();
    String takeAttendanceNowText = (new ResourceModel("attendance.now.button")).getObject();
    Label headerInfo = new Label("overview-header-info", new StringResourceModel(
            "attendance.overview.header.info", null, new Object[] { addButtonText, takeAttendanceNowText }));
    headerInfo.setEscapeModelStrings(false);

    //headers for the table
    Label headerEventName = new Label("header-event-name",
            new ResourceModel("attendance.overview.header.event.name"));
    Label headerEventDate = new Label("header-event-date",
            new ResourceModel("attendance.overview.header.event.date"));

    DataView<AttendanceStatus> statusHeaders = new DataView<AttendanceStatus>("status-headers",
            attendanceStatusProvider) {/*from   w w w  .  java2  s . c o  m*/
        @Override
        protected void populateItem(Item<AttendanceStatus> item) {
            item.add(new Label("header-status-name", getStatusString(item.getModelObject().getStatus())));
        }
    };
    add(statusHeaders);

    Label headerEventEdit = new Label("header-event-edit",
            new ResourceModel("attendance.overview.header.event.edit"));
    Label headerPrintLinks = new Label("header-print-links",
            new ResourceModel("attendance.overview.header.print"));

    add(headerOverview);
    add(headerInfo);
    add(headerEventName);
    add(headerEventDate);
    add(headerEventEdit);
    add(headerPrintLinks);

}

From source file:org.sakaiproject.attendance.tool.pages.Overview.java

License:Educational Community License

private void createTable() {
    EventDataProvider eventDataProvider = new EventDataProvider();
    DataView<AttendanceEvent> attendanceEventDataView = new DataView<AttendanceEvent>("events",
            eventDataProvider) {// w  ww .  j ava 2 s .  co  m
        @Override
        protected void populateItem(final Item<AttendanceEvent> item) {
            final AttendanceEvent modelObject = item.getModelObject();
            final String name = modelObject.getName();
            final AttendanceItemStats itemStats = attendanceLogic.getStatsForEvent(modelObject);
            Link<Void> eventLink = new Link<Void>("event-link") {
                private static final long serialVersionUID = 1L;

                public void onClick() {
                    setResponsePage(new EventView(modelObject, BasePage.OVERVIEW_PAGE));
                }
            };
            eventLink.add(new Label("event-name", name));

            item.add(eventLink);
            item.add(new Label("event-date", modelObject.getStartDateTime()));

            DataView<AttendanceStatus> activeStatusStats = new DataView<AttendanceStatus>("active-status-stats",
                    attendanceStatusProvider) {
                @Override
                protected void populateItem(Item<AttendanceStatus> item) {
                    Status status = item.getModelObject().getStatus();
                    int stat = attendanceLogic.getStatsForStatus(itemStats, status);
                    item.add(new Label("event-stats", stat));
                }
            };
            item.add(activeStatusStats);

            final AjaxLink eventEditLink = getAddEditWindowAjaxLink(modelObject, "event-edit-link");
            eventEditLink.add(new Label("event-edit-alt",
                    new StringResourceModel("attendance.icon.edit.alt", null, new String[] { name })));
            item.add(eventEditLink);

            final AjaxLink printLink = new AjaxLink<Void>("print-link") {
                @Override
                public void onClick(AjaxRequestTarget ajaxRequestTarget) {
                    printPanel = new PrintPanel("print-panel", item.getModel());
                    printContainer.setOutputMarkupId(true);
                    printContainer.addOrReplace(printPanel);
                    printHiddenClass.setObject("printVisible");
                    ajaxRequestTarget.add(printContainer);
                }
            };
            printLink.add(new Label("event-print-alt",
                    new StringResourceModel("attendance.icon.print.event.alt", null, new String[] { name })));
            item.add(printLink);
        }
    };
    add(attendanceEventDataView);

    // Create empty table placeholder and make visible based on empty data provider
    Label noEvents = new Label("no-events", getString("attendance.overview.no.items"));
    noEvents.setEscapeModelStrings(false);

    if (eventDataProvider.size() > 0) {
        noEvents.setVisible(false);
    }

    add(noEvents);
}

From source file:org.sakaiproject.attendance.tool.pages.panels.AttendanceRecordFormDataPanel.java

License:Educational Community License

private void createStatusRadio(final Form<AttendanceRecord> rF) {

    AttendanceStatusProvider attendanceStatusProvider = new AttendanceStatusProvider(
            attendanceLogic.getCurrentAttendanceSite(), AttendanceStatusProvider.ACTIVE);
    DataView<AttendanceStatus> attendanceStatusRadios = new DataView<AttendanceStatus>("status-radios",
            attendanceStatusProvider) {// w w  w  . j a  v  a  2  s .  c  o m
        @Override
        protected void populateItem(Item<AttendanceStatus> item) {
            Radio statusRadio = new Radio<Status>("record-status",
                    new Model<Status>(item.getModelObject().getStatus()));
            item.add(statusRadio);
            statusRadio.add(new AjaxFormSubmitBehavior(rF, "onclick") {
                protected void onSubmit(AjaxRequestTarget target) {
                    for (Component c : ajaxTargets) {
                        target.add(c);
                    }
                }
            });
            ajaxTargets.add(statusRadio);
        }
    };

    RadioGroup group = new RadioGroup<Status>("attendance-record-status-group",
            new PropertyModel<Status>(this.recordIModel, "status"));
    group.setOutputMarkupPlaceholderTag(true);
    group.setRenderBodyOnly(false);
    group.add(attendanceStatusRadios);
    group.setEnabled(!this.restricted);

    rF.add(group);
}

From source file:org.sakaiproject.attendance.tool.pages.panels.AttendanceRecordFormHeaderPanel.java

License:Educational Community License

private WebMarkupContainer createStatusHeader() {
    WebMarkupContainer status = new WebMarkupContainer("status");

    AttendanceStatusProvider attendanceStatusProvider = new AttendanceStatusProvider(
            attendanceLogic.getCurrentAttendanceSite(), AttendanceStatusProvider.ACTIVE);
    DataView<AttendanceStatus> statusHeaders = new DataView<AttendanceStatus>("status-headers",
            attendanceStatusProvider) {/*from   w ww  .  ja  v a2s.  c o m*/
        @Override
        protected void populateItem(Item<AttendanceStatus> item) {
            item.add(new Label("header-status-name", getStatusString(item.getModelObject().getStatus())));
        }
    };
    status.add(statusHeaders);

    return status;
}

From source file:org.sakaiproject.attendance.tool.pages.panels.StatisticsPanel.java

License:Educational Community License

private WebMarkupContainer createTable() {
    WebMarkupContainer infoContainer = new WebMarkupContainer("info-container");
    infoContainer.add(createRefreshLink());
    infoContainer.setOutputMarkupId(true);

    if (attendanceEvent != null) {
        infoContainer.add(new Label("item-info-header", new ResourceModel("attendance.event.view.item.info")));
        stats = attendanceLogic.getStatsForEvent(attendanceEvent);
    } else {//from   ww  w  . ja v  a 2  s  .com
        infoContainer
                .add(new Label("item-info-header", new ResourceModel("attendance.student.view.item.info")));
        stats = attendanceLogic.getStatsForUser(userId);
    }

    AttendanceStatusProvider attendanceStatusProvider = new AttendanceStatusProvider(
            attendanceLogic.getCurrentAttendanceSite(), AttendanceStatusProvider.ACTIVE);

    DataView<AttendanceStatus> statusHeaders = new DataView<AttendanceStatus>("status-headers",
            attendanceStatusProvider) {
        @Override
        protected void populateItem(Item<AttendanceStatus> item) {
            item.add(new Label("header-status-name", getStatusString(item.getModelObject().getStatus())));
        }
    };
    infoContainer.add(statusHeaders);

    DataView<AttendanceStatus> activeStatusStats = new DataView<AttendanceStatus>("active-status-stats",
            attendanceStatusProvider) {
        @Override
        protected void populateItem(Item<AttendanceStatus> item) {
            item.add(new Label("stats", stats.get(item.getModelObject().getStatus())));
        }
    };
    infoContainer.add(activeStatusStats);

    infoContainer.add(new Label("info", new ResourceModel("attendance.statistics.info")));

    return infoContainer;
}