List of usage examples for org.apache.wicket.markup.html.list ListView ListView
public ListView(final String id, final List<T> list)
From source file:com.tysanclan.site.projectewok.components.DonatorPanel.java
License:Open Source License
public DonatorPanel(String id, User user) { super(id);/* ww w . ja va2 s. co m*/ Calendar cal = DateUtil.getCalendarInstance(); cal.add(Calendar.MONTH, -6); DonationFilter filter = new DonationFilter(); filter.setFrom(cal.getTime()); filter.setDonator(user); BigDecimal value = BigDecimal.ZERO; List<Donation> donations = donationDAO.findByFilter(filter); for (Donation donation : donations) { value = value.add(donation.getAmount()); } List<BigDecimal> dollarsigns = new LinkedList<BigDecimal>(); int max = Math.min(value.intValue(), 100); for (int i = 0; i < max; i += 20) { dollarsigns.add(value); } add(new ListView<BigDecimal>("dollars", dollarsigns) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<BigDecimal> item) { BigDecimal bdValue = item.getModelObject(); String dollarLabel = NumberFormat.getCurrencyInstance(Locale.US).format(bdValue.doubleValue()) + " donated in the last 6 months"; item.add(new ContextImage("dollar", "images/icons/money_dollar.png") .add(AttributeModifier.replace("alt", dollarLabel)) .add(AttributeModifier.replace("title", dollarLabel))); } }); setVisible(user != null && !dollarsigns.isEmpty()); }
From source file:com.tysanclan.site.projectewok.components.MentorPanel.java
License:Open Source License
public MentorPanel(String id, User mentor) { super(id, ModelMaker.wrap(mentor), "Pupils"); setVisible(!mentor.getPupils().isEmpty()); add(new Label("count", new Model<Integer>(mentor.getPupils().size()))); add(new ListView<User>("pupils", ModelMaker.wrap(mentor.getPupils())) { private static final long serialVersionUID = 1L; /**//from w ww. j a v a 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<User> item) { item.add(new UserContactInfoPanel("pupil", item.getModelObject())); } }); Date previousLogin = TysanSession.get().getPreviousLogin(); if (previousLogin != null) { for (User pupil : getUser().getPupils()) { if (pupil.getJoinDate() != null && pupil.getJoinDate().after(previousLogin)) { super.requiresAttention(); break; } } } }
From source file:com.tysanclan.site.projectewok.components.PostPanel.java
License:Open Source License
private void addRealms(WebMarkupContainer parent, User poster) { List<UserGameRealm> realms = new LinkedList<UserGameRealm>(); if (MemberUtil.isMember(poster)) { for (UserGameRealm ugr : poster.getPlayedGames()) { if (!ugr.getAccounts().isEmpty()) { realms.add(ugr);/*from ww w.j av a 2 s . c om*/ } } } parent.add(new ListView<UserGameRealm>("realms", ModelMaker.wrap(realms)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<UserGameRealm> item) { UserGameRealm ugr = item.getModelObject(); StringBuilder accountList = new StringBuilder(); for (GameAccount acc : ugr.getAccounts()) { if (accountList.length() > 0) { accountList.append(", "); } accountList.append(acc.toString()); } item.add(new Label("realm", ugr.getRealm().getName())); item.add(new Label("accounts", accountList.toString())); } }); }
From source file:com.tysanclan.site.projectewok.components.RealmGamePanel.java
License:Open Source License
/** * //w w w. ja v a 2s. c o m */ public RealmGamePanel(String id, Realm realm, Game game) { super(id); add(new Label("name", game.getName())); add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(game.getImage()), game.getImage()))); UserGameRealmFilter filter = new UserGameRealmFilter(); filter.setRealm(realm); filter.setGame(game); List<UserGameRealm> ugrs = new LinkedList<UserGameRealm>(); ugrs.addAll(userGameRealmDAO.findByFilter(filter)); Set<UserGameRealm> removeUGR = new HashSet<UserGameRealm>(); for (UserGameRealm ugr : ugrs) { if (!MemberUtil.isMember(ugr.getUser())) { removeUGR.add(ugr); } } ugrs.removeAll(removeUGR); if (ugrs.isEmpty()) { setVisible(false); } Collections.sort(ugrs, new Comparator<UserGameRealm>() { /** * @see java.util.Comparator#compare(java.lang.Object, * java.lang.Object) */ @Override public int compare(UserGameRealm o1, UserGameRealm o2) { return o1.getUser().getUsername().compareToIgnoreCase(o2.getUser().getUsername()); } }); add(new Label("count", new Model<Integer>(ugrs.size()))); add(new ListView<UserGameRealm>("members", ModelMaker.wrap(ugrs)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<UserGameRealm> item) { UserGameRealm ugr = item.getModelObject(); item.add(new MemberListItem("user", ugr.getUser())); StringBuilder builder = new StringBuilder(); for (GameAccount account : ugr.getAccounts()) { if (builder.length() > 0) { builder.append(", "); } builder.append(account.toString()); } if (builder.length() == 0) { builder.append('-'); } item.add(new Label("accounts", builder.toString())); } }); List<GamingGroup> groups = new LinkedList<GamingGroup>(); groups.addAll(realm.getGroups()); groups.retainAll(game.getGroups()); WebMarkupContainer container = new WebMarkupContainer("container"); container.setVisible(!groups.isEmpty()); add(container); container.add(new ListView<GamingGroup>("gaminggroups", 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 gg = item.getModelObject(); item.add(new AutoGroupLink("grouplink", gg)); } }); }
From source file:com.tysanclan.site.projectewok.components.TrialPanel.java
License:Open Source License
/** * /*www.j a va2 s . c o m*/ */ public TrialPanel(String id, Trial trial, User user) { super(id); if (MemberUtil.isMember(trial.getAccused())) { add(new MemberListItem("accused", trial.getAccused())); } else { add(new Label("accused", trial.getAccused().getUsername())); } add(new ListView<Regulation>("regulations", ModelMaker.wrap(trial.getRegulations())) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<Regulation> item) { Regulation regulation = item.getModelObject(); item.add(new Label("name", regulation.getName())); } }); if (MemberUtil.isMember(trial.getAccused())) { add(new MemberListItem("truthsayer", trial.getJudge())); } else { add(new Label("truthsayer", trial.getJudge().getUsername())); } add(new BBCodePanel("evidence", trial.getMotivation()).setVisible(trial.getJudge().equals(user))); ForumThread thread = trial.getTrialThread(); Calendar cal = DateUtil.getMidnightCalendarInstance(); Calendar cal2 = Calendar.getInstance(); cal2.setTime(thread.getPostTime()); cal2.add(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.DAY_OF_MONTH, cal2.get(Calendar.DAY_OF_MONTH)); cal.set(Calendar.MONTH, cal2.get(Calendar.MONTH)); cal.set(Calendar.YEAR, cal2.get(Calendar.YEAR)); boolean canVerdictBePassed = trial.getAccused().getRank() == Rank.TRIAL || new Date().after(cal.getTime()); boolean hasVerdict = trial.getVerdict() != null; boolean isJudge = user != null && user.equals(trial.getJudge()); Form<Trial> verdictForm = new Form<Trial>("verdictForm", ModelMaker.wrap(trial)) { private static final long serialVersionUID = 1L; @SpringBean private LawEnforcementService lawEnforcementService; /** * @see org.apache.wicket.markup.html.form.Form#onSubmit() */ @SuppressWarnings("unchecked") @Override protected void onSubmit() { Trial t = getModelObject(); DropDownChoice<Verdict> verdictChoice = (DropDownChoice<Verdict>) get("verdict"); Verdict verdict = verdictChoice.getModelObject(); lawEnforcementService.passVerdict(t, verdict); setResponsePage(new ForumThreadPage(t.getTrialThread().getId(), 1, false)); } }; verdictForm.add(new DropDownChoice<Verdict>("verdict", new Model<Verdict>(Verdict.INNOCENT), Arrays.asList(Verdict.values()), new IChoiceRenderer<Verdict>() { /** * */ private static final long serialVersionUID = 1L; @Override public Object getDisplayValue(Verdict object) { switch (object) { case INNOCENT: return "Member is innocent"; case MINOR: return "Member is guilty, but will only be given a warning"; case MEDIUM: return "Member is guilty, and will be reprimanded"; case MAJOR: return "Member is guilty and will be banned immediately"; default: return "I have no idea"; } } @Override public String getIdValue(Verdict object, int index) { return object.toString(); } })); verdictForm.setVisible(canVerdictBePassed && !hasVerdict && isJudge); add(new IconLink.Builder(trial.isRestrained() ? "images/icons/lock_delete.png" : "images/icons/lock.png", new DefaultClickResponder<Trial>(ModelMaker.wrap(trial)) { private static final long serialVersionUID = 1L; @SpringBean private LawEnforcementService lawEnforcementService; /** * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick() */ @Override public void onClick() { Trial t = getModelObject(); if (t.isRestrained()) { lawEnforcementService.unrestrainAccused(t); } else { lawEnforcementService.restrainAccused(t); } setResponsePage(new ForumThreadPage(t.getTrialThread().getId(), 1, false)); } }).setText(trial.isRestrained() ? "Lift restraint" : "Restrain the accused").newInstance("restrain") .setVisible(isJudge)); if (hasVerdict) { switch (trial.getVerdict()) { case MAJOR: add(new Label("verdict", "Member was found guilty, and removed from the clan")); break; case MEDIUM: add(new Label("verdict", "Member was found guilty, and given a reprimand")); break; case MINOR: add(new Label("verdict", "Member was found guilty, and given a warning")); break; case INNOCENT: add(new Label("verdict", "Member was found innocent")); break; default: add(new WebMarkupContainer("verdict").setVisible(false)); } } else { add(new WebMarkupContainer("verdict").setVisible(false)); } add(verdictForm); }
From source file:com.tysanclan.site.projectewok.components.TysanMemberPanel.java
License:Open Source License
/** */// ww w.jav a2 s .co m private Dialog addMembersOnlineLink() { Dialog window = new Dialog("onlinewindow"); window.setTitle("Members online"); window.setOutputMarkupId(true); window.setOutputMarkupPlaceholderTag(true); window.setWidth(400); window.add(new OtterSniperPanel("otterSniperPanel", 4)); AjaxLink<Dialog> link = new AjaxLink<Dialog>("online", new Model<Dialog>(window)) { private static final long serialVersionUID = 1L; @Override public void onClick(AjaxRequestTarget target) { if (target != null) { target.appendJavaScript(getModelObject().open().render().toString()); } } }; link.add(new Label("count", new MembersOnlineCountModel()).setOutputMarkupId(true)); window.add(new ListView<User>("members", ModelMaker.wrap(userService.getMembersOnline())) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<User> item) { MemberListItem memberLink = new MemberListItem("link", item.getModelObject()); item.add(memberLink); } }); window.add(new ListView<MumbleServer>("servers", ModelMaker.wrap(serverDAO.findAll())) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<MumbleServer> item) { MumbleServer server = item.getModelObject(); item.add(new WebMarkupContainer("server") .add(AttributeModifier.replace("data-token", server.getApiToken())) .add(AttributeModifier.replace("data-id", server.getServerID()))); item.add(new ExternalLink("url", server.getUrl()).setBody(Model.of(server.getUrl()))); item.add(new Label("password", server.getPassword())); } }); add(link); add(window); return window; }
From source file:com.tysanclan.site.projectewok.components.UserContactInfoPanel.java
License:Open Source License
public UserContactInfoPanel(String id, User user) { super(id, ModelMaker.wrap(user)); add(new MemberListItem("user", user)); String aimAddress = user.getProfile() != null ? user.getProfile().getInstantMessengerAddress() : ""; add(new Label("aim", aimAddress) .add(AttributeModifier.replace("href", "aim:addbuddy?screenname=" + aimAddress)) .setVisible(aimAddress != null && !aimAddress.isEmpty())); add(new DateLabel("lastlogin", user.getLastAction())); WebMarkupContainer accounts = new WebMarkupContainer("accounts"); accounts.add(new ListView<UserGameRealm>("realms", ModelMaker.wrap(user.getPlayedGames())) { private static final long serialVersionUID = 1L; @Override//from w ww .j a v a 2 s.c om protected void populateItem(ListItem<UserGameRealm> item) { item.setModel(new CompoundPropertyModel<UserGameRealm>(item.getModel())); StringBuilder builder = new StringBuilder(); for (GameAccount acc : item.getModelObject().getAccounts()) { if (builder.length() > 0) { builder.append(", "); } builder.append(acc.toString()); } item.add(new Label("realm.name")); item.add(new Label("accountlist", builder.length() > 0 ? builder.toString() : "-")); } }); accounts.setVisible(!user.getPlayedGames().isEmpty()); add(accounts); }
From source file:com.tysanclan.site.projectewok.pages.AboutPage.java
License:Open Source License
public AboutPage() { super("About"); UserFilter chancellorFilter = new UserFilter(); chancellorFilter.addRank(Rank.CHANCELLOR); List<User> users = userDAO.findByFilter(chancellorFilter); User leader = null;// w w w . j a va2s. com if (!users.isEmpty()) { leader = users.get(0); add(new MemberListItem("leader", leader)); } else { add(new Label("leader", "<i>None</i>").setEscapeModelStrings(false)); } UserFilter senateFilter = new UserFilter(); senateFilter.addRank(Rank.SENATOR); List<User> senate = userDAO.findByFilter(senateFilter); add(new ListView<User>("senate", ModelMaker.wrap(senate)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<User> item) { User user = item.getModelObject(); item.add(new MemberListItem("member", user)); } }); add(new ListView<Game>("games", ModelMaker.wrap(gameDAO.findAll())) { 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(final ListItem<Game> item) { Game game = item.getModelObject(); final int rowCount = game.getRealms().size(); final String gameName = game.getName(); item.add(new ListView<Realm>("realms", ModelMaker.wrap(game.getRealms())) { private static final long serialVersionUID = 1L; @SpringBean private GameService gameService; /** * @see org.apache.wicket.markup.html.list.ListView#populateItem(org.apache.wicket.markup.html.list.ListItem) */ @Override protected void populateItem(ListItem<Realm> innerItem) { WebMarkupContainer iconContainer = new WebMarkupContainer("iconcontainer"); WebMarkupContainer supervisorContainer = new WebMarkupContainer("supervisorcontainer"); Label gameNameLabel = new Label("name", gameName); if (innerItem.getIndex() != 0) { iconContainer.setVisible(false); gameNameLabel.setVisible(false); supervisorContainer.setVisible(false); } else { AttributeModifier mod = AttributeModifier.replace("rowspan", Integer.toString(rowCount)); iconContainer.add(mod); gameNameLabel.add(mod); supervisorContainer.add(mod); } innerItem.add(iconContainer); innerItem.add(gameNameLabel); innerItem.add(supervisorContainer); Realm realm = innerItem.getModelObject(); Game _game = item.getModelObject(); PageParameters params = new PageParameters(); params.add("id", Long.toString(realm.getId())); Link<Realm> realmLink = new BookmarkablePageLink<Realm>("realm", RealmPage.class, params); realmLink.add(new Label("name", realm.getName())); innerItem.add( new Label("playercount", Integer.toString(gameService.countPlayers(_game, realm)))); innerItem.add(realmLink); iconContainer.add(new Image("icon", new ByteArrayResource(ImageUtil.getMimeType(_game.getImage()), _game.getImage()))); if (_game.getCoordinator() != null) { supervisorContainer.add(new MemberListItem("supervisor", _game.getCoordinator())); } else { supervisorContainer.add(new Label("supervisor", "-")); } } }); } }); UserFilter activeMemberFilter = new UserFilter(); activeMemberFilter.addRank(Rank.CHANCELLOR); activeMemberFilter.addRank(Rank.SENATOR); activeMemberFilter.addRank(Rank.TRUTHSAYER); activeMemberFilter.addRank(Rank.REVERED_MEMBER); activeMemberFilter.addRank(Rank.SENIOR_MEMBER); activeMemberFilter.addRank(Rank.FULL_MEMBER); activeMemberFilter.addRank(Rank.JUNIOR_MEMBER); activeMemberFilter.addRank(Rank.TRIAL); activeMemberFilter.setRetired(false); add(new Label("activecount", new Model<Long>(userDAO.countByFilter(activeMemberFilter)))); UserFilter allMemberFilter = new UserFilter(); allMemberFilter.addRank(Rank.CHANCELLOR); allMemberFilter.addRank(Rank.SENATOR); allMemberFilter.addRank(Rank.TRUTHSAYER); allMemberFilter.addRank(Rank.REVERED_MEMBER); allMemberFilter.addRank(Rank.SENIOR_MEMBER); allMemberFilter.addRank(Rank.FULL_MEMBER); allMemberFilter.addRank(Rank.JUNIOR_MEMBER); allMemberFilter.addRank(Rank.TRIAL); add(new Label("membercount", new Model<Long>(userDAO.countByFilter(allMemberFilter)))); addRank(Rank.CHANCELLOR, "The leader of the Clan, has executive power"); addRank(Rank.SENATOR, "A member of the Senate, has legislative power"); addRank(Rank.TRUTHSAYER, "Upholder of justice, has judiciary power"); addRank(Rank.REVERED_MEMBER, "A member who has been with Tysan for more than 5 years"); addRank(Rank.SENIOR_MEMBER, "A member who has been with Tysan for more than 2 years"); addRank(Rank.FULL_MEMBER, "A member who has been with Tysan for more than 4 months"); addRank(Rank.JUNIOR_MEMBER, "A member who has passed his Trial period and gained at least 60% votes in favor"); addRank(Rank.TRIAL, "A member who is currently in his Trial period"); add(new ListView<Rank>("ranks", ranks) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<Rank> item) { Rank rank = item.getModelObject(); item.add(new RankIcon("icon", rank)); item.add(new Label("name", rank.toString())); item.add(new Label("description", rankDescriptions.get(rank))); } }); UserFilter heroFilter = new UserFilter(); heroFilter.addRank(Rank.HERO); List<User> heroes = userDAO.findByFilter(heroFilter); add(new ListView<User>("heroes", heroes) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<User> item) { item.add(new MemberListItem("user", item.getModelObject())); } }.setVisible(!heroes.isEmpty())); }
From source file:com.tysanclan.site.projectewok.pages.forum.ForumThreadSplitPage.java
License:Open Source License
public ForumThreadSplitPage(ForumThread thread) { super("Split thread: " + thread.getTitle()); TysanSession sess = (TysanSession) Session.get(); User u = sess != null ? sess.getUser() : null; List<ForumPost> posts = forumService.filterPosts(u, false, thread.getPosts()); ForumPost firstPost = posts.get(0);//w ww . j ava 2 s .c o m List<ForumPost> filtered = new ArrayList<ForumPost>(posts.size() - 1); for (ForumPost post : posts) { if (!firstPost.equals(post)) { filtered.add(post); } } final ListView<PostSelectionPair> postselection = new ListView<PostSelectionPair>("postselection", new PostSelectionPairModel(posts)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<PostSelectionPair> item) { IModel<PostSelectionPair> model = item.getModel(); item.add(new CheckBox("checkbox", new PropertyModel<Boolean>(model, "selected"))); item.add(new PostPanel("postpanel", model.getObject().getPost())); } }; final TextField<String> titleField = new TextField<String>("title", new Model<String>("")); final ForumPostEditorPanel editor = new ForumPostEditorPanel("editor", ""); Form<ForumThread> form = new Form<ForumThread>("splitform", ModelMaker.wrap(thread)) { private static final long serialVersionUID = 1L; @Override protected void onSubmit() { ForumThread t = getModelObject(); TysanSession session = (TysanSession) Session.get(); User user = session != null ? session.getUser() : null; List<PostSelectionPair> pairsLIst = postselection.getModelObject(); List<ForumPost> postList = new LinkedList<ForumPost>(); for (PostSelectionPair pair : pairsLIst) { if (pair.getSelected() == true) { postList.add(pair.getPost()); } } if (titleField.getModelObject() == null || titleField.getModelObject().trim().isEmpty()) { error("Title may not be empty!"); } else if (editor.getEditorContent().trim().isEmpty()) { error("Thread opening may not be empty"); } else if (postList.isEmpty()) { error("You must select at least 1 post to move to the new thread"); } else { if (forumService.isModerator(user, t.getForum())) { ForumThread result = forumService.splitThread(t, postList, titleField.getModelObject(), editor.getEditorContent(), user); if (result == null) { error("Could not split thread: permission denied!"); } } else { error("Could not split thread: permission denied!"); } setResponsePage(new ForumThreadPage(t.getId(), 1, false)); } } }; form.add(editor); form.add(titleField); form.add(postselection); form.add(new PostPanel("threadstart", firstPost, false)); form.add(new ThreadLink("no", thread)); add(form); }
From source file:com.tysanclan.site.projectewok.pages.forum.ReplyPage.java
License:Open Source License
public ReplyPage(ForumThread thread, int currentPage) { super("Reply to thread"); final ForumPostEditorPanel editor = new ForumPostEditorPanel("editor", ""); Form<Long> form = new Form<Long>("replyform", new Model<Long>(thread.getId())) { private static final long serialVersionUID = 1L; @SpringBean// ww w. j a v a 2 s. co m private ForumThreadDAO threadDAO; @SpringBean private TrialDAO trialDAO; @SpringBean private MembershipService mService; @Override protected void onSubmit() { ForumThread ft = threadDAO.load(getModelObject()); User currentUser = TysanSession.get().getUser(); Calendar oneWeekAgo = DateUtil.getCalendarInstance(); oneWeekAgo.add(Calendar.WEEK_OF_YEAR, -1); TrialFilter filter = new TrialFilter(); filter.setStartAfter(oneWeekAgo.getTime()); filter.setRestrained(true); filter.setAccused(currentUser); List<Trial> trials = trialDAO.findByFilter(filter); boolean hasThread = false; for (Trial trial : trials) { if (trial.getTrialThread().equals(ft)) { hasThread = true; break; } } if (trials.isEmpty() || hasThread || (!ft.getPosts().isEmpty() && ft.getPosts().get(0).getPoster().equals(getUser()))) { ForumPost post = forumService.replyToThread(ft, editor.getEditorContent(), currentUser); forumService.markForumPostRead(currentUser, post); int page = ((ft.getPosts().size() - 1) / ForumThread.POSTS_PER_PAGE) + 1; mService.registerAction(currentUser); setResponsePage(new ForumThreadPage(ft.getId(), page, false)); } else { error("Your posting privileges have been revoked due to a currently running trial, you can only post in your Trial threads"); } } }; form.add(editor); List<ForumPost> revList = new LinkedList<ForumPost>(); revList.addAll(thread.getPosts()); Collections.reverse(revList); for (int i = revList.size() - 1; i >= 5; i--) { revList.remove(i); } ListView<ForumPost> backwards = new ListView<ForumPost>("topicbackwards", ModelMaker.wrap(revList)) { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<ForumPost> item) { item.add(new PostPanel("post", item.getModelObject())); } }; add(form); add(backwards); add(new ThreadLink("backtothread", thread, currentPage, false)); }