package eu.jucy.gui.uploadqueue;
import helpers.SizeEnum;
import java.util.Comparator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import eu.jucy.gui.ApplicationWorkbenchWindowAdvisor;
import eu.jucy.gui.GuiHelpers;
import eu.jucy.gui.Lang;
import uc.ISlotManager;
import uc.files.UploadQueue.UploadInfo;
import uihelpers.TableViewerAdministrator.ColumnDescriptor;
public abstract class UploadQueueColumns extends ColumnDescriptor<UploadInfo> {
public UploadQueueColumns(int defaultColumnSize, String columnName) {
super(defaultColumnSize, columnName);
}
public UploadQueueColumns(int defaultColumnSize, String columnName, int style) {
super(defaultColumnSize, columnName, style);
}
@Override
public Image getImage(UploadInfo x) {
return null;
}
public static class NameRequestedCol extends UploadQueueColumns {
public NameRequestedCol() {
super(250, Lang.FileCol);
}
@Override
public String getText(UploadInfo x) {
return x.getRequested();
}
}
public static class TotalSizeCol extends UploadQueueColumns {
public TotalSizeCol() {
super(70, Lang.TotalDownloaded,SWT.TRAIL);
}
@Override
public String getText(UploadInfo x) {
return SizeEnum.getReadableSize(x.getUploadedTotal());
}
@Override
public Comparator<UploadInfo> getComparator() {
return new Comparator<UploadInfo>() {
public int compare(UploadInfo arg0, UploadInfo arg1) {
return Long.valueOf(arg0.getUploadedTotal()).compareTo(arg1.getUploadedTotal());
}
};
}
}
public static class FirstRequestCol extends UploadQueueColumns {
public FirstRequestCol() {
super(110, Lang.FirstRequest);
}
@Override
public String getText(UploadInfo x) {
return GuiHelpers.dateToString(x.getFirstrequest());
}
@Override
public Comparator<UploadInfo> getComparator() {
return new Comparator<UploadInfo>() {
public int compare(UploadInfo arg0, UploadInfo arg1) {
return arg0.getFirstrequest().compareTo(arg1.getFirstrequest());
}
};
}
}
public static class RequestsReceivedCol extends UploadQueueColumns {
public RequestsReceivedCol() {
super(80, Lang.RequestsReceived,SWT.TRAIL);
}
@Override
public String getText(UploadInfo x) {
return String.valueOf(x.getNumberOfRequestsSinceThen());
}
@Override
public Comparator<UploadInfo> getComparator() {
return new Comparator<UploadInfo>() {
public int compare(UploadInfo arg0, UploadInfo arg1) {
return Integer.valueOf(arg0.getNumberOfRequestsSinceThen())
.compareTo(arg1.getNumberOfRequestsSinceThen());
}
};
}
}
public static class LastRequestCol extends UploadQueueColumns {
public LastRequestCol() {
super(110, Lang.LastRequest);
}
@Override
public String getText(UploadInfo x) {
return GuiHelpers.dateToString(x.getLastRequest());
}
@Override
public Comparator<UploadInfo> getComparator() {
return new Comparator<UploadInfo>() {
public int compare(UploadInfo arg0, UploadInfo arg1) {
return arg0.getLastRequest().compareTo(arg1.getLastRequest());
}
};
}
}
public static class SlotReceivedCol extends UploadQueueColumns {
public SlotReceivedCol() {
super(50, Lang.SlotReceived,SWT.TRAIL);
}
@Override
public String getText(UploadInfo x) {
return x.isSlot()? Lang.Yes:Lang.No;
}
}
public static class PositionCol extends UploadQueueColumns {
private final ISlotManager slotmanager;
public PositionCol() {
super(50, "Position",SWT.TRAIL);
slotmanager = ApplicationWorkbenchWindowAdvisor.get().getSlotManager();
}
@Override
public String getText(UploadInfo x) {
return ""+slotmanager.getPositionInQueue(x.getUser());
}
@Override
public Comparator<UploadInfo> getComparator() {
return new Comparator<UploadInfo>() {
public int compare(UploadInfo o1, UploadInfo o2) {
int a = slotmanager.getPositionInQueue(o1.getUser());
int b = slotmanager.getPositionInQueue(o2.getUser());
return Integer.valueOf(a).compareTo(b);
}
};
}
}
}