/**
* Copyright (C) 2004-2007 Aelitis SAS, All rights Reserved
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details ( see the LICENSE file ).
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* AELITIS, SAS au capital de 46,603.30 euros,
* 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
*/
package com.aelitis.azureus.ui.common.table;
import java.util.List;
import org.gudy.azureus2.plugins.ui.tables.TableRow;
import org.gudy.azureus2.plugins.ui.tables.TableRowMouseEvent;
/**
* Core Table Row functions are those available to plugins plus
* some core-only functions. The core-only functions are listed here.
*
* @author TuxPaper
* @since 2.0.8.5 2004/May/14
*/
public interface TableRowCore extends TableRow
{
/** Invalidates Row */
public void invalidate();
public void invalidate(boolean mustRefresh);
/**
* Delete the row
*/
public void delete();
/** Refresh all the cells in the row
*
* @param bDoGraphics Refresh graphic cells to
*/
public List refresh(boolean bDoGraphics);
/** Location of a column has changed
*
* @param iStartColumn Cells starting at this value may need repainting
*
* XXX Rename to cellLocationChanged?
*/
public void locationChanged(int iStartColumn);
/** Retrieve the Data Source related to this row
*
* @param bCoreObject true - return a core object<br>
* false - return a plugin object
* @return the Data Source Object related to the row
*/
public Object getDataSource(boolean bCoreObject);
public int getIndex();
/** Adjust cell height. Don't use if any other column/cell uses setImage()
*
* @param iHeight new Row Height. Will not reduce row's height (SWT)
* @return success level
*/
public boolean setHeight(int iHeight);
/** Retrieve a cell based on the supplied value
*
* @param field Column name of the cell to be returned
* @return TableCellCore object related to this row and the specified column
*/
public TableCellCore getTableCellCore(String field);
/** Retreive whether the row is visible to the user. In SWT, when the table
* is not VIRTUAL, all rows are "visible"
*
* @return visibility state
*/
public boolean isVisible();
/**
* Link the row to a SWT TableItem
*
* @param newIndex new position row should be
* @return false - already linked to that item at that index
*/
public boolean setTableItem(int newIndex);
public boolean setTableItem(int newIndex, boolean isVisible);
public void setSelected(boolean bSelected);
public boolean isRowDisposed();
public void setUpToDate(boolean upToDate);
/**
* @param bDoGraphics
* @param bVisible
*/
public List<TableCellCore> refresh(boolean bDoGraphics, boolean bVisible);
/**
* like refresh, except a different name to confuse us.
*/
public void redraw();
public void redraw(boolean doChildren);
/**
* @return
*/
public TableView getView();
/**
* @param event
*
* @since 3.0.1.7
*/
void invokeMouseListeners(TableRowMouseEvent event);
/**
*
* @return
*
* @since 3.0.4.3
*/
public boolean isMouseOver();
/**
* @param length
*
* @since 4.4.0.5
*/
public void setSubItemCount(int length);
public int getSubItemCount();
public boolean isExpanded();
public void setExpanded(boolean b);
public TableRowCore getParentRowCore();
/**
* @return
*
* @since 4.4.0.5
*/
public boolean isInPaintItem();
/**
* @param indexOf
* @return
*
* @since 4.4.0.5
*/
TableRowCore linkSubItem(int indexOf);
/**
* @param datasources
*
* @since 4.4.0.5
*/
void setSubItems(Object[] datasources);
TableRowCore[] getSubRowsWithNull();
void removeSubRow(Object datasource);
public int getHeight();
public TableRowCore getSubRow(int i);
public void setSortColumn(String columnID);
public TableCellCore getSortColumnCell(String hint);
}