package com.dgex.offspring.application.ui.peers; import org.eclipse.jface.viewers.CellLabelProvider; import org.eclipse.swt.SWT; import com.dgex.offspring.messages.Messages; public class PeerTable { public static final int TYPE_ACTIVE_PEERS = 0; public static final int TYPE_KNOWN_PEERS = 1; public static final int TYPE_BLACKLISTED_PEERS = 2; public final static int COLUMN_WELLKNOWN = 34; public final static int COLUMN_ANNOUNCED_ADDRESS = 35; public final static int COLUMN_DISCONNECTED = 36; public final static int COLUMN_ADDRESS = 37; public final static int COLUMN_WEIGHT = 38; public final static int COLUMN_DOWNLOADED = 39; public final static int COLUMN_UPLOADED = 40; public final static int COLUMN_SOFTWARE = 41; public final static int COLUMN_HALLMARK_BUTTON = 42; private final static int[] active_peers_columns = new int[] { COLUMN_HALLMARK_BUTTON, COLUMN_DISCONNECTED, COLUMN_ADDRESS, COLUMN_WEIGHT, COLUMN_DOWNLOADED, COLUMN_UPLOADED, COLUMN_SOFTWARE }; private final static int[] known_peers_columns = new int[] { COLUMN_HALLMARK_BUTTON, COLUMN_ANNOUNCED_ADDRESS, COLUMN_WEIGHT, COLUMN_DOWNLOADED, COLUMN_UPLOADED, COLUMN_SOFTWARE }; private final static int[] blacklisted_peers_columns = new int[] { COLUMN_HALLMARK_BUTTON, COLUMN_ANNOUNCED_ADDRESS, COLUMN_WEIGHT, COLUMN_DOWNLOADED, COLUMN_UPLOADED, COLUMN_SOFTWARE }; public static int[] getColumns(int peerType) { switch (peerType) { case TYPE_ACTIVE_PEERS: return active_peers_columns; case TYPE_KNOWN_PEERS: return known_peers_columns; case TYPE_BLACKLISTED_PEERS: return blacklisted_peers_columns; } return null; } public static CellLabelProvider createLabelProvider(int id, int peerType) { switch (id) { case COLUMN_HALLMARK_BUTTON: case COLUMN_DISCONNECTED: case COLUMN_WELLKNOWN: case COLUMN_ANNOUNCED_ADDRESS: case COLUMN_ADDRESS: case COLUMN_WEIGHT: case COLUMN_SOFTWARE: case COLUMN_DOWNLOADED: case COLUMN_UPLOADED: return new PeerLabelProvider(peerType); /* * case COLUMN_DOWNLOADED: case COLUMN_UPLOADED: return new * PeerStyledLabelProvider(peerType); */ } return null; } public static String getColumnLabel(int id) { switch (id) { case COLUMN_HALLMARK_BUTTON: return " "; //$NON-NLS-1$ case COLUMN_DISCONNECTED: return " "; //$NON-NLS-1$ case COLUMN_WELLKNOWN: return " "; //$NON-NLS-1$ case COLUMN_ANNOUNCED_ADDRESS: return Messages.PeerTable_column_announced_address_label; case COLUMN_ADDRESS: return Messages.PeerTable_column_address_label; case COLUMN_WEIGHT: return Messages.PeerTable_column_weight_label; case COLUMN_DOWNLOADED: return Messages.PeerTable_column_down_label; case COLUMN_UPLOADED: return Messages.PeerTable_column_up_label; case COLUMN_SOFTWARE: return Messages.PeerTable_column_software_label; } return "FAILURE"; //$NON-NLS-1$ } public static int getColumnWidth(int id) { switch (id) { case COLUMN_HALLMARK_BUTTON: case COLUMN_DISCONNECTED: case COLUMN_WELLKNOWN: return 30; case COLUMN_ANNOUNCED_ADDRESS: case COLUMN_ADDRESS: return 200; case COLUMN_WEIGHT: case COLUMN_DOWNLOADED: case COLUMN_UPLOADED: return 75; case COLUMN_SOFTWARE: return 150; } return 10; } public static int getColumnAlignment(int id) { switch (id) { case COLUMN_HALLMARK_BUTTON: case COLUMN_WELLKNOWN: case COLUMN_DISCONNECTED: return SWT.CENTER; case COLUMN_WEIGHT: case COLUMN_DOWNLOADED: case COLUMN_UPLOADED: return SWT.RIGHT; } return SWT.LEFT; } public static boolean getColumnResizable(int id) { switch (id) { case COLUMN_HALLMARK_BUTTON: case COLUMN_DISCONNECTED: case COLUMN_WELLKNOWN: case COLUMN_WEIGHT: case COLUMN_DOWNLOADED: case COLUMN_UPLOADED: return false; } return true; } }