X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fdemoscenemusic%2Fcore%2FTemplateServlet.java;h=0eb9e3e17908da591debb909755e9736b2add5d2;hb=82de91353503c9db2b9721dab242b2aafc57278c;hp=917fad76f9001ec3225d688138e6fac464c16602;hpb=a0060f0995fc196a6890905e01466501ad401323;p=demoscenemusic.git diff --git a/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java b/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java index 917fad7..0eb9e3e 100644 --- a/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java +++ b/src/main/java/net/pterodactylus/demoscenemusic/core/TemplateServlet.java @@ -26,6 +26,7 @@ import java.io.Reader; import java.io.UnsupportedEncodingException; import java.lang.reflect.InvocationTargetException; import java.net.URISyntaxException; +import java.util.Comparator; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; @@ -36,10 +37,28 @@ import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import net.pterodactylus.demoscenemusic.data.Artist; +import net.pterodactylus.demoscenemusic.data.DefaultGroup; +import net.pterodactylus.demoscenemusic.data.DefaultParty; +import net.pterodactylus.demoscenemusic.data.Group; +import net.pterodactylus.demoscenemusic.data.Party; +import net.pterodactylus.demoscenemusic.data.Properties; +import net.pterodactylus.demoscenemusic.data.Style; +import net.pterodactylus.demoscenemusic.data.Track; +import net.pterodactylus.demoscenemusic.data.TrackDerivative; +import net.pterodactylus.demoscenemusic.data.User; import net.pterodactylus.demoscenemusic.page.ServletRequest; +import net.pterodactylus.demoscenemusic.template.ConciseNumberFilter; +import net.pterodactylus.demoscenemusic.template.DurationFilter; +import net.pterodactylus.demoscenemusic.template.PropertiesAccessor; +import net.pterodactylus.demoscenemusic.template.TrackDerivativeAccessor; +import net.pterodactylus.demoscenemusic.template.UserAccessor; import net.pterodactylus.util.io.Closer; import net.pterodactylus.util.io.StreamCopier; +import net.pterodactylus.util.template.ClassPathTemplateProvider; +import net.pterodactylus.util.template.CollectionSortFilter; import net.pterodactylus.util.template.HtmlFilter; +import net.pterodactylus.util.template.MatchFilter; import net.pterodactylus.util.template.ReflectionAccessor; import net.pterodactylus.util.template.Template; import net.pterodactylus.util.template.TemplateContextFactory; @@ -56,6 +75,7 @@ import net.pterodactylus.util.web.Response; public class TemplateServlet extends HttpServlet { private Core core; + private final TemplateContextFactory templateContextFactory = new TemplateContextFactory(); private final Map> pages = new HashMap>(); @@ -73,12 +93,48 @@ public class TemplateServlet extends HttpServlet { core = (Core) config.getServletContext().getAttribute("core"); templateContextFactory.addAccessor(Object.class, new ReflectionAccessor()); + templateContextFactory.addAccessor(User.class, new UserAccessor()); + templateContextFactory.addAccessor(Properties.class, new PropertiesAccessor()); + templateContextFactory.addAccessor(TrackDerivative.class, new TrackDerivativeAccessor()); templateContextFactory.addFilter("html", new HtmlFilter()); + CollectionSortFilter sortFilter = new CollectionSortFilter(); + sortFilter.addComparator(Artist.class, new Comparator() { + + @Override + public int compare(Artist leftArtist, Artist rightArtist) { + return leftArtist.getName().compareToIgnoreCase(rightArtist.getName()); + } + + }); + sortFilter.addComparator(Track.class, new Comparator() { + + @Override + public int compare(Track leftTrack, Track rightTrack) { + return leftTrack.getName().compareToIgnoreCase(rightTrack.getName()); + } + + }); + sortFilter.addComparator(Style.class, new Comparator