Example usage for org.apache.wicket.markup.html.list ListView ListView

List of usage examples for org.apache.wicket.markup.html.list ListView ListView

Introduction

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

Prototype

public ListView(final String id, final List<T> list) 

Source Link

Usage

From source file:com.userweave.module.methoden.questionnaire.page.report.question.freeanswer.FreeQuestionReportPanel.java

License:Open Source License

public FreeQuestionReportPanel(String id, Locale locale, FreeQuestion question,
        com.userweave.pages.configuration.report.FilterFunctorCallback filterFunctorCallback) {
    super(id, locale, question);

    List<FreeAnwer> answers = answerDao.getValidAnswersForQuestion(question,
            filterFunctorCallback.getFilterFunctor());

    List<FreeAnwer> notEmptyAnswers = new ArrayList<FreeAnwer>();

    SummaryStatistics summaryStatistics = SummaryStatistics.newInstance();

    boolean isNumber = false;
    if (answers != null) {
        for (FreeAnwer freeAnwer : answers) {
            String answerString = getAnswerString(freeAnwer);
            if (answerString != null && !answerString.isEmpty()) {
                notEmptyAnswers.add(freeAnwer);

                if (isFreeNumberAnswer(freeAnwer)) {
                    double number = ((FreeNumberAnswer) freeAnwer).getNumber();
                    summaryStatistics.addValue(number);
                    isNumber = true;/*from  w w  w. j a v a 2s .c o m*/
                }
            }
        }
    }

    boolean isVisible = question.getAnswerType() == FreeQuestion.AnswerType.NUMBER;

    addNumber("mean", summaryStatistics.getMean(), isNumber, isVisible);

    addNumber("stdDeviation", summaryStatistics.getStandardDeviation(), isNumber, isVisible);

    setTotalCount(notEmptyAnswers.size());

    add(new ListView("answers", notEmptyAnswers) {
        @Override
        protected void populateItem(ListItem item) {
            item.add(new Label("answer", getAnswerString((FreeAnwer) item.getModelObject())));
        }
    });
}

From source file:com.userweave.module.methoden.questionnaire.page.report.question.multipleanswers.QuestionWithMultiplePossibleAnswersReportPanel.java

License:Open Source License

public QuestionWithMultiplePossibleAnswersReportPanel(String id, Locale locale,
        QuestionWithMultiplePossibleAnswers question) {

    super(id, locale, question);

    // append table sorter
    AjaxRequestTarget target = AjaxRequestTarget.get();

    target.appendJavaScript("$(\"#ratingTable\").tablesorter();");

    add(new ListView("answers", question.getPossibleAnswers()) {
        @Override/*from ww  w . j  ava2 s. co  m*/
        protected void populateItem(ListItem item) {
            LocalizedString possibleAnswer = (LocalizedString) item.getModelObject();

            int absoluteCount = getAbsoluteCount(possibleAnswer);
            double relativeCount = getRealtiveCount(possibleAnswer);

            item.add(new Label("possibleAnswer", new LocalizedModel(possibleAnswer, getStudyLocale())));
            item.add(new Label("absoluteCount", Integer.toString(absoluteCount)));
            item.add(new Label("relativeCount", FormatUtils.formatAsPercent(relativeCount)));
        }
    });
}

From source file:com.userweave.module.methoden.questionnaire.page.report.question.multiplerating.AntipodeRatingReport.java

License:Open Source License

public AntipodeRatingReport(String id, Locale locale, AntipodePair antipodePair,
        AntipodeRatingListModel ratingListModel) {

    super(id);/*from  w  ww  .ja va 2s  . c o  m*/

    final String antipode1 = LocalizationUtils.getValue(antipodePair.getAntipode1(), locale);

    final String antipode2 = LocalizationUtils.getValue(antipodePair.getAntipode2(), locale);

    final int numberOfRatingSteps = ratingListModel.getNumberOfRatingSteps();

    add(new ListView("ratings", ratingListModel.getRatingModels()) {

        @Override
        protected void populateItem(ListItem item) {

            AntipodeRatingModel ratingModel = (AntipodeRatingModel) item.getModelObject();
            Integer rating = ratingModel.getRating();

            String antipode = "";
            if (rating != null) {
                if (rating == 0) {
                    antipode = antipode1;
                } else if (rating == numberOfRatingSteps - 1) {
                    antipode = antipode2;
                }

                item.add(new Label("rating", new Model(rating + 1)));
                item.add(new Label("antipode", new Model(antipode)));
            } else {
                item.add(new Label("rating", "x"));
                item.add(new Label("antipode", "missing"));
            }
            item.add(new Label("absolute", new Model(ratingModel.getAbsoluteCount())));

            item.add(new Label("relative",
                    new Model(FormatUtils.formatAsPercent(ratingModel.getRelativeCount()))));

        }

    });
}

From source file:com.userweave.module.methoden.questionnaire.page.report.QuestionnaireReportUI.java

License:Open Source License

@Override
protected Component createReportContainer(boolean showDetails) {

    if (!showDetails) {
        return new WebMarkupContainer("reportsContainer").add(new WebMarkupContainer("reports"))
                .add(new WebMarkupContainer("report"));
    }/*from   w w  w.j a va2 s . c o m*/

    return new WebMarkupContainer("reportsContainer").add(new ListView("reports",
            new PropertyModel(QuestionnaireReportUI.this.getDefaultModel(), "questions")) {
        @Override
        protected void populateItem(ListItem item) {
            Component report = reportFactory.getReportComponent("report", locale,
                    (Question) item.getModelObject(), getFilterFuctorCallback());
            if (report != null) {
                item.add(report);
            } else {
                item.add(new Label("report", "Kein Report vorhanden"));
            }
        }
    });
}

From source file:com.userweave.module.methoden.rrt.page.report.RrtReportPanel.java

License:Open Source License

public RrtReportPanel(String id, final boolean showDetails, final RrtConfigurationEntity configuration,
        final FilterFunctorCallback filterFunctorCallback) {
    super(id);/*from  w w w  .  ja  va 2 s .  c  o m*/

    termId2Positions = new HashMap<Integer, List<Double>>();

    WebMarkupContainer container = new WebMarkupContainer("container");

    add(container);

    if (showDetails) {
        // pavkovic 2009.06.12: we want to use the system and not the study
        // locale at report panel
        // final Locale studyLocale = getConfiguration().getStudy().getLocale();
        final Locale studyLocale = getLocale();

        addResultCount(configuration, filterFunctorCallback, container);

        List<Object[]> results = findValidResults(configuration, filterFunctorCallback);

        for (Object[] result : results) {
            //            List<OrderedTerm> orderedTerms = result.getOrderedTerms();
            //            if (orderedTerms != null)
            //               for (OrderedTerm orderedTerm : orderedTerms)
            //               {
            //                  addOrderedTermToReport(orderedTerm);
            //               }

            if (result != null && result[0] != null && result[1] != null) {
                addOrderedTermToReport((Integer) result[0], (Integer) result[1]);
            }
        }

        final Map<Integer, MeanAndStdDeviation> termId2Mean = computeMeansForTerms(termId2Positions);

        List<RrtTerm> terms = configuration.getTerms();

        Collections.sort(terms, new Comparator<RrtTerm>() {

            // sort by mean and standard-deviation
            @Override
            public int compare(RrtTerm term1, RrtTerm term2) {
                final MeanAndStdDeviation meanAndStdDev1 = getMeanAndStdDevForTerm(termId2Mean, term1);
                final MeanAndStdDeviation meanAndStdDev2 = getMeanAndStdDevForTerm(termId2Mean, term2);

                Double mean1 = meanAndStdDev1 == null ? 0 : meanAndStdDev1.getMean();
                Double mean2 = meanAndStdDev2 == null ? 0 : meanAndStdDev2.getMean();
                int meanComparison = Double.compare(mean1, mean2);
                if (meanComparison != 0) {
                    return meanComparison;
                } else {
                    Double std1 = meanAndStdDev1 == null ? 0 : meanAndStdDev1.getStdDeviation();
                    Double std2 = meanAndStdDev2 == null ? 0 : meanAndStdDev2.getStdDeviation();
                    return Double.compare(std1, std2);
                }

            }

        });

        container.add(new ListView("results", terms) {
            private static final long serialVersionUID = 1L;

            @Override
            protected void populateItem(ListItem item) {
                RrtTerm term = (RrtTerm) item.getModelObject();

                item.add(new Label("term", new LocalizedPropertyModel(term, "value", studyLocale)));

                final MeanAndStdDeviation mean = getMeanAndStdDevForTerm(termId2Mean, term);

                if (mean != null) {
                    String meanString = Double.toString(mean.getMean());
                    item.add(new Label("mean", formatNumber(meanString)));

                    String stdDeviationString = Double.toString(mean.getStdDeviation());
                    item.add(new Label("stdDeviation", formatNumber(stdDeviationString)));
                } else {
                    item.add(new Label("mean", "--"));
                    item.add(new Label("stdDeviation", "--"));
                }
            }

            private String formatNumber(String stdDeviationString) {
                int indexPoint = stdDeviationString.indexOf('.');

                int digitsAfterPoint = 3;
                int lastIndex = indexPoint + digitsAfterPoint > stdDeviationString.length()
                        ? stdDeviationString.length()
                        : indexPoint + digitsAfterPoint;
                stdDeviationString = stdDeviationString.substring(0, lastIndex);
                return stdDeviationString;
            }
        });

    } else {
        container.setVisible(false);
    }
}

From source file:com.userweave.module.methoden.rrt.page.survey.RrtSurveyUI.java

License:Open Source License

private void addDescriptionList(IModel termsModel) {
    final List<RrtTerm> terms = (List<RrtTerm>) termsModel.getObject();

    // this is a hack!!
    add(new ListView("scale", Collections.singletonList(terms.size() + "")) {

        @Override/*from   w  w w .  j a  v  a  2s  .c  o  m*/
        protected void populateItem(ListItem item) {
            String height = (String) item.getModelObject();
            item.add(new StyleHeightAttributeModifier(true, new Model(height), "height"));
        }
    });

    // this is a hack, as above!!
    // Beschreibung Start
    add(new ListView("desc_box", Collections.singletonList(terms.size() + "")) {

        @Override
        protected void populateItem(ListItem item) {
            String height = (String) item.getModelObject();
            item.add(new StyleHeightAttributeModifier(true, new Model(height), "min-height"));
            RepeatingView termsRepeatingView = new RepeatingView("termValueAndDescription");
            int count = 0;
            for (RrtTerm term : terms) {

                MarkupContainer markupContainer = new WebMarkupContainer(Integer.toString(count));
                termsRepeatingView.add(markupContainer);
                markupContainer.add(
                        new AttributeModifier("id", true, new Model("destermid_" + term.getId().toString())));
                markupContainer.setEscapeModelStrings(false);

                markupContainer.add(new Label("value",
                        new LocalizedPropertyModel(term, "value", RrtSurveyUI.this.getLocale())));
                markupContainer.add(new Label("description",
                        new LocalizedPropertyModel(term, "description", RrtSurveyUI.this.getLocale())));

                count++;
            }
            item.add(termsRepeatingView);
        }
    });
}

From source file:com.userweave.module.methoden.rrt.page.survey.RrtSurveyUI.java

License:Open Source License

private void addCounterList(IModel termsModel) {
    add(new ListView("counterList", termsModel) {
        @Override// www. j av a2s  . c  o  m
        protected void populateItem(ListItem item) {
            WebMarkupContainer counter = new WebMarkupContainer("counter");
            item.add(counter);

            counter.add(new Label("value", Integer.toString(item.getIndex() + 1)));
        }
    });
}

From source file:com.userweave.pages.configuration.project.userpanel.UserListPanel.java

License:Open Source License

/**
 * Default constructor/*from  ww w  . j ava 2s.  com*/
 * 
 * @param id
 *       Markup id of component
 * @param projectUserModel
 *       Purj list model
 * @param selectedProject
 *       The current selected project
 */
public UserListPanel(String id, List<ProjectUserRoleJoin> projectUserList, final Project selectedProject,
        String resourceKey) {
    super(id);

    Label noUserLabel = new Label("noUserLabel", new StringResourceModel(resourceKey, this, null));

    noUserLabel.setVisible(projectUserList == null || projectUserList.isEmpty());

    add(noUserLabel);

    add(new ListView("userList", projectUserList) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem item) {
            ProjectUserRoleJoin join = (ProjectUserRoleJoin) item.getModelObject();

            User user = join.getUser();

            // display name and email address of user
            String userName = user.getForename() + " " + user.getSurname();

            item.add(new Label("userName", userName));
            //item.add(new Label("userEmail", user.getEmail()));

            // add mailto link
            item.add(new ExternalLink("mailto", "mailto:" + user.getEmail()));

            // flag to indicate if the row in this list contains a
            // user, who has a project admin role.
            final boolean joinEqualsProjectAdmin = join.getRole().getRoleName().equals(Role.PROJECT_ADMIN);

            final List<ProjectUserRoleJoin> projectAdmins = purjDao.getProjectAdmins(selectedProject);

            final CustomModalWindow deleteModal = getDeleteModal("deleteModal", join);

            final CustomModalWindow unableToDeleteUserModal = getUnableToDeleteModal("unableToDeleteModal");

            AjaxLink deleteLink = getDeleteLink(deleteModal, unableToDeleteUserModal, joinEqualsProjectAdmin,
                    projectAdmins.size(), selectedProject);

            item.add(deleteLink);
            item.add(deleteModal);
            item.add(unableToDeleteUserModal);

            // workflow logic
            User currentUser = UserWeaveSession.get().getUser();

            if (currentUser.hasRole(Role.PROJECT_ADMIN)) {
                /*
                 * A project admin can delete everybody but himself,
                 * if he is the only project admin. Also he can change
                 * everybodies role, except his own, if he is the only 
                 * project admin.
                 */

                if (!joinEqualsProjectAdmin) {
                    /*
                     * The rendered row is a user, who is not 
                     * a project admin.
                     */
                    item.add(new ListChoiceFragment("roleFragment", roleDao.findAll(), join, currentUser));
                } else {
                    /*
                     * The rendered row is a user, who is a 
                     * project admin. Ensure, that at least
                     * two admins are there before the active
                     * user change the role of the row user.
                     */
                    if (projectAdmins.size() > 1) {
                        item.add(new ListChoiceFragment("roleFragment", roleDao.findAll(), join, currentUser));
                    } else {
                        /*
                         * there is only one project admin and the
                         * current user can't change his role nor 
                         * delete him from this project.
                         */
                        item.add(new LabelFragment("roleFragment", join.getRole().getRoleName()));

                        deleteLink.setVisible(false);
                    }
                }
            } else if (currentUser.hasRole(Role.PROJECT_PARTICIPANT) && !joinEqualsProjectAdmin) // <- participant can't change an admin
            {
                /*
                 * A project participant can change roles of and 
                 * delete guests and other participants.
                 */

                List<Role> roles = roleDao.findAll();
                List<Role> newRoles = new ArrayList<Role>(roles.size() - 1);

                /*
                 *  Populate a list choice with all roles equal 
                 *  or lower to the current users role.
                 */
                for (Role r : roles) {
                    if (!(r.getRoleName().compareTo(Role.PROJECT_ADMIN) == 0)) {
                        newRoles.add(r);
                    }
                }

                // @see: #1313
                if (join.getUser().equals(currentUser)) {
                    item.add(new ListChoiceFragment("roleFragment", newRoles, join, currentUser));
                } else {
                    item.add(new LabelFragment("roleFragment", join.getRole().getRoleName()));
                }
                // a project participant can only delete
                // project guests or himself
                deleteLink.setVisible(
                        //join.getRole().getRoleName().equals(Role.PROJECT_GUEST) || @see: #1313 
                        join.getUser().equals(currentUser));
            } else {
                item.add(new LabelFragment("roleFragment", join.getRole().getRoleName()));

                // guests can always delete themselfs
                deleteLink.setVisible(join.getUser().equals(currentUser));
            }
        }
    });

    feedback = new FeedbackPanel("feedback");

    feedback.setOutputMarkupId(true);

    add(feedback);
}

From source file:com.userweave.pages.configuration.project.userpanel.UserPanel.java

License:Open Source License

/**
 * List of pending not yet accepted invitations.
 * // w  w w  .  j av  a  2s .c  o  m
 * @param project
 *       Project to load invitations for.
 */
private void addPendingInvitations(final Project project) {
    IModel listModel = new LoadableDetachableModel() {
        private static final long serialVersionUID = 1L;

        @Override
        protected Object load() {
            return projectInvitationDao.findByProject(project);
        }
    };

    invitationsList = new ListView("pendingInvitations", listModel) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem item) {
            final ProjectInvitation invitation = (ProjectInvitation) item.getModelObject();

            if (invitation.getAddressee() == null) {
                // user is not yet member of the platform
                item.add(new Label("addressee.email", invitation.getEmail()));
            } else {
                item.add(new Label("addressee.email", invitation.getAddressee().getEmail()));
            }

            item.add(new Label("role",
                    new StringResourceModel(invitation.getRole().getRoleName(), UserPanel.this, null)));

            item.add(new AjaxLink("deleteInvitation") {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick(AjaxRequestTarget target) {
                    projectInvitationService.declineProjectInvitation(invitation.getId());

                    invitationsList.modelChanged();

                    target.addComponent(UserPanel.this);
                    replaceNoInvitations(target);
                }

                @Override
                public boolean isVisible() {
                    User currentUser = UserWeaveSession.get().getUser();

                    return invitation.getAddresser().equals(currentUser)
                            || currentUser.hasRole(Role.PROJECT_ADMIN);
                }
            });
        }
    };

    invitationsList.setOutputMarkupId(true);

    noInvitations = new Label("noInvitations", new StringResourceModel("noInvitations", this, null));

    noInvitations.setVisible(invitationsList.getList().isEmpty());

    noInvitations.setOutputMarkupId(true);

    add(noInvitations);

    add(invitationsList);

}

From source file:com.userweave.pages.configuration.report.ModuleReportListPanel.java

License:Open Source License

public ModuleReportListPanel(String id, IModel studyModel, IModel overallStatisticsModel,
        EventHandler moduleCreatedOrSelectedCallback, EventHandler addFilterCallback,
        FilterFunctorCallback filterFunctorCallback) {
    super(id, studyModel, addFilterCallback);

    this.filterFunctorCallback = filterFunctorCallback;

    this.overallStatisticsModel = overallStatisticsModel;

    add(new ListView("modules", moduleService.getModuleConfigurationsForStudy(getStudy())) {
        private static final long serialVersionUID = 1L;

        @Override/*www  .ja v  a  2  s .c  o m*/
        protected void populateItem(ListItem item) {
            ModuleReportListPanel.this.populateItem(item);
        }
    });
}