tablecellimpl.java
来自「Azureus is a powerful, full-featured, cr」· Java 代码 · 共 556 行 · 第 1/2 页
JAVA
556 行
}
public Graphic getGraphic() {
if (bufferedTableItem == null ||
!(bufferedTableItem instanceof BufferedGraphicTableItem))
return null;
Image img = ((BufferedGraphicTableItem)bufferedTableItem).getGraphic();
return new GraphicSWTImpl(img);
}
public Image getGraphicSWT() {
if (bufferedTableItem == null ||
!(bufferedTableItem instanceof BufferedGraphicTableItem))
return null;
return ((BufferedGraphicTableItem)bufferedTableItem).getGraphic();
}
public void setFillCell(boolean bFillCell) {
if (bufferedTableItem == null ||
!(bufferedTableItem instanceof BufferedGraphicTableItem))
return;
((BufferedGraphicTableItem)bufferedTableItem).fillCell = bFillCell;
}
public void setMarginHeight(int height) {
if (bufferedTableItem == null ||
!(bufferedTableItem instanceof BufferedGraphicTableItem))
return;
((BufferedGraphicTableItem)bufferedTableItem).marginHeight = height;
}
public void setMarginWidth(int width) {
if (bufferedTableItem == null ||
!(bufferedTableItem instanceof BufferedGraphicTableItem))
return;
((BufferedGraphicTableItem)bufferedTableItem).marginWidth = width;
}
/* End TYPE_GRAPHIC Functions */
public void addRefreshListener(TableCellRefreshListener listener) {
try{
this_mon.enter();
if (refreshListeners == null)
refreshListeners = new ArrayList();
refreshListeners.add(listener);
}finally{
this_mon.exit();
}
}
public void removeRefreshListener(TableCellRefreshListener listener) {
try{
this_mon.enter();
if (refreshListeners == null)
return;
refreshListeners.remove(listener);
}finally{
this_mon.exit();
}
}
public void addDisposeListener(TableCellDisposeListener listener) {
try{
this_mon.enter();
if (disposeListeners == null) {
disposeListeners = new ArrayList();
}
disposeListeners.add(listener);
}finally{
this_mon.exit();
}
}
public void removeDisposeListener(TableCellDisposeListener listener) {
try{
this_mon.enter();
if (disposeListeners == null)
return;
disposeListeners.remove(listener);
}finally{
this_mon.exit();
}
}
public void addToolTipListener(TableCellToolTipListener listener) {
try{
this_mon.enter();
if (tooltipListeners == null) {
tooltipListeners = new ArrayList();
}
tooltipListeners.add(listener);
}finally{
this_mon.exit();
}
}
public void removeToolTipListener(TableCellToolTipListener listener) {
try{
this_mon.enter();
if (tooltipListeners == null)
return;
tooltipListeners.remove(listener);
}finally{
this_mon.exit();
}
}
/* Start of Core-Only function */
//////////////////////////////////
public void setValid(boolean _valid) {
this.valid = _valid;
}
public void refresh() {
refresh(true);
}
public void refresh(boolean bDoGraphics) {
if (bufferedTableItem == null || refreshErrLoopCount > 2)
return;
int iErrCount = tableColumn.getConsecutiveErrCount();
if (iErrCount > 10)
return;
try {
int iInterval = tableColumn.getRefreshInterval();
if ((iInterval == TableColumnCore.INTERVAL_LIVE ||
(iInterval == TableColumnCore.INTERVAL_GRAPHIC && bDoGraphics) ||
(iInterval > 0 && (loopFactor % iInterval) == 0) ||
!valid) && bufferedTableItem.isShown())
{
tableColumn.invokeCellRefreshListeners(this);
if (refreshListeners != null)
for (int i = 0; i < refreshListeners.size(); i++)
((TableCellRefreshListener)(refreshListeners.get(i))).refresh(this);
setValid(true);
}
loopFactor++;
refreshErrLoopCount = 0;
if (iErrCount > 0)
tableColumn.setConsecutiveErrCount(0);
} catch (Throwable e) {
refreshErrLoopCount++;
tableColumn.setConsecutiveErrCount(++iErrCount);
pluginError(e);
if (refreshErrLoopCount > 2)
LGLogger.log(LGLogger.ERROR,
"TableCell will not be refreshed anymore this session.");
}
}
public void dispose() {
if (disposeListeners != null) {
try {
tableColumn.invokeCellDisposeListeners(this);
for (Iterator iter = disposeListeners.iterator(); iter.hasNext();) {
TableCellDisposeListener listener = (TableCellDisposeListener)iter.next();
listener.dispose(this);
}
disposeListeners = null;
} catch (Throwable e) {
pluginError(e);
}
}
if (bufferedTableItem != null)
bufferedTableItem.dispose();
refreshListeners = null;
bufferedTableItem = null;
tableColumn = null;
tableRow = null;
sortValue = null;
}
public void setImage(Image img) {
if (bufferedTableItem == null)
return;
bufferedTableItem.setImage(img);
}
public boolean needsPainting() {
if (bufferedTableItem == null)
return false;
return bufferedTableItem.needsPainting();
}
public void doPaint(GC gc) {
if (bufferedTableItem == null)
return;
bufferedTableItem.doPaint(gc);
}
public void locationChanged() {
if (bufferedTableItem == null)
return;
bufferedTableItem.locationChanged();
}
public TableRowCore getTableRowCore() {
return tableRow;
}
/* Comparable Implementation */
/** Compare our sortValue to the specified object. Assumes the object
* is TableCellImp (safe assumption)
*/
public int compareTo(Object o) {
try {
Comparable ourSortValue = getSortValue();
Comparable otherSortValue = ((TableCellImpl)o).getSortValue();
if (ourSortValue instanceof String && otherSortValue instanceof String) {
// Collator.getInstance cache's Collator object, so this is relatively
// fast. However, storing it as static somewhere might give a small
// performance boost. If such an approach is take, ensure that the static
// variable is updated the user chooses an different language.
Collator collator = Collator.getInstance(Locale.getDefault());
return collator.compare(ourSortValue, otherSortValue);
}
try {
return ourSortValue.compareTo(otherSortValue);
} catch (ClassCastException e) {
// It's possible that a row was created, but not refreshed yet.
// In that case, one sortValue will be String, and the other will be
// a comparable object that the plugin defined. Those two sortValues
// may not be compatable (for good reason!), so just skip it.
}
} catch (Exception e) {
System.out.println("Could not compare cells");
Debug.printStackTrace( e );
}
return 0;
}
public void setToolTip(Object tooltip) {
oToolTip = tooltip;
}
public Object getToolTip() {
return oToolTip;
}
public void invokeToolTipListeners(int type) {
tableColumn.invokeCellToolTipListeners(this, type);
if (tooltipListeners == null)
return;
if (type == TOOLTIPLISTENER_HOVER) {
for (int i = 0; i < tooltipListeners.size(); i++)
((TableCellToolTipListener)(tooltipListeners.get(i))).cellHover(this);
} else {
for (int i = 0; i < tooltipListeners.size(); i++)
((TableCellToolTipListener)(tooltipListeners.get(i))).cellHoverComplete(this);
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?