projects
/
Sone.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use “isLoaded” method to check for not-yet loaded bookmarks.
[Sone.git]
/
src
/
main
/
java
/
net
/
pterodactylus
/
sone
/
web
/
KnownSonesPage.java
diff --git
a/src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java
b/src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java
index
b40515a
..
d2e7abe
100644
(file)
--- a/
src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java
+++ b/
src/main/java/net/pterodactylus/sone/web/KnownSonesPage.java
@@
-1,5
+1,5
@@
/*
/*
- * Sone - KnownSonesPage.java - Copyright © 2010–201
2
David Roden
+ * Sone - KnownSonesPage.java - Copyright © 2010–201
3
David Roden
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-17,20
+17,24
@@
package net.pterodactylus.sone.web;
package net.pterodactylus.sone.web;
+import static net.pterodactylus.sone.utils.NumberParsers.parseInt;
+
import java.util.ArrayList;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.web.page.FreenetRequest;
import net.pterodactylus.util.collection.Pagination;
import java.util.Collections;
import java.util.List;
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 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;
+import com.google.common.collect.Ordering;
+
/**
* This page shows all known Sones.
*
/**
* This page shows all known Sones.
*
@@
-38,6
+42,9
@@
import net.pterodactylus.util.template.TemplateContext;
*/
public class KnownSonesPage extends SoneTemplatePage {
*/
public class KnownSonesPage extends SoneTemplatePage {
+ private static final String defaultSortField = "activity";
+ private static final String defaultSortOrder = "desc";
+
/**
* Creates a “known Sones” page.
*
/**
* Creates a “known Sones” page.
*
@@
-60,77
+67,84
@@
public class KnownSonesPage extends SoneTemplatePage {
@Override
protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException {
super.processTemplate(request, templateContext);
@Override
protected void processTemplate(FreenetRequest request, TemplateContext templateContext) throws RedirectException {
super.processTemplate(request, templateContext);
- String sortField = request.getHttpRequest().getParam("sort");
- String sortOrder = request.getHttpRequest().getParam("order");
+ String sortField = request.getHttpRequest().getParam("sort"
, defaultSortField
);
+ String sortOrder = request.getHttpRequest().getParam("order"
, defaultSortOrder
);
String filter = request.getHttpRequest().getParam("filter");
String filter = request.getHttpRequest().getParam("filter");
- templateContext.set("sort",
(sortField != null) ? sortField : "name"
);
- templateContext.set("order",
(sortOrder != null) ? sortOrder : "asc"
);
+ templateContext.set("sort",
sortField
);
+ templateContext.set("order",
sortOrder
);
templateContext.set("filter", filter);
final Sone currentSone = getCurrentSone(request.getToadletContext(), false);
templateContext.set("filter", filter);
final Sone currentSone = getCurrentSone(request.getToadletContext(), false);
-
List<Sone> knownSones = Filters.filteredList(new ArrayList<Sone>(webInterface.getCore().getSones()
), Sone.EMPTY_SONE_FILTER);
+
Collection<Sone> knownSones = Collections2.filter(webInterface.getCore().getSones(
), Sone.EMPTY_SONE_FILTER);
if ((currentSone != null) && "followed".equals(filter)) {
if ((currentSone != null) && "followed".equals(filter)) {
- knownSones =
Filters.filteredList(knownSones, new Filter
<Sone>() {
+ knownSones =
Collections2.filter(knownSones, new Predicate
<Sone>() {
@Override
@Override
- public boolean
filterObject
(Sone sone) {
+ public boolean
apply
(Sone sone) {
return currentSone.hasFriend(sone.getId());
}
});
} else if ((currentSone != null) && "not-followed".equals(filter)) {
return currentSone.hasFriend(sone.getId());
}
});
} else if ((currentSone != null) && "not-followed".equals(filter)) {
- knownSones =
Filters.filteredList(knownSones, new Filter
<Sone>() {
+ knownSones =
Collections2.filter(knownSones, new Predicate
<Sone>() {
@Override
@Override
- public boolean
filterObject
(Sone sone) {
+ public boolean
apply
(Sone sone) {
return !currentSone.hasFriend(sone.getId());
}
});
} else if ("new".equals(filter)) {
return !currentSone.hasFriend(sone.getId());
}
});
} else if ("new".equals(filter)) {
- knownSones = Filters.filteredList(knownSones, new Filter<Sone>() {
+ knownSones = Collections2.filter(knownSones, new Predicate<Sone>() {
+
/**
* {@inheritDoc}
*/
@Override
/**
* {@inheritDoc}
*/
@Override
- public boolean
filterObject
(Sone sone) {
+ public boolean
apply
(Sone sone) {
return !sone.isKnown();
}
});
} else if ("not-new".equals(filter)) {
return !sone.isKnown();
}
});
} else if ("not-new".equals(filter)) {
- knownSones = Filters.filteredList(knownSones, new Filter<Sone>() {
+ knownSones = Collections2.filter(knownSones, new Predicate<Sone>() {
+
/**
* {@inheritDoc}
*/
@Override
/**
* {@inheritDoc}
*/
@Override
- public boolean
filterObject
(Sone sone) {
+ public boolean
apply
(Sone sone) {
return sone.isKnown();
}
});
return sone.isKnown();
}
});
+ } else if ("own".equals(filter)) {
+ knownSones = Collections2.filter(knownSones, Sone.LOCAL_SONE_FILTER);
+ } else if ("not-own".equals(filter)) {
+ knownSones = Collections2.filter(knownSones, Predicates.not(Sone.LOCAL_SONE_FILTER));
}
}
+ List<Sone> sortedSones = new ArrayList<Sone>(knownSones);
if ("activity".equals(sortField)) {
if ("asc".equals(sortOrder)) {
if ("activity".equals(sortField)) {
if ("asc".equals(sortOrder)) {
- Collections.sort(
knownSones, new ReverseComparator<Sone>(Sone.LAST_ACTIVITY_COMPARATOR
));
+ Collections.sort(
sortedSones, Ordering.from(Sone.LAST_ACTIVITY_COMPARATOR).reverse(
));
} else {
} else {
- Collections.sort(
known
Sones, Sone.LAST_ACTIVITY_COMPARATOR);
+ Collections.sort(
sorted
Sones, Sone.LAST_ACTIVITY_COMPARATOR);
}
} else if ("posts".equals(sortField)) {
if ("asc".equals(sortOrder)) {
}
} else if ("posts".equals(sortField)) {
if ("asc".equals(sortOrder)) {
- Collections.sort(
knownSones, new ReverseComparator<Sone>(Sone.POST_COUNT_COMPARATOR
));
+ Collections.sort(
sortedSones, Ordering.from(Sone.POST_COUNT_COMPARATOR).reverse(
));
} else {
} else {
- Collections.sort(
known
Sones, Sone.POST_COUNT_COMPARATOR);
+ Collections.sort(
sorted
Sones, Sone.POST_COUNT_COMPARATOR);
}
} else if ("images".equals(sortField)) {
if ("asc".equals(sortOrder)) {
}
} else if ("images".equals(sortField)) {
if ("asc".equals(sortOrder)) {
- Collections.sort(
knownSones, new ReverseComparator<Sone>(Sone.IMAGE_COUNT_COMPARATOR
));
+ Collections.sort(
sortedSones, Ordering.from(Sone.IMAGE_COUNT_COMPARATOR).reverse(
));
} else {
} else {
- Collections.sort(
known
Sones, Sone.IMAGE_COUNT_COMPARATOR);
+ Collections.sort(
sorted
Sones, Sone.IMAGE_COUNT_COMPARATOR);
}
} else {
if ("desc".equals(sortOrder)) {
}
} else {
if ("desc".equals(sortOrder)) {
- Collections.sort(
knownSones, new ReverseComparator<Sone>(Sone.NICE_NAME_COMPARATOR
));
+ Collections.sort(
sortedSones, Ordering.from(Sone.NICE_NAME_COMPARATOR).reverse(
));
} else {
} else {
- Collections.sort(
known
Sones, Sone.NICE_NAME_COMPARATOR);
+ Collections.sort(
sorted
Sones, Sone.NICE_NAME_COMPARATOR);
}
}
}
}
- Pagination<Sone> sonePagination = new Pagination<Sone>(
knownSones, 25).setPage(Numbers.safeParseInteger
(request.getHttpRequest().getParam("page"), 0));
+ Pagination<Sone> sonePagination = new Pagination<Sone>(
sortedSones, 25).setPage(parseInt
(request.getHttpRequest().getParam("page"), 0));
templateContext.set("pagination", sonePagination);
templateContext.set("knownSones", sonePagination.getItems());
}
templateContext.set("pagination", sonePagination);
templateContext.set("knownSones", sonePagination.getItems());
}