package com.dgex.offspring.application.ui.peers;
import java.util.List;
import nxt.peer.Peer;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;
import com.dgex.offspring.nxtCore.service.INxtService;
public class PeerContentProvider implements IStructuredContentProvider {
private final int peerType;
private INxtService nxt;
public PeerContentProvider(int peerType) {
this.peerType = peerType;
}
@Override
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
this.nxt = (INxtService) newInput;
}
@Override
public Object[] getElements(Object inputElement) {
if (nxt == null) { return new Object[0]; }
List<Peer> peers = null;
if (peerType == PeerTable.TYPE_ACTIVE_PEERS) {
peers = nxt.getAllConnectedPeers();
}
else if (peerType == PeerTable.TYPE_KNOWN_PEERS) {
peers = nxt.getAllWellknownPeers();
}
else if (peerType == PeerTable.TYPE_BLACKLISTED_PEERS) {
peers = nxt.getAllBlacklistedPeers();
}
if (peers == null) { return new Object[0]; }
return peers.toArray(new Object[peers.size()]);
}
@Override
public void dispose() {
nxt = null;
}
}