function RowViewPart()
{
    /**
     * get the underlying model - there is none by default, derived classes can
     * override this and provide access to the model
     * @return null
     */
    this.getModel = function() { return null; }

    /**
     * is this row view part selectable (the answer is false by default)
     * @return true or false as to whether this row view part is selectable
     * @type boolean
     */
    this.isSelectable = function() { return false; }

    /**
     * get the row view part type
     * @return the row view part type
     * @type ROWVIEWPART_TYPE
     */
    this.partType = function() { return this.fPartType; }

    /**
     * set the background color of this view
     * @param {String} color	the background color as a string one would 
     *				specify in the css style
     */
    this.setBackgroundColor = function(color) { 
	this.fBackgroundColor = color; 
	this.onBackgroundColorChange();
    }

    this.getBackgroundColor = function() { 
	return this.fBackgroundColor; 
    }

    this.resetBackgroundColor = function() { 
	this.fBackgroundColor = "#ffffffff;" 
	this.onBackgroundColorChange();
    }

    /**
     * called when background color changes
     * @protected
     */
    this.onBackgroundColorChange = function() {
	if( this.domid && this.domid != "" )  {
	    var o = document.getElementById(this.domid);
	    o.style.backgroundColor = this.fBackgroundColor;
	}
    }

    /**
     * get the row view of which this view is part of, which is set only when
     * the row view is rendered fully.
     *
     * @return the row view of which this view is part of
     * @type SwaraLyricRowView
     */
    this.rowView = function() { return this.parent; }

    /**
     * get the DOM contents (td) of the view
     * @return the DOM contents of the view
     * @type DOMElement_TD
     */
    this.getContents = function() { return this.fOuter; }

    /**
     * get the table cell index of this view in the row
     * @return the index of the table cell of the view in the row
     * @type int
     */
    this.getCellIndex = function() { return this.fCellIdx; }

    /**
     * get the column span of the table cell for this view
     * @return the column span of the table cell for this view
     * @type int
     */
    this.colspan = function() { return this.fNCols; }

    /**
     * get the dom id of the contents (if any
     */
    this.getDOMID = function() { return this.domid; }


    /**
     * (protected) the row view part type
     * @type ROWVIEWPART_TYPE
     * @private
     */
    this.fPartType = null;

    /**
     * (protected) the outer content (table cell) of the swara view
     * @type DOMElement_TD
     * @private
     */
    this.fOuter         = null;

    /**
     * (protected) the cell index of the table cell for the view
     * @type int
     * @private
     */
    this.fCellIdx       = 0;

    /**
     * (protected) the column span of the table cell for the view
     * @type int
     * @private
     */
    this.fNCols         = 1;

    /**
     * (protected) the table cell  (derived classes should set this appropriately on rendering)
     * @type DOMElement_TD
     * @private
     */
    this.fTableCell = null;

    /**
     * intended to be called when the row view part has been moved to a different row
     * table (typically on repagination)
     * @param td	the cell in the new row to which we moved
     */
    this.movedToCell = function( td ) {
	if(this.fTableCell) Utils.removeFromIdMap(this.fTableCell);
	Utils.addToIdMap(td,this);
	this.fTableCell = td;
	this.fOuter = td;
    }

    /**
     * (protected) the background color of this view as a string one would specify in css style
     * @type String
     * @private
     */
    this.fBackgroundColor = "#ffffff";

    this.domid = "";
}
/**
 * @class
 * base class represents a row view part, which would be part of a {@link SwaraLyricRowView}
 */
@class
base class represents a row view part, which would be part of a  SwaraLyricRowView
@class base class represents a row view part which would be part of a SwaraLyricRowView
function RowViewPart()
{
    this.getModel = function() { return null; }
    this.isSelectable = function() { return false; }
    this.partType = function() { return this.fPartType; }
    this.setBackgroundColor = function(color) { 
	this.fBackgroundColor = color; 
	this.onBackgroundColorChange();
    }
    this.getBackgroundColor = function() { 
	return this.fBackgroundColor; 
    }
    this.resetBackgroundColor = function() { 
	this.fBackgroundColor = "#ffffffff;" 
	this.onBackgroundColorChange();
    }
    this.onBackgroundColorChange = function() {
	if( this.domid && this.domid != "" )  {
	    var o = document.getElementById(this.domid);
	    o.style.backgroundColor = this.fBackgroundColor;
	}
    }
    this.rowView = function() { return this.parent; }
    this.getContents = function() { return this.fOuter; }
    this.getCellIndex = function() { return this.fCellIdx; }
    this.colspan = function() { return this.fNCols; }
    this.getDOMID = function() { return this.domid; }
    this.fPartType = null;
    this.fOuter         = null;
    this.fCellIdx       = 0;
    this.fNCols         = 1;
    this.fTableCell = null;
    this.movedToCell = function( td ) {
	if(this.fTableCell) Utils.removeFromIdMap(this.fTableCell);
	Utils.addToIdMap(td,this);
	this.fTableCell = td;
	this.fOuter = td;
    }
    this.fBackgroundColor = "#ffffff";
    this.domid = "";
}
function RowViewPart ( ) { this . getModel = function ( ) { return null ; } this . isSelectable = function ( ) { return false ; } this . partType = function ( ) { return this . fPartType ; } this . setBackgroundColor = function ( color ) { this . fBackgroundColor = color ; this . onBackgroundColorChange ( ) ; } this . getBackgroundColor = function ( ) { return this . fBackgroundColor ; } this . resetBackgroundColor = function ( ) { this . fBackgroundColor = "#ffffffff;" this . onBackgroundColorChange ( ) ; } this . onBackgroundColorChange = function ( ) { if ( this . domid && this . domid != "" ) { var o = document . getElementById ( this . domid ) ; o . style . backgroundColor = this . fBackgroundColor ; } } this . rowView = function ( ) { return this . parent ; } this . getContents = function ( ) { return this . fOuter ; } this . getCellIndex = function ( ) { return this . fCellIdx ; } this . colspan = function ( ) { return this . fNCols ; } this . getDOMID = function ( ) { return this . domid ; } this . fPartType = null ; this . fOuter = null ; this . fCellIdx = 0 ; this . fNCols = 1 ; this . fTableCell = null ; this . movedToCell = function ( td ) { if ( this . fTableCell ) Utils . removeFromIdMap ( this . fTableCell ) ; Utils . addToIdMap ( td , this ) ; this . fTableCell = td ; this . fOuter = td ; } this . fBackgroundColor = "#ffffff" ; this . domid = "" ; }
@class
 base class represents a row view part, which would be part of a {@link SwaraLyricRowView}
@class base class represents a row view part which would be part of a { @link SwaraLyricRowView }
/**
     * get the underlying model - there is none by default, derived classes can
     * override this and provide access to the model
     * @return null
     */ /**
     * is this row view part selectable (the answer is false by default)
     * @return true or false as to whether this row view part is selectable
     * @type boolean
     */ /**
     * get the row view part type
     * @return the row view part type
     * @type ROWVIEWPART_TYPE
     */ /**
     * set the background color of this view
     * @param {String} color	the background color as a string one would 
     *				specify in the css style
     */ /**
     * called when background color changes
     * @protected
     */ /**
     * get the row view of which this view is part of, which is set only when
     * the row view is rendered fully.
     *
     * @return the row view of which this view is part of
     * @type SwaraLyricRowView
     */ /**
     * get the DOM contents (td) of the view
     * @return the DOM contents of the view
     * @type DOMElement_TD
     */ /**
     * get the table cell index of this view in the row
     * @return the index of the table cell of the view in the row
     * @type int
     */ /**
     * get the column span of the table cell for this view
     * @return the column span of the table cell for this view
     * @type int
     */ /**
     * get the dom id of the contents (if any
     */ /**
     * (protected) the row view part type
     * @type ROWVIEWPART_TYPE
     * @private
     */ /**
     * (protected) the outer content (table cell) of the swara view
     * @type DOMElement_TD
     * @private
     */ /**
     * (protected) the cell index of the table cell for the view
     * @type int
     * @private
     */ /**
     * (protected) the column span of the table cell for the view
     * @type int
     * @private
     */ /**
     * (protected) the table cell  (derived classes should set this appropriately on rendering)
     * @type DOMElement_TD
     * @private
     */ /**
     * intended to be called when the row view part has been moved to a different row
     * table (typically on repagination)
     * @param td	the cell in the new row to which we moved
     */ /**
     * (protected) the background color of this view as a string one would specify in css style
     * @type String
     * @private
     */