Package freenet.clients.http

Source Code of freenet.clients.http.OpennetConnectionsToadlet$OpennetComparator

package freenet.clients.http;

import java.io.IOException;
import java.net.URI;
import java.util.Comparator;

import freenet.client.HighLevelSimpleClient;
import freenet.l10n.NodeL10n;
import freenet.node.Node;
import freenet.node.NodeClientCore;
import freenet.node.OpennetPeerNodeStatus;
import freenet.node.PeerNodeStatus;
import freenet.support.HTMLNode;
import freenet.support.SimpleFieldSet;
import freenet.support.TimeUtil;
import freenet.support.api.HTTPRequest;

public class OpennetConnectionsToadlet extends ConnectionsToadlet implements LinkEnabledCallback {

  protected OpennetConnectionsToadlet(Node n, NodeClientCore core, HighLevelSimpleClient client) {
    super(n, core, client);
  }

  @Override
  protected void drawNameColumn(HTMLNode peerRow,
      PeerNodeStatus peerNodeStatus, boolean advanced) {
    // Do nothing - no names on opennet
  }

  @Override
  protected void drawPrivateNoteColumn(HTMLNode peerRow,
      PeerNodeStatus peerNodeStatus, boolean fProxyJavascriptEnabled) {
    // Do nothing - no private notes either (no such thing as negative trust in cyberspace)
  }

  @Override
  protected boolean hasNameColumn() {
    return false;
  }

  @Override
  protected boolean hasPrivateNoteColumn() {
    return false;
  }

  @Override
  protected SimpleFieldSet getNoderef() {
    return node.exportOpennetPublicFieldSet();
  }

  @Override
  protected PeerNodeStatus[] getPeerNodeStatuses(boolean noHeavy) {
    return node.peers.getOpennetPeerNodeStatuses(noHeavy);
  }

  @Override
  public boolean isEnabled(ToadletContext ctx) {
    return node.isOpennetEnabled();
  }

  @Override
  protected String getPageTitle(String titleCountString) {
    return NodeL10n.getBase().getString("OpennetConnectionsToadlet.fullTitle",
        new String[] {"counts"}, new String[] {titleCountString} );
  }

  @Override
  protected boolean shouldDrawNoderefBox(boolean advancedModeEnabled) {
    return advancedModeEnabled;
  }

  @Override
  protected boolean showPeerActionsBox() {
    // No per-peer actions supported on opennet - there's no point, they'll only reconnect,
    // possibly as a different identity. And we don't want to be able to send N2NTM spam either.
    return false;
  }

  @Override
  protected void drawPeerActionSelectBox(HTMLNode peerForm, boolean advancedModeEnabled) {
    // Do nothing, see showPeerActionsBox().
  }

  @Override
  protected String getPeerListTitle() {
    return NodeL10n.getBase().getString("OpennetConnectionsToadlet.peersListTitle");
  }

  @Override
  protected boolean acceptRefPosts() {
    return true;
  }

  @Override
  protected String defaultRedirectLocation() {
    return "/opennet/";
  }

  @Override
  protected boolean isOpennet() {
    return true;
  }

  protected class OpennetComparator extends ComparatorByStatus {

    OpennetComparator(String sortBy, boolean reversed) {
      super(sortBy, reversed);
    }
 
    @Override
    protected int customCompare(PeerNodeStatus firstNode, PeerNodeStatus secondNode, String sortBy) {
      if(sortBy.equals("successTime")) {
        long t1 = ((OpennetPeerNodeStatus)firstNode).timeLastSuccess;
        long t2 = ((OpennetPeerNodeStatus)secondNode).timeLastSuccess;
        if(t1 > t2) return reversed ? 1 : -1;
        else if(t2 > t1) return reversed ? -1 : 1;
      }
      return super.customCompare(firstNode, secondNode, sortBy);
    }
  }
 
  @Override
  protected Comparator<PeerNodeStatus> comparator(String sortBy, boolean reversed) {
    return new OpennetComparator(sortBy, reversed);
  }

  @Override
  SimpleColumn[] endColumnHeaders(boolean advancedMode) {
    if(!advancedMode) return null;
    return new SimpleColumn[] {
        new SimpleColumn() {

          @Override
          protected void drawColumn(HTMLNode peerRow, PeerNodeStatus peerNodeStatus) {
            OpennetPeerNodeStatus status = (OpennetPeerNodeStatus) peerNodeStatus;
            long tLastSuccess = status.timeLastSuccess;
            peerRow.addChild("td", "class", "peer-last-success", tLastSuccess > 0 ? TimeUtil.formatTime(System.currentTimeMillis() - tLastSuccess) : "NEVER");
          }
          @Override
          public String getExplanationKey() {
            return "OpennetConnectionsToadlet.successTime";
          }
          @Override
          public String getSortString() {
            return "successTime";
          }
          @Override
          public String getTitleKey() {
            return "OpennetConnectionsToadlet.successTimeTitle";
          }
        }};
  }

  @Override
  public String path() {
    return "/strangers/";
  }

  @Override
  public void handleMethodGET(URI uri, HTTPRequest request, ToadletContext ctx) throws ToadletContextClosedException, IOException,   RedirectException {
    super.handleMethodGET(uri, request, ctx);
  }

  @Override
  public void handleMethodPOST(URI uri, HTTPRequest request, ToadletContext ctx) throws ToadletContextClosedException, IOException, RedirectException {
    super.handleMethodPOST(uri, request, ctx);
  }
   
}
TOP

Related Classes of freenet.clients.http.OpennetConnectionsToadlet$OpennetComparator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.