FileDocCategorySizeDatePackage
NameItem.javaAPI DocAzureus 3.0.3.44530Mon Feb 19 14:24:06 GMT 2007org.gudy.azureus2.ui.swt.views.tableitems.mytracker

NameItem

public class NameItem extends org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn implements TableCellRefreshListener, org.gudy.azureus2.ui.swt.debug.ObfusticateCellText, TableCellDisposeListener
author
TuxPaper
since
2.0.8.5

Fields Summary
private static boolean
bShowIcon
Constructors Summary
public NameItem()
Default Constructor

		COConfigurationManager.addAndFireParameterListener(
				"NameColumn.showProgramIcon", new ParameterListener() {
					public void parameterChanged(String parameterName) {
						bShowIcon = COConfigurationManager.getBooleanParameter("NameColumn.showProgramIcon");
					}
				});
	
		super("name", POSITION_LAST, 250, TableManager.TABLE_MYTRACKER);
		setType(TableColumn.TYPE_TEXT);
	
Methods Summary
public voiddispose(TableCell cell)

		if (bShowIcon && Constants.isWindows) {
			final Image img = ((TableCellSWT) cell).getIcon();
			Image icon = ImageRepository.getFolderImage();
			if (img != null && !img.equals(icon)) {
				((TableCellSWT) cell).setIcon(null);
				if (!img.isDisposed()) {
					img.dispose();
				}
			}
		}
	
public java.lang.StringgetObfusticatedText(TableCell cell)

		TRHostTorrent item = (TRHostTorrent) cell.getDataSource();
		String name = null;
		
		try {
			name = ByteFormatter.nicePrint(item.getTorrent().getHash(), true);
		} catch (TOTorrentException e) {
		}

		if (name == null)
			name = "";
		return name;
	
public voidrefresh(TableCell cell)

		TRHostTorrent item = (TRHostTorrent) cell.getDataSource();
		String name = (item == null) ? ""
				: TorrentUtils.getLocalisedName(item.getTorrent());
		//setText returns true only if the text is updated

		if (cell.setText(name) || !cell.isValid()) {

			if (bShowIcon) {
				boolean folder_icon = false;

				// for non-simple torrents the target is always a directory

				if (item != null) {

					TOTorrent torrent = item.getTorrent();

					if (torrent != null && !torrent.isSimpleTorrent()) {

						folder_icon = true;
					}
				}

				if (folder_icon) {

					Image icon = ImageRepository.getFolderImage();

					((TableCellSWT) cell).setIcon(icon);

				} else {

					int sep = name.lastIndexOf('.");

					if (sep < 0)
						sep = 0;

					String ext = name.substring(sep);
					Image icon = ImageRepository.getIconFromExtension(ext);

					if (Constants.isWindows) {
						// recomposite to avoid artifacts - transparency mask does not work
						final Image dstImage = new Image(Display.getCurrent(),
								icon.getBounds().width, icon.getBounds().height);
						GC gc = new GC(dstImage);
						gc.drawImage(icon, 0, 0);
						gc.dispose();
						icon = dstImage;
					}

					// cheat for core, since we really know it's a TabeCellImpl and want to use
					// those special functions not available to Plugins
					((TableCellSWT) cell).setIcon(icon);
				}
			}
		}