Author: nextgens
Date: 2006-12-06 18:18:48 +0000 (Wed, 06 Dec 2006)
New Revision: 11272

Modified:
   trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
   trunk/freenet/src/freenet/clients/http/QueueToadlet.java
   trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
   trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java
Log:
Cleanup some imports, implement basic sorting on /queue/

Modified: trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java    2006-12-06 
16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/N2NTMToadlet.java    2006-12-06 
18:18:48 UTC (rev 11272)
@@ -21,7 +21,6 @@
 import freenet.support.HTMLNode;
 import freenet.support.Logger;
 import freenet.support.MultiValueTable;
-import freenet.support.ShortBuffer;
 import freenet.support.SimpleFieldSet;
 import freenet.support.io.Bucket;


Modified: trunk/freenet/src/freenet/clients/http/QueueToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/QueueToadlet.java    2006-12-06 
16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/QueueToadlet.java    2006-12-06 
18:18:48 UTC (rev 11272)
@@ -60,6 +60,8 @@
        private NodeClientCore core;
        final FCPServer fcp;

+       private boolean isReversed = false;
+       
        public QueueToadlet(NodeClientCore core, FCPServer fcp, 
HighLevelSimpleClient client) {
                super(client);
                this.core = core;
@@ -292,8 +294,8 @@
                        return;
                }

-               HTTPRequest request = new HTTPRequest(uri, null, ctx);
-               String requestPath = 
request.getPath().substring("/queue/".length());
+               final HTTPRequest request = new HTTPRequest(uri, null, ctx);
+               final String requestPath = 
request.getPath().substring("/queue/".length());

                if (requestPath.length() > 0) {
                        /* okay, there is something in the path, check it. */
@@ -318,6 +320,7 @@
                                }
                        } catch (MalformedURLException mue1) {
                        }
+                       return;
                }

                PageMaker pageMaker = ctx.getPageMaker();
@@ -391,28 +394,58 @@
                        }
                }

-               Comparator identifierComparator = new Comparator() {
+               Comparator jobComparator = new Comparator() {
                        public int compare(Object first, Object second) {
                                ClientRequest firstRequest = (ClientRequest) 
first;
                                ClientRequest secondRequest = (ClientRequest) 
second;
-                               short firstPrio = firstRequest.getPriority();
-                               short secondPrio = secondRequest.getPriority();
-                               if(firstPrio > secondPrio) return 1;
-                               if(secondPrio > firstPrio) return -1;
-                               return 
firstRequest.getIdentifier().compareTo(secondRequest.getIdentifier());
+
+                               int result = 0;
+                               boolean isSet = true;
+                               
+                               if(request.isParameterSet("sortBy")){
+                                       final String sortBy = 
request.getParam("sortBy"); 
+
+                                       if(sortBy.equals("id")){
+                                               result = 
firstRequest.getIdentifier().compareToIgnoreCase(secondRequest.getIdentifier());
+                                       }else if(sortBy.equals("size")){
+                                               result = 
(firstRequest.getTotalBlocks() - secondRequest.getTotalBlocks()) < 0 ? -1 : 1;
+                                       }else if(sortBy.equals("progress")){
+                                               result = 
firstRequest.getSuccessFraction() - secondRequest.getSuccessFraction() < 0 ? -1 
: 1;
+                                       }else
+                                               isSet=false;
+                               }else
+                                       isSet=false;
+                               
+                               if(!isSet){
+                                       int priorityDifference =  
firstRequest.getPriority() - secondRequest.getPriority(); 
+                                       if (priorityDifference != 0) 
+                                               result = (priorityDifference < 
0 ? -1 : 1);
+                                       else
+                                               result = 
firstRequest.getIdentifier().compareTo(secondRequest.getIdentifier());
+                               }
+
+                               if(result == 0){
+                                       return 0;
+                               }else if(request.isParameterSet("reversed")){
+                                       isReversed = true;
+                                       return result > 0 ? -1 : 1;
+                               }else{
+                                       isReversed = false;
+                                       return result < 0 ? -1 : 1;
+                               }
                        }
                };

-               Collections.sort(completedDownloadToDisk, identifierComparator);
-               Collections.sort(completedDownloadToTemp, identifierComparator);
-               Collections.sort(completedUpload, identifierComparator);
-               Collections.sort(completedDirUpload, identifierComparator);
-               Collections.sort(failedDownload, identifierComparator);
-               Collections.sort(failedUpload, identifierComparator);
-               Collections.sort(failedDirUpload, identifierComparator);
-               Collections.sort(uncompletedDownload, identifierComparator);
-               Collections.sort(uncompletedUpload, identifierComparator);
-               Collections.sort(uncompletedDirUpload, identifierComparator);
+               Collections.sort(completedDownloadToDisk, jobComparator);
+               Collections.sort(completedDownloadToTemp, jobComparator);
+               Collections.sort(completedUpload, jobComparator);
+               Collections.sort(completedDirUpload, jobComparator);
+               Collections.sort(failedDownload, jobComparator);
+               Collections.sort(failedUpload, jobComparator);
+               Collections.sort(failedDirUpload, jobComparator);
+               Collections.sort(uncompletedDownload, jobComparator);
+               Collections.sort(uncompletedUpload, jobComparator);
+               Collections.sort(uncompletedDirUpload, jobComparator);

                HTMLNode pageNode = pageMaker.getPageNode("(" + 
(uncompletedDirUpload.size() + uncompletedDownload.size()
                                + uncompletedUpload.size()) + '/' + 
(failedDirUpload.size() + failedDownload.size() + failedUpload.size()) + '/'
@@ -799,9 +832,9 @@
                for (int columnIndex = 0, columnCount = columns.length; 
columnIndex < columnCount; columnIndex++) {
                        int column = columns[columnIndex];
                        if (column == LIST_IDENTIFIER) {
-                               headerRow.addChild("th", "Identifier");
+                               headerRow.addChild("th").addChild("a", "href", 
(isReversed ? "?sortBy=id" : "?sortBy=id&reversed")).addChild("#", 
"Identifier");
                        } else if (column == LIST_SIZE) {
-                               headerRow.addChild("th", "Size");
+                               headerRow.addChild("th").addChild("a", "href", 
(isReversed ? "?sortBy=size" : "?sortBy=size&reversed")).addChild("#", "Size");
                        } else if (column == LIST_DOWNLOAD) {
                                headerRow.addChild("th", "Download");
                        } else if (column == LIST_MIME_TYPE) {
@@ -813,13 +846,13 @@
                        } else if (column == LIST_FILENAME) {
                                headerRow.addChild("th", "Filename");
                        } else if (column == LIST_PRIORITY) {
-                               headerRow.addChild("th", "Priority");
+                               headerRow.addChild("th").addChild("a", "href", 
(isReversed ? "?sortBy=priority" : "?sortBy=priority&reversed")).addChild("#", 
"Priority");
                        } else if (column == LIST_FILES) {
                                headerRow.addChild("th", "Files");
                        } else if (column == LIST_TOTAL_SIZE) {
                                headerRow.addChild("th", "Total Size");
                        } else if (column == LIST_PROGRESS) {
-                               headerRow.addChild("th", "Progress");
+                               headerRow.addChild("th").addChild("a", "href", 
(isReversed ? "?sortBy=progress" : "?sortBy=progress&reversed")).addChild("#", 
"Progress");
                        } else if (column == LIST_REASON) {
                                headerRow.addChild("th", "Reason");
                        }

Modified: trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2006-12-06 16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/ToadletContextImpl.java      
2006-12-06 18:18:48 UTC (rev 11272)
@@ -13,7 +13,6 @@
 import java.util.Enumeration;
 import java.util.TimeZone;

-import freenet.node.NodeClientCore;
 import freenet.support.HTMLEncoder;
 import freenet.support.HTMLNode;
 import freenet.support.Logger;

Modified: trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java       
2006-12-06 16:33:18 UTC (rev 11271)
+++ trunk/freenet/src/freenet/clients/http/filter/CSSTokenizerFilter.java       
2006-12-06 18:18:48 UTC (rev 11272)
@@ -5,7 +5,6 @@
  * http://www.gnu.org/ for further details of the GPL. */ 
 package freenet.clients.http.filter;
 import java.io.*;
-import java.util.*;
 /* This class tokenizes a CSS2 Reader stream, writes it out to the output 
Writer, and filters any URLs found */
 // WARNING: this is not as thorough as the HTML parser - new versions of the 
standard could lead to anonymity risks. See comments in SaferFilter.java
 // FIXME: Rewrite this as a proper whitelist filter. It's about half way 
there, it


Reply via email to