📄 tablecolumnimpl.java
字号:
}
}
public void invalidateCells() {
TableStructureEventDispatcher tsed = TableStructureEventDispatcher.getInstance(sTableID);
tsed.columnInvalidate(this);
}
public void addListeners(Object listenerObject) {
if (listenerObject instanceof TableCellDisposeListener)
addCellDisposeListener((TableCellDisposeListener)listenerObject);
if (listenerObject instanceof TableCellRefreshListener)
addCellRefreshListener((TableCellRefreshListener)listenerObject);
if (listenerObject instanceof TableCellToolTipListener)
addCellToolTipListener((TableCellToolTipListener)listenerObject);
if (listenerObject instanceof TableCellAddedListener)
addCellAddedListener((TableCellAddedListener)listenerObject);
if (listenerObject instanceof TableCellMouseListener)
addCellMouseListener((TableCellMouseListener)listenerObject);
if (listenerObject instanceof TableCellVisibilityListener)
addCellVisibilityListener((TableCellVisibilityListener)listenerObject);
}
/* Start of not plugin public API functions */
//////////////////////////////////////////////
public void setColumnAdded(boolean bAdded) {
bColumnAdded = bAdded;
}
public boolean getColumnAdded() {
return bColumnAdded;
}
public void setUseCoreDataSource(boolean bCoreDataSource) {
this.bCoreDataSource = bCoreDataSource;
}
public boolean getUseCoreDataSource() {
return bCoreDataSource;
}
public void invokeCellRefreshListeners(TableCellCore cell) {
//System.out.println(this + " :: invokeCellRefreshListeners" + cellRefreshListeners);
if (cellRefreshListeners == null)
return;
//System.out.println(this + " :: invokeCellRefreshListeners" + cellRefreshListeners.size());
for (int i = 0; i < cellRefreshListeners.size(); i++){
try{
((TableCellRefreshListener)(cellRefreshListeners.get(i))).refresh(cell);
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
}
public void invokeCellAddedListeners(TableCellCore cell) {
if (cellAddedListeners == null)
return;
for (int i = 0; i < cellAddedListeners.size(); i++){
try{
((TableCellAddedListener)(cellAddedListeners.get(i))).cellAdded(cell);
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
}
public void invokeCellDisposeListeners(TableCellCore cell) {
if (cellDisposeListeners == null)
return;
for (int i = 0; i < cellDisposeListeners.size(); i++){
try{
((TableCellDisposeListener)(cellDisposeListeners.get(i))).dispose(cell);
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
}
public void invokeCellToolTipListeners(TableCellCore cell, int type) {
if (cellToolTipListeners == null)
return;
if (type == TableCellCore.TOOLTIPLISTENER_HOVER) {
for (int i = 0; i < cellToolTipListeners.size(); i++){
try{
((TableCellToolTipListener)(cellToolTipListeners.get(i))).cellHover(cell);
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
} else {
for (int i = 0; i < cellToolTipListeners.size(); i++){
try{
((TableCellToolTipListener)(cellToolTipListeners.get(i))).cellHoverComplete(cell);
}catch( Throwable e ){
Debug.printStackTrace(e);
}
}
}
}
public void invokeCellMouseListeners(TableCellMouseEvent event) {
if (cellMouseListeners == null)
return;
for (int i = 0; i < cellMouseListeners.size(); i++) {
try {
TableCellMouseListener l = (TableCellMouseListener) (cellMouseListeners
.get(i));
l.cellMouseTrigger(event);
} catch (Throwable e) {
Debug.printStackTrace(e);
}
}
}
public void invokeCellVisibilityListeners(TableCellCore
cell, int visibility) {
if (cellVisibilityListeners == null)
return;
for (int i = 0; i < cellVisibilityListeners.size(); i++) {
try {
TableCellVisibilityListener l = (TableCellVisibilityListener) (cellVisibilityListeners.get(i));
l.cellVisibilityChanged(cell, visibility);
} catch (Throwable e) {
Debug.printStackTrace(e);
}
}
}
public void setPositionNoShift(int position) {
iPosition = position;
}
public void loadSettings() {
String sItemPrefix = "Table." + sTableID + "." + sName;
iWidth = COConfigurationManager.getIntParameter(sItemPrefix + ".width", iWidth);
if (iWidth <= 0)
iWidth = 100;
iPosition = COConfigurationManager.getIntParameter(sItemPrefix + ".position",
iPosition);
}
public void saveSettings() {
String sItemPrefix = "Table." + sTableID + "." + sName;
COConfigurationManager.setParameter(sItemPrefix + ".position", iPosition);
COConfigurationManager.setParameter(sItemPrefix + ".width", iWidth);
}
public int getSWTAlign() {
return iAlignment == ALIGN_LEAD ? SWT.LEAD
: (iAlignment == ALIGN_CENTER) ? SWT.CENTER
: SWT.TRAIL;
}
public String getTitleLanguageKey() {
try {
this_mon.enter();
if (sTitleLanguageKey == null) {
sTitleLanguageKey = sTableID + ".column." + sName;
if (MessageText.keyExists(sTitleLanguageKey)) {
return sTitleLanguageKey;
}
String sKeyPrefix;
// Try a generic one of "TableColumn." + columnid
sKeyPrefix = "TableColumn.header.";
if (MessageText.keyExists(sKeyPrefix + sName)) {
sTitleLanguageKey = sKeyPrefix + sName;
return sTitleLanguageKey;
}
// Support "Old Style" language keys, which have a prefix of TableID + "View."
// Also, "MySeeders" is actually stored in "MyTorrents"..
sKeyPrefix = (sTableID.equals(TableManager.TABLE_MYTORRENTS_COMPLETE)
? TableManager.TABLE_MYTORRENTS_INCOMPLETE : sTableID)
+ "View.";
if (MessageText.keyExists(sKeyPrefix + sName)) {
sTitleLanguageKey = sKeyPrefix + sName;
}
}
return sTitleLanguageKey;
} finally {
this_mon.exit();
}
}
public int getConsecutiveErrCount() {
return iConsecutiveErrCount;
}
public void setConsecutiveErrCount(int iCount) {
iConsecutiveErrCount = iCount;
}
public void removeContextMenuItem(TableContextMenuItem menuItem) {
if (menuItems == null)
return;
menuItems.remove(menuItem);
}
public TableContextMenuItem addContextMenuItem(String key) {
if (menuItems == null)
menuItems = new ArrayList();
// Hack.. should be using our own implementation..
TableContextMenuItemImpl item = new TableContextMenuItemImpl("", key);
menuItems.add(item);
return item;
}
public TableContextMenuItem[] getContextMenuItems() {
if (menuItems == null)
return new TableContextMenuItem[0];
return (TableContextMenuItem[])menuItems.toArray(new TableContextMenuItem[0]);
}
public boolean isObfusticated() {
return bObfusticateData;
}
public void setObfustication(boolean hideData) {
bObfusticateData = hideData;
}
public long getLastSortValueChange() {
if (bSortValueLive) {
return SystemTime.getCurrentTime();
}
return lLastSortValueChange;
}
public void setLastSortValueChange(long lastSortValueChange) {
lLastSortValueChange = lastSortValueChange;
}
public boolean isSortValueLive() {
return bSortValueLive;
}
public void setSortValueLive(boolean live) {
// if (live && !bSortValueLive) {
// System.out.println("Setting " + sTableID + ": " + sName + " to live sort value");
// }
bSortValueLive = live;
}
public void addRefreshTime(long ms) {
if (ms == 0) {
lStatsRefreshZeroCount++;
} else {
lStatsRefreshTotalTime += ms;
lStatsRefreshCount++;
}
}
public void generateDiagnostics(IndentWriter writer) {
writer.println("Column " + sTableID + ":" + sName
+ (bSortValueLive ? " (Live Sort)" : ""));
try {
writer.indent();
if (lStatsRefreshCount > 0) {
writer.println("Avg refresh time (" + lStatsRefreshCount
+ " samples): " + (lStatsRefreshTotalTime / lStatsRefreshCount)
+ " (" + lStatsRefreshZeroCount
+ " zero ms refreshes not included)");
}
writer.println("Listeners: refresh=" + getListCountString(cellRefreshListeners)
+ "; dispose=" + getListCountString(cellDisposeListeners)
+ "; mouse=" + getListCountString(cellMouseListeners)
+ "; vis=" + getListCountString(cellVisibilityListeners)
+ "; added=" + getListCountString(cellAddedListeners)
+ "; tooltip=" + getListCountString(cellToolTipListeners));
writer.println("lLastSortValueChange=" + lLastSortValueChange);
} catch (Exception e) {
} finally {
writer.exdent();
}
}
private String getListCountString(List l) {
if (l == null) {
return "-0";
}
return "" + l.size();
}
public void setTableID(String tableID) {
sTableID = tableID;
}
public int compare(Object arg0, Object arg1) {
TableCellCore cell0 = ((TableRowCore)arg0).getTableCellCore(sName);
TableCellCore cell1 = ((TableRowCore)arg1).getTableCellCore(sName);
Comparable c0 = (cell0 == null) ? "" : cell0.getSortValue();
Comparable c1 = (cell1 == null) ? "" : cell1.getSortValue();
try {
boolean c0isString = c0 instanceof String;
boolean c1isString = c1 instanceof String;
if (c0isString && c1isString) {
if (bSortAscending)
return ((String)c0).compareToIgnoreCase((String)c1);
return ((String)c1).compareToIgnoreCase((String)c0);
}
int val;
if (c0isString && !c1isString) {
val = -1;
} else if (c1isString && !c0isString) {
val = 1;
} else if (c1 == null) {
if (c0 == null) {
return 0;
}
// always place nulls at bottom
return -1;
} else if (c0 == null) {
// always place nulls at bottom
return 1;
} else {
val = c1.compareTo(c0);
}
return bSortAscending ? -val : val;
} catch (ClassCastException e) {
System.err.println("Can't compare " + c0.getClass().getName()
+ "(" + c0.toString() + ") from row #"
+ cell0.getTableRowCore().getIndex() + " to "
+ c1.getClass().getName()
+ "(" + c1.toString() + ") from row #"
+ cell1.getTableRowCore().getIndex()
+ " while sorting column " + sName);
e.printStackTrace();
return 0;
}
}
/**
* @param bAscending The bAscending to set.
*/
public void setSortAscending(boolean bAscending) {
if (this.bSortAscending == bAscending) {
return;
}
setLastSortValueChange(SystemTime.getCurrentTime());
this.bSortAscending = bAscending;
}
/**
* @return Returns the bAscending.
*/
public boolean isSortAscending() {
return bSortAscending;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -