NameItempublic class NameItem extends org.gudy.azureus2.ui.swt.views.table.utils.CoreTableColumn implements TableCellLightRefreshListener, org.gudy.azureus2.ui.swt.debug.ObfusticateCellText, TableCellDisposeListenerTorrent name cell for My Torrents. |
Fields Summary |
---|
private static boolean | bShowIcon |
Constructors Summary |
---|
public NameItem(String sTableID)Default Constructor
COConfigurationManager.addAndFireParameterListener(
"NameColumn.showProgramIcon", new ParameterListener() {
public void parameterChanged(String parameterName) {
bShowIcon = COConfigurationManager.getBooleanParameter("NameColumn.showProgramIcon");
}
});
super("name", POSITION_LAST, 250, sTableID);
setObfustication(true);
setRefreshInterval(INTERVAL_LIVE);
setType(TableColumn.TYPE_TEXT);
setMinWidth(100);
|
Methods Summary |
---|
public void | dispose(TableCell cell)
if (bShowIcon && Constants.isWindows) {
disposeCellIcon(cell);
}
| private void | disposeCellIcon(TableCell cell)
final Image img = ((TableCellSWT) cell).getIcon();
if (img != null) {
((TableCellSWT) cell).setIcon(null);
if (!img.isDisposed()) {
img.dispose();
}
}
| public java.lang.String | getObfusticatedText(TableCell cell)
String name = null;
DownloadManager dm = (DownloadManager) cell.getDataSource();
if (dm != null) {
name = dm.toString();
int i = name.indexOf('#");
if (i > 0) {
name = name.substring(i + 1);
}
}
if (name == null)
name = "";
return name;
| public void | refresh(TableCell cell)
refresh(cell, false);
| public void | refresh(TableCell cell, boolean sortOnlyRefresh)
String name = null;
DownloadManager dm = (DownloadManager) cell.getDataSource();
if (dm != null)
name = dm.getDisplayName();
if (name == null)
name = "";
//setText returns true only if the text is updated
if ((cell.setText(name) || !cell.isValid())) {
if (dm != null && bShowIcon && !sortOnlyRefresh) {
String path = dm.getDownloadState().getPrimaryFile();
if (path != null) {
// Don't ever dispose of PathIcon, it's cached and may be used elsewhere
Image icon = ImageRepository.getPathIcon(path);
if (Constants.isWindows) {
disposeCellIcon(cell);
Rectangle iconBounds = icon.getBounds();
// recomposite to avoid artifacts - transparency mask does not work
int cellHeight = cell.getHeight();
if (cellHeight < 20) {
cellHeight = 16;
}
final Image dstImage = new Image(Display.getCurrent(),
cellHeight, cellHeight);
GC gc = new GC(dstImage);
try {
// for drawing alpha
gc.setAdvanced(true);
} catch (Exception e) {
}
try {
gc.drawImage(icon, 0, 0, iconBounds.width, iconBounds.height, 0,
0, cellHeight, cellHeight);
TOTorrent torrent = dm.getTorrent();
if (torrent != null && !torrent.isSimpleTorrent()) {
Image imgFolder = ImageRepository.getImage("foldersmall");
Rectangle folderBounds = imgFolder.getBounds();
gc.drawImage(imgFolder, folderBounds.x, folderBounds.y,
folderBounds.width, folderBounds.height, cellHeight
- folderBounds.width, cellHeight
- folderBounds.height, folderBounds.width,
folderBounds.height);
}
} finally {
gc.dispose();
}
icon = dstImage;
}
// cheat for core, since we really know it's a TableCellImpl and want to
// use those special functions not available to Plugins
if(!((TableCellSWT) cell).setIcon(icon) && Constants.isWindows)
icon.dispose();
} else {
if (Constants.isWindows) {
disposeCellIcon(cell);
}
}
}
}
|
|