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.tysanclan.site.projectewok.pages.member.group.AcceptGroupApplicationPage.java

License:Open Source License

/**
 * //from w  w  w  .  j a v  a2s  . co m
 */
public AcceptGroupApplicationPage(Group group) {
    super("Accept group applications");

    groupModel = ModelMaker.wrap(group);

    List<User> users = new LinkedList<User>();
    users.addAll(group.getAppliedMembers());

    add(new ListView<User>("applications", users) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<User> item) {
            User user = item.getModelObject();
            item.add(new Label("name", user.getUsername()));

            Link<User> yesLink = new Link<User>("yes", ModelMaker.wrap(user)) {
                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                @Override
                public void onClick() {
                    groupService.acceptGroupJoinRequest(getUser(), getGroup(), getModelObject());
                    setResponsePage(new AcceptGroupApplicationPage(getGroup()));
                }
            };

            Link<User> noLink = new Link<User>("no", ModelMaker.wrap(user)) {
                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                @Override
                public void onClick() {
                    groupService.declineGroupJoinRequest(getUser(), getGroup(), getModelObject());
                    setResponsePage(new AcceptGroupApplicationPage(getGroup()));
                }
            };

            yesLink.add(new ContextImage("icon", "images/icons/tick.png"));
            noLink.add(new ContextImage("icon", "images/icons/cross.png"));

            item.add(yesLink);
            item.add(noLink);

        }

    });
}

From source file:com.tysanclan.site.projectewok.pages.member.group.EditGroupForumModeratorPage.java

License:Open Source License

public EditGroupForumModeratorPage(GroupForum groupForum) {
    super("Moderators for forum " + groupForum.getName());

    forumModel = ModelMaker.wrap(groupForum);

    Group group = groupForum.getGroup();

    if (!group.getLeader().equals(getUser())) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }//from  w w w  . j  a va2  s  .c om

    add(new Label("title", "Moderators for forum " + groupForum.getName()));

    List<User> moderators = new LinkedList<User>();
    moderators.addAll(groupForum.getModerators());

    Collections.sort(moderators, new Comparator<User>() {

        @Override
        public int compare(User o1, User o2) {
            return o1.getUsername().compareTo(o2.getUsername());
        }

    });

    add(new ListView<User>("moderators", ModelMaker.wrap(moderators)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<User> item) {
            User user = item.getModelObject();
            item.add(new Label("user", user.getUsername()));

            Link<User> deleteLink = new Link<User>("remove", ModelMaker.wrap(user)) {
                private static final long serialVersionUID = 1L;

                @SpringBean
                private ForumService forumService;

                /**
                 * @see org.apache.wicket.markup.html.link.Link#onClick()
                 */
                @Override
                public void onClick() {
                    User moderator = getModelObject();

                    setResponsePage(new EditGroupForumModeratorPage(
                            (GroupForum) forumService.removeModerator(getUser(), getForum(), moderator)));
                }
            };

            deleteLink.add(new ContextImage("icon", "images/icons/group_delete.png"));

            item.add(deleteLink);

        }

    });

    Form<GroupForum> addModeratorForm = new Form<GroupForum>("addForm", ModelMaker.wrap(groupForum)) {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private ForumService forumService;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @SuppressWarnings("unchecked")
        @Override
        protected void onSubmit() {
            DropDownChoice<User> userChoice = (DropDownChoice<User>) get("userSelect");

            User moderator = userChoice.getModelObject();

            setResponsePage(new EditGroupForumModeratorPage(
                    (GroupForum) forumService.addModerator(getUser(), getModelObject(), moderator)));
        }

    };

    List<User> users = new LinkedList<User>();

    users.addAll(group.getGroupMembers());
    users.removeAll(moderators);

    Collections.sort(users, new Comparator<User>() {

        @Override
        public int compare(User o1, User o2) {
            return o1.getUsername().compareToIgnoreCase(o2.getUsername());
        }

    });

    addModeratorForm.add(
            new DropDownChoice<User>("userSelect", ModelMaker.wrap(users.isEmpty() ? null : users.get(0), true),
                    ModelMaker.wrap(users)).setNullValid(false));

    addModeratorForm.setVisible(!users.isEmpty());

    add(addModeratorForm);

    addBackLink(group);
}

From source file:com.tysanclan.site.projectewok.pages.member.group.GroupAchievementApprovalPage.java

License:Open Source License

public GroupAchievementApprovalPage(Group group) {
    super("Achievement requests");

    if (!getUser().equals(group.getLeader())) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }/*www.j  a  v  a2s  . c om*/

    groupModel = ModelMaker.wrap(group);

    add(new ListView<AchievementRequest>("requests",
            ModelMaker.wrap(requestDAO.getPendingGroupRequests(group))) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(final ListItem<AchievementRequest> item) {
            AchievementRequest request = item.getModelObject();

            item.add(new Label("name", request.getAchievement().getName()));
            item.add(new Image("icon", new StoredImageResource(request.getAchievement().getIcon().getImage())));

            item.add(new Label("description", request.getAchievement().getDescription())
                    .setEscapeModelStrings(false));
            item.add(new MemberListItem("requester", request.getRequestedBy()));

            if (request.getEvidencePicture() != null) {
                byte[] evidence = request.getEvidencePicture();

                item.add(new Image("screenshot", new StoredImageResource(evidence)));
            } else {
                item.add(new WebMarkupContainer("screenshot").setVisible(false));
            }

            item.add(new Label("evidence", request.getEvidenceDescription()).setEscapeModelStrings(false));

            item.add(new IconLink.Builder("images/icons/tick.png",
                    new DefaultClickResponder<AchievementRequest>(ModelMaker.wrap(request)) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            achievementService.approveRequest(getUser(), getModelObject());

                            setResponsePage(new GroupAchievementApprovalPage(groupModel.getObject()));

                        }
                    }).setText("Yes, the requirements for this achievement have been met").newInstance("yes"));
            item.add(new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<AchievementRequest>(ModelMaker.wrap(request)) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            achievementService.denyRequest(getUser(), getModelObject());

                            setResponsePage(new GroupAchievementApprovalPage(groupModel.getObject()));

                        }
                    }).setText("No, the requirements for this achievement have not been met")
                            .newInstance("no"));

        }

    });
}

From source file:com.tysanclan.site.projectewok.pages.member.group.GroupForumManagementPage.java

License:Open Source License

/**
 * //from  w w w.j a v a  2  s.  co  m
 */
public GroupForumManagementPage(Group group) {
    super("Forums for " + group.getName());

    if (!group.getLeader().equals(getUser())) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    GroupForumFilter filter = new GroupForumFilter();
    filter.setGroup(group);

    List<GroupForum> forums = groupForumDAO.findByFilter(filter);

    add(new ListView<GroupForum>("forums", ModelMaker.wrap(forums)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<GroupForum> item) {
            GroupForum forum = item.getModelObject();

            item.add(new Label("name", forum.getName()));

            addEditLink(item);
            addModeratorLink(item);
            addDeleteLink(item);

        }

        private void addEditLink(ListItem<GroupForum> item) {
            GroupForum forum = item.getModelObject();
            Link<GroupForum> editLink = new Link<GroupForum>("edit", ModelMaker.wrap(forum)) {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    setResponsePage(new EditGroupForumPage(getModelObject()));
                }

            };

            editLink.add(new ContextImage("icon", "images/icons/book_edit.png"));

            item.add(editLink);
        }

        private void addModeratorLink(ListItem<GroupForum> item) {
            GroupForum forum = item.getModelObject();
            Link<GroupForum> moderatorLink = new Link<GroupForum>("moderators", ModelMaker.wrap(forum)) {
                private static final long serialVersionUID = 1L;

                @Override
                public void onClick() {
                    setResponsePage(new EditGroupForumModeratorPage(getModelObject()));
                }

            };

            moderatorLink.add(new ContextImage("icon", "images/icons/group_edit.png"));

            item.add(moderatorLink);
        }

        private void addDeleteLink(ListItem<GroupForum> item) {
            GroupForum forum = item.getModelObject();

            Link<GroupForum> deleteLink = new Link<GroupForum>("delete", ModelMaker.wrap(forum)) {
                private static final long serialVersionUID = 1L;

                @SpringBean
                private ForumService forumService;

                @Override
                public void onClick() {
                    Group gr = getModelObject().getGroup();

                    if (!forumService.deleteForum(getUser(), getModelObject())) {
                        error("Could not delete non-empty forum!");
                    } else {
                        setResponsePage(new GroupForumManagementPage(gr));
                    }
                }

            };
            deleteLink.add(new ContextImage("icon", "images/icons/delete.png"));

            deleteLink.setVisible(forum.getThreads().isEmpty());
            item.add(deleteLink);
        }

    });

    Link<Group> addLink = new Link<Group>("add", ModelMaker.wrap(group)) {
        private static final long serialVersionUID = 1L;

        @Override
        public void onClick() {
            setResponsePage(new CreateGroupForumPage(getModelObject()));
        }

    };

    addLink.add(new ContextImage("icon", "images/icons/book_add.png"));

    add(addLink);

}

From source file:com.tysanclan.site.projectewok.pages.member.group.GroupMemberManagementPage.java

License:Open Source License

public GroupMemberManagementPage(Group group) {
    super(group.getName() + " - Member Management");

    if (!getUser().equals(group.getLeader()))
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);

    this.groupModel = ModelMaker.wrap(group);

    add(new ListView<User>("members", ModelMaker.wrap(group.getGroupMembers())) {
        private static final long serialVersionUID = 1L;

        @Override/*from ww  w . j  a  va2s .com*/
        protected void populateItem(ListItem<User> item) {
            item.add(new MemberListItem("user", item.getModelObject()));
            item.add(new IconLink.Builder("images/icons/delete.png", new DeleteResponder(item.getModelObject()))
                    .newInstance("delete").setVisible(!item.getModelObject().equals(getUser())));

        }
    });
}

From source file:com.tysanclan.site.projectewok.pages.member.GroupRequestApprovalPage.java

License:Open Source License

/**
 * //w ww  .  j av a 2 s  .  co  m
 */
public GroupRequestApprovalPage() {
    super("Group Request Approval");

    List<GroupCreationRequest> requests = groupCreationRequestDAO.findAll();

    String intro = (requests.size() == 0) ? "There are no pending group creation requests"
            : "There are " + requests.size() + " pending group creation requests:";

    add(new Label("pendingtext", intro));

    add(new ListView<GroupCreationRequest>("pending", ModelMaker.wrap(requests)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<GroupCreationRequest> item) {
            GroupCreationRequest request = item.getModelObject();

            boolean social = request.getGame() == null;

            item.add(new Label("name", request.getName()));
            item.add(new Label("type", social ? "Social Group" : "Gaming Group"));
            item.add(new MemberListItem("leader", request.getRequester()));
            if (social) {
                item.add(new ContextImage("icon", "images/icons/group.png"));
            } else {
                item.add(new Image("icon", new ByteArrayResource("image/gif", request.getGame().getImage())));
            }

            item.add(new Label("description", request.getDescription()).setEscapeModelStrings(false));
            item.add(new Label("motivation", request.getMotivation()).setEscapeModelStrings(false));
            Link<GroupCreationRequest> yesLink = new Link<GroupCreationRequest>("yes",
                    ModelMaker.wrap(request)) {
                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                /**
                 * @see org.apache.wicket.markup.html.link.Link#onClick()
                 */
                @Override
                public void onClick() {
                    groupService.acceptRequest(getUser(), getModelObject());
                    setResponsePage(new GroupRequestApprovalPage());
                }
            };
            Link<GroupCreationRequest> noLink = new Link<GroupCreationRequest>("no", ModelMaker.wrap(request)) {
                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                /**
                 * @see org.apache.wicket.markup.html.link.Link#onClick()
                 */
                @Override
                public void onClick() {
                    groupService.declineRequest(getUser(), getModelObject());
                    setResponsePage(new GroupRequestApprovalPage());
                }
            };

            yesLink.add(new ContextImage("icon", "images/icons/tick.png"));
            noLink.add(new ContextImage("icon", "images/icons/cross.png"));

            item.add(yesLink);
            item.add(noLink);
        }

    });

}

From source file:com.tysanclan.site.projectewok.pages.member.JoinGroupPage.java

License:Open Source License

public JoinGroupPage() {
    super("Join group");

    List<Group> groups = groupDAO.findAll();
    List<Group> currentGroups = getUser().getGroups();

    for (Group group : currentGroups) {
        groups.remove(group);//  w  ww .  j a va2 s.  c om
    }

    List<Group> applied = new LinkedList<Group>();
    List<Group> invited = new LinkedList<Group>();
    List<Group> available = new LinkedList<Group>();

    for (Group group : groups) {
        if (!group.getGroupMembers().contains(getUser())) {
            if (group.getAppliedMembers().contains(getUser())) {
                applied.add(group);
            } else if (group.getInvitedMembers().contains(getUser())) {
                invited.add(group);
            } else {
                switch (group.getJoinPolicy()) {
                case OPEN:
                case APPLICATION:
                    available.add(group);
                    break;
                default:
                }
            }
        }
    }

    String appliedDescription = applied.isEmpty() ? "You have not applied to any groups"
            : "You have applied to the following groups: ";
    String invitedDescription = invited.isEmpty() ? "You have not been invited to join any groups"
            : "You have been invited to join the following groups: ";
    String availableDescription = available.isEmpty() ? "There are no groups available for you to join"
            : "You can apply to join the following groups: ";

    add(new Label("applied-description", appliedDescription));
    add(new Label("invited-description", invitedDescription));
    add(new Label("can-apply-description", availableDescription));
    add(new ListView<Group>("applyToGroups", ModelMaker.wrap(available)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Group> item) {
            Group group = item.getModelObject();

            Link<Group> applyLink = new Link<Group>("apply", ModelMaker.wrap(group)) {

                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                @Override
                public void onClick() {
                    groupService.applyToGroup(getUser(), getModelObject());
                    setResponsePage(new OverviewPage());
                }

            };

            applyLink.add(new ContextImage("icon", "images/icons/group_add.png"));

            item.add(applyLink);

            GroupLink link = new GroupLink("group", group);

            link.add(new Label("name", group.getName()));

            item.add(link);
            item.add(new Label("type", group.getTypeDescription()));

        }

    }.setVisible(!available.isEmpty()));

    add(new ListView<Group>("appliedGroups", ModelMaker.wrap(applied)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Group> item) {
            Group group = item.getModelObject();

            GroupLink link = new GroupLink("group", group);

            link.add(new Label("name", group.getName()));

            item.add(link);
            item.add(new Label("type", group.getTypeDescription()));

        }

    }.setVisible(!applied.isEmpty()));

    add(new ListView<Group>("invited", ModelMaker.wrap(invited)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Group> item) {
            Group group = item.getModelObject();

            Link<Group> yesLink = new Link<Group>("yes", ModelMaker.wrap(group)) {

                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                @Override
                public void onClick() {
                    groupService.acceptInvitation(getUser(), getModelObject());

                    setResponsePage(new JoinGroupPage());
                }

            };

            yesLink.add(new ContextImage("icon", "images/icons/tick.png"));

            item.add(yesLink);

            Link<Group> noLink = new Link<Group>("no", ModelMaker.wrap(group)) {

                private static final long serialVersionUID = 1L;

                @SpringBean
                private GroupService groupService;

                @Override
                public void onClick() {
                    groupService.declineInvitation(getUser(), getModelObject());

                    setResponsePage(new JoinGroupPage());
                }

            };

            noLink.add(new ContextImage("icon", "images/icons/cross.png"));

            item.add(noLink);

            GroupLink link = new GroupLink("group", group);

            link.add(new Label("name", group.getName()));

            item.add(link);
            item.add(new Label("type", group.getTypeDescription()));

        }

    }.setVisible(!invited.isEmpty()));
}

From source file:com.tysanclan.site.projectewok.pages.member.justice.AchievementApprovalPage.java

License:Open Source License

public AchievementApprovalPage() {
    super("Achievement requests");

    add(new ListView<AchievementRequest>("requests",
            ModelMaker.wrap(requestDAO.getNonGroupPendingAchievementRequests())) {

        private static final long serialVersionUID = 1L;

        @Override//  w w w .ja v a2  s  . c o m
        protected void populateItem(final ListItem<AchievementRequest> item) {
            AchievementRequest request = item.getModelObject();
            Achievement achievement = request.getAchievement();
            Game game = achievement.getGame();

            item.add(new Label("name", request.getAchievement().getName()));

            byte[] iconImage = item.getModelObject().getAchievement().getIcon().getImage();

            byte[] gameImage = game != null ? game.getImage() : new byte[0];

            item.add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(iconImage), iconImage)));
            item.add(new Image("game", new ByteArrayResource(ImageUtil.getMimeType(gameImage), gameImage))
                    .setVisible(game != null));

            item.add(new Label("description", request.getAchievement().getDescription())
                    .setEscapeModelStrings(false));
            item.add(new MemberListItem("requester", request.getRequestedBy()));

            if (request.getEvidencePicture() != null) {
                byte[] evidence = request.getEvidencePicture();

                item.add(new Image("screenshot",
                        new ByteArrayResource(ImageUtil.getMimeType(evidence), evidence)));
            } else {
                item.add(new WebMarkupContainer("screenshot").setVisible(false));
            }

            item.add(new Label("evidence", request.getEvidenceDescription()).setEscapeModelStrings(false));

            item.add(new IconLink.Builder("images/icons/tick.png",
                    new DefaultClickResponder<AchievementRequest>(ModelMaker.wrap(request)) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            achievementService.approveRequest(getUser(), getModelObject());

                            setResponsePage(new AchievementApprovalPage());

                        }
                    }).setText("Yes, the requirements for this achievement have been met").newInstance("yes"));
            item.add(new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<AchievementRequest>(ModelMaker.wrap(request)) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            achievementService.denyRequest(getUser(), getModelObject());

                            setResponsePage(new AchievementApprovalPage());

                        }
                    }).setText("No, the requirements for this achievement have not been met")
                            .newInstance("no"));

        }

    });
}

From source file:com.tysanclan.site.projectewok.pages.member.justice.AchievementIconApprovalPage.java

License:Open Source License

public AchievementIconApprovalPage() {
    super("Achievement Icons");

    add(new ListView<AchievementIcon>("pendingIcons", ModelMaker.wrap(getPendingIcons())) {

        private static final long serialVersionUID = 1L;

        @Override/* w w  w.  j a  va2 s .c o  m*/
        protected void populateItem(final ListItem<AchievementIcon> item) {
            AchievementIcon icon = item.getModelObject();
            item.add(new Image("icon",
                    new ByteArrayResource(ImageUtil.getMimeType(icon.getImage()), icon.getImage())));
            item.add(new Label("purpose", item.getModelObject().getPurpose()));
            item.add(new MemberListItem("creator", item.getModelObject().getCreator()));
            item.add(
                    new IconLink.Builder("images/icons/tick.png", new DefaultClickResponder<AchievementIcon>() {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            achievementService.approveIcon(getUser(), item.getModelObject());

                            setResponsePage(new AchievementIconApprovalPage());

                        }
                    }).newInstance("yes"));
            item.add(new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<AchievementIcon>() {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            achievementService.rejectIcon(getUser(), item.getModelObject());

                            setResponsePage(new AchievementIconApprovalPage());

                        }
                    }).newInstance("no"));

        }

    });
}

From source file:com.tysanclan.site.projectewok.pages.member.justice.TrialConfirmationPage.java

License:Open Source License

public TrialConfirmationPage() {
    super("Trial Confirmation");

    TrialFilter filter = new TrialFilter();
    filter.setWithTrialThread(false);//from  w ww  .  j a v a2 s  . c o m

    add(new ListView<Trial>("trials", ModelMaker.wrap(trialDAO.findByFilter(filter))) {
        private static final long serialVersionUID = 1L;

        /**
        * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem)
        */
        @Override
        protected void populateItem(ListItem<Trial> item) {
            Trial trial = item.getModelObject();

            item.add(new MemberListItem("accuser", trial.getAccuser()));
            item.add(new MemberListItem("accused", trial.getAccused()));
            StringBuilder regBuilder = new StringBuilder();

            for (Regulation reg : trial.getRegulations()) {
                if (regBuilder.length() > 0) {
                    regBuilder.append(", ");
                }
                regBuilder.append(reg.getName());
            }

            item.add(new Label("regulations", regBuilder.toString()));
            item.add(new Label("motivation", trial.getMotivation()).setEscapeModelStrings(false));

            item.add(new IconLink.Builder("images/icons/tick.png",
                    new DefaultClickResponder<Trial>(ModelMaker.wrap(trial)) {

                        private static final long serialVersionUID = 1L;

                        /**
                         * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick()
                         */
                        @Override
                        public void onClick() {
                            lawEnforcementService.confirmTrial(getUser(), getModelObject());

                            setResponsePage(new TrialConfirmationPage());
                        }

                    }).newInstance("accept"));

            item.add(new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<Trial>(ModelMaker.wrap(trial)) {

                        private static final long serialVersionUID = 1L;

                        /**
                         * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick()
                         */
                        @Override
                        public void onClick() {
                            lawEnforcementService.dismissTrial(getUser(), getModelObject());

                            setResponsePage(new TrialConfirmationPage());
                        }

                    }).newInstance("dismiss"));
        }
    });
}