[freenet-cvs] r11236 - trunk/freenet/src/freenet/clients/http
cvs at freenetproject.org
cvs at freenetproject.org
Tue Dec 5 18:33:06 UTC 2006
Author: nextgens
Date: 2006-12-05 17:32:11 +0000 (Tue, 05 Dec 2006)
New Revision: 11236
Modified:
trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
Log:
Some untested code allowing column sorting to be inverted
Modified: trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java 2006-12-05 16:32:44 UTC (rev 11235)
+++ trunk/freenet/src/freenet/clients/http/DarknetConnectionsToadlet.java 2006-12-05 17:32:11 UTC (rev 11236)
@@ -39,6 +39,7 @@
private final Node node;
private final NodeClientCore core;
+ private boolean isInversed = false;
protected DarknetConnectionsToadlet(Node n, NodeClientCore core, HighLevelSimpleClient client) {
super(client);
@@ -69,30 +70,44 @@
PeerNodeStatus[] peerNodeStatuses = node.getPeerNodeStatuses();
Arrays.sort(peerNodeStatuses, new Comparator() {
public int compare(Object first, Object second) {
+ int result = 0;
+ boolean isSet = true;
PeerNodeStatus firstNode = (PeerNodeStatus) first;
PeerNodeStatus secondNode = (PeerNodeStatus) second;
if(request.isParameterSet("sortBy")){
final String sortBy = request.getParam("sortBy");
+
if(sortBy.equals("name")){
- return firstNode.getName().compareToIgnoreCase(secondNode.getName());
+ result = firstNode.getName().compareToIgnoreCase(secondNode.getName());
}else if(sortBy.equals("address")){
- return firstNode.getPeerAddress().compareToIgnoreCase(secondNode.getPeerAddress());
+ result = firstNode.getPeerAddress().compareToIgnoreCase(secondNode.getPeerAddress());
}else if(sortBy.equals("location")){
double diff = firstNode.getLocation() - secondNode.getLocation();
- return diff > 0 ? -1 : 1; // It shouldn't ever be equal anyway
+ result = diff > 0 ? -1 : 1; // It shouldn't ever be equal anyway
}else if(sortBy.equals("version")){
- return firstNode.getVersion().compareTo(secondNode.getVersion());
+ result = firstNode.getVersion().compareTo(secondNode.getVersion());
}else if(sortBy.equals("privnote")){
- return firstNode.getPrivateDarknetCommentNote().compareTo(secondNode.getPrivateDarknetCommentNote());
- }
+ result = firstNode.getPrivateDarknetCommentNote().compareTo(secondNode.getPrivateDarknetCommentNote());
+ }else
+ isSet=false;
}
- int statusDifference = firstNode.getStatusValue() - secondNode.getStatusValue();
- if (statusDifference != 0) {
- return statusDifference;
+ if(!isSet){
+ int statusDifference = firstNode.getStatusValue() - secondNode.getStatusValue();
+ if (statusDifference == 0)
+ result = statusDifference;
+ else
+ result = firstNode.getName().compareToIgnoreCase(secondNode.getName());
}
- return firstNode.getName().compareToIgnoreCase(secondNode.getName());
+
+ if(request.isParameterSet("inverse")){
+ isInversed = true;
+ return (result == 0 ? 0 : (result == 1 ? -1 : 1));
+ }else{
+ isInversed = false;
+ return result;
+ }
}
});
@@ -346,20 +361,20 @@
HTMLNode peerTable = peerForm.addChild("table", "class", "darknet_connections");
HTMLNode peerTableHeaderRow = peerTable.addChild("tr");
peerTableHeaderRow.addChild("th");
- peerTableHeaderRow.addChild("th").addChild("a", "href", "?sortBy=status").addChild("#", "Status");
- peerTableHeaderRow.addChild("th").addChild("a", "href", "?sortBy=name").addChild("span", new String[] { "title", "style" }, new String[] { "The node's name. Click on the name link to send the node a N2NTM (Node To Node Text Message)", "border-bottom: 1px dotted; cursor: help;" }, "Name");
+ peerTableHeaderRow.addChild("th").addChild("a", "href", (!isInversed ? "?sortBy=status&inversed=true" : "?sortBy=status")).addChild("#", "Status");
+ peerTableHeaderRow.addChild("th").addChild("a", "href", (!isInversed ? "?sortBy=name&inversed=true" : "?sortBy=name")).addChild("span", new String[] { "title", "style" }, new String[] { "The node's name. Click on the name link to send the node a N2NTM (Node To Node Text Message)", "border-bottom: 1px dotted; cursor: help;" }, "Name");
if (advancedEnabled) {
- peerTableHeaderRow.addChild("th").addChild("a", "href", "?sortBy=address").addChild("span", new String[] { "title", "style" }, new String[] { "The node's network address as IP:Port", "border-bottom: 1px dotted; cursor: help;" }, "Address");
+ peerTableHeaderRow.addChild("th").addChild("a", "href", (!isInversed ? "?sortBy=address&inversed=true" : "?sortBy=address")).addChild("span", new String[] { "title", "style" }, new String[] { "The node's network address as IP:Port", "border-bottom: 1px dotted; cursor: help;" }, "Address");
}
- peerTableHeaderRow.addChild("th").addChild("a", "href", "?sortBy=version").addChild("#", "Version");
+ peerTableHeaderRow.addChild("th").addChild("a", "href", (!isInversed ? "?sortBy=version&inversed=true" : "?sortBy=version")).addChild("#", "Version");
if (advancedEnabled) {
- peerTableHeaderRow.addChild("th").addChild("a", "href", "?sortBy=location").addChild("#", "Location");
+ peerTableHeaderRow.addChild("th").addChild("a", "href", (!isInversed ? "?sortBy=location&inversed=true" : "?sortBy=location")).addChild("#", "Location");
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title", "style" }, new String[] { "Other node busy? Display: Percentage of time the node is overloaded, Current wait time remaining (0=not overloaded)/total/last overload reason", "border-bottom: 1px dotted; cursor: help;" }, "Backoff");
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title", "style" }, new String[] { "Probability of the node rejecting a request due to overload or causing a timeout.", "border-bottom: 1px dotted; cursor: help;" }, "Overload Probability");
}
peerTableHeaderRow.addChild("th").addChild("span", new String[] { "title", "style" }, new String[] { "How long since the node was connected or last seen", "border-bottom: 1px dotted; cursor: help;" }, "Connected\u00a0/\u00a0Idle");
- peerTableHeaderRow.addChild("th").addChild("a", "href", "?sortBy=privnote").addChild("span", new String[] { "title", "style" }, new String[] { "A private note concerning this peer", "border-bottom: 1px dotted; cursor: help;" }, "Private Note");
+ peerTableHeaderRow.addChild("th").addChild("a", "href", (!isInversed ? "?sortBy=privnote&inversed=true" : "?sortBy=privnote")).addChild("span", new String[] { "title", "style" }, new String[] { "A private note concerning this peer", "border-bottom: 1px dotted; cursor: help;" }, "Private Note");
if(advancedEnabled) {
peerTableHeaderRow.addChild("th", "%\u00a0Time Routable");
More information about the cvs
mailing list