package org.limewire.ui.swing.upload.table;
import org.limewire.core.api.library.LibraryManager;
import org.limewire.core.api.upload.UploadItem;
import org.limewire.core.api.upload.UploadListManager;
import org.limewire.ui.swing.library.LibraryMediator;
import org.limewire.ui.swing.properties.FileInfoDialogFactory;
import org.limewire.ui.swing.table.LimeSingleColumnTableFormat;
import org.limewire.ui.swing.table.MouseableTable;
import ca.odell.glazedlists.swing.DefaultEventTableModel;
import com.google.inject.Inject;
public class UploadTable extends MouseableTable {
private DefaultEventTableModel<UploadItem> model;
@Inject
public UploadTable(UploadListManager uploadListManager, LibraryMediator libraryMediator,
LibraryManager libraryManager, FileInfoDialogFactory fileInfoFactory,
UploadTableRendererEditor editor, UploadTableRendererEditor renderer) {
model = new DefaultEventTableModel<UploadItem>(uploadListManager.getSwingThreadSafeUploads(), new LimeSingleColumnTableFormat<UploadItem>(UploadItem.class));
setModel(model);
setStripeHighlighterEnabled(false);
setEmptyRowsPainted(false);
setFillsViewportHeight(false);
UploadActionHandler actionHandler = new UploadActionHandler(uploadListManager, libraryMediator, fileInfoFactory);
editor.setActionHandler(actionHandler);
getColumn(0).setCellEditor(editor);
getColumn(0).setCellRenderer(renderer);
setRowHeight(editor.getPreferredSize().height);
setPopupHandler(new UploadPopupHandler(this, actionHandler, libraryManager));
}
public UploadItem getUploadItem(int popupRow) {
return model.getElementAt(popupRow);
}
}