use of com.biglybt.pif.ui.tables.TableColumnCreationListener in project BiglyBT by BiglySoftware.
the class BuddyPluginView method addBetaSubviews.
private void addBetaSubviews(boolean enable) {
String[] views = { TableManager.TABLE_MYTORRENTS_ALL_BIG, TableManager.TABLE_MYTORRENTS_INCOMPLETE, TableManager.TABLE_MYTORRENTS_INCOMPLETE_BIG, TableManager.TABLE_MYTORRENTS_COMPLETE, "TagsView" };
if (enable) {
taggableLifecycleAdapter = new TaggableLifecycleAdapter() {
@Override
public void taggableTagged(TagType tag_type, Tag tag, Taggable taggable) {
if (tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL) {
DownloadManager dm = (DownloadManager) taggable;
for (BetaSubViewHolder h : beta_subviews.values()) {
h.tagsUpdated(dm);
}
}
}
@Override
public void taggableUntagged(TagType tag_type, Tag tag, Taggable taggable) {
if (tag_type.getTagType() == TagType.TT_DOWNLOAD_MANUAL) {
DownloadManager dm = (DownloadManager) taggable;
for (BetaSubViewHolder h : beta_subviews.values()) {
h.tagsUpdated(dm);
}
}
}
};
TagManagerFactory.getTagManager().addTaggableLifecycleListener(Taggable.TT_DOWNLOAD, taggableLifecycleAdapter);
UISWTViewEventListener listener = new UISWTViewEventListener() {
@Override
public boolean eventOccurred(UISWTViewEvent event) {
UISWTView currentView = event.getView();
switch(event.getType()) {
case UISWTViewEvent.TYPE_CREATE:
{
beta_subviews.put(currentView, new BetaSubViewHolder());
currentView.setDestroyOnDeactivate(false);
break;
}
case UISWTViewEvent.TYPE_INITIALIZE:
{
BetaSubViewHolder subview = beta_subviews.get(currentView);
if (subview != null) {
subview.initialise(event.getView(), (Composite) event.getData());
}
break;
}
case UISWTViewEvent.TYPE_DATASOURCE_CHANGED:
{
BetaSubViewHolder subview = beta_subviews.get(currentView);
if (subview != null) {
subview.setDataSource(event.getData());
}
break;
}
case UISWTViewEvent.TYPE_FOCUSGAINED:
{
BetaSubViewHolder subview = beta_subviews.get(currentView);
if (subview != null) {
subview.gotFocus();
}
break;
}
case UISWTViewEvent.TYPE_FOCUSLOST:
{
BetaSubViewHolder subview = beta_subviews.get(currentView);
if (subview != null) {
subview.lostFocus();
}
break;
}
case UISWTViewEvent.TYPE_DESTROY:
{
BetaSubViewHolder subview = beta_subviews.remove(currentView);
if (subview != null) {
subview.destroy();
}
break;
}
}
return true;
}
};
for (String table_id : views) {
ui_instance.addView(table_id, "azbuddy.ui.menu.chat", listener);
}
TableManager table_manager = plugin.getPluginInterface().getUIManager().getTableManager();
TableCellRefreshListener msg_refresh_listener = new TableCellRefreshListener() {
@Override
public void refresh(TableCell _cell) {
TableCellSWT cell = (TableCellSWT) _cell;
Download dl = (Download) cell.getDataSource();
if (dl == null) {
return;
}
List<ChatInstance> instances = BuddyPluginUtils.peekChatInstances(dl);
boolean is_pending = false;
for (ChatInstance instance : instances) {
if (instance.getMessageOutstanding()) {
is_pending = true;
}
}
Image graphic;
String tooltip;
int sort_order;
if (is_pending) {
graphic = bs_chat_gray_text;
tooltip = MessageText.getString("TableColumn.header.chat.msg.out");
sort_order = 1;
} else {
graphic = null;
tooltip = MessageText.getString("label.no.messages");
sort_order = 0;
}
cell.setMarginHeight(0);
cell.setGraphic(graphic);
cell.setToolTip(tooltip);
cell.setSortValue(sort_order);
cell.setCursorID(graphic == null ? SWT.CURSOR_ARROW : SWT.CURSOR_HAND);
}
};
TableCellMouseListener msg_mouse_listener = new TableCellMouseListener() {
@Override
public void cellMouseTrigger(TableCellMouseEvent event) {
if (event.eventType == TableCellMouseEvent.EVENT_MOUSEUP) {
TableCell cell = event.cell;
Download dl = (Download) cell.getDataSource();
if (dl != null) {
List<ChatInstance> instances = BuddyPluginUtils.peekChatInstances(dl);
for (ChatInstance instance : instances) {
if (instance.getMessageOutstanding()) {
try {
BuddyPluginUtils.getBetaPlugin().showChat(instance);
} catch (Throwable e) {
Debug.out(e);
}
}
}
}
}
}
};
columnMessagePending = new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn result) {
result.setAlignment(TableColumn.ALIGN_CENTER);
result.setPosition(TableColumn.POSITION_LAST);
result.setWidth(32);
result.setRefreshInterval(TableColumn.INTERVAL_INVALID_ONLY);
result.setType(TableColumn.TYPE_GRAPHIC);
result.addCellRefreshListener(msg_refresh_listener);
result.addCellMouseListener(msg_mouse_listener);
result.setIconReference("dchat_gray", true);
synchronized (columns) {
columns.add(result);
}
}
};
table_manager.registerColumn(Download.class, "azbuddy.ui.column.msgpending", columnMessagePending);
} else {
for (String table_id : views) {
ui_instance.removeViews(table_id, "azbuddy.ui.menu.chat");
}
for (UISWTView entry : new ArrayList<>(beta_subviews.keySet())) {
entry.closeView();
}
if (taggableLifecycleAdapter != null) {
TagManagerFactory.getTagManager().removeTaggableLifecycleListener(Taggable.TT_DOWNLOAD, taggableLifecycleAdapter);
taggableLifecycleAdapter = null;
}
beta_subviews.clear();
if (columnMessagePending != null) {
TableManager table_manager = plugin.getPluginInterface().getUIManager().getTableManager();
table_manager.unregisterColumn(Download.class, "azbuddy.ui.column.msgpending", columnMessagePending);
columnMessagePending = null;
synchronized (columns) {
columns.clear();
}
}
}
}
use of com.biglybt.pif.ui.tables.TableColumnCreationListener in project BiglyBT by BiglySoftware.
the class SBC_SearchResultsView method initColumns.
private void initColumns(Core core) {
synchronized (SBC_SearchResultsView.class) {
if (columnsAdded) {
return;
}
columnsAdded = true;
}
TableColumnManager tableManager = TableColumnManager.getInstance();
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultType.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultType(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultName.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultName(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultActions.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultActions(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultSize.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultSize(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultSeedsPeers.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultSeedsPeers(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultRatings.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultRatings(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultAge.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultAge(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultRank.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultRank(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultCategory.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultCategory(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchResultSite.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchResultSite(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultHash.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultHash(column);
}
});
tableManager.registerColumn(SBC_SearchResult.class, ColumnSearchSubResultExisting.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultExisting(column);
}
});
}
use of com.biglybt.pif.ui.tables.TableColumnCreationListener in project BiglyBT by BiglySoftware.
the class SBC_SubscriptionResultsView method initColumns.
private void initColumns(Core core) {
synchronized (SBC_SubscriptionResultsView.class) {
if (columnsAdded) {
return;
}
columnsAdded = true;
}
TableColumnManager tableManager = TableColumnManager.getInstance();
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSubResultNew.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSubResultNew(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultType.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultType(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultName.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultName(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultActions.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultActions(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultSize.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultSize(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultSeedsPeers.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultSeedsPeers(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultRatings.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultRatings(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultAge.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultAge(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultRank.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultRank(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultCategory.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultCategory(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultHash.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultHash(column);
}
});
tableManager.registerColumn(SBC_SubscriptionResult.class, ColumnSearchSubResultExisting.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnSearchSubResultExisting(column);
}
});
}
use of com.biglybt.pif.ui.tables.TableColumnCreationListener in project BiglyBT by BiglySoftware.
the class SubscriptionWizard method initColumns.
private static void initColumns() {
if (columnsAdded) {
return;
}
columnsAdded = true;
UIManager uiManager = PluginInitializer.getDefaultInterface().getUIManager();
TableManager tableManager = uiManager.getTableManager();
tableManager.registerColumn(Subscription.class, "SubWizName", new TableColumnCreationListener() {
private Image rssIcon;
@Override
public void tableColumnCreated(com.biglybt.pif.ui.tables.TableColumn column) {
// this'll get triggered for the Subscriptions Overview table too - easiest fix is to default to hidden there
column.setVisible(column.getTableID().equals("SubscriptionWizard"));
ImageLoader imageLoader = ImageLoader.getInstance();
rssIcon = imageLoader.getImage("icon_rss");
column.addCellAddedListener(new TableCellAddedListener() {
@Override
public void cellAdded(TableCell cell) {
Subscription sub = (Subscription) cell.getDataSource();
if (sub.isSubscribed()) {
cell.setForeground(0xa0, 0xa0, 0xa0);
}
cell.setText(sub.getName());
((TableCellSWT) cell).setIcon(rssIcon);
cell.setToolTip(sub.getNameEx());
}
});
}
});
tableManager.registerColumn(Subscription.class, "SubWizRank", new TableColumnCreationListener() {
@Override
public void tableColumnCreated(com.biglybt.pif.ui.tables.TableColumn column) {
column.setWidthLimits(RANK_COLUMN_WIDTH, RANK_COLUMN_WIDTH);
// as above
column.setVisible(column.getTableID().equals("SubscriptionWizard"));
column.addCellRefreshListener(new TableCellRefreshListener() {
@Override
public void refresh(TableCell cell) {
Subscription sub = (Subscription) cell.getDataSource();
cell.setSortValue(sub.getCachedPopularity());
}
});
if (column instanceof TableColumnCore) {
TableColumnCore columnCore = (TableColumnCore) column;
columnCore.setSortAscending(false);
columnCore.addCellOtherListener("SWTPaint", new TableCellSWTPaintListener() {
@Override
public void cellPaint(GC gc, TableCellSWT cell) {
Subscription sub = (Subscription) cell.getDataSource();
Rectangle bounds = cell.getBounds();
bounds.width -= 5;
bounds.height -= 7;
bounds.x += 2;
bounds.y += 3;
gc.setBackground(ColorCache.getColor(gc.getDevice(), 255, 255, 255));
gc.fillRectangle(bounds);
gc.setForeground(ColorCache.getColor(gc.getDevice(), 200, 200, 200));
gc.drawRectangle(bounds);
bounds.width -= 2;
bounds.height -= 2;
bounds.x += 1;
bounds.y += 1;
long popularity = sub.getCachedPopularity();
// Rank in pixels between 0 and 80
// 0 -> no subscriber
// 80 -> 1000 subscribers
int rank = 80 * (int) popularity / 1000;
if (rank > 80)
rank = 80;
if (rank < 5)
rank = 5;
Rectangle clipping = gc.getClipping();
bounds.width = rank;
bounds.height -= 1;
bounds.x += 1;
bounds.y += 1;
Utils.setClipping(gc, bounds);
ImageLoader imageLoader = ImageLoader.getInstance();
Image rankingBars = imageLoader.getImage("ranking_bars");
gc.drawImage(rankingBars, bounds.x, bounds.y);
imageLoader.releaseImage("ranking_bars");
Utils.setClipping(gc, clipping);
}
});
}
}
});
TableColumnManager tcm = TableColumnManager.getInstance();
tcm.setDefaultColumnNames(TABLE_SUB_WIZ, new String[] { "SubWizName", "SubWizRank" });
}
use of com.biglybt.pif.ui.tables.TableColumnCreationListener in project BiglyBT by BiglySoftware.
the class SBC_ArchivedDownloadsView method initColumns.
protected void initColumns() {
synchronized (SBC_ArchivedDownloadsView.class) {
if (columnsAdded) {
return;
}
columnsAdded = true;
}
TableColumnManager tableManager = TableColumnManager.getInstance();
tableManager.registerColumn(DownloadStub.class, ColumnArchiveDLName.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnArchiveDLName(column);
}
});
tableManager.registerColumn(DownloadStub.class, ColumnArchiveDLSize.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnArchiveDLSize(column);
}
});
tableManager.registerColumn(DownloadStub.class, ColumnArchiveDLFileCount.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnArchiveDLFileCount(column);
}
});
tableManager.registerColumn(DownloadStub.class, ColumnArchiveDLDate.COLUMN_ID, new TableColumnCoreCreationListener() {
@Override
public TableColumnCore createTableColumnCore(Class<?> forDataSourceType, String tableID, String columnID) {
return new ColumnDateSizer(DownloadStub.class, columnID, TableColumnCreator.DATE_COLUMN_WIDTH, tableID) {
};
}
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnArchiveDLDate(column);
}
});
tableManager.registerColumn(DownloadStub.class, ColumnArchiveDLTags.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnArchiveDLTags(column);
}
});
tableManager.registerColumn(DownloadStub.class, ColumnArchiveShareRatio.COLUMN_ID, new TableColumnCreationListener() {
@Override
public void tableColumnCreated(TableColumn column) {
new ColumnArchiveShareRatio(column);
}
});
tableManager.setDefaultColumnNames(TABLE_NAME, new String[] { ColumnArchiveDLName.COLUMN_ID, ColumnArchiveDLSize.COLUMN_ID, ColumnArchiveDLFileCount.COLUMN_ID, ColumnArchiveDLDate.COLUMN_ID, ColumnArchiveShareRatio.COLUMN_ID });
tableManager.setDefaultSortColumnName(TABLE_NAME, ColumnArchiveDLName.COLUMN_ID);
}
Aggregations