Mercurial Hosting > nabble
view src/nabble/view/web/tools/OnlineUsers.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line source
package nabble.view.web.tools; import nabble.view.web.user.OnlineStatus; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Map; public final class OnlineUsers extends HttpServlet { private static class Entry { String url; int count; Entry(String url, int count) { this.url = url; this.count = count; } } protected void service(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { Map<String, Integer> sites = OnlineStatus.getOnlineSites(); ArrayList<Entry> list = new ArrayList<Entry>(sites.size()); for (Map.Entry<String, Integer> entry : sites.entrySet()) { list.add(new Entry(entry.getKey(), entry.getValue())); } Collections.sort(list, new Comparator<Entry>() { public int compare(Entry o1, Entry o2) { return o1.count == o2.count? 0 : o1.count > o2.count? -1 : 1; } }); PrintWriter out = response.getWriter(); out.print( "\n<html>\n <head>\n <title>Online Users</title>\n <style type=\"text/css\">\n body {\n font-family:Verdana, Arial, Serif;\n font-size:.74em;\n }\n table td{padding:.4em .8em;border-bottom:1px solid #eee}\n </style>\n </head>\n <body>\n <div>\n <a href=\"/tools/\">Tools</a>\n </div>\n <h1>Online Users</h1>\n\n <table>\n " ); for (Entry entry : list) { out.print( "\n <tr><td><a href=\"" ); out.print( (entry.url) ); out.print( "\">" ); out.print( (entry.url) ); out.print( "</a></td><td>" ); out.print( (entry.count) ); out.print( "</td></tr>\n " ); } out.print( "\n </table>\n </body>\n</html>\n" ); } }