package org.limewire.ui.swing.upload.table; import javax.swing.Icon; import org.jdesktop.application.Resource; import org.limewire.core.api.upload.UploadItem; import org.limewire.core.api.upload.UploadItem.BrowseType; import org.limewire.core.api.upload.UploadItem.UploadItemType; import org.limewire.ui.swing.transfer.TransferTitleRenderer; import org.limewire.ui.swing.util.CategoryIconManager; import org.limewire.ui.swing.util.GuiUtils; import org.limewire.ui.swing.util.I18n; /** * Cell renderer for the title column in the Uploads table. */ class UploadTitleRenderer extends TransferTitleRenderer { @Resource private Icon friendBrowseHostIcon; @Resource private Icon p2pBrowseHostIcon; private final CategoryIconManager iconManager; /** * Constructs an UploadTitleRenderer. */ public UploadTitleRenderer(CategoryIconManager iconManager) { this.iconManager = iconManager; GuiUtils.assignResources(this); } @Override protected Icon getIcon(Object value) { if (!(value instanceof UploadItem)) { return null; } UploadItem uploadItem = (UploadItem) value; switch (uploadItem.getState()) { case UPLOADING: return iconManager.getIcon(uploadItem.getCategory()); case BROWSE_HOST: case BROWSE_HOST_DONE: if (uploadItem.getBrowseType() == BrowseType.FRIEND) { return friendBrowseHostIcon; } else { return p2pBrowseHostIcon; } default: return iconManager.getIcon(uploadItem.getCategory()); } } @Override protected String getText(Object value) { if (!(value instanceof UploadItem)) { return ""; } UploadItem uploadItem = (UploadItem) value; switch (uploadItem.getState()) { case BROWSE_HOST: case BROWSE_HOST_DONE: return uploadItem.getRenderName(); default: if (uploadItem.getUploadItemType() == UploadItemType.BITTORRENT) { return I18n.tr("{0} (torrent)", uploadItem.getFileName()); } else { return uploadItem.getFileName() + " - " + uploadItem.getRenderName(); } } } }