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.CommitteePage.java

License:Open Source License

/**
 * /*from   ww  w.  ja v a 2  s.  co  m*/
 */
public CommitteePage() {
    super("Committee Management");

    Form<Committee> createForm = new Form<Committee>("committeeform") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private GroupService groupService;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @SuppressWarnings("unchecked")
        @Override
        protected void onSubmit() {
            TextArea<String> descriptionArea = (TextArea<String>) get("description");
            TextField<String> nameField = (TextField<String>) get("name");
            DropDownChoice<User> userChoice = (DropDownChoice<User>) get("leader");

            String description = descriptionArea.getModelObject();
            String name = nameField.getModelObject();
            User leader = userChoice.getModelObject();

            if (name == null || name.isEmpty()) {
                error("Name may not be empty");
            } else if (description == null || description.isEmpty()) {
                error("Description may not be empty");
            } else if (leader == null) {
                error("You must select a chairman for this committee");
            } else {
                Committee committee = groupService.createCommittee(name, description);
                groupService.setGroupLeader(leader, committee);
                groupService.addUserToGroup(leader, committee);
                logService.logUserAction(getUser(), "Groups", "Committee created: " + name);

                setResponsePage(new GroupPage(committee));
            }
        }

    };

    List<User> users = userService.getMembers();
    createForm
            .add(new DropDownChoice<User>("leader", ModelMaker.wrap((User) null, true), ModelMaker.wrap(users))
                    .setNullValid(false));

    createForm.add(new BBCodeTextArea("description", ""));
    createForm.add(new TextField<String>("name", new Model<String>("")));

    add(createForm);

    CommitteeFilter filter = new CommitteeFilter();
    filter.addOrderBy("name", true);

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

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

            item.add(new Label("name", committee.getName()));
            item.add(new MemberListItem("chairman", committee.getLeader()));
            IconLink.Builder builder = new Builder("images/icons/delete.png", new DisbandResponder(committee));
            item.add(builder.newInstance("disband"));

        }

        class DisbandResponder extends IconLink.DefaultClickResponder<Committee> {
            private static final long serialVersionUID = 1L;

            /**
             * 
             */
            public DisbandResponder(Committee committee) {
                super(ModelMaker.wrap(committee));
            }

            /**
             * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick()
             */
            @Override
            public void onClick() {
                setResponsePage(new DisbandGroupPage(getModelObject()));
            }
        }

    });

}

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

License:Open Source License

private void addPendingRequests() {
    GroupCreationRequestFilter filter = new GroupCreationRequestFilter();
    filter.setRequester(getUser());//  ww  w .ja v  a 2s  .co m

    List<GroupCreationRequest> requests = groupCreationRequestDAO.findByFilter(filter);

    String intro = (requests.size() == 0) ? "You have no pending group creation requests"
            : "You have " + requests.size() + " pending group creation requests:";
    add(new Label("pendingtext", intro));
    add(new ListView<GroupCreationRequest>("requests", ModelMaker.wrap(requests)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<GroupCreationRequest> item) {
            GroupCreationRequest request = item.getModelObject();
            item.add(new Label("name", request.getName()));
            item.add(new Label("type", request.getGame() == null ? "Social Group" : "Gaming Group"));
            item.add(new Label("description", request.getDescription()).setEscapeModelStrings(false));
            item.add(new Label("motivation", request.getMotivation()).setEscapeModelStrings(false));

        }

    }.setVisible(requests.size() > 0));

}

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

License:Open Source License

private void init(List<GameRealmCartesian> cartesians) {
    add(new ListView<GameRealmCartesian>("deadrealms", cartesians) {
        private static final long serialVersionUID = 1L;

        /**//ww  w .j a  va  2 s  .  c o  m
        * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem)
        */
        @Override
        protected void populateItem(ListItem<GameRealmCartesian> item) {
            GameRealmCartesian cartesian = item.getModelObject();

            Game game = cartesian.getGame();
            Realm realm = cartesian.getRealm();

            item.add(new Label("game", game.getName()));
            item.add(new Label("realm", realm.getName()));
            item.add(new Label("listed", Model.of(gameService.countPlayers(game, realm))));
            item.add(new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<GameRealmCartesian>(

                            new Model<GameRealmCartesian>(cartesian)) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            GameRealmCartesian cart = getModelObject();

                            Game g = cart.getGame();
                            Realm r = cart.getRealm();

                            User user = getUser();

                            gameService.removeFromRealm(user, r, g);

                            setResponsePage(new OverviewPage());

                        }

                    }).newInstance("delete"));
        }
    });
}

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

License:Open Source License

/**
 * //www .j  a  v a 2s  .  c o  m
 */
public EditAccountsPage() {
    super("Edit Accounts");

    Form<User> form = new Form<User>("gameform") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private GameService gameService;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @SuppressWarnings("unchecked")
        @Override
        protected void onSubmit() {
            DropDownChoice<GameRealmCartesian> cartesianChoice = (DropDownChoice<GameRealmCartesian>) get(
                    "choices");
            GameRealmCartesian cartesian = cartesianChoice.getModelObject();

            gameService.addPlayedGame(getUser(), cartesian.getGame(), cartesian.getRealm());

            setResponsePage(new EditAccountsPage());
        }
    };

    add(form);

    List<GameRealmCartesian> cartesians = new LinkedList<GameRealmCartesian>();

    for (Game game : gameDAO.findAll()) {
        for (Realm realm : game.getRealms()) {
            cartesians.add(new GameRealmCartesian(game, realm));
        }
    }

    for (UserGameRealm ugr : getUser().getPlayedGames()) {
        cartesians.remove(new GameRealmCartesian(ugr.getGame(), ugr.getRealm()));
    }

    form.add(new DropDownChoice<GameRealmCartesian>("choices", new Model<GameRealmCartesian>(null), cartesians,
            new GameRealmCartesianRenderer()));

    add(form);

    List<UserGameRealm> played = new LinkedList<UserGameRealm>();
    played.addAll(getUser().getPlayedGames());

    Collections.sort(played, new Comparator<UserGameRealm>() {
        /**
         * @see java.util.Comparator#compare(java.lang.Object,
         *      java.lang.Object)
         */
        @Override
        public int compare(UserGameRealm o1, UserGameRealm o2) {
            return o1.getGame().getName().compareToIgnoreCase(o2.getGame().getName());
        }
    });

    add(new ListView<UserGameRealm>("played", ModelMaker.wrap(played)) {
        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<UserGameRealm> item) {
            UserGameRealm ugr = item.getModelObject();

            item.add(new AccountPanel("accountpanel", ugr));

        }
    });

}

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

License:Open Source License

/**
 * /*from  ww w  . ja v a  2  s  .  c  o m*/
 */
public EditForumModeratorPage(Forum forum) {
    super("Moderator Management");

    forumModel = ModelMaker.wrap(forum);

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

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

    Collections.sort(moderators, new CaseInsensitiveUserComparator());

    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();
                    forumService.removeModerator(getUser(), getForum(), moderator);

                    setResponsePage(new EditForumModeratorPage(getForum()));
                }
            };

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

            item.add(deleteLink);

        }

    });

    Form<Forum> addModeratorForm = new Form<Forum>("addForm", ModelMaker.wrap(forum)) {
        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();

            forumService.addModerator(getUser(), getModelObject(), moderator);

            setResponsePage(new EditForumModeratorPage(getModelObject()));
        }

    };

    UserFilter filter = new UserFilter();
    filter.addRank(Rank.CHANCELLOR);
    filter.addRank(Rank.SENATOR);
    filter.addRank(Rank.TRUTHSAYER);
    filter.addRank(Rank.REVERED_MEMBER);
    filter.addRank(Rank.SENIOR_MEMBER);
    filter.addRank(Rank.FULL_MEMBER);
    filter.addRank(Rank.JUNIOR_MEMBER);
    filter.addOrderBy("username", true);

    List<User> users = userDAO.findByFilter(filter);

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

    add(addModeratorForm);

    add(new Link<Void>("back") {
        private static final long serialVersionUID = 1L;

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

    });
}

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

License:Open Source License

/**
 * //from ww w.  j  a va 2  s  . c  om
 */
public EndorsementPage() {
    super("Endorsements");

    Set<User> endorsements = getUser().getEndorsedBy();
    Set<User> endorsements2 = getUser().getEndorsedForSenateBy();

    add(new WebMarkupContainer("nousers").setVisible(endorsements.isEmpty()));

    add(new WebMarkupContainer("nousers3").setVisible(endorsements2.isEmpty()));

    List<User> endorsers = new ArrayList<User>();
    endorsers.addAll(endorsements);

    List<User> endorsers2 = new ArrayList<User>();
    endorsers2.addAll(endorsements2);

    Collections.sort(endorsers, new Comparator<User>() {
        @Override
        public int compare(User u1, User u2) {
            return u1.getUsername().compareTo(u2.getUsername());
        }

    });

    Collections.sort(endorsers2, new Comparator<User>() {
        @Override
        public int compare(User u1, User u2) {
            return u1.getUsername().compareTo(u2.getUsername());
        }

    });

    add(new ListView<User>("users", ModelMaker.wrap(endorsers)) {

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

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

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

    add(new ListView<User>("users2", ModelMaker.wrap(endorsers2)) {

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

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

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

    User endorses = getUser().getEndorses();
    String endorsesName = endorses == null ? "Nobody" : endorses.getUsername();

    add(new WebMarkupContainer("nousers2").setVisible(endorses == null));
    WebMarkupContainer container = new WebMarkupContainer("endorsed");
    container.add(new Label("user", endorsesName));
    container.setVisible(endorses != null);

    add(container);

    Form<User> endorsementForm = new Form<User>("endorseform") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private DemocracyService democracyService;

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

            if (democracyService.isElectionCandidate(getUser().getEndorses())) {
                error("You are currently endorsing a running candidate,"
                        + " you must wait until after elections before you can change your endorsement");
            } else {
                democracyService.endorseUserForChancellor(endorser, target);

                setResponsePage(new EndorsementPage());
            }
        }

    };

    UserFilter filter = new UserFilter();
    filter.addRank(Rank.CHANCELLOR);
    filter.addRank(Rank.SENATOR);
    filter.addRank(Rank.TRUTHSAYER);
    filter.addRank(Rank.REVERED_MEMBER);
    filter.addRank(Rank.SENIOR_MEMBER);
    filter.addRank(Rank.FULL_MEMBER);
    filter.setRetired(false);
    filter.addOrderBy("username", true);

    List<User> eligible = userDAO.findByFilter(filter);
    eligible.remove(getUser());

    endorsementForm
            .add(new DropDownChoice<User>("targetUser", ModelMaker.wrap(endorses), ModelMaker.wrap(eligible))
                    .setNullValid(true));

    add(endorsementForm);

    Form<User> endorsementForm2 = new Form<User>("endorseform2") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private DemocracyService democracyService;

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

            if (democracyService.isElectionCandidate(getUser().getEndorsesForSenate())) {
                error("You are currently endorsing a running candidate,"
                        + " you must wait until after elections before you can change your endorsement");
            } else {
                democracyService.endorseUserForSenate(endorser, target);

                setResponsePage(new EndorsementPage());
            }
        }

    };

    UserFilter filter2 = new UserFilter();
    filter2.addRank(Rank.CHANCELLOR);
    filter2.addRank(Rank.SENATOR);
    filter2.addRank(Rank.TRUTHSAYER);
    filter2.addRank(Rank.REVERED_MEMBER);
    filter2.addRank(Rank.SENIOR_MEMBER);
    filter2.addRank(Rank.FULL_MEMBER);
    filter2.setRetired(false);

    List<User> eligible2 = userDAO.findByFilter(filter2);
    eligible2.remove(getUser());

    User endorsesForSenate = getUser().getEndorsesForSenate();
    String endorsesForSenateName = endorsesForSenate == null ? "Nobody" : endorsesForSenate.getUsername();

    endorsementForm2.add(new DropDownChoice<User>("targetUser", ModelMaker.wrap(endorsesForSenate),
            ModelMaker.wrap(eligible)).setNullValid(true));

    add(endorsementForm2);

    add(new WebMarkupContainer("nousers4").setVisible(endorsesForSenate == null));
    WebMarkupContainer container2 = new WebMarkupContainer("endorsed2");
    container2.add(new Label("user", endorsesForSenateName));
    container2.setVisible(endorsesForSenate != null);

    add(container2);
}

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

License:Open Source License

/**
 * //www . j a  va2  s .c o m
 */
public FinancePage() {
    super("Clan Finances");

    // Charts:
    // - cash flow
    // - annual expense breakdown
    // - cash reserves
    // - reserve expiration date
    // - donations
    // - contribution
    // - subscriptions
    List<Expense> expenses = expenseDAO.findAll();
    List<Expense> filtered = new LinkedList<Expense>();

    BigDecimal sum = new BigDecimal(0).setScale(2);

    DateTime now = new DateTime();
    DateTime oneMonthAgo = now.minusMonths(1);
    DateTime oneYearAgo = now.minusYears(1);
    DateTime year1997 = new DateTime(1997, 1, 1, 12, 0, 0, 0);

    for (Expense expense : expenses) {
        if (expense.getEnd() == null || expense.getEnd().after(now.toDate())) {
            switch (expense.getPeriod()) {
            case MONTHLY:
                sum = sum.add(expense.getAmount().multiply(factor12));
                break;
            case QUARTERLY:
                sum = sum.add(expense.getAmount().multiply(factor4));
                break;
            case SEMIANNUALLY:
                sum = sum.add(expense.getAmount().multiply(factor2));
                break;
            case ANNUALLY:
                sum = sum.add(expense.getAmount());
                break;
            case BIANNUALLY:
                sum = sum.add(expense.getAmount().divide(factor2, RoundingMode.HALF_UP));
                break;
            }

            filtered.add(expense);
        }
    }

    add(new ListView<Expense>("expenses", ModelMaker.wrap(filtered)) {
        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<Expense> item) {
            Expense expense = item.getModelObject();

            item.add(new Label("name", expense.getName()));
            String regularity = null;
            IModel<String> yearlyExpense = null;

            boolean amountPerTermVisible = true;

            switch (expense.getPeriod()) {
            case MONTHLY:
                regularity = "Monthly";
                yearlyExpense = new DollarSignModel(
                        new Model<BigDecimal>(expense.getAmount().multiply(factor12)));
                break;
            case QUARTERLY:
                regularity = "Quarterly";
                yearlyExpense = new DollarSignModel(
                        new Model<BigDecimal>(expense.getAmount().multiply(factor4)));
                break;
            case SEMIANNUALLY:
                regularity = "Semiannually";
                yearlyExpense = new DollarSignModel(
                        new Model<BigDecimal>(expense.getAmount().multiply(factor2)));
                break;
            case BIANNUALLY:
                regularity = "Biannually";
                yearlyExpense = new DollarSignModel(
                        new Model<BigDecimal>(expense.getAmount().divide(factor2, RoundingMode.HALF_UP)));
                break;
            default:
                amountPerTermVisible = false;
                regularity = "Annually";
                yearlyExpense = new DollarSignModel(new Model<BigDecimal>(expense.getAmount()));

            }

            item.add(new Label("regularity", regularity));

            item.add(new Label("amounteach", new DollarSignModel(new Model<BigDecimal>(expense.getAmount())))
                    .setVisible(amountPerTermVisible));
            item.add(new Label("annualfee", yearlyExpense));
        }
    });

    add(new Label("annualcost", new DollarSignModel(new Model<BigDecimal>(sum))));

    FinancialTimeline timeline = new FinancialTimeline(expenseDAO, donationDAO, subscriptionDAO,
            paidExpenseDAO);

    // Finance overview charts

    addLineChart("monthlychart", "Cash flow last month", 2, timeline.getCashFlow(oneMonthAgo, now));
    addLineChart("yearlychart", "Cash flow last year", 2, timeline.getCashFlow(oneYearAgo, now));
    addLineChart("alltimechart", "Cash flow all time", 2, timeline.getCashFlow(year1997, now));
    add(GraphUtil.makePieChart("monthlyparticipation", "Participation last month",
            timeline.getParticipation(oneMonthAgo, now)));
    add(GraphUtil.makePieChart("annualparticipation", "Participation last year",
            timeline.getParticipation(oneYearAgo, now)));
    add(GraphUtil.makePieChart("alltimeparticipation", "All time participation",
            timeline.getParticipation(year1997, now)));

    add(GraphUtil.makeReservesBarChart("reserves", "Cash reserves by donator", timeline.getReservesAt(now)));

    add(new BookmarkablePageLink<CharterPage>("charter", CharterPage.class));
    add(new WebMarkupContainer("un")
            .add(AttributeModifier.replace("value", "Tysan Donation by " + getUser().getUsername())));
    User treasurer = roleService.getTreasurer();

    add(new HiddenField<String>("paypalAddress",
            new Model<String>(treasurer != null ? treasurer.getPaypalAddress() : "disable"))
                    .add(AttributeModifier.replace("name", "business")));

    add(new ActivateSubscriptionPanel("activatesubscription", getUser(), new FinancePageLink()));
    add(new ViewSubscriptionPanel("viewsubscription", getUser(), new FinancePageLink()));
}

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

License:Open Source License

/**
*///from  w w w . j  a  va2s.  c  om
private ListView<ForumCategory> createCategoryListView() {
    return new ListView<ForumCategory>("categories", ModelMaker.wrap(forumCategoryDAO.findAll())) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<ForumCategory> item) {
            final int catindex = item.getIndex();

            ForumCategory category = item.getModelObject();
            item.add(new Label("name", category.getName()));

            Link<ForumCategory> createForumLink = new Link<ForumCategory>("add", ModelMaker.wrap(category)) {

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

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

            };

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

            item.add(createForumLink);

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

                @SpringBean
                private ForumService forumService;

                @Override
                public void onClick() {
                    forumService.deleteCategory(getUser(), getModelObject());
                    setResponsePage(new ForumManagementPage());
                }

            };
            deleteLink.setVisible(category.getForums().isEmpty());
            deleteLink.add(new ContextImage("icon", "images/icons/cross.png"));
            deleteLink.add(new Label("name2", category.getName()));
            item.add(deleteLink);
            item.add(new Label("allowpublic",
                    category.isAllowPublicGroupForums() ? "This category may contain public group forums"
                            : "This category may not contains public group forums"));

            final int total = category.getForums().size();

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

                @Override
                protected void populateItem(ListItem<Forum> innerItem) {
                    Forum forum = innerItem.getModelObject();
                    innerItem.add(new Label("name", forum.getName()));
                    Link<Forum> moveUpLink = new Link<Forum>("moveup", ModelMaker.wrap(forum)) {
                        private static final long serialVersionUID = 1L;

                        @SpringBean
                        private ForumService forumService;

                        @Override
                        public void onClick() {
                            forumService.moveUp(getModelObject());

                            setResponsePage(new ForumManagementPage());
                        }

                    };

                    moveUpLink.setVisible(innerItem.getIndex() != 0);

                    moveUpLink.add(new ContextImage("icon", "images/icons/arrow_up.png"));

                    innerItem.add(moveUpLink);

                    Link<Forum> moveDownLink = new Link<Forum>("movedown", ModelMaker.wrap(forum)) {
                        private static final long serialVersionUID = 1L;

                        @SpringBean
                        private ForumService forumService;

                        @Override
                        public void onClick() {
                            forumService.moveDown(getModelObject());

                            setResponsePage(new ForumManagementPage());
                        }

                    };

                    moveDownLink.setVisible(innerItem.getIndex() != (total - 1));

                    moveDownLink.add(new ContextImage("icon", "images/icons/arrow_down.png"));

                    innerItem.add(moveDownLink);

                    Link<Forum> catPrevLink = new Link<Forum>("catprev", ModelMaker.wrap(forum)) {
                        private static final long serialVersionUID = 1L;

                        @SpringBean
                        private ForumService forumService;

                        @Override
                        public void onClick() {
                            Forum _forum = getModelObject();
                            List<ForumCategory> cats = forumCategoryDAO.findAll();

                            ForumCategory current = _forum.getCategory();

                            int index = cats.indexOf(current);

                            if (index != -1) {
                                int target = index - 1;
                                ForumCategory targetCat = cats.get(target);

                                forumService.moveToCategory(getUser(), _forum, targetCat);

                                setResponsePage(new ForumManagementPage());
                            }

                        }

                    };

                    catPrevLink.setVisible(catindex != 0 && !(forum instanceof GroupForum));

                    catPrevLink.add(new ContextImage("icon", "images/icons/book_previous.png"));

                    innerItem.add(catPrevLink);

                    Link<Forum> catNextLink = new Link<Forum>("catnext", ModelMaker.wrap(forum)) {
                        private static final long serialVersionUID = 1L;

                        @SpringBean
                        private ForumService forumService;

                        @Override
                        public void onClick() {
                            Forum _forum = getModelObject();
                            List<ForumCategory> cats = forumCategoryDAO.findAll();

                            ForumCategory current = _forum.getCategory();

                            int index = cats.indexOf(current);

                            if (index != -1) {
                                int target = index + 1;
                                ForumCategory targetCat = cats.get(target);

                                forumService.moveToCategory(getUser(), _forum, targetCat);

                                setResponsePage(new ForumManagementPage());
                            }

                        }

                    };

                    catNextLink.setVisible(
                            catindex != (forumCategoryDAO.countAll() - 1) && !(forum instanceof GroupForum));

                    catNextLink.add(new ContextImage("icon", "images/icons/book_next.png"));

                    innerItem.add(catNextLink);

                    Link<Forum> editLink = new Link<Forum>("edit", ModelMaker.wrap(forum)) {
                        private static final long serialVersionUID = 1L;

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

                    };

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

                    editLink.setVisible(!(forum instanceof GroupForum));

                    innerItem.add(editLink);

                    Link<Forum> moderatorLink = new Link<Forum>("moderators", ModelMaker.wrap(forum)) {
                        private static final long serialVersionUID = 1L;

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

                    };

                    moderatorLink.setVisible(!(forum instanceof GroupForum));

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

                    innerItem.add(moderatorLink);

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

                        @SpringBean
                        private ForumService forumService;

                        @Override
                        public void onClick() {
                            forumService.deleteForum(getUser(), getModelObject());
                            setResponsePage(new ForumManagementPage());
                        }

                    };

                    _deleteLink.setVisible(forum.getThreads().isEmpty() && !(forum instanceof NewsForum)
                            && !(forum instanceof GroupForum));

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

                    innerItem.add(_deleteLink);

                }

            });

        }

    };
}

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

License:Open Source License

public GameManagementPage() {
    super("Game Management");

    add(new ListView<Game>("games", ModelMaker.wrap(gameDAO.findAll())) {
        private static final long serialVersionUID = 1L;

        @Override/*ww  w  .  j ava  2 s. c  om*/
        protected void populateItem(ListItem<Game> item) {
            Game game = item.getModelObject();

            item.add(new Label("name", game.getName()));
            item.add(new Image("icon",
                    new ByteArrayResource(ImageUtil.getMimeType(game.getImage()), game.getImage())));
            if (game.getCoordinator() != null) {
                item.add(new MemberListItem("coordinator", game.getCoordinator()));
                IconLink.Builder builder = new IconLink.Builder("images/icons/user_edit.png",
                        new DefaultClickResponder<Game>(ModelMaker.wrap(game)) {
                            private static final long serialVersionUID = 1L;

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

                item.add(builder.newInstance("edit"));
            } else {
                item.add(new WebMarkupContainer("edit").setVisible(false));
                IconLink.Builder builder = new IconLink.Builder("images/icons/user_add.png",
                        new DefaultClickResponder<Game>(ModelMaker.wrap(game)) {
                            private static final long serialVersionUID = 1L;

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

                item.add(builder.newInstance("coordinator"));
            }
            item.add(new Label("realmcount", new Model<Integer>(game.getRealms().size())));
            item.add(new Label("playercount", new Model<Integer>(gameService.countActivePlayers(game))));
            item.add(new Label("groupcount", new Model<Integer>(game.getGroups().size())));

            IconLink.Builder builder = new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<Game>(ModelMaker.wrap(game)) {
                        private static final long serialVersionUID = 1L;

                        /**
                         * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick()
                         */
                        @Override
                        public void onClick() {
                            Game g = getModelObject();

                            if (gameService.isGameInactive(g)) {
                                gameService.deleteGame(getUser(), g);
                            }

                            setResponsePage(new RealmManagementPage());
                        }

                    });

            builder.setImageVisible(gameService.isGameInactive(game));

            item.add(builder.newInstance("remove"));
        }

    });

}

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

License:Open Source License

private void initComponents(String name, List<GamingGroup> groups) {
    List<User> users = new LinkedList<User>();
    for (GamingGroup group : groups) {
        users.addAll(group.getGroupMembers());
    }//w w w . ja  v a 2s  .  c om

    add(GraphUtil.makePieChart("rankcomposition", "Overall rank composition", createCompositionChart(users))
            .setVisible(!users.isEmpty()));
    add(GraphUtil.makeBarChart("groupsize", "Group sizes", createGroupSizeChart(groups))
            .setVisible(!users.isEmpty()));

    add(new ListView<GamingGroup>("groups", ModelMaker.wrap(groups)) {
        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<GamingGroup> item) {
            GamingGroup group = item.getModelObject();

            List<User> userList = new LinkedList<User>();
            userList.addAll(group.getGroupMembers());

            item.add(new Label("name", group.getName()));
            item.add(GraphUtil.makePieChart("rankcomposition", group.getName() + " rank composition",
                    createCompositionChart(userList)));

        }
    });

}