forked from I2P_Developers/i2p.i2p
move comparators to their own class
This commit is contained in:
304
router/java/src/net/i2p/router/transport/udp/Sorters.java
Normal file
304
router/java/src/net/i2p/router/transport/udp/Sorters.java
Normal file
@ -0,0 +1,304 @@
|
||||
package net.i2p.router.transport.udp;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
|
||||
import net.i2p.data.DataHelper;
|
||||
|
||||
/**
|
||||
* Comparators for various columns
|
||||
*
|
||||
* @since 0.9.18 moved from UDPTransport
|
||||
*/
|
||||
class Sorters {
|
||||
|
||||
static final int FLAG_ALPHA = 0;
|
||||
static final int FLAG_IDLE_IN = 1;
|
||||
static final int FLAG_IDLE_OUT = 2;
|
||||
static final int FLAG_RATE_IN = 3;
|
||||
static final int FLAG_RATE_OUT = 4;
|
||||
static final int FLAG_SKEW = 5;
|
||||
static final int FLAG_CWND= 6;
|
||||
static final int FLAG_SSTHRESH = 7;
|
||||
static final int FLAG_RTT = 8;
|
||||
// static final int FLAG_DEV = 9;
|
||||
static final int FLAG_RTO = 10;
|
||||
static final int FLAG_MTU = 11;
|
||||
static final int FLAG_SEND = 12;
|
||||
static final int FLAG_RECV = 13;
|
||||
static final int FLAG_RESEND = 14;
|
||||
static final int FLAG_DUP = 15;
|
||||
static final int FLAG_UPTIME = 16;
|
||||
static final int FLAG_DEBUG = 99;
|
||||
|
||||
static Comparator<PeerState> getComparator(int sortFlags) {
|
||||
Comparator<PeerState> rv;
|
||||
switch (Math.abs(sortFlags)) {
|
||||
case FLAG_IDLE_IN:
|
||||
rv = new IdleInComparator();
|
||||
break;
|
||||
case FLAG_IDLE_OUT:
|
||||
rv = new IdleOutComparator();
|
||||
break;
|
||||
case FLAG_RATE_IN:
|
||||
rv = new RateInComparator();
|
||||
break;
|
||||
case FLAG_RATE_OUT:
|
||||
rv = new RateOutComparator();
|
||||
break;
|
||||
case FLAG_UPTIME:
|
||||
rv = new UptimeComparator();
|
||||
break;
|
||||
case FLAG_SKEW:
|
||||
rv = new SkewComparator();
|
||||
break;
|
||||
case FLAG_CWND:
|
||||
rv = new CwndComparator();
|
||||
break;
|
||||
case FLAG_SSTHRESH:
|
||||
rv = new SsthreshComparator();
|
||||
break;
|
||||
case FLAG_RTT:
|
||||
rv = new RTTComparator();
|
||||
break;
|
||||
//case FLAG_DEV:
|
||||
// rv = new DevComparator();
|
||||
// break;
|
||||
case FLAG_RTO:
|
||||
rv = new RTOComparator();
|
||||
break;
|
||||
case FLAG_MTU:
|
||||
rv = new MTUComparator();
|
||||
break;
|
||||
case FLAG_SEND:
|
||||
rv = new SendCountComparator();
|
||||
break;
|
||||
case FLAG_RECV:
|
||||
rv = new RecvCountComparator();
|
||||
break;
|
||||
case FLAG_RESEND:
|
||||
rv = new ResendComparator();
|
||||
break;
|
||||
case FLAG_DUP:
|
||||
rv = new DupComparator();
|
||||
break;
|
||||
case FLAG_ALPHA:
|
||||
default:
|
||||
rv = new AlphaComparator();
|
||||
break;
|
||||
}
|
||||
if (sortFlags < 0)
|
||||
rv = Collections.reverseOrder(rv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
static class AlphaComparator extends PeerComparator {
|
||||
}
|
||||
|
||||
static class IdleInComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = r.getLastReceiveTime() - l.getLastReceiveTime();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class IdleOutComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = r.getLastSendTime() - l.getLastSendTime();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class RateInComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getReceiveBps() - r.getReceiveBps();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class RateOutComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getSendBps() - r.getSendBps();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class UptimeComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = r.getKeyEstablishedTime() - l.getKeyEstablishedTime();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class SkewComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = Math.abs(l.getClockSkew()) - Math.abs(r.getClockSkew());
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class CwndComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getSendWindowBytes() - r.getSendWindowBytes();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class SsthreshComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getSlowStartThreshold() - r.getSlowStartThreshold();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class RTTComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getRTT() - r.getRTT();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
/***
|
||||
static class DevComparator extends PeerComparator {
|
||||
static final DevComparator _instance = new DevComparator();
|
||||
public static final DevComparator instance() { return _instance; }
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getRTTDeviation() - r.getRTTDeviation();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
****/
|
||||
|
||||
/** */
|
||||
static class RTOComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getRTO() - r.getRTO();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class MTUComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getMTU() - r.getMTU();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class SendCountComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsTransmitted() - r.getPacketsTransmitted();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class RecvCountComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsReceived() - r.getPacketsReceived();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class ResendComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsRetransmitted() - r.getPacketsRetransmitted();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class DupComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsReceivedDuplicate() - r.getPacketsReceivedDuplicate();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
static class PeerComparator implements Comparator<PeerState>, Serializable {
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
return DataHelper.compareTo(l.getRemotePeer().getData(), r.getRemotePeer().getData());
|
||||
}
|
||||
}
|
||||
|
||||
static void appendSortLinks(StringBuilder buf, String urlBase, int sortFlags, String descr, int ascending) {
|
||||
if (ascending == FLAG_ALPHA) { // 0
|
||||
buf.append(" <a href=\"").append(urlBase).append("?sort=0" +
|
||||
"#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></a>");
|
||||
} else if (sortFlags == ascending) {
|
||||
buf.append(" <a href=\"").append(urlBase).append("?sort=").append(0-ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></a>" +
|
||||
"<b><img src=\"/themes/console/images/outbound.png\" alt=\"^\"></b>");
|
||||
} else if (sortFlags == 0 - ascending) {
|
||||
buf.append(" <b><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></b><a href=\"").append(urlBase).append("?sort=").append(ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/outbound.png\" alt=\"^\"></a>");
|
||||
} else {
|
||||
buf.append(" <a href=\"").append(urlBase).append("?sort=").append(0-ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></a>" +
|
||||
"<a href=\"").append(urlBase).append("?sort=").append(ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/outbound.png\" alt=\"^\"></a>");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +1,6 @@
|
||||
package net.i2p.router.transport.udp;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.io.Writer;
|
||||
import java.net.InetAddress;
|
||||
import java.net.SocketException;
|
||||
@ -9,8 +8,6 @@ import java.net.UnknownHostException;
|
||||
import java.text.DecimalFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@ -42,8 +39,9 @@ import net.i2p.router.transport.TransportBid;
|
||||
import net.i2p.router.transport.TransportImpl;
|
||||
import net.i2p.router.transport.TransportUtil;
|
||||
import static net.i2p.router.transport.TransportUtil.IPv6Config.*;
|
||||
import static net.i2p.router.transport.udp.PeerTestState.Role.*;
|
||||
import net.i2p.router.transport.crypto.DHSessionKeyBuilder;
|
||||
import static net.i2p.router.transport.udp.PeerTestState.Role.*;
|
||||
import static net.i2p.router.transport.udp.Sorters.*;
|
||||
import net.i2p.router.util.EventLog;
|
||||
import net.i2p.router.util.RandomIterator;
|
||||
import net.i2p.util.Addresses;
|
||||
@ -2254,295 +2252,6 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority
|
||||
DHSessionKeyBuilder.Factory getDHFactory() {
|
||||
return _dhFactory;
|
||||
}
|
||||
|
||||
private static final int FLAG_ALPHA = 0;
|
||||
private static final int FLAG_IDLE_IN = 1;
|
||||
private static final int FLAG_IDLE_OUT = 2;
|
||||
private static final int FLAG_RATE_IN = 3;
|
||||
private static final int FLAG_RATE_OUT = 4;
|
||||
private static final int FLAG_SKEW = 5;
|
||||
private static final int FLAG_CWND= 6;
|
||||
private static final int FLAG_SSTHRESH = 7;
|
||||
private static final int FLAG_RTT = 8;
|
||||
//private static final int FLAG_DEV = 9;
|
||||
private static final int FLAG_RTO = 10;
|
||||
private static final int FLAG_MTU = 11;
|
||||
private static final int FLAG_SEND = 12;
|
||||
private static final int FLAG_RECV = 13;
|
||||
private static final int FLAG_RESEND = 14;
|
||||
private static final int FLAG_DUP = 15;
|
||||
private static final int FLAG_UPTIME = 16;
|
||||
private static final int FLAG_DEBUG = 99;
|
||||
|
||||
private static Comparator<PeerState> getComparator(int sortFlags) {
|
||||
Comparator<PeerState> rv;
|
||||
switch (Math.abs(sortFlags)) {
|
||||
case FLAG_IDLE_IN:
|
||||
rv = new IdleInComparator();
|
||||
break;
|
||||
case FLAG_IDLE_OUT:
|
||||
rv = new IdleOutComparator();
|
||||
break;
|
||||
case FLAG_RATE_IN:
|
||||
rv = new RateInComparator();
|
||||
break;
|
||||
case FLAG_RATE_OUT:
|
||||
rv = new RateOutComparator();
|
||||
break;
|
||||
case FLAG_UPTIME:
|
||||
rv = new UptimeComparator();
|
||||
break;
|
||||
case FLAG_SKEW:
|
||||
rv = new SkewComparator();
|
||||
break;
|
||||
case FLAG_CWND:
|
||||
rv = new CwndComparator();
|
||||
break;
|
||||
case FLAG_SSTHRESH:
|
||||
rv = new SsthreshComparator();
|
||||
break;
|
||||
case FLAG_RTT:
|
||||
rv = new RTTComparator();
|
||||
break;
|
||||
//case FLAG_DEV:
|
||||
// rv = new DevComparator();
|
||||
// break;
|
||||
case FLAG_RTO:
|
||||
rv = new RTOComparator();
|
||||
break;
|
||||
case FLAG_MTU:
|
||||
rv = new MTUComparator();
|
||||
break;
|
||||
case FLAG_SEND:
|
||||
rv = new SendCountComparator();
|
||||
break;
|
||||
case FLAG_RECV:
|
||||
rv = new RecvCountComparator();
|
||||
break;
|
||||
case FLAG_RESEND:
|
||||
rv = new ResendComparator();
|
||||
break;
|
||||
case FLAG_DUP:
|
||||
rv = new DupComparator();
|
||||
break;
|
||||
case FLAG_ALPHA:
|
||||
default:
|
||||
rv = new AlphaComparator();
|
||||
break;
|
||||
}
|
||||
if (sortFlags < 0)
|
||||
rv = Collections.reverseOrder(rv);
|
||||
return rv;
|
||||
}
|
||||
|
||||
private static class AlphaComparator extends PeerComparator {
|
||||
}
|
||||
|
||||
private static class IdleInComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = r.getLastReceiveTime() - l.getLastReceiveTime();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class IdleOutComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = r.getLastSendTime() - l.getLastSendTime();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class RateInComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getReceiveBps() - r.getReceiveBps();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class RateOutComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getSendBps() - r.getSendBps();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class UptimeComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = r.getKeyEstablishedTime() - l.getKeyEstablishedTime();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class SkewComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = Math.abs(l.getClockSkew()) - Math.abs(r.getClockSkew());
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class CwndComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getSendWindowBytes() - r.getSendWindowBytes();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class SsthreshComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getSlowStartThreshold() - r.getSlowStartThreshold();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class RTTComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getRTT() - r.getRTT();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
/***
|
||||
private static class DevComparator extends PeerComparator {
|
||||
private static final DevComparator _instance = new DevComparator();
|
||||
public static final DevComparator instance() { return _instance; }
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getRTTDeviation() - r.getRTTDeviation();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
****/
|
||||
|
||||
/** */
|
||||
private static class RTOComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getRTO() - r.getRTO();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class MTUComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
int rv = l.getMTU() - r.getMTU();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class SendCountComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsTransmitted() - r.getPacketsTransmitted();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class RecvCountComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsReceived() - r.getPacketsReceived();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class ResendComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsRetransmitted() - r.getPacketsRetransmitted();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class DupComparator extends PeerComparator {
|
||||
@Override
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
long rv = l.getPacketsReceivedDuplicate() - r.getPacketsReceivedDuplicate();
|
||||
if (rv == 0) // fallback on alpha
|
||||
return super.compare(l, r);
|
||||
else
|
||||
return (int)rv;
|
||||
}
|
||||
}
|
||||
|
||||
private static class PeerComparator implements Comparator<PeerState>, Serializable {
|
||||
public int compare(PeerState l, PeerState r) {
|
||||
return DataHelper.compareTo(l.getRemotePeer().getData(), r.getRemotePeer().getData());
|
||||
}
|
||||
}
|
||||
|
||||
private static void appendSortLinks(StringBuilder buf, String urlBase, int sortFlags, String descr, int ascending) {
|
||||
if (ascending == FLAG_ALPHA) { // 0
|
||||
buf.append(" <a href=\"").append(urlBase).append("?sort=0" +
|
||||
"#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></a>");
|
||||
} else if (sortFlags == ascending) {
|
||||
buf.append(" <a href=\"").append(urlBase).append("?sort=").append(0-ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></a>" +
|
||||
"<b><img src=\"/themes/console/images/outbound.png\" alt=\"^\"></b>");
|
||||
} else if (sortFlags == 0 - ascending) {
|
||||
buf.append(" <b><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></b><a href=\"").append(urlBase).append("?sort=").append(ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/outbound.png\" alt=\"^\"></a>");
|
||||
} else {
|
||||
buf.append(" <a href=\"").append(urlBase).append("?sort=").append(0-ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/inbound.png\" alt=\"V\"></a>" +
|
||||
"<a href=\"").append(urlBase).append("?sort=").append(ascending);
|
||||
buf.append("#udpcon\" title=\"").append(descr).append("\"><img src=\"/themes/console/images/outbound.png\" alt=\"^\"></a>");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException {
|
||||
|
Reference in New Issue
Block a user