X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FKnownSonesPage.java;fp=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FKnownSonesPage.java;h=bc928c4b75c1be834fbae214bc7c2b6cd8613875;hb=26dbc1f7ba2c4243d8cc07986b0e943a2238ea08;hp=00568da472e46fe4fa7485530b564f3ba8cce986;hpb=ff2bb9438e85e9f11d95b7f25ac61d12753369bc;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java b/src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java index 00568da..bc928c4 100644 --- a/src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java +++ b/src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java @@ -18,6 +18,7 @@ package net.pterodactylus.sone.web; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; @@ -25,12 +26,14 @@ import net.pterodactylus.sone.data.Sone; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.util.collection.Pagination; import net.pterodactylus.util.collection.ReverseComparator; -import net.pterodactylus.util.collection.filter.Filter; -import net.pterodactylus.util.collection.filter.Filters; import net.pterodactylus.util.number.Numbers; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContext; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.Collections2; + /** * This page shows all known Sones. * @@ -67,74 +70,77 @@ public class KnownSonesPage extends SoneTemplatePage { templateContext.set("order", (sortOrder != null) ? sortOrder : "asc"); templateContext.set("filter", filter); final Sone currentSone = getCurrentSone(request.getToadletContext(), false); - List knownSones = Filters.filteredList(new ArrayList(webInterface.getCore().getSones()), Sone.EMPTY_SONE_FILTER); + Collection knownSones = Collections2.filter(webInterface.getCore().getSones(), Sone.EMPTY_SONE_FILTER); if ((currentSone != null) && "followed".equals(filter)) { - knownSones = Filters.filteredList(knownSones, new Filter() { + knownSones = Collections2.filter(knownSones, new Predicate() { @Override - public boolean filterObject(Sone sone) { + public boolean apply(Sone sone) { return currentSone.hasFriend(sone.getId()); } }); } else if ((currentSone != null) && "not-followed".equals(filter)) { - knownSones = Filters.filteredList(knownSones, new Filter() { + knownSones = Collections2.filter(knownSones, new Predicate() { @Override - public boolean filterObject(Sone sone) { + public boolean apply(Sone sone) { return !currentSone.hasFriend(sone.getId()); } }); } else if ("new".equals(filter)) { - knownSones = Filters.filteredList(knownSones, new Filter() { + knownSones = Collections2.filter(knownSones, new Predicate() { + /** * {@inheritDoc} */ @Override - public boolean filterObject(Sone sone) { + public boolean apply(Sone sone) { return !sone.isKnown(); } }); } else if ("not-new".equals(filter)) { - knownSones = Filters.filteredList(knownSones, new Filter() { + knownSones = Collections2.filter(knownSones, new Predicate() { + /** * {@inheritDoc} */ @Override - public boolean filterObject(Sone sone) { + public boolean apply(Sone sone) { return sone.isKnown(); } }); } else if ("own".equals(filter)) { - knownSones = Filters.filteredList(knownSones, Sone.LOCAL_SONE_FILTER); + knownSones = Collections2.filter(knownSones, Sone.LOCAL_SONE_FILTER); } else if ("not-own".equals(filter)) { - knownSones = Filters.filteredList(knownSones, Filters.reverseFilter(Sone.LOCAL_SONE_FILTER)); + knownSones = Collections2.filter(knownSones, Predicates.not(Sone.LOCAL_SONE_FILTER)); } + List sortedSones = new ArrayList(knownSones); if ("activity".equals(sortField)) { if ("asc".equals(sortOrder)) { - Collections.sort(knownSones, new ReverseComparator(Sone.LAST_ACTIVITY_COMPARATOR)); + Collections.sort(sortedSones, new ReverseComparator(Sone.LAST_ACTIVITY_COMPARATOR)); } else { - Collections.sort(knownSones, Sone.LAST_ACTIVITY_COMPARATOR); + Collections.sort(sortedSones, Sone.LAST_ACTIVITY_COMPARATOR); } } else if ("posts".equals(sortField)) { if ("asc".equals(sortOrder)) { - Collections.sort(knownSones, new ReverseComparator(Sone.POST_COUNT_COMPARATOR)); + Collections.sort(sortedSones, new ReverseComparator(Sone.POST_COUNT_COMPARATOR)); } else { - Collections.sort(knownSones, Sone.POST_COUNT_COMPARATOR); + Collections.sort(sortedSones, Sone.POST_COUNT_COMPARATOR); } } else if ("images".equals(sortField)) { if ("asc".equals(sortOrder)) { - Collections.sort(knownSones, new ReverseComparator(Sone.IMAGE_COUNT_COMPARATOR)); + Collections.sort(sortedSones, new ReverseComparator(Sone.IMAGE_COUNT_COMPARATOR)); } else { - Collections.sort(knownSones, Sone.IMAGE_COUNT_COMPARATOR); + Collections.sort(sortedSones, Sone.IMAGE_COUNT_COMPARATOR); } } else { if ("desc".equals(sortOrder)) { - Collections.sort(knownSones, new ReverseComparator(Sone.NICE_NAME_COMPARATOR)); + Collections.sort(sortedSones, new ReverseComparator(Sone.NICE_NAME_COMPARATOR)); } else { - Collections.sort(knownSones, Sone.NICE_NAME_COMPARATOR); + Collections.sort(sortedSones, Sone.NICE_NAME_COMPARATOR); } } - Pagination sonePagination = new Pagination(knownSones, 25).setPage(Numbers.safeParseInteger(request.getHttpRequest().getParam("page"), 0)); + Pagination sonePagination = new Pagination(sortedSones, 25).setPage(Numbers.safeParseInteger(request.getHttpRequest().getParam("page"), 0)); templateContext.set("pagination", sonePagination); templateContext.set("knownSones", sonePagination.getItems()); }