libraryTable.addListener(SWT.SetData, new Listener() {
public void handleEvent(Event event) {
TableItem item = (TableItem) event.item;
int index = libraryTable.indexOf (item);
SubscriptionDownloadDetails subInfo = availableSubscriptions[index];
item.setText (subInfo.getDownload().getDisplayName());
item.setData("subscriptions",subInfo.getSubscriptions());
boolean isSubscribed = false;
Subscription[] subs = subInfo.getSubscriptions();
for(int i = 0 ; i < subs.length ; i++) {
if(subs[i].isSubscribed()) isSubscribed = true;
}
if(isSubscribed) {
item.setForeground(display.getSystemColor(SWT.COLOR_GRAY));
}
if(subInfo.getDownload() == download) {
libraryTable.setSelection(item);
selectionListener.handleEvent(event);
}
if(index == 0 && download == null) {
libraryTable.setSelection(item);