<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_201) on Thu Jul 23 15:58:56 CEST 2020 -->
<title>Grid</title>
<meta name="date" content="2020-07-23">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="Grid";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":10,"i35":10,"i36":10,"i37":10,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54":10,"i55":10,"i56":10,"i57":10,"i58":10,"i59":10,"i60":10,"i61":10,"i62":10,"i63":10,"i64":10,"i65":10,"i66":10,"i67":10,"i68":10,"i69":10,"i70":10,"i71":10,"i72":10,"i73":10,"i74":10,"i75":10,"i76":10,"i77":10,"i78":10,"i79":10,"i80":10,"i81":10,"i82":10,"i83":10,"i84":10,"i85":10,"i86":10,"i87":10,"i88":10,"i89":10,"i90":10,"i91":10,"i92":10,"i93":10,"i94":10,"i95":10,"i96":10,"i97":10,"i98":10,"i99":10,"i100":10,"i101":10,"i102":10,"i103":10,"i104":10,"i105":10,"i106":10,"i107":10,"i108":10,"i109":10,"i110":10,"i111":10,"i112":10,"i113":10,"i114":10,"i115":10,"i116":10,"i117":10,"i118":10,"i119":10,"i120":10,"i121":10,"i122":10,"i123":10,"i124":10,"i125":10,"i126":42,"i127":10,"i128":10,"i129":10,"i130":10,"i131":10,"i132":10,"i133":10,"i134":10,"i135":10,"i136":10,"i137":10,"i138":10,"i139":10,"i140":10,"i141":10,"i142":10,"i143":10,"i144":10,"i145":10,"i146":10,"i147":10,"i148":10,"i149":10,"i150":10,"i151":10,"i152":10,"i153":10,"i154":10,"i155":10,"i156":10,"i157":10,"i158":10,"i159":10,"i160":10,"i161":10,"i162":10,"i163":10,"i164":10,"i165":10,"i166":10,"i167":10,"i168":10,"i169":10,"i170":10,"i171":10,"i172":10,"i173":10,"i174":10,"i175":10,"i176":10,"i177":10,"i178":10,"i179":10,"i180":10,"i181":10,"i182":10,"i183":10,"i184":10,"i185":10,"i186":10,"i187":10,"i188":10,"i189":10,"i190":10,"i191":10,"i192":10,"i193":10,"i194":10,"i195":10,"i196":10,"i197":10,"i198":10,"i199":10,"i200":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Grid.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/nebula/widgets/grid/DefaultEmptyCellRenderer.html" title="class in org.eclipse.nebula.widgets.grid"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.GridVisibleRange.html" title="class in org.eclipse.nebula.widgets.grid"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/nebula/widgets/grid/Grid.html" target="_top">Frames</a></li>
<li><a href="Grid.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.nebula.widgets.grid</div>
<h2 title="Class Grid" class="title">Class Grid</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Widget</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Control</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Scrollable</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Composite</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Canvas</li>
<li>
<ul class="inheritance">
<li>org.eclipse.nebula.widgets.grid.Grid</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.eclipse.swt.graphics.Drawable</dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">Grid</span>
extends org.eclipse.swt.widgets.Canvas</pre>
<div class="block">The Grid widget is a spreadsheet/table component that offers features not
 currently found in the base SWT Table. Features include cell selection,
 column grouping, column spanning, row headers, and more.
 <p>
 The item children that may be added to instances of this class must be of
 type <code>GridItem</code>.
 </p>
 <dl>
 <dt><b>Styles:</b></dt>
 <dd>SWT.SINGLE, SWT.MULTI, SWT.NO_FOCUS, SWT.CHECK, SWT.VIRTUAL</dd>
 <dt><b>Events:</b></dt>
 <dd>Selection, DefaultSelection</dd>
 </dl></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!--   -->
</a>
<h3>Nested Class Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Class and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static class&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.GridVisibleRange.html" title="class in org.eclipse.nebula.widgets.grid">Grid.GridVisibleRange</a></span></code>
<div class="block">Object holding the visible range</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#bottomIndex">bottomIndex</a></span></code>
<div class="block">Index of last visible item.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#endColumnIndex">endColumnIndex</a></span></code>
<div class="block">Index of the the last visible column.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#hasDifferingHeights">hasDifferingHeights</a></span></code>
<div class="block">True if there is at least one <code>GridItem</code> with an individual
 height.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#hoveringOnColumnResizer">hoveringOnColumnResizer</a></span></code>
<div class="block">True if mouse is hover on a column boundary and can resize the column.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#startColumnIndex">startColumnIndex</a></span></code>
<div class="block">Index of the first visible column.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#topIndex">topIndex</a></span></code>
<div class="block">Index of first visible item.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.swt.widgets.Control">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.swt.widgets.Control</h3>
<code>handle</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#Grid-org.eclipse.swt.widgets.Composite-int-">Grid</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
    int&nbsp;style)</code>
<div class="block">Grid with generic DataVisualizer</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#Grid-org.eclipse.nebula.widgets.grid.DataVisualizer-org.eclipse.swt.widgets.Composite-int-">Grid</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/DataVisualizer.html" title="interface in org.eclipse.nebula.widgets.grid">DataVisualizer</a>&nbsp;dataVisualizer,
    org.eclipse.swt.widgets.Composite&nbsp;parent,
    int&nbsp;style)</code>
<div class="block">Constructs a new instance of this class given its parent and a style value
 describing its behavior and appearance.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#addListener-int-org.eclipse.swt.widgets.Listener-">addListener</a></span>(int&nbsp;eventType,
           org.eclipse.swt.widgets.Listener&nbsp;listener)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#addMouseListener-org.eclipse.swt.events.MouseListener-">addMouseListener</a></span>(org.eclipse.swt.events.MouseListener&nbsp;sourceListener)</code>&nbsp;</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#addSelectionListener-org.eclipse.swt.events.SelectionListener-">addSelectionListener</a></span>(org.eclipse.swt.events.SelectionListener&nbsp;listener)</code>
<div class="block">Adds the listener to the collection of listeners who will be notified when
 the receiver's selection changes, by sending it one of the messages defined
 in the <code>SelectionListener</code> interface.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#addTreeListener-org.eclipse.swt.events.TreeListener-">addTreeListener</a></span>(org.eclipse.swt.events.TreeListener&nbsp;listener)</code>
<div class="block">Adds the listener to the collection of listeners who will be notified when
 the receiver's items changes, by sending it one of the messages defined in
 the <code>TreeListener</code> interface.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#clear-int:A-boolean-">clear</a></span>(int[]&nbsp;indices,
     boolean&nbsp;allChildren)</code>
<div class="block">Clears the items at the given zero-relative indices in the receiver.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#clear-int-boolean-">clear</a></span>(int&nbsp;index,
     boolean&nbsp;allChildren)</code>
<div class="block">Clears the item at the given zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#clear-int-int-boolean-">clear</a></span>(int&nbsp;start,
     int&nbsp;end,
     boolean&nbsp;allChildren)</code>
<div class="block">Clears the items in the receiver which are between the given zero-relative
 start and end indices (inclusive).</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#clearAll-boolean-">clearAll</a></span>(boolean&nbsp;allChildren)</code>
<div class="block">Clears all the items in the receiver.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#clearItems--">clearItems</a></span>()</code>
<div class="block">Clear simply all GridItems</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Point</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#computeSize-int-int-boolean-">computeSize</a></span>(int&nbsp;wHint,
           int&nbsp;hHint,
           boolean&nbsp;changed)</code></td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselect-int-">deselect</a></span>(int&nbsp;index)</code>
<div class="block">Deselects the item at the given zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselect-int:A-">deselect</a></span>(int[]&nbsp;indices)</code>
<div class="block">Deselects the items at the given zero-relative indices in the receiver.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselect-int-int-">deselect</a></span>(int&nbsp;start,
        int&nbsp;end)</code>
<div class="block">Deselects the items at the given zero-relative indices in the receiver.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectAll--">deselectAll</a></span>()</code>
<div class="block">Deselects all selected items in the receiver.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectAllCells--">deselectAllCells</a></span>()</code>
<div class="block">Deselects all selected cells in the receiver.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectCell-org.eclipse.swt.graphics.Point-">deselectCell</a></span>(org.eclipse.swt.graphics.Point&nbsp;cell)</code>
<div class="block">Deselects the given cell in the receiver.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectCells-org.eclipse.swt.graphics.Point:A-">deselectCells</a></span>(org.eclipse.swt.graphics.Point[]&nbsp;cells)</code>
<div class="block">Deselects the given cells.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#disableDefaultKeyListener--">disableDefaultKeyListener</a></span>()</code>
<div class="block">Disable default key listener</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#disposeAllItems--">disposeAllItems</a></span>()</code>
<div class="block">All items needs to call the disposeOnly method</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#enableDefaultKeyListener--">enableDefaultKeyListener</a></span>()</code>
<div class="block">Enable default key listener</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#fireColumnsMoved--">fireColumnsMoved</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Color</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getBackground--">getBackground</a></span>()</code></td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getBottomIndex--">getBottomIndex</a></span>()</code>
<div class="block">Returns the zero-relative index of the item which is currently at the bottom
 of the receiver.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getBottomLeftRenderer--">getBottomLeftRenderer</a></span>()</code>
<div class="block">Gets the bottom left renderer.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Point</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getCell-org.eclipse.swt.graphics.Point-">getCell</a></span>(org.eclipse.swt.graphics.Point&nbsp;point)</code>
<div class="block">Returns the cell at the given point in the receiver or null if no such cell
 exists.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Color</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getCellHeaderSelectionBackground--">getCellHeaderSelectionBackground</a></span>()</code>
<div class="block">Returns the background color of column and row headers when a cell in the row
 or header is selected.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Point[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getCellSelection--">getCellSelection</a></span>()</code>
<div class="block">Returns an array of cells that are currently selected in the receiver.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getCellSelectionCount--">getCellSelectionCount</a></span>()</code>
<div class="block">Returns the number of selected cells contained in the receiver.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getCellSelectionEnabled--">getCellSelectionEnabled</a></span>()</code>
<div class="block">Returns true if the cells are selectable in the reciever.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumn-int-">getColumn</a></span>(int&nbsp;index)</code>
<div class="block">Returns the column at the given, zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumn-org.eclipse.swt.graphics.Point-">getColumn</a></span>(org.eclipse.swt.graphics.Point&nbsp;point)</code>
<div class="block">Returns the column at the given point in the receiver or null if no such
 column exists.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnCount--">getColumnCount</a></span>()</code>
<div class="block">Returns the number of columns contained in the receiver.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnGroup-int-">getColumnGroup</a></span>(int&nbsp;index)</code>
<div class="block">Returns the column group at the given, zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnGroupCount--">getColumnGroupCount</a></span>()</code>
<div class="block">Returns the number of column groups contained in the receiver.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnGroups--">getColumnGroups</a></span>()</code>
<div class="block">Returns an array of <code>GridColumnGroup</code>s which are the column groups in
 the receiver.</div>
</td>
</tr>
<tr id="i35" class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnOrder--">getColumnOrder</a></span>()</code>
<div class="block">Returns an array of zero-relative integers that map the creation order of the
 receiver's items to the order in which they are currently being displayed.</div>
</td>
</tr>
<tr id="i36" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumns--">getColumns</a></span>()</code>
<div class="block">Returns an array of <code>GridColumn</code>s which are the columns in the
 receiver.</div>
</td>
</tr>
<tr id="i37" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnScrolling--">getColumnScrolling</a></span>()</code>
<div class="block">Returns true if the table is set to horizontally scroll column-by-column
 rather than pixel-by-pixel.</div>
</td>
</tr>
<tr id="i38" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getColumnsInOrder--">getColumnsInOrder</a></span>()</code>
<div class="block">Returns an array of the columns in their display order.</div>
</td>
</tr>
<tr id="i39" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/DataVisualizer.html" title="interface in org.eclipse.nebula.widgets.grid">DataVisualizer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getDataVisualizer--">getDataVisualizer</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i40" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridCellRenderer.html" title="class in org.eclipse.nebula.widgets.grid">GridCellRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getEmptyCellRenderer--">getEmptyCellRenderer</a></span>()</code>
<div class="block">Returns the empty cell renderer.</div>
</td>
</tr>
<tr id="i41" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getEmptyColumnFooterRenderer--">getEmptyColumnFooterRenderer</a></span>()</code>
<div class="block">Returns the empty column footer renderer.</div>
</td>
</tr>
<tr id="i42" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getEmptyColumnHeaderRenderer--">getEmptyColumnHeaderRenderer</a></span>()</code>
<div class="block">Returns the empty column header renderer.</div>
</td>
</tr>
<tr id="i43" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getEmptyRowHeaderRenderer--">getEmptyRowHeaderRenderer</a></span>()</code>
<div class="block">Returns the empty row header renderer.</div>
</td>
</tr>
<tr id="i44" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getEndColumnIndex--">getEndColumnIndex</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i45" class="rowColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Point</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFocusCell--">getFocusCell</a></span>()</code>
<div class="block">Returns the current cell in focus.</div>
</td>
</tr>
<tr id="i46" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFocusColumn--">getFocusColumn</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i47" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFocusItem--">getFocusItem</a></span>()</code>
<div class="block">Returns the current item in focus.</div>
</td>
</tr>
<tr id="i48" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFocusRenderer--">getFocusRenderer</a></span>()</code>
<div class="block">Gets the focus renderer.</div>
</td>
</tr>
<tr id="i49" class="rowColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Font</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFont--">getFont</a></span>()</code>
<div class="block">Cached default font of Control.getFont</div>
</td>
</tr>
<tr id="i50" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFooterHeight--">getFooterHeight</a></span>()</code>
<div class="block">Returns the height of the column footers.</div>
</td>
</tr>
<tr id="i51" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getFooterVisible--">getFooterVisible</a></span>()</code>
<div class="block">Returns <code>true</code> if the receiver's footer is visible, and <code>false</code>
 otherwise</div>
</td>
</tr>
<tr id="i52" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getGridHeight--">getGridHeight</a></span>()</code>
<div class="block">Returns the height of the plain grid in pixels.</div>
</td>
</tr>
<tr id="i53" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getGroupHeaderHeight--">getGroupHeaderHeight</a></span>()</code>
<div class="block">Returns the height of the column group headers.</div>
</td>
</tr>
<tr id="i54" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getHeaderHeight--">getHeaderHeight</a></span>()</code>
<div class="block">Returns the height of the column headers.</div>
</td>
</tr>
<tr id="i55" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getHeaderVisible--">getHeaderVisible</a></span>()</code>
<div class="block">Returns <code>true</code> if the receiver's header is visible, and <code>false</code>
 otherwise.</div>
</td>
</tr>
<tr id="i56" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getHorizontalScrollBarProxy--">getHorizontalScrollBarProxy</a></span>()</code>
<div class="block">Returns the externally managed horizontal scrollbar.</div>
</td>
</tr>
<tr id="i57" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getIndexOfItem-org.eclipse.nebula.widgets.grid.GridItem-">getIndexOfItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>&nbsp;</td>
</tr>
<tr id="i58" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItem-int-">getItem</a></span>(int&nbsp;index)</code>
<div class="block">Returns the item at the given, zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i59" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItem-org.eclipse.swt.graphics.Point-">getItem</a></span>(org.eclipse.swt.graphics.Point&nbsp;point)</code>
<div class="block">Returns the item at the given point in the receiver or null if no such item
 exists.</div>
</td>
</tr>
<tr id="i60" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItemCount--">getItemCount</a></span>()</code>
<div class="block">Returns the number of items contained in the receiver.</div>
</td>
</tr>
<tr id="i61" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItemHeaderWidth--">getItemHeaderWidth</a></span>()</code>
<div class="block">Returns the row header width or 0 if row headers are not visible.</div>
</td>
</tr>
<tr id="i62" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItemHeight--">getItemHeight</a></span>()</code>
<div class="block">Returns the default height of the items in this <code>Grid</code>.</div>
</td>
</tr>
<tr id="i63" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItems--">getItems</a></span>()</code>
<div class="block">Returns a (possibly empty) array of <code>GridItem</code>s which are the items in
 the receiver.</div>
</td>
</tr>
<tr id="i64" class="altColor">
<td class="colFirst"><code>org.eclipse.swt.graphics.Color</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getLineColor--">getLineColor</a></span>()</code>
<div class="block">Returns the line color.</div>
</td>
</tr>
<tr id="i65" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getLinesVisible--">getLinesVisible</a></span>()</code>
<div class="block">Returns true if the lines are visible.</div>
</td>
</tr>
<tr id="i66" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getNextVisibleColumn-org.eclipse.nebula.widgets.grid.GridColumn-">getNextVisibleColumn</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</code>
<div class="block">Returns the next visible column in the table.</div>
</td>
</tr>
<tr id="i67" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getNextVisibleItem-org.eclipse.nebula.widgets.grid.GridItem-">getNextVisibleItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Returns the next visible item in the table.</div>
</td>
</tr>
<tr id="i68" class="altColor">
<td class="colFirst"><code>(package private) org.eclipse.swt.graphics.Point</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getOrigin-org.eclipse.nebula.widgets.grid.GridColumn-org.eclipse.nebula.widgets.grid.GridItem-">getOrigin</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
         <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Returns the intersection of the given column and given item.</div>
</td>
</tr>
<tr id="i69" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getPreviousVisibleColumn-org.eclipse.nebula.widgets.grid.GridColumn-">getPreviousVisibleColumn</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</code>
<div class="block">Returns the previous visible column in the table.</div>
</td>
</tr>
<tr id="i70" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getPreviousVisibleItem-org.eclipse.nebula.widgets.grid.GridItem-">getPreviousVisibleItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Returns the previous visible item in the table.</div>
</td>
</tr>
<tr id="i71" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getRootItem-int-">getRootItem</a></span>(int&nbsp;index)</code>
<div class="block">TODO: asl;fj</div>
</td>
</tr>
<tr id="i72" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getRootItemCount--">getRootItemCount</a></span>()</code>
<div class="block">Returns the number of root items contained in the receiver.</div>
</td>
</tr>
<tr id="i73" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getRootItems--">getRootItems</a></span>()</code>
<div class="block">Returns a (possibly empty) array of <code>GridItem</code>s which are the root
 items in the receiver.</div>
</td>
</tr>
<tr id="i74" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getRowHeaderRenderer--">getRowHeaderRenderer</a></span>()</code>
<div class="block">Gets the row header renderer.</div>
</td>
</tr>
<tr id="i75" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getRowHeaderWidth--">getRowHeaderWidth</a></span>()</code>
<div class="block">Returns the width of the row headers.</div>
</td>
</tr>
<tr id="i76" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getRowsResizeable--">getRowsResizeable</a></span>()</code>
<div class="block">Returns true if the rows are resizable.</div>
</td>
</tr>
<tr id="i77" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getSelection--">getSelection</a></span>()</code>
<div class="block">Returns a array of <code>GridItem</code>s that are currently selected in the
 receiver.</div>
</td>
</tr>
<tr id="i78" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getSelectionCount--">getSelectionCount</a></span>()</code>
<div class="block">Returns the number of selected items contained in the receiver.</div>
</td>
</tr>
<tr id="i79" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getSelectionEnabled--">getSelectionEnabled</a></span>()</code>
<div class="block">Returns <code>true</code> if selection is enabled, false otherwise.</div>
</td>
</tr>
<tr id="i80" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getSelectionIndex--">getSelectionIndex</a></span>()</code>
<div class="block">Returns the zero-relative index of the item which is currently selected in
 the receiver, or -1 if no item is selected.</div>
</td>
</tr>
<tr id="i81" class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getSelectionIndices--">getSelectionIndices</a></span>()</code>
<div class="block">Returns the zero-relative indices of the items which are currently selected
 in the receiver.</div>
</td>
</tr>
<tr id="i82" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getStartColumnIndex--">getStartColumnIndex</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i83" class="rowColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getToolTipText--">getToolTipText</a></span>()</code>
<div class="block">Returns the receiver's tool tip text, or null if it has not been set.</div>
</td>
</tr>
<tr id="i84" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getTopIndex--">getTopIndex</a></span>()</code>
<div class="block">Returns the zero-relative index of the item which is currently at the top of
 the receiver.</div>
</td>
</tr>
<tr id="i85" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getTopLeftRenderer--">getTopLeftRenderer</a></span>()</code>
<div class="block">Gets the top left renderer.</div>
</td>
</tr>
<tr id="i86" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getTreeLinesVisible--">getTreeLinesVisible</a></span>()</code>
<div class="block">Returns true if the tree lines are visible.</div>
</td>
</tr>
<tr id="i87" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getVerticalScrollBarProxy--">getVerticalScrollBarProxy</a></span>()</code>
<div class="block">Returns the externally managed vertical scrollbar.</div>
</td>
</tr>
<tr id="i88" class="altColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getVisibleColumn_DegradeLeft-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-">getVisibleColumn_DegradeLeft</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                            <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;col)</code>
<div class="block">Returns the first visible column that is not spanned by any other column that
 is either the given column or any of the columns displaying to the left of
 the given column.</div>
</td>
</tr>
<tr id="i89" class="rowColor">
<td class="colFirst"><code>(package private) <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getVisibleColumn_DegradeRight-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-">getVisibleColumn_DegradeRight</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                             <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;col)</code>
<div class="block">Returns the first visible column that is not spanned by any other column that
 is either the given column or any of the columns displaying to the right of
 the given column.</div>
</td>
</tr>
<tr id="i90" class="altColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getVisibleGridHeight--">getVisibleGridHeight</a></span>()</code>
<div class="block">Returns the height of the on-screen area that is available for showing the
 grid's rows, i.e.</div>
</td>
</tr>
<tr id="i91" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getVisibleGridWidth--">getVisibleGridWidth</a></span>()</code>
<div class="block">Returns the height of the screen area that is available for showing the grid
 columns</div>
</td>
</tr>
<tr id="i92" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.GridVisibleRange.html" title="class in org.eclipse.nebula.widgets.grid">Grid.GridVisibleRange</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getVisibleRange--">getVisibleRange</a></span>()</code>
<div class="block">Query the grid for all currently visible rows and columns</div>
</td>
</tr>
<tr id="i93" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#handlePacked-org.eclipse.nebula.widgets.grid.GridColumn-">handlePacked</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</code>&nbsp;</td>
</tr>
<tr id="i94" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#hideToolTip--">hideToolTip</a></span>()</code>
<div class="block">Hides the inplace tooltip.</div>
</td>
</tr>
<tr id="i95" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#imageSetOnItem-int-org.eclipse.nebula.widgets.grid.GridItem-">imageSetOnItem</a></span>(int&nbsp;column,
              <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Updates the row height when the first image is set on an item.</div>
</td>
</tr>
<tr id="i96" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#indexOf-org.eclipse.nebula.widgets.grid.GridColumn-">indexOf</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</code>
<div class="block">Searches the receiver's list starting at the first column (index 0) until a
 column is found that is equal to the argument, and returns the index of that
 column.</div>
</td>
</tr>
<tr id="i97" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#indexOf-org.eclipse.nebula.widgets.grid.GridItem-">indexOf</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Searches the receiver's list starting at the first item (index 0) until an
 item is found that is equal to the argument, and returns the index of that
 item.</div>
</td>
</tr>
<tr id="i98" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isAutoHeight--">isAutoHeight</a></span>()</code>
<div class="block">Returns the value of the auto-height feature, which resizes row heights and
 column header heights based on word-wrapped content.</div>
</td>
</tr>
<tr id="i99" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isAutoWidth--">isAutoWidth</a></span>()</code>
<div class="block">Returns the value of the auto-height feature, which resizes row header width
 based on content.</div>
</td>
</tr>
<tr id="i100" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isCellDragSelectionEnabled--">isCellDragSelectionEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i101" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isCellSelected-org.eclipse.swt.graphics.Point-">isCellSelected</a></span>(org.eclipse.swt.graphics.Point&nbsp;cell)</code>
<div class="block">Returns true if the given cell is selected.</div>
</td>
</tr>
<tr id="i102" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isCellSelectionEnabled--">isCellSelectionEnabled</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i103" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isDisposing--">isDisposing</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i104" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isFocusOnGrid--">isFocusOnGrid</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i105" class="rowColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isInDragScrollArea-org.eclipse.swt.graphics.Point-">isInDragScrollArea</a></span>(org.eclipse.swt.graphics.Point&nbsp;point)</code>
<div class="block">A helper method for <a href="../../../../../org/eclipse/nebula/widgets/grid/GridDropTargetEffect.html#dragOver-org.eclipse.swt.dnd.DropTargetEvent-"><code>GridDropTargetEffect.dragOver(DropTargetEvent)</code></a>.</div>
</td>
</tr>
<tr id="i106" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isMoveOnTab--">isMoveOnTab</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i107" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isRowHeaderVisible--">isRowHeaderVisible</a></span>()</code>
<div class="block">Returns <code>true</code> if the receiver's row header is visible, and
 <code>false</code> otherwise.</div>
</td>
</tr>
<tr id="i108" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isSelected-org.eclipse.nebula.widgets.grid.GridItem-">isSelected</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Returns true if the given item is selected.</div>
</td>
</tr>
<tr id="i109" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isSelected-int-">isSelected</a></span>(int&nbsp;index)</code>
<div class="block">Returns <code>true</code> if the item is selected, and <code>false</code> otherwise.</div>
</td>
</tr>
<tr id="i110" class="altColor">
<td class="colFirst"><code>(package private) boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isShown-org.eclipse.nebula.widgets.grid.GridItem-">isShown</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Returns true if 'item' is currently being <em>completely</em> shown in this
 <code>Grid</code>'s visible on-screen area.</div>
</td>
</tr>
<tr id="i111" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isVisibleLinesColumnPack--">isVisibleLinesColumnPack</a></span>()</code>
<div class="block">If <code>true</code>, column pack is based only with the visible lines (from
 topIndex to bottomIndex).</div>
</td>
</tr>
<tr id="i112" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isWordWrapHeader--">isWordWrapHeader</a></span>()</code>
<div class="block">Returns the value of the row header word-wrap feature, which word-wraps the
 content of row headers.</div>
</td>
</tr>
<tr id="i113" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#newColumn-org.eclipse.nebula.widgets.grid.GridColumn-int-">newColumn</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
         int&nbsp;index)</code>
<div class="block">Inserts a new column into the table.</div>
</td>
</tr>
<tr id="i114" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#newColumnGroup-org.eclipse.nebula.widgets.grid.GridColumnGroup-">newColumnGroup</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;group)</code>
<div class="block">Creates the given column group at the given index.</div>
</td>
</tr>
<tr id="i115" class="rowColor">
<td class="colFirst"><code>(package private) int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#newItem-org.eclipse.nebula.widgets.grid.GridItem-int-boolean-">newItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
       int&nbsp;index,
       boolean&nbsp;root)</code>
<div class="block">Creates the new item at the given index.</div>
</td>
</tr>
<tr id="i116" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#newRootItem-org.eclipse.nebula.widgets.grid.GridItem-int-">newRootItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
           int&nbsp;index)</code>&nbsp;</td>
</tr>
<tr id="i117" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#onKeyDown-org.eclipse.swt.widgets.Event-">onKeyDown</a></span>(org.eclipse.swt.widgets.Event&nbsp;e)</code>
<div class="block">Key down event handler.</div>
</td>
</tr>
<tr id="i118" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#recalculateHeader--">recalculateHeader</a></span>()</code>
<div class="block">Recalculate the height of the header</div>
</td>
</tr>
<tr id="i119" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#recalculateRowHeaderHeight-org.eclipse.nebula.widgets.grid.GridItem-int-int-">recalculateRowHeaderHeight</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                          int&nbsp;oldHeight,
                          int&nbsp;newHeight)</code>&nbsp;</td>
</tr>
<tr id="i120" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#recalculateRowHeaderWidth-org.eclipse.nebula.widgets.grid.GridItem-int-int-">recalculateRowHeaderWidth</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                         int&nbsp;oldWidth,
                         int&nbsp;newWidth)</code>&nbsp;</td>
</tr>
<tr id="i121" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#refreshData--">refreshData</a></span>()</code>
<div class="block">Refresh hasData <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid"><code>GridItem</code></a> state if <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html" title="class in org.eclipse.nebula.widgets.grid"><code>Grid</code></a> is virtual</div>
</td>
</tr>
<tr id="i122" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#refreshHoverState--">refreshHoverState</a></span>()</code>
<div class="block">Refreshes the hover* variables according to the mouse location and current
 state of the table.</div>
</td>
</tr>
<tr id="i123" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#remove-int-">remove</a></span>(int&nbsp;index)</code>
<div class="block">Removes the item from the receiver at the given zero-relative index.</div>
</td>
</tr>
<tr id="i124" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#remove-int:A-">remove</a></span>(int[]&nbsp;indices)</code>
<div class="block">Removes the items from the receiver's list at the given zero-relative
 indices.</div>
</td>
</tr>
<tr id="i125" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#remove-int-int-">remove</a></span>(int&nbsp;start,
      int&nbsp;end)</code>
<div class="block">Removes the items from the receiver which are between the given zero-relative
 start and end indices (inclusive).</div>
</td>
</tr>
<tr id="i126" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeAll--">removeAll</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i127" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeColumn-org.eclipse.nebula.widgets.grid.GridColumn-">removeColumn</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</code>
<div class="block">Removes the given column from the table.</div>
</td>
</tr>
<tr id="i128" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeColumnGroup-org.eclipse.nebula.widgets.grid.GridColumnGroup-">removeColumnGroup</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;group)</code>
<div class="block">Removes the given column group from the table.</div>
</td>
</tr>
<tr id="i129" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeItem-org.eclipse.nebula.widgets.grid.GridItem-">removeItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Removes the given item from the table.</div>
</td>
</tr>
<tr id="i130" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeRootItem-org.eclipse.nebula.widgets.grid.GridItem-">removeRootItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>&nbsp;</td>
</tr>
<tr id="i131" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeSelectionListener-org.eclipse.swt.events.SelectionListener-">removeSelectionListener</a></span>(org.eclipse.swt.events.SelectionListener&nbsp;listener)</code>
<div class="block">Removes the listener from the collection of listeners who will be notified
 when the receiver's selection changes.</div>
</td>
</tr>
<tr id="i132" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeTreeListener-org.eclipse.swt.events.TreeListener-">removeTreeListener</a></span>(org.eclipse.swt.events.TreeListener&nbsp;listener)</code>
<div class="block">Removes the listener from the collection of listeners who will be notified
 when the receiver's items changes.</div>
</td>
</tr>
<tr id="i133" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#select-int-">select</a></span>(int&nbsp;index)</code>
<div class="block">Selects the item at the given zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i134" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#select-int:A-">select</a></span>(int[]&nbsp;indices)</code>
<div class="block">Selects the items at the given zero-relative indices in the receiver.</div>
</td>
</tr>
<tr id="i135" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#select-int-int-">select</a></span>(int&nbsp;start,
      int&nbsp;end)</code>
<div class="block">Selects the items in the range specified by the given zero-relative indices
 in the receiver.</div>
</td>
</tr>
<tr id="i136" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectAll--">selectAll</a></span>()</code>
<div class="block">Selects all of the items in the receiver.</div>
</td>
</tr>
<tr id="i137" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectAllCells--">selectAllCells</a></span>()</code>
<div class="block">Selects all cells in the receiver.</div>
</td>
</tr>
<tr id="i138" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectCell-org.eclipse.swt.graphics.Point-">selectCell</a></span>(org.eclipse.swt.graphics.Point&nbsp;cell)</code>
<div class="block">Selects the given cell.</div>
</td>
</tr>
<tr id="i139" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectCells-org.eclipse.swt.graphics.Point:A-">selectCells</a></span>(org.eclipse.swt.graphics.Point[]&nbsp;cells)</code>
<div class="block">Selects the given cells.</div>
</td>
</tr>
<tr id="i140" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectColumn-int-">selectColumn</a></span>(int&nbsp;col)</code>
<div class="block">Selects all cells in the given column in the receiver.</div>
</td>
</tr>
<tr id="i141" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectColumnGroup-org.eclipse.nebula.widgets.grid.GridColumnGroup-">selectColumnGroup</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;colGroup)</code>
<div class="block">Selects all cells in the given column group in the receiver.</div>
</td>
</tr>
<tr id="i142" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#selectColumnGroup-int-">selectColumnGroup</a></span>(int&nbsp;colGroup)</code>
<div class="block">Selects all cells in the given column group in the receiver.</div>
</td>
</tr>
<tr id="i143" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setAutoHeight-boolean-">setAutoHeight</a></span>(boolean&nbsp;enabled)</code>
<div class="block">Sets the value of the auto-height feature.</div>
</td>
</tr>
<tr id="i144" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setAutoWidth-boolean-">setAutoWidth</a></span>(boolean&nbsp;enabled)</code>
<div class="block">Sets the value of the auto-width feature.</div>
</td>
</tr>
<tr id="i145" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setBackground-org.eclipse.swt.graphics.Color-">setBackground</a></span>(org.eclipse.swt.graphics.Color&nbsp;color)</code></td>
</tr>
<tr id="i146" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setBottomLeftRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setBottomLeftRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;bottomLeftRenderer)</code>
<div class="block">Sets the bottom left renderer.</div>
</td>
</tr>
<tr id="i147" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setCellDragSelectionEnabled-boolean-">setCellDragSelectionEnabled</a></span>(boolean&nbsp;cellDragSelection)</code>
<div class="block">Sets whether cells are selectable in the receiver by dragging the mouse
 cursor.</div>
</td>
</tr>
<tr id="i148" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setCellHeaderSelectionBackground-org.eclipse.swt.graphics.Color-">setCellHeaderSelectionBackground</a></span>(org.eclipse.swt.graphics.Color&nbsp;cellSelectionBackground)</code>
<div class="block">Sets the background color of column and row headers displayed when a cell in
 the row or header is selected.</div>
</td>
</tr>
<tr id="i149" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setCellSelection-org.eclipse.swt.graphics.Point-">setCellSelection</a></span>(org.eclipse.swt.graphics.Point&nbsp;cell)</code>
<div class="block">Selects the selection to the given cell.</div>
</td>
</tr>
<tr id="i150" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setCellSelection-org.eclipse.swt.graphics.Point:A-">setCellSelection</a></span>(org.eclipse.swt.graphics.Point[]&nbsp;cells)</code>
<div class="block">Selects the selection to the given set of cell.</div>
</td>
</tr>
<tr id="i151" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setCellSelectionEnabled-boolean-">setCellSelectionEnabled</a></span>(boolean&nbsp;cellSelection)</code>
<div class="block">Sets whether cells are selectable in the receiver.</div>
</td>
</tr>
<tr id="i152" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setColumnOrder-int:A-">setColumnOrder</a></span>(int[]&nbsp;order)</code>
<div class="block">Sets the order that the items in the receiver should be displayed in to the
 given argument which is described in terms of the zero-relative ordering of
 when the items were added.</div>
</td>
</tr>
<tr id="i153" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setColumnScrolling-boolean-">setColumnScrolling</a></span>(boolean&nbsp;columnScrolling)</code>
<div class="block">Sets the table scrolling method to either scroll column-by-column (true) or
 pixel-by-pixel (false).</div>
</td>
</tr>
<tr id="i154" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setEmptyCellRenderer-org.eclipse.nebula.widgets.grid.GridCellRenderer-">setEmptyCellRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridCellRenderer.html" title="class in org.eclipse.nebula.widgets.grid">GridCellRenderer</a>&nbsp;emptyCellRenderer)</code>
<div class="block">Sets the empty cell renderer.</div>
</td>
</tr>
<tr id="i155" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setEmptyColumnFooterRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setEmptyColumnFooterRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;emptyColumnFooterRenderer)</code>
<div class="block">Sets the empty column footer renderer.</div>
</td>
</tr>
<tr id="i156" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setEmptyColumnHeaderRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setEmptyColumnHeaderRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;emptyColumnHeaderRenderer)</code>
<div class="block">Sets the empty column header renderer.</div>
</td>
</tr>
<tr id="i157" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setEmptyRowHeaderRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setEmptyRowHeaderRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;emptyRowHeaderRenderer)</code>
<div class="block">Sets the empty row header renderer.</div>
</td>
</tr>
<tr id="i158" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setFocusColumn-org.eclipse.nebula.widgets.grid.GridColumn-">setFocusColumn</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</code>
<div class="block">Sets the focused item to the given column.</div>
</td>
</tr>
<tr id="i159" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setFocusItem-org.eclipse.nebula.widgets.grid.GridItem-">setFocusItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Sets the focused item to the given item.</div>
</td>
</tr>
<tr id="i160" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setFocusRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setFocusRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;focusRenderer)</code>
<div class="block">Sets the focus renderer.</div>
</td>
</tr>
<tr id="i161" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setFont-org.eclipse.swt.graphics.Font-">setFont</a></span>(org.eclipse.swt.graphics.Font&nbsp;font)</code></td>
</tr>
<tr id="i162" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setFooterVisible-boolean-">setFooterVisible</a></span>(boolean&nbsp;show)</code>
<div class="block">Marks the receiver's footer as visible if the argument is <code>true</code>, and
 marks it invisible otherwise.</div>
</td>
</tr>
<tr id="i163" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setForeground-org.eclipse.swt.graphics.Color-">setForeground</a></span>(org.eclipse.swt.graphics.Color&nbsp;color)</code>&nbsp;</td>
</tr>
<tr id="i164" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setHasSpanning-boolean-">setHasSpanning</a></span>(boolean&nbsp;hasSpanning)</code>&nbsp;</td>
</tr>
<tr id="i165" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setHeaderVisible-boolean-">setHeaderVisible</a></span>(boolean&nbsp;show)</code>
<div class="block">Marks the receiver's header as visible if the argument is <code>true</code>, and
 marks it invisible otherwise.</div>
</td>
</tr>
<tr id="i166" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setHorizontalScrollBarProxy-org.eclipse.nebula.widgets.grid.internal.IScrollBarProxy-">setHorizontalScrollBarProxy</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a>&nbsp;scroll)</code>
<div class="block">Sets the external horizontal scrollbar.</div>
</td>
</tr>
<tr id="i167" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setInsertMark-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-boolean-">setInsertMark</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
             <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
             boolean&nbsp;before)</code>
<div class="block">Display a mark indicating the point at which an item will be inserted.</div>
</td>
</tr>
<tr id="i168" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setItemCount-int-">setItemCount</a></span>(int&nbsp;count)</code>
<div class="block">Sets the number of items contained in the receiver.</div>
</td>
</tr>
<tr id="i169" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setItemHeaderWidth-int-">setItemHeaderWidth</a></span>(int&nbsp;width)</code>
<div class="block">Sets the row header width to the specified value.</div>
</td>
</tr>
<tr id="i170" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setItemHeight-int-">setItemHeight</a></span>(int&nbsp;height)</code>
<div class="block">Sets the default height for this <code>Grid</code>'s items.</div>
</td>
</tr>
<tr id="i171" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setLineColor-org.eclipse.swt.graphics.Color-">setLineColor</a></span>(org.eclipse.swt.graphics.Color&nbsp;lineColor)</code>
<div class="block">Sets the line color.</div>
</td>
</tr>
<tr id="i172" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setLinesVisible-boolean-">setLinesVisible</a></span>(boolean&nbsp;linesVisible)</code>
<div class="block">Sets the line visibility.</div>
</td>
</tr>
<tr id="i173" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setlVerticalScrollBarProxy-org.eclipse.nebula.widgets.grid.internal.IScrollBarProxy-">setlVerticalScrollBarProxy</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a>&nbsp;scroll)</code>
<div class="block">Sets the external vertical scrollbar.</div>
</td>
</tr>
<tr id="i174" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setMoveOnTab-boolean-">setMoveOnTab</a></span>(boolean&nbsp;moveOnTab)</code>
<div class="block">This param allows user to change the current selection by pressing TAB and
 SHIFT-TAB</div>
</td>
</tr>
<tr id="i175" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setRowHeaderRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setRowHeaderRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;rowHeaderRenderer)</code>
<div class="block">Sets the row header renderer.</div>
</td>
</tr>
<tr id="i176" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setRowHeaderVisible-boolean-">setRowHeaderVisible</a></span>(boolean&nbsp;show)</code>
<div class="block">Marks the receiver's row header as visible if the argument is <code>true</code>,
 and marks it invisible otherwise.</div>
</td>
</tr>
<tr id="i177" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setRowHeaderVisible-boolean-int-">setRowHeaderVisible</a></span>(boolean&nbsp;show,
                   int&nbsp;minWidth)</code>
<div class="block">Marks the receiver's row header as visible if the argument is <code>true</code>,
 and marks it invisible otherwise.</div>
</td>
</tr>
<tr id="i178" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setRowsResizeable-boolean-">setRowsResizeable</a></span>(boolean&nbsp;rowsResizeable)</code>
<div class="block">Sets the rows resizeable state of this <code>Grid</code>.</div>
</td>
</tr>
<tr id="i179" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setScrollValuesObsolete--">setScrollValuesObsolete</a></span>()</code>
<div class="block">Marks the scroll values obsolete so they will be recalculated.</div>
</td>
</tr>
<tr id="i180" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-org.eclipse.nebula.widgets.grid.GridItem:A-">setSelection</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]&nbsp;_items)</code>
<div class="block">Sets the receiver's selection to be the given array of items.</div>
</td>
</tr>
<tr id="i181" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-int-">setSelection</a></span>(int&nbsp;index)</code>
<div class="block">Selects the item at the given zero-relative index in the receiver.</div>
</td>
</tr>
<tr id="i182" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-int:A-">setSelection</a></span>(int[]&nbsp;indices)</code>
<div class="block">Selects the items at the given zero-relative indices in the receiver.</div>
</td>
</tr>
<tr id="i183" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-int-int-">setSelection</a></span>(int&nbsp;start,
            int&nbsp;end)</code>
<div class="block">Selects the items in the range specified by the given zero-relative indices
 in the receiver.</div>
</td>
</tr>
<tr id="i184" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelectionEnabled-boolean-">setSelectionEnabled</a></span>(boolean&nbsp;selectionEnabled)</code>
<div class="block">Enables selection highlighting if the argument is <code>true</code>.</div>
</td>
</tr>
<tr id="i185" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelectionType-org.eclipse.nebula.widgets.grid.GridSelectionType-">setSelectionType</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridSelectionType.html" title="enum in org.eclipse.nebula.widgets.grid">GridSelectionType</a>&nbsp;selectionType)</code>
<div class="block">Change selection type (single or multi)</div>
</td>
</tr>
<tr id="i186" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSizeOnEveryItemImageChange-boolean-">setSizeOnEveryItemImageChange</a></span>(boolean&nbsp;sizeOnEveryItemImageChange)</code>&nbsp;</td>
</tr>
<tr id="i187" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setToolTipText-java.lang.String-">setToolTipText</a></span>(java.lang.String&nbsp;string)</code>
<div class="block">Sets the receiver's tool tip text to the argument, which may be null
 indicating that no tool tip text should be shown.</div>
</td>
</tr>
<tr id="i188" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setTopIndex-int-">setTopIndex</a></span>(int&nbsp;index)</code>
<div class="block">Sets the zero-relative index of the item which is currently at the top of the
 receiver.</div>
</td>
</tr>
<tr id="i189" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setTopLeftRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">setTopLeftRenderer</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;topLeftRenderer)</code>
<div class="block">Sets the top left renderer.</div>
</td>
</tr>
<tr id="i190" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setTreeLinesVisible-boolean-">setTreeLinesVisible</a></span>(boolean&nbsp;treeLinesVisible)</code>
<div class="block">Sets the tree line visibility.</div>
</td>
</tr>
<tr id="i191" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setVisibleLinesColumnPack-boolean-">setVisibleLinesColumnPack</a></span>(boolean&nbsp;visibleLinesBasedColumnPack)</code>
<div class="block">Set optimizedColumnPack to <code>true</code> for column pack based only with
 the visible lines.</div>
</td>
</tr>
<tr id="i192" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setWordWrapHeader-boolean-">setWordWrapHeader</a></span>(boolean&nbsp;enabled)</code>
<div class="block">Sets the value of the word-wrap feature for row headers.</div>
</td>
</tr>
<tr id="i193" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#showColumn-org.eclipse.nebula.widgets.grid.GridColumn-">showColumn</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;col)</code>
<div class="block">Shows the column.</div>
</td>
</tr>
<tr id="i194" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#showItem-org.eclipse.nebula.widgets.grid.GridItem-">showItem</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</code>
<div class="block">Shows the item.</div>
</td>
</tr>
<tr id="i195" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#showSelection--">showSelection</a></span>()</code>
<div class="block">Shows the selection.</div>
</td>
</tr>
<tr id="i196" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#showToolTip-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-org.eclipse.nebula.widgets.grid.GridColumnGroup-org.eclipse.swt.graphics.Point-">showToolTip</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
           <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
           <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;group,
           org.eclipse.swt.graphics.Point&nbsp;location)</code>
<div class="block">Shows the inplace tooltip for the given item and column.</div>
</td>
</tr>
<tr id="i197" class="rowColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#updateColumnFocus--">updateColumnFocus</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i198" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#updateColumnSelection--">updateColumnSelection</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i199" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#updateToolTipText-java.lang.String-">updateToolTipText</a></span>(java.lang.String&nbsp;text)</code>
<div class="block">Sets the tooltip for the whole Grid to the given text.</div>
</td>
</tr>
<tr id="i200" class="altColor">
<td class="colFirst"><code>(package private) void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#updateVisibleItems-int-">updateVisibleItems</a></span>(int&nbsp;amount)</code>
<div class="block">Updates the cached number of visible items by the given amount.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Canvas">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Canvas</h3>
<code>drawBackground, getCaret, getIME, scroll, setCaret, setIME</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Composite">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Composite</h3>
<code>changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Scrollable">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Scrollable</h3>
<code>computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Control">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Control</h3>
<code>addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Widget">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Widget</h3>
<code>addDisposeListener, checkWidget, dispose, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.graphics.Drawable">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.swt.graphics.Drawable</h3>
<code>isAutoScalable</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="hoveringOnColumnResizer">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hoveringOnColumnResizer</h4>
<pre>boolean hoveringOnColumnResizer</pre>
<div class="block">True if mouse is hover on a column boundary and can resize the column.</div>
</li>
</ul>
<a name="hasDifferingHeights">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hasDifferingHeights</h4>
<pre>boolean hasDifferingHeights</pre>
<div class="block">True if there is at least one <code>GridItem</code> with an individual
 height. This value is only set to true in
 <code>GridItem#setHeight(int,boolean)</code> and it is never reset to false.</div>
</li>
</ul>
<a name="topIndex">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>topIndex</h4>
<pre>int topIndex</pre>
<div class="block">Index of first visible item. The value must never be read directly. It is
 cached and updated when appropriate. #getTopIndex should be called for every
 client (even internal callers). A value of -1 indicates that the value is old
 and will be recomputed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#bottomIndex"><code>bottomIndex</code></a></dd>
</dl>
</li>
</ul>
<a name="bottomIndex">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>bottomIndex</h4>
<pre>int bottomIndex</pre>
<div class="block">Index of last visible item. The value must never be read directly. It is
 cached and updated when appropriate. #getBottomIndex() should be called for
 every client (even internal callers). A value of -1 indicates that the value
 is old and will be recomputed.
 <p>
 Note that the item with this index is often only partly visible; maybe only a
 single line of pixels is visible. In extreme cases, bottomIndex may be the
 same as topIndex.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#topIndex"><code>topIndex</code></a></dd>
</dl>
</li>
</ul>
<a name="startColumnIndex">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startColumnIndex</h4>
<pre>int startColumnIndex</pre>
<div class="block">Index of the first visible column. A value of -1 indicates that the value is
 old and will be recomputed.</div>
</li>
</ul>
<a name="endColumnIndex">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>endColumnIndex</h4>
<pre>int endColumnIndex</pre>
<div class="block">Index of the the last visible column. A value of -1 indicates that the value
 is old and will be recomputed.</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="Grid-org.eclipse.swt.widgets.Composite-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>Grid</h4>
<pre>public&nbsp;Grid(org.eclipse.swt.widgets.Composite&nbsp;parent,
            int&nbsp;style)</pre>
<div class="block">Grid with generic DataVisualizer</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - component</dd>
<dd><code>style</code> - grid style</dd>
</dl>
</li>
</ul>
<a name="Grid-org.eclipse.nebula.widgets.grid.DataVisualizer-org.eclipse.swt.widgets.Composite-int-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>Grid</h4>
<pre>public&nbsp;Grid(<a href="../../../../../org/eclipse/nebula/widgets/grid/DataVisualizer.html" title="interface in org.eclipse.nebula.widgets.grid">DataVisualizer</a>&nbsp;dataVisualizer,
            org.eclipse.swt.widgets.Composite&nbsp;parent,
            int&nbsp;style)</pre>
<div class="block">Constructs a new instance of this class given its parent and a style value
 describing its behavior and appearance.
 <p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>dataVisualizer</code> - manage all data of grid and its items</dd>
<dd><code>parent</code> - a composite control which will be the parent of the new instance
            (cannot be null)</dd>
<dd><code>style</code> - the style of control to construct</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the parent is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the parent</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SWT.SINGLE</code>, 
<code>SWT.MULTI</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getDataVisualizer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDataVisualizer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/DataVisualizer.html" title="interface in org.eclipse.nebula.widgets.grid">DataVisualizer</a>&nbsp;getDataVisualizer()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/DataVisualizer.html" title="interface in org.eclipse.nebula.widgets.grid"><code>DataVisualizer</code></a></dd>
</dl>
</li>
</ul>
<a name="clearItems--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearItems</h4>
<pre>public&nbsp;void&nbsp;clearItems()</pre>
<div class="block">Clear simply all GridItems</div>
</li>
</ul>
<a name="getBackground--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBackground</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Color&nbsp;getBackground()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getBackground</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
</dl>
</li>
</ul>
<a name="setBackground-org.eclipse.swt.graphics.Color-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBackground</h4>
<pre>public&nbsp;void&nbsp;setBackground(org.eclipse.swt.graphics.Color&nbsp;color)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>setBackground</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
</dl>
</li>
</ul>
<a name="getCellHeaderSelectionBackground--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCellHeaderSelectionBackground</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Color&nbsp;getCellHeaderSelectionBackground()</pre>
<div class="block">Returns the background color of column and row headers when a cell in the row
 or header is selected.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>cell header selection background color</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setCellHeaderSelectionBackground-org.eclipse.swt.graphics.Color-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCellHeaderSelectionBackground</h4>
<pre>public&nbsp;void&nbsp;setCellHeaderSelectionBackground(org.eclipse.swt.graphics.Color&nbsp;cellSelectionBackground)</pre>
<div class="block">Sets the background color of column and row headers displayed when a cell in
 the row or header is selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cellSelectionBackground</code> - color to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="addSelectionListener-org.eclipse.swt.events.SelectionListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addSelectionListener</h4>
<pre>public&nbsp;void&nbsp;addSelectionListener(org.eclipse.swt.events.SelectionListener&nbsp;listener)</pre>
<div class="block">Adds the listener to the collection of listeners who will be notified when
 the receiver's selection changes, by sending it one of the messages defined
 in the <code>SelectionListener</code> interface.
 <p>
 Cell selection events may have <code>Event.detail = SWT.DRAG</code> when the
 user is drag selecting multiple cells. A follow up selection event will be
 generated when the drag is complete.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the listener which should be notified</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="addTreeListener-org.eclipse.swt.events.TreeListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addTreeListener</h4>
<pre>public&nbsp;void&nbsp;addTreeListener(org.eclipse.swt.events.TreeListener&nbsp;listener)</pre>
<div class="block">Adds the listener to the collection of listeners who will be notified when
 the receiver's items changes, by sending it one of the messages defined in
 the <code>TreeListener</code> interface.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the listener which should be notified</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the listener is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>TreeListener</code>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#removeTreeListener-org.eclipse.swt.events.TreeListener-"><code>removeTreeListener(org.eclipse.swt.events.TreeListener)</code></a>, 
<code>TreeEvent</code></dd>
</dl>
</li>
</ul>
<a name="computeSize-int-int-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeSize</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Point&nbsp;computeSize(int&nbsp;wHint,
                                                  int&nbsp;hHint,
                                                  boolean&nbsp;changed)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>computeSize</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
</dl>
</li>
</ul>
<a name="deselect-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselect</h4>
<pre>public&nbsp;void&nbsp;deselect(int&nbsp;index)</pre>
<div class="block">Deselects the item at the given zero-relative index in the receiver. If the
 item at the index was already deselected, it remains deselected. Indices that
 are out of range are ignored.
 <p>
 If cell selection is enabled, all cells in the specified item are deselected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the item to deselect</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="deselect-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselect</h4>
<pre>public&nbsp;void&nbsp;deselect(int&nbsp;start,
                     int&nbsp;end)</pre>
<div class="block">Deselects the items at the given zero-relative indices in the receiver. If
 the item at the given zero-relative index in the receiver is selected, it is
 deselected. If the item at the index was not selected, it remains deselected.
 The range of the indices is inclusive. Indices that are out of range are
 ignored.
 <p>
 If cell selection is enabled, all cells in the given range are deselected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>start</code> - the start index of the items to deselect</dd>
<dd><code>end</code> - the end index of the items to deselect</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="deselect-int:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselect</h4>
<pre>public&nbsp;void&nbsp;deselect(int[]&nbsp;indices)</pre>
<div class="block">Deselects the items at the given zero-relative indices in the receiver. If
 the item at the given zero-relative index in the receiver is selected, it is
 deselected. If the item at the index was not selected, it remains deselected.
 Indices that are out of range and duplicate indices are ignored.
 <p>
 If cell selection is enabled, all cells in the given items are deselected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indices</code> - the array of indices for the items to deselect</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the set of indices is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="deselectAll--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselectAll</h4>
<pre>public&nbsp;void&nbsp;deselectAll()</pre>
<div class="block">Deselects all selected items in the receiver. If cell selection is enabled,
 all cells are deselected.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumn-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumn</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getColumn(int&nbsp;index)</pre>
<div class="block">Returns the column at the given, zero-relative index in the receiver. Throws
 an exception if the index is out of range. If no <code>GridColumn</code>s were
 created by the programmer, this method will throw <code>ERROR_INVALID_RANGE</code>
 despite the fact that a single column of data may be visible in the table.
 This occurs when the programmer uses the table like a list, adding items but
 never creating a column.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the column to return</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the column at the given index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_RANGE - if the index is not between 0 and the
             number of elements in the list minus 1 (inclusive)</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumn-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumn</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getColumn(org.eclipse.swt.graphics.Point&nbsp;point)</pre>
<div class="block">Returns the column at the given point in the receiver or null if no such
 column exists. The point is in the coordinate system of the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>point</code> - the point used to locate the column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the column at the given point</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the point is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumnCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnCount</h4>
<pre>public&nbsp;int&nbsp;getColumnCount()</pre>
<div class="block">Returns the number of columns contained in the receiver. If no
 <code>GridColumn</code>s were created by the programmer, this value is zero,
 despite the fact that visually, one column of items may be visible. This
 occurs when the programmer uses the table like a list, adding items but never
 creating a column.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of columns</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumnOrder--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnOrder</h4>
<pre>public&nbsp;int[]&nbsp;getColumnOrder()</pre>
<div class="block">Returns an array of zero-relative integers that map the creation order of the
 receiver's items to the order in which they are currently being displayed.
 <p>
 Specifically, the indices of the returned array represent the current visual
 order of the items, and the contents of the array represent the creation
 order of the items.
 </p>
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 list of items, so modifying the array will not affect the receiver.
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the current visual order of the receiver's items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumnGroupCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnGroupCount</h4>
<pre>public&nbsp;int&nbsp;getColumnGroupCount()</pre>
<div class="block">Returns the number of column groups contained in the receiver.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of column groups</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumnGroups--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnGroups</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>[]&nbsp;getColumnGroups()</pre>
<div class="block">Returns an array of <code>GridColumnGroup</code>s which are the column groups in
 the receiver.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 list of items, so modifying the array will not affect the receiver.
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the column groups in the receiver</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumnGroup-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnGroup</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;getColumnGroup(int&nbsp;index)</pre>
<div class="block">Returns the column group at the given, zero-relative index in the receiver.
 Throws an exception if the index is out of range.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the column group to return</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the column group at the given index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_RANGE - if the index is not between 0 and the
             number of elements in the list minus 1 (inclusive)</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setColumnOrder-int:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setColumnOrder</h4>
<pre>public&nbsp;void&nbsp;setColumnOrder(int[]&nbsp;order)</pre>
<div class="block">Sets the order that the items in the receiver should be displayed in to the
 given argument which is described in terms of the zero-relative ordering of
 when the items were added.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>order</code> - the new order to display the items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS -if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the item order is null</li>
             <li>ERROR_INVALID_ARGUMENT - if the order is not the same length
             as the number of items, or if an item is listed twice, or if the
             order splits a column group</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumns--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumns</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>[]&nbsp;getColumns()</pre>
<div class="block">Returns an array of <code>GridColumn</code>s which are the columns in the
 receiver. If no <code>GridColumn</code>s were created by the programmer, the array
 is empty, despite the fact that visually, one column of items may be visible.
 This occurs when the programmer uses the table like a list, adding items but
 never creating a column.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 list of items, so modifying the array will not affect the receiver.
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the items in the receiver</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getEmptyCellRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEmptyCellRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridCellRenderer.html" title="class in org.eclipse.nebula.widgets.grid">GridCellRenderer</a>&nbsp;getEmptyCellRenderer()</pre>
<div class="block">Returns the empty cell renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the emptyCellRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getEmptyColumnHeaderRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEmptyColumnHeaderRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getEmptyColumnHeaderRenderer()</pre>
<div class="block">Returns the empty column header renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the emptyColumnHeaderRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getEmptyColumnFooterRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEmptyColumnFooterRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getEmptyColumnFooterRenderer()</pre>
<div class="block">Returns the empty column footer renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the emptyColumnFooterRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getEmptyRowHeaderRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEmptyRowHeaderRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getEmptyRowHeaderRenderer()</pre>
<div class="block">Returns the empty row header renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the emptyRowHeaderRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getHorizontalScrollBarProxy--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHorizontalScrollBarProxy</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a>&nbsp;getHorizontalScrollBarProxy()</pre>
<div class="block">Returns the externally managed horizontal scrollbar.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the external horizontal scrollbar.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setHorizontalScrollBarProxy-org.eclipse.nebula.widgets.grid.internal.IScrollBarProxy-"><code>setHorizontalScrollBarProxy(IScrollBarProxy)</code></a></dd>
</dl>
</li>
</ul>
<a name="getVerticalScrollBarProxy--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVerticalScrollBarProxy</h4>
<pre>protected&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a>&nbsp;getVerticalScrollBarProxy()</pre>
<div class="block">Returns the externally managed vertical scrollbar.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the external vertical scrollbar.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setlVerticalScrollBarProxy-org.eclipse.nebula.widgets.grid.internal.IScrollBarProxy-"><code>setlVerticalScrollBarProxy(IScrollBarProxy)</code></a></dd>
</dl>
</li>
</ul>
<a name="getFocusRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFocusRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getFocusRenderer()</pre>
<div class="block">Gets the focus renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the focusRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getHeaderHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeaderHeight</h4>
<pre>public&nbsp;int&nbsp;getHeaderHeight()</pre>
<div class="block">Returns the height of the column headers. If this table has column groups,
 the returned value includes the height of group headers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>height of the column header row</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getFont--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFont</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Font&nbsp;getFont()</pre>
<div class="block">Cached default font of Control.getFont</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getFont</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Control.getFont()</code></dd>
</dl>
</li>
</ul>
<a name="getFooterHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFooterHeight</h4>
<pre>public&nbsp;int&nbsp;getFooterHeight()</pre>
<div class="block">Returns the height of the column footers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>height of the column footer row</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getGroupHeaderHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGroupHeaderHeight</h4>
<pre>public&nbsp;int&nbsp;getGroupHeaderHeight()</pre>
<div class="block">Returns the height of the column group headers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>height of column group headers</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getHeaderVisible--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeaderVisible</h4>
<pre>public&nbsp;boolean&nbsp;getHeaderVisible()</pre>
<div class="block">Returns <code>true</code> if the receiver's header is visible, and <code>false</code>
 otherwise.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the receiver's header's visibility state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getFooterVisible--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFooterVisible</h4>
<pre>public&nbsp;boolean&nbsp;getFooterVisible()</pre>
<div class="block">Returns <code>true</code> if the receiver's footer is visible, and <code>false</code>
 otherwise</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the receiver's footer's visibility state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getItem-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItem</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;getItem(int&nbsp;index)</pre>
<div class="block">Returns the item at the given, zero-relative index in the receiver. Throws an
 exception if the index is out of range.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the item to return</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the item at the given index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_RANGE - if the index is not between 0 and the
             number of elements in the list minus 1 (inclusive)</li> *
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getItem-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItem</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;getItem(org.eclipse.swt.graphics.Point&nbsp;point)</pre>
<div class="block">Returns the item at the given point in the receiver or null if no such item
 exists. The point is in the coordinate system of the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>point</code> - the point used to locate the item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the item at the given point</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the point is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getItemCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItemCount</h4>
<pre>public&nbsp;int&nbsp;getItemCount()</pre>
<div class="block">Returns the number of items contained in the receiver.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getItemHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItemHeight</h4>
<pre>public&nbsp;int&nbsp;getItemHeight()</pre>
<div class="block">Returns the default height of the items in this <code>Grid</code>. See
 <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setItemHeight-int-"><code>setItemHeight(int)</code></a> for details.

 <p>
 IMPORTANT: The Grid's items need not all have the height returned by this
 method, because an item's height may have been changed by calling
 <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html#setHeight-int-"><code>GridItem.setHeight(int)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>default height of items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setItemHeight-int-"><code>setItemHeight(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="setItemHeight-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setItemHeight</h4>
<pre>public&nbsp;void&nbsp;setItemHeight(int&nbsp;height)</pre>
<div class="block">Sets the default height for this <code>Grid</code>'s items. When this method
 is called, all existing items are resized to the specified height and items
 created afterwards will be initially sized to this height.
 <p>
 As long as no default height was set by the client through this method, the
 preferred height of the first item in this <code>Grid</code> is used as a
 default for all items (and is returned by <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItemHeight--"><code>getItemHeight()</code></a>).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>height</code> - default height in pixels</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_ARGUMENT - if the height is < 1</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html#getHeight--"><code>GridItem.getHeight()</code></a>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html#setHeight-int-"><code>GridItem.setHeight(int)</code></a></dd>
</dl>
</li>
</ul>
<a name="getRowsResizeable--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRowsResizeable</h4>
<pre>public&nbsp;boolean&nbsp;getRowsResizeable()</pre>
<div class="block">Returns true if the rows are resizable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the row resizeable state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setRowsResizeable-boolean-"><code>setRowsResizeable(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="setRowsResizeable-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRowsResizeable</h4>
<pre>public&nbsp;void&nbsp;setRowsResizeable(boolean&nbsp;rowsResizeable)</pre>
<div class="block">Sets the rows resizeable state of this <code>Grid</code>. The default is
 'false'.
 <p>
 If a row in a <code>Grid</code> is resizeable, then the user can
 interactively change its height by dragging the border of the row header.
 <p>
 Note that for rows to be resizable the row headers must be visible.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowsResizeable</code> - true if this <code>Grid</code>'s rows should be resizable</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setRowHeaderVisible-boolean-"><code>setRowHeaderVisible(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="getItems--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItems</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]&nbsp;getItems()</pre>
<div class="block">Returns a (possibly empty) array of <code>GridItem</code>s which are the items in
 the receiver.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 list of items, so modifying the array will not affect the receiver.
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the items in the receiver</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getIndexOfItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getIndexOfItem</h4>
<pre>public&nbsp;int&nbsp;getIndexOfItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>t</dd>
</dl>
</li>
</ul>
<a name="getLineColor--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLineColor</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Color&nbsp;getLineColor()</pre>
<div class="block">Returns the line color.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the lineColor.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getLinesVisible--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLinesVisible</h4>
<pre>public&nbsp;boolean&nbsp;getLinesVisible()</pre>
<div class="block">Returns true if the lines are visible.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the linesVisible.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getTreeLinesVisible--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTreeLinesVisible</h4>
<pre>public&nbsp;boolean&nbsp;getTreeLinesVisible()</pre>
<div class="block">Returns true if the tree lines are visible.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the treeLinesVisible.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getNextVisibleItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextVisibleItem</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;getNextVisibleItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Returns the next visible item in the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>next visible item or null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getPreviousVisibleItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPreviousVisibleItem</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;getPreviousVisibleItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Returns the previous visible item in the table. Passing null for the item
 will return the last visible item in the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - item or null</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>previous visible item or if item==null last visible item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getPreviousVisibleColumn-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPreviousVisibleColumn</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getPreviousVisibleColumn(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</pre>
<div class="block">Returns the previous visible column in the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>previous visible column or null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getNextVisibleColumn-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextVisibleColumn</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getNextVisibleColumn(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</pre>
<div class="block">Returns the next visible column in the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>next visible column or null</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getRootItemCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRootItemCount</h4>
<pre>public&nbsp;int&nbsp;getRootItemCount()</pre>
<div class="block">Returns the number of root items contained in the receiver.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getRootItems--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRootItems</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]&nbsp;getRootItems()</pre>
<div class="block">Returns a (possibly empty) array of <code>GridItem</code>s which are the root
 items in the receiver.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 list of items, so modifying the array will not affect the receiver.
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the root items in the receiver</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getRootItem-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRootItem</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;getRootItem(int&nbsp;index)</pre>
<div class="block">TODO: asl;fj</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>asdf</dd>
</dl>
</li>
</ul>
<a name="getRowHeaderRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRowHeaderRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getRowHeaderRenderer()</pre>
<div class="block">Gets the row header renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the rowHeaderRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getSelection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelection</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]&nbsp;getSelection()</pre>
<div class="block">Returns a array of <code>GridItem</code>s that are currently selected in the
 receiver. The order of the items is unspecified. An empty array indicates
 that no items are selected.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 selection, so modifying the array will not affect the receiver.
 <p>
 If cell selection is enabled, any items which contain at least one selected
 cell are returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array representing the selection</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getSelectionCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectionCount</h4>
<pre>public&nbsp;int&nbsp;getSelectionCount()</pre>
<div class="block">Returns the number of selected items contained in the receiver. If cell
 selection is enabled, the number of items with at least one selected cell are
 returned.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of selected items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getCellSelectionCount--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCellSelectionCount</h4>
<pre>public&nbsp;int&nbsp;getCellSelectionCount()</pre>
<div class="block">Returns the number of selected cells contained in the receiver.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of selected cells</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getSelectionIndex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectionIndex</h4>
<pre>public&nbsp;int&nbsp;getSelectionIndex()</pre>
<div class="block">Returns the zero-relative index of the item which is currently selected in
 the receiver, or -1 if no item is selected. If cell selection is enabled,
 returns the index of first item that contains at least one selected cell.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index of the selected item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getSelectionIndices--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectionIndices</h4>
<pre>public&nbsp;int[]&nbsp;getSelectionIndices()</pre>
<div class="block">Returns the zero-relative indices of the items which are currently selected
 in the receiver. The order of the indices is unspecified. The array is empty
 if no items are selected.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 selection, so modifying the array will not affect the receiver.
 <p>
 If cell selection is enabled, returns the indices of any items which contain
 at least one selected cell.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the array of indices of the selected items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getTopIndex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTopIndex</h4>
<pre>public&nbsp;int&nbsp;getTopIndex()</pre>
<div class="block">Returns the zero-relative index of the item which is currently at the top of
 the receiver. This index can change when items are scrolled or new items are
 added or removed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index of the top item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getBottomIndex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBottomIndex</h4>
<pre>int&nbsp;getBottomIndex()</pre>
<div class="block">Returns the zero-relative index of the item which is currently at the bottom
 of the receiver. This index can change when items are scrolled, expanded or
 collapsed or new items are added or removed.
 <p>
 Note that the item with this index is often only partly visible; maybe only a
 single line of pixels is visible. Use <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isShown-org.eclipse.nebula.widgets.grid.GridItem-"><code>isShown(GridItem)</code></a> to find out.
 <p>
 In extreme cases, getBottomIndex() may return the same value as
 <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getTopIndex--"><code>getTopIndex()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index of the bottom item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getGridHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getGridHeight</h4>
<pre>int&nbsp;getGridHeight()</pre>
<div class="block">Returns the height of the plain grid in pixels.
 <p>
 This includes all rows for visible items (i.e. items that return true on
 <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html#isVisible--"><code>GridItem.isVisible()</code></a> ; not only those currently visible on screen)
 and the 1 pixel separator between rows.
 <p>
 This does <em>not</em> include the height of the column headers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>height of plain grid</dd>
</dl>
</li>
</ul>
<a name="getVisibleGridHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVisibleGridHeight</h4>
<pre>int&nbsp;getVisibleGridHeight()</pre>
<div class="block">Returns the height of the on-screen area that is available for showing the
 grid's rows, i.e. the client area of the scrollable minus the height of the
 column headers (if shown).</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>height of visible grid in pixels</dd>
</dl>
</li>
</ul>
<a name="getVisibleGridWidth--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVisibleGridWidth</h4>
<pre>int&nbsp;getVisibleGridWidth()</pre>
<div class="block">Returns the height of the screen area that is available for showing the grid
 columns</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="getTopLeftRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTopLeftRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getTopLeftRenderer()</pre>
<div class="block">Gets the top left renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the topLeftRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getBottomLeftRenderer--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBottomLeftRenderer</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;getBottomLeftRenderer()</pre>
<div class="block">Gets the bottom left renderer.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns the bottomLeftRenderer.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="indexOf-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>indexOf</h4>
<pre>public&nbsp;int&nbsp;indexOf(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</pre>
<div class="block">Searches the receiver's list starting at the first column (index 0) until a
 column is found that is equal to the argument, and returns the index of that
 column. If no column is found, returns -1.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - the search column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index of the column</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the column is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="indexOf-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>indexOf</h4>
<pre>public&nbsp;int&nbsp;indexOf(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Searches the receiver's list starting at the first item (index 0) until an
 item is found that is equal to the argument, and returns the index of that
 item. If no item is found, returns -1.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - the search item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index of the item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the item is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isRowHeaderVisible--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRowHeaderVisible</h4>
<pre>public&nbsp;boolean&nbsp;isRowHeaderVisible()</pre>
<div class="block">Returns <code>true</code> if the receiver's row header is visible, and
 <code>false</code> otherwise.
 <p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the receiver's row header's visibility state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isSelected-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSelected</h4>
<pre>public&nbsp;boolean&nbsp;isSelected(int&nbsp;index)</pre>
<div class="block">Returns <code>true</code> if the item is selected, and <code>false</code> otherwise.
 Indices out of range are ignored. If cell selection is enabled, returns true
 if the item at the given index contains at least one selected cell.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the visibility state of the item at the index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isSelected-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSelected</h4>
<pre>public&nbsp;boolean&nbsp;isSelected(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Returns true if the given item is selected. If cell selection is enabled,
 returns true if the given item contains at least one selected cell.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the item is selected.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the item is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isCellSelected-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCellSelected</h4>
<pre>public&nbsp;boolean&nbsp;isCellSelected(org.eclipse.swt.graphics.Point&nbsp;cell)</pre>
<div class="block">Returns true if the given cell is selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cell</code> - cell</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the cell is selected.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the cell is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="remove-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;void&nbsp;remove(int&nbsp;index)</pre>
<div class="block">Removes the item from the receiver at the given zero-relative index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index for the item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_RANGE - if the index is not between 0 and the
             number of elements in the list minus 1 (inclusive)</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="remove-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;void&nbsp;remove(int&nbsp;start,
                   int&nbsp;end)</pre>
<div class="block">Removes the items from the receiver which are between the given zero-relative
 start and end indices (inclusive).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>start</code> - the start of the range</dd>
<dd><code>end</code> - the end of the range</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_RANGE - if either the start or end are not
             between 0 and the number of elements in the list minus 1
             (inclusive)</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="remove-int:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>remove</h4>
<pre>public&nbsp;void&nbsp;remove(int[]&nbsp;indices)</pre>
<div class="block">Removes the items from the receiver's list at the given zero-relative
 indices.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indices</code> - the array of indices of the items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_RANGE - if the index is not between 0 and the
             number of elements in the list minus 1 (inclusive)</li>
             <li>ERROR_NULL_ARGUMENT - if the indices array is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="removeAll--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeAll</h4>
<pre>@Deprecated
public&nbsp;void&nbsp;removeAll()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Removes all of the items from the receiver.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul>
             Call <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html" title="class in org.eclipse.nebula.widgets.grid"><code>Grid</code></a> disposeAllItems and clearItems.. Is faster</dd>
</dl>
</li>
</ul>
<a name="disposeAllItems--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disposeAllItems</h4>
<pre>public&nbsp;void&nbsp;disposeAllItems()</pre>
<div class="block">All items needs to call the disposeOnly method</div>
</li>
</ul>
<a name="removeSelectionListener-org.eclipse.swt.events.SelectionListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeSelectionListener</h4>
<pre>public&nbsp;void&nbsp;removeSelectionListener(org.eclipse.swt.events.SelectionListener&nbsp;listener)</pre>
<div class="block">Removes the listener from the collection of listeners who will be notified
 when the receiver's selection changes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the listener which should no longer be notified</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SelectionListener</code>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#addSelectionListener-org.eclipse.swt.events.SelectionListener-"><code>addSelectionListener(SelectionListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="removeTreeListener-org.eclipse.swt.events.TreeListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeTreeListener</h4>
<pre>public&nbsp;void&nbsp;removeTreeListener(org.eclipse.swt.events.TreeListener&nbsp;listener)</pre>
<div class="block">Removes the listener from the collection of listeners who will be notified
 when the receiver's items changes.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>listener</code> - the listener which should no longer be notified</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>TreeListener</code>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#addTreeListener-org.eclipse.swt.events.TreeListener-"><code>addTreeListener(TreeListener)</code></a></dd>
</dl>
</li>
</ul>
<a name="select-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>select</h4>
<pre>public&nbsp;void&nbsp;select(int&nbsp;index)</pre>
<div class="block">Selects the item at the given zero-relative index in the receiver. If the
 item at the index was already selected, it remains selected. Indices that are
 out of range are ignored.
 <p>
 If cell selection is enabled, selects all cells at the given index.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the item to select</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="select-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>select</h4>
<pre>public&nbsp;void&nbsp;select(int&nbsp;start,
                   int&nbsp;end)</pre>
<div class="block">Selects the items in the range specified by the given zero-relative indices
 in the receiver. The range of indices is inclusive. The current selection is
 not cleared before the new items are selected.
 <p>
 If an item in the given range is not selected, it is selected. If an item in
 the given range was already selected, it remains selected. Indices that are
 out of range are ignored and no items will be selected if start is greater
 than end. If the receiver is single-select and there is more than one item in
 the given range, then all indices are ignored.
 <p>
 If cell selection is enabled, all cells within the given range are selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>start</code> - the start of the range</dd>
<dd><code>end</code> - the end of the range</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-int-int-"><code>setSelection(int,int)</code></a></dd>
</dl>
</li>
</ul>
<a name="select-int:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>select</h4>
<pre>public&nbsp;void&nbsp;select(int[]&nbsp;indices)</pre>
<div class="block">Selects the items at the given zero-relative indices in the receiver. The
 current selection is not cleared before the new items are selected.
 <p>
 If the item at a given index is not selected, it is selected. If the item at
 a given index was already selected, it remains selected. Indices that are out
 of range and duplicate indices are ignored. If the receiver is single-select
 and multiple indices are specified, then all indices are ignored.
 <p>
 If cell selection is enabled, all cells within the given indices are
 selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indices</code> - the array of indices for the items to select</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the array of indices is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-int:A-"><code>setSelection(int[])</code></a></dd>
</dl>
</li>
</ul>
<a name="selectAll--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectAll</h4>
<pre>public&nbsp;void&nbsp;selectAll()</pre>
<div class="block">Selects all of the items in the receiver.
 <p>
 If the receiver is single-select, do nothing. If cell selection is enabled,
 all cells are selected.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setEmptyCellRenderer-org.eclipse.nebula.widgets.grid.GridCellRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEmptyCellRenderer</h4>
<pre>public&nbsp;void&nbsp;setEmptyCellRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridCellRenderer.html" title="class in org.eclipse.nebula.widgets.grid">GridCellRenderer</a>&nbsp;emptyCellRenderer)</pre>
<div class="block">Sets the empty cell renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>emptyCellRenderer</code> - The emptyCellRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setEmptyColumnHeaderRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEmptyColumnHeaderRenderer</h4>
<pre>public&nbsp;void&nbsp;setEmptyColumnHeaderRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;emptyColumnHeaderRenderer)</pre>
<div class="block">Sets the empty column header renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>emptyColumnHeaderRenderer</code> - The emptyColumnHeaderRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setEmptyColumnFooterRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEmptyColumnFooterRenderer</h4>
<pre>public&nbsp;void&nbsp;setEmptyColumnFooterRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;emptyColumnFooterRenderer)</pre>
<div class="block">Sets the empty column footer renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>emptyColumnFooterRenderer</code> - The emptyColumnFooterRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setEmptyRowHeaderRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEmptyRowHeaderRenderer</h4>
<pre>public&nbsp;void&nbsp;setEmptyRowHeaderRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;emptyRowHeaderRenderer)</pre>
<div class="block">Sets the empty row header renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>emptyRowHeaderRenderer</code> - The emptyRowHeaderRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setHorizontalScrollBarProxy-org.eclipse.nebula.widgets.grid.internal.IScrollBarProxy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHorizontalScrollBarProxy</h4>
<pre>protected&nbsp;void&nbsp;setHorizontalScrollBarProxy(<a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a>&nbsp;scroll)</pre>
<div class="block">Sets the external horizontal scrollbar. Allows the scrolling to be managed
 externally from the table. This functionality is only intended when
 SWT.H_SCROLL is not given.
 <p>
 Using this feature, a ScrollBar could be instantiated outside the table,
 wrapped in IScrollBar and thus be 'connected' to the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scroll</code> - The horizontal scrollbar to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setlVerticalScrollBarProxy-org.eclipse.nebula.widgets.grid.internal.IScrollBarProxy-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setlVerticalScrollBarProxy</h4>
<pre>protected&nbsp;void&nbsp;setlVerticalScrollBarProxy(<a href="../../../../../org/eclipse/nebula/widgets/grid/internal/IScrollBarProxy.html" title="interface in org.eclipse.nebula.widgets.grid.internal">IScrollBarProxy</a>&nbsp;scroll)</pre>
<div class="block">Sets the external vertical scrollbar. Allows the scrolling to be managed
 externally from the table. This functionality is only intended when
 SWT.V_SCROLL is not given.
 <p>
 Using this feature, a ScrollBar could be instantiated outside the table,
 wrapped in IScrollBar and thus be 'connected' to the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>scroll</code> - The vertical scrollbar to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setFocusRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFocusRenderer</h4>
<pre>public&nbsp;void&nbsp;setFocusRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;focusRenderer)</pre>
<div class="block">Sets the focus renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>focusRenderer</code> - The focusRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setHeaderVisible-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHeaderVisible</h4>
<pre>public&nbsp;void&nbsp;setHeaderVisible(boolean&nbsp;show)</pre>
<div class="block">Marks the receiver's header as visible if the argument is <code>true</code>, and
 marks it invisible otherwise.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>show</code> - the new visibility state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setFooterVisible-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFooterVisible</h4>
<pre>public&nbsp;void&nbsp;setFooterVisible(boolean&nbsp;show)</pre>
<div class="block">Marks the receiver's footer as visible if the argument is <code>true</code>, and
 marks it invisible otherwise.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>show</code> - the new visibility state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setLineColor-org.eclipse.swt.graphics.Color-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLineColor</h4>
<pre>public&nbsp;void&nbsp;setLineColor(org.eclipse.swt.graphics.Color&nbsp;lineColor)</pre>
<div class="block">Sets the line color.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lineColor</code> - The lineColor to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setLinesVisible-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLinesVisible</h4>
<pre>public&nbsp;void&nbsp;setLinesVisible(boolean&nbsp;linesVisible)</pre>
<div class="block">Sets the line visibility.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>linesVisible</code> - Te linesVisible to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setTreeLinesVisible-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTreeLinesVisible</h4>
<pre>public&nbsp;void&nbsp;setTreeLinesVisible(boolean&nbsp;treeLinesVisible)</pre>
<div class="block">Sets the tree line visibility.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>treeLinesVisible</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setRowHeaderRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRowHeaderRenderer</h4>
<pre>public&nbsp;void&nbsp;setRowHeaderRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;rowHeaderRenderer)</pre>
<div class="block">Sets the row header renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>rowHeaderRenderer</code> - The rowHeaderRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setRowHeaderVisible-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRowHeaderVisible</h4>
<pre>public&nbsp;void&nbsp;setRowHeaderVisible(boolean&nbsp;show)</pre>
<div class="block">Marks the receiver's row header as visible if the argument is <code>true</code>,
 and marks it invisible otherwise. When row headers are visible, horizontal
 scrolling is always done by column rather than by pixel.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>show</code> - the new visibility state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setRowHeaderVisible-boolean-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRowHeaderVisible</h4>
<pre>public&nbsp;void&nbsp;setRowHeaderVisible(boolean&nbsp;show,
                                int&nbsp;minWidth)</pre>
<div class="block">Marks the receiver's row header as visible if the argument is <code>true</code>,
 and marks it invisible otherwise. When row headers are visible, horizontal
 scrolling is always done by column rather than by pixel.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>show</code> - the new visibility state</dd>
<dd><code>minWidth</code> - the minimun width of the row column</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setSelection-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSelection</h4>
<pre>public&nbsp;void&nbsp;setSelection(int&nbsp;index)</pre>
<div class="block">Selects the item at the given zero-relative index in the receiver. The
 current selection is first cleared, then the new item is selected.
 <p>
 If cell selection is enabled, all cells within the item at the given index
 are selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the item to select</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setSelection-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSelection</h4>
<pre>public&nbsp;void&nbsp;setSelection(int&nbsp;start,
                         int&nbsp;end)</pre>
<div class="block">Selects the items in the range specified by the given zero-relative indices
 in the receiver. The range of indices is inclusive. The current selection is
 cleared before the new items are selected.
 <p>
 Indices that are out of range are ignored and no items will be selected if
 start is greater than end. If the receiver is single-select and there is more
 than one item in the given range, then all indices are ignored.
 <p>
 If cell selection is enabled, all cells within the given range are selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>start</code> - the start index of the items to select</dd>
<dd><code>end</code> - the end index of the items to select</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectAll--"><code>deselectAll()</code></a>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#select-int-int-"><code>select(int,int)</code></a></dd>
</dl>
</li>
</ul>
<a name="isVisibleLinesColumnPack--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isVisibleLinesColumnPack</h4>
<pre>public&nbsp;boolean&nbsp;isVisibleLinesColumnPack()</pre>
<div class="block">If <code>true</code>, column pack is based only with the visible lines (from
 topIndex to bottomIndex). <code>false</code> pack is in default mode.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>optimizedColumnPack value</dd>
</dl>
</li>
</ul>
<a name="setVisibleLinesColumnPack-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setVisibleLinesColumnPack</h4>
<pre>public&nbsp;void&nbsp;setVisibleLinesColumnPack(boolean&nbsp;visibleLinesBasedColumnPack)</pre>
<div class="block">Set optimizedColumnPack to <code>true</code> for column pack based only with
 the visible lines.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>visibleLinesBasedColumnPack</code> - </dd>
</dl>
</li>
</ul>
<a name="setSelection-int:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSelection</h4>
<pre>public&nbsp;void&nbsp;setSelection(int[]&nbsp;indices)</pre>
<div class="block">Selects the items at the given zero-relative indices in the receiver. The
 current selection is cleared before the new items are selected.
 <p>
 Indices that are out of range and duplicate indices are ignored. If the
 receiver is single-select and multiple indices are specified, then all
 indices are ignored.
 <p>
 If cell selection is enabled, all cells within the given indices are
 selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indices</code> - the indices of the items to select</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the array of indices is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectAll--"><code>deselectAll()</code></a>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#select-int:A-"><code>select(int[])</code></a></dd>
</dl>
</li>
</ul>
<a name="setSelection-org.eclipse.nebula.widgets.grid.GridItem:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSelection</h4>
<pre>public&nbsp;void&nbsp;setSelection(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>[]&nbsp;_items)</pre>
<div class="block">Sets the receiver's selection to be the given array of items. The current
 selection is cleared before the new items are selected.
 <p>
 Items that are not in the receiver are ignored. If the receiver is
 single-select and multiple items are specified, then all items are ignored.
 If cell selection is enabled, all cells within the given items are selected.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>_items</code> - the array of items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the array of items is null</li>
             <li>ERROR_INVALID_ARGUMENT - if one of the items has been
             disposed</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#deselectAll--"><code>deselectAll()</code></a>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#select-int:A-"><code>select(int[])</code></a>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setSelection-int:A-"><code>setSelection(int[])</code></a></dd>
</dl>
</li>
</ul>
<a name="setTopIndex-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTopIndex</h4>
<pre>public&nbsp;void&nbsp;setTopIndex(int&nbsp;index)</pre>
<div class="block">Sets the zero-relative index of the item which is currently at the top of the
 receiver. This index can change when items are scrolled or new items are
 added and removed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the top item</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setTopLeftRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setTopLeftRenderer</h4>
<pre>public&nbsp;void&nbsp;setTopLeftRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;topLeftRenderer)</pre>
<div class="block">Sets the top left renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>topLeftRenderer</code> - The topLeftRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setBottomLeftRenderer-org.eclipse.nebula.widgets.grid.IRenderer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBottomLeftRenderer</h4>
<pre>public&nbsp;void&nbsp;setBottomLeftRenderer(<a href="../../../../../org/eclipse/nebula/widgets/grid/IRenderer.html" title="interface in org.eclipse.nebula.widgets.grid">IRenderer</a>&nbsp;bottomLeftRenderer)</pre>
<div class="block">Sets the bottom left renderer.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>bottomLeftRenderer</code> - The topLeftRenderer to set.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="showColumn-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>showColumn</h4>
<pre>public&nbsp;void&nbsp;showColumn(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;col)</pre>
<div class="block">Shows the column. If the column is already showing in the receiver, this
 method simply returns. Otherwise, the columns are scrolled until the column
 is visible.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>col</code> - the column to be shown</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isShown-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isShown</h4>
<pre>boolean&nbsp;isShown(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Returns true if 'item' is currently being <em>completely</em> shown in this
 <code>Grid</code>'s visible on-screen area.

 <p>
 Here, "completely" only refers to the item's height, not its width. This
 means this method returns true also if some cells are horizontally scrolled
 away.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if 'item' is shown</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             <li>ERROR_INVALID_ARGUMENT - if 'item' is not contained in the
             receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="showItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>showItem</h4>
<pre>public&nbsp;void&nbsp;showItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Shows the item. If the item is already showing in the receiver, this method
 simply returns. Otherwise, the items are scrolled until the item is visible.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - the item to be shown</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             <li>ERROR_INVALID_ARGUMENT - if 'item' is not contained in the
             receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="showSelection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>showSelection</h4>
<pre>public&nbsp;void&nbsp;showSelection()</pre>
<div class="block">Shows the selection. If the selection is already showing in the receiver,
 this method simply returns. Otherwise, the items are scrolled until the
 selection is visible.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setSelectionEnabled-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSelectionEnabled</h4>
<pre>public&nbsp;void&nbsp;setSelectionEnabled(boolean&nbsp;selectionEnabled)</pre>
<div class="block">Enables selection highlighting if the argument is <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectionEnabled</code> - the selection enabled state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getSelectionEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSelectionEnabled</h4>
<pre>public&nbsp;boolean&nbsp;getSelectionEnabled()</pre>
<div class="block">Returns <code>true</code> if selection is enabled, false otherwise.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the selection enabled state</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="fireColumnsMoved--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fireColumnsMoved</h4>
<pre>void&nbsp;fireColumnsMoved()</pre>
</li>
</ul>
<a name="handlePacked-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handlePacked</h4>
<pre>void&nbsp;handlePacked(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</pre>
</li>
</ul>
<a name="getCell-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCell</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Point&nbsp;getCell(org.eclipse.swt.graphics.Point&nbsp;point)</pre>
<div class="block">Returns the cell at the given point in the receiver or null if no such cell
 exists. The point is in the coordinate system of the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>point</code> - the point used to locate the item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the cell at the given point</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the point is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="updateColumnSelection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateColumnSelection</h4>
<pre>void&nbsp;updateColumnSelection()</pre>
</li>
</ul>
<a name="disableDefaultKeyListener--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>disableDefaultKeyListener</h4>
<pre>public&nbsp;void&nbsp;disableDefaultKeyListener()</pre>
<div class="block">Disable default key listener</div>
</li>
</ul>
<a name="enableDefaultKeyListener--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>enableDefaultKeyListener</h4>
<pre>public&nbsp;void&nbsp;enableDefaultKeyListener()</pre>
<div class="block">Enable default key listener</div>
</li>
</ul>
<a name="refreshHoverState--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshHoverState</h4>
<pre>protected&nbsp;void&nbsp;refreshHoverState()</pre>
<div class="block">Refreshes the hover* variables according to the mouse location and current
 state of the table. This is useful is some method call, caused the state of
 the table to change and therefore the hover effects may have become out of
 date.</div>
</li>
</ul>
<a name="onKeyDown-org.eclipse.swt.widgets.Event-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>onKeyDown</h4>
<pre>protected&nbsp;void&nbsp;onKeyDown(org.eclipse.swt.widgets.Event&nbsp;e)</pre>
<div class="block">Key down event handler.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - event</dd>
</dl>
</li>
</ul>
<a name="getOrigin-org.eclipse.nebula.widgets.grid.GridColumn-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOrigin</h4>
<pre>org.eclipse.swt.graphics.Point&nbsp;getOrigin(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
                                         <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Returns the intersection of the given column and given item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - column</dd>
<dd><code>item</code> - item</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>x,y of top left corner of the cell</dd>
</dl>
</li>
</ul>
<a name="updateToolTipText-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateToolTipText</h4>
<pre>protected&nbsp;void&nbsp;updateToolTipText(java.lang.String&nbsp;text)</pre>
<div class="block">Sets the tooltip for the whole Grid to the given text. This method is made
 available for subclasses to override, when a subclass wants to display a
 different than the standard SWT/OS tooltip. Generally, those subclasses would
 override this event and use this tooltip text in their own tooltip or just
 override this method to prevent the SWT/OS tooltip from displaying.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>text</code> - </dd>
</dl>
</li>
</ul>
<a name="setScrollValuesObsolete--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setScrollValuesObsolete</h4>
<pre>protected&nbsp;void&nbsp;setScrollValuesObsolete()</pre>
<div class="block">Marks the scroll values obsolete so they will be recalculated.</div>
</li>
</ul>
<a name="newColumn-org.eclipse.nebula.widgets.grid.GridColumn-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newColumn</h4>
<pre>int&nbsp;newColumn(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
              int&nbsp;index)</pre>
<div class="block">Inserts a new column into the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - new column</dd>
<dd><code>index</code> - index to insert new column</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>current number of columns</dd>
</dl>
</li>
</ul>
<a name="removeColumn-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeColumn</h4>
<pre>void&nbsp;removeColumn(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</pre>
<div class="block">Removes the given column from the table.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - column to remove</dd>
</dl>
</li>
</ul>
<a name="newRootItem-org.eclipse.nebula.widgets.grid.GridItem-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newRootItem</h4>
<pre>void&nbsp;newRootItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                 int&nbsp;index)</pre>
</li>
</ul>
<a name="removeRootItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeRootItem</h4>
<pre>void&nbsp;removeRootItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
</li>
</ul>
<a name="newItem-org.eclipse.nebula.widgets.grid.GridItem-int-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newItem</h4>
<pre>int&nbsp;newItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
            int&nbsp;index,
            boolean&nbsp;root)</pre>
<div class="block">Creates the new item at the given index. Only called from GridItem
 constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - new item</dd>
<dd><code>index</code> - index to insert the item at</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the index where the item was insert</dd>
</dl>
</li>
</ul>
<a name="removeItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeItem</h4>
<pre>void&nbsp;removeItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Removes the given item from the table. This method is only called from the
 item's dispose method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - item to remove</dd>
</dl>
</li>
</ul>
<a name="newColumnGroup-org.eclipse.nebula.widgets.grid.GridColumnGroup-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newColumnGroup</h4>
<pre>void&nbsp;newColumnGroup(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;group)</pre>
<div class="block">Creates the given column group at the given index. This method is only called
 from the <code>GridColumnGroup</code>'s constructor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>group</code> - group to add.</dd>
</dl>
</li>
</ul>
<a name="removeColumnGroup-org.eclipse.nebula.widgets.grid.GridColumnGroup-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeColumnGroup</h4>
<pre>void&nbsp;removeColumnGroup(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;group)</pre>
<div class="block">Removes the given column group from the table. This method is only called
 from the <code>GridColumnGroup</code>'s dispose method.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>group</code> - group to remove.</dd>
</dl>
</li>
</ul>
<a name="updateVisibleItems-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateVisibleItems</h4>
<pre>void&nbsp;updateVisibleItems(int&nbsp;amount)</pre>
<div class="block">Updates the cached number of visible items by the given amount.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>amount</code> - amount to update cached total</dd>
</dl>
</li>
</ul>
<a name="getFocusItem--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFocusItem</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;getFocusItem()</pre>
<div class="block">Returns the current item in focus.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>item in focus or <code>null</code>.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getFocusCell--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFocusCell</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Point&nbsp;getFocusCell()</pre>
<div class="block">Returns the current cell in focus. If cell selection is disabled, this method
 returns null.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>cell in focus or <code>null</code>. x represents the column and y the row
         the cell is in</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setFocusItem-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFocusItem</h4>
<pre>public&nbsp;void&nbsp;setFocusItem(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Sets the focused item to the given item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - item to focus.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_ARGUMENT - if item is disposed</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setFocusColumn-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFocusColumn</h4>
<pre>public&nbsp;void&nbsp;setFocusColumn(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column)</pre>
<div class="block">Sets the focused item to the given column. Column focus is only applicable
 when cell selection is enabled.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - column to focus.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_INVALID_ARGUMENT - if item is disposed</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getColumnsInOrder--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnsInOrder</h4>
<pre><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>[]&nbsp;getColumnsInOrder()</pre>
<div class="block">Returns an array of the columns in their display order.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>columns in display order</dd>
</dl>
</li>
</ul>
<a name="getColumnScrolling--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getColumnScrolling</h4>
<pre>public&nbsp;boolean&nbsp;getColumnScrolling()</pre>
<div class="block">Returns true if the table is set to horizontally scroll column-by-column
 rather than pixel-by-pixel.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the table is scrolled horizontally by column</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setColumnScrolling-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setColumnScrolling</h4>
<pre>public&nbsp;void&nbsp;setColumnScrolling(boolean&nbsp;columnScrolling)</pre>
<div class="block">Sets the table scrolling method to either scroll column-by-column (true) or
 pixel-by-pixel (false).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>columnScrolling</code> - true to horizontally scroll by column, false to scroll by pixel</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getVisibleColumn_DegradeLeft-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVisibleColumn_DegradeLeft</h4>
<pre><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getVisibleColumn_DegradeLeft(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                                        <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;col)</pre>
<div class="block">Returns the first visible column that is not spanned by any other column that
 is either the given column or any of the columns displaying to the left of
 the given column. If the given column and subsequent columns to the right are
 either not visible or spanned, this method will return null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - </dd>
<dd><code>col</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="getVisibleColumn_DegradeRight-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVisibleColumn_DegradeRight</h4>
<pre><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getVisibleColumn_DegradeRight(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                                         <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;col)</pre>
<div class="block">Returns the first visible column that is not spanned by any other column that
 is either the given column or any of the columns displaying to the right of
 the given column. If the given column and subsequent columns to the right are
 either not visible or spanned, this method will return null.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - </dd>
<dd><code>col</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="getCellSelectionEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCellSelectionEnabled</h4>
<pre>public&nbsp;boolean&nbsp;getCellSelectionEnabled()</pre>
<div class="block">Returns true if the cells are selectable in the reciever.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>cell selection enablement status.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setCellSelectionEnabled-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCellSelectionEnabled</h4>
<pre>public&nbsp;void&nbsp;setCellSelectionEnabled(boolean&nbsp;cellSelection)</pre>
<div class="block">Sets whether cells are selectable in the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cellSelection</code> - the cellSelection to set</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isCellSelectionEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCellSelectionEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isCellSelectionEnabled()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if cell selection is enabled</dd>
</dl>
</li>
</ul>
<a name="setCellDragSelectionEnabled-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCellDragSelectionEnabled</h4>
<pre>public&nbsp;void&nbsp;setCellDragSelectionEnabled(boolean&nbsp;cellDragSelection)</pre>
<div class="block">Sets whether cells are selectable in the receiver by dragging the mouse
 cursor.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cellDragSelection</code> - the cellDragSelection to set</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="isCellDragSelectionEnabled--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isCellDragSelectionEnabled</h4>
<pre>public&nbsp;boolean&nbsp;isCellDragSelectionEnabled()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if cell drag selection is enabled</dd>
</dl>
</li>
</ul>
<a name="deselectCell-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselectCell</h4>
<pre>public&nbsp;void&nbsp;deselectCell(org.eclipse.swt.graphics.Point&nbsp;cell)</pre>
<div class="block">Deselects the given cell in the receiver. If the given cell is already
 deselected it remains deselected. Invalid cells are ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cell</code> - cell to deselect.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the cell is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="deselectCells-org.eclipse.swt.graphics.Point:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselectCells</h4>
<pre>public&nbsp;void&nbsp;deselectCells(org.eclipse.swt.graphics.Point[]&nbsp;cells)</pre>
<div class="block">Deselects the given cells. Invalid cells are ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cells</code> - the cells to deselect.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the set of cells or any cell is
             null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="deselectAllCells--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deselectAllCells</h4>
<pre>public&nbsp;void&nbsp;deselectAllCells()</pre>
<div class="block">Deselects all selected cells in the receiver.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="selectCell-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectCell</h4>
<pre>public&nbsp;void&nbsp;selectCell(org.eclipse.swt.graphics.Point&nbsp;cell)</pre>
<div class="block">Selects the given cell. Invalid cells are ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cell</code> - point whose x values is a column index and y value is an item
            index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the item is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="selectCells-org.eclipse.swt.graphics.Point:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectCells</h4>
<pre>public&nbsp;void&nbsp;selectCells(org.eclipse.swt.graphics.Point[]&nbsp;cells)</pre>
<div class="block">Selects the given cells. Invalid cells are ignored.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cells</code> - an arry of points whose x value is a column index and y value is
            an item index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the set of cells or an individual
             cell is null</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="selectAllCells--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectAllCells</h4>
<pre>public&nbsp;void&nbsp;selectAllCells()</pre>
<div class="block">Selects all cells in the receiver.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="selectColumn-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectColumn</h4>
<pre>public&nbsp;void&nbsp;selectColumn(int&nbsp;col)</pre>
<div class="block">Selects all cells in the given column in the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>col</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="selectColumnGroup-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectColumnGroup</h4>
<pre>public&nbsp;void&nbsp;selectColumnGroup(int&nbsp;colGroup)</pre>
<div class="block">Selects all cells in the given column group in the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>colGroup</code> - the column group</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="selectColumnGroup-org.eclipse.nebula.widgets.grid.GridColumnGroup-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>selectColumnGroup</h4>
<pre>public&nbsp;void&nbsp;selectColumnGroup(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;colGroup)</pre>
<div class="block">Selects all cells in the given column group in the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>colGroup</code> - the column group</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setCellSelection-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCellSelection</h4>
<pre>public&nbsp;void&nbsp;setCellSelection(org.eclipse.swt.graphics.Point&nbsp;cell)</pre>
<div class="block">Selects the selection to the given cell. The existing selection is cleared
 before selecting the given cell.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cell</code> - point whose x values is a column index and y value is an item
            index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the item is null</li>
             <li>ERROR_INVALID_ARGUMENT - if the cell is invalid</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setCellSelection-org.eclipse.swt.graphics.Point:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setCellSelection</h4>
<pre>public&nbsp;void&nbsp;setCellSelection(org.eclipse.swt.graphics.Point[]&nbsp;cells)</pre>
<div class="block">Selects the selection to the given set of cell. The existing selection is
 cleared before selecting the given cells.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>cells</code> - point array whose x values is a column index and y value is an
            item index</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
             <li>ERROR_NULL_ARGUMENT - if the cell array or an individual cell
             is null</li>
             <li>ERROR_INVALID_ARGUMENT - if the a cell is invalid</li>
             </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getCellSelection--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCellSelection</h4>
<pre>public&nbsp;org.eclipse.swt.graphics.Point[]&nbsp;getCellSelection()</pre>
<div class="block">Returns an array of cells that are currently selected in the receiver. The
 order of the items is unspecified. An empty array indicates that no items are
 selected.
 <p>
 Note: This is not the actual structure used by the receiver to maintain its
 selection, so modifying the array will not affect the receiver.
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an array representing the cell selection</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="getFocusColumn--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFocusColumn</h4>
<pre><a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;getFocusColumn()</pre>
</li>
</ul>
<a name="updateColumnFocus--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateColumnFocus</h4>
<pre>void&nbsp;updateColumnFocus()</pre>
</li>
</ul>
<a name="showToolTip-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-org.eclipse.nebula.widgets.grid.GridColumnGroup-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>showToolTip</h4>
<pre>protected&nbsp;void&nbsp;showToolTip(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                           <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
                           <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumnGroup.html" title="class in org.eclipse.nebula.widgets.grid">GridColumnGroup</a>&nbsp;group,
                           org.eclipse.swt.graphics.Point&nbsp;location)</pre>
<div class="block">Shows the inplace tooltip for the given item and column. The location is the
 x and y origin of the text in the cell.
 <p>
 This method may be overriden to provide their own custom tooltips.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - the item currently hovered over or null.</dd>
<dd><code>column</code> - the column currently hovered over or null.</dd>
<dd><code>group</code> - the group currently hovered over or null.</dd>
<dd><code>location</code> - the x,y origin of the text in the hovered object.</dd>
</dl>
</li>
</ul>
<a name="hideToolTip--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>hideToolTip</h4>
<pre>protected&nbsp;void&nbsp;hideToolTip()</pre>
<div class="block">Hides the inplace tooltip.
 <p>
 This method must be overriden when showToolTip is overriden. Subclasses must
 call super when overriding this method.</div>
</li>
</ul>
<a name="recalculateRowHeaderHeight-org.eclipse.nebula.widgets.grid.GridItem-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recalculateRowHeaderHeight</h4>
<pre>void&nbsp;recalculateRowHeaderHeight(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                                int&nbsp;oldHeight,
                                int&nbsp;newHeight)</pre>
</li>
</ul>
<a name="recalculateRowHeaderWidth-org.eclipse.nebula.widgets.grid.GridItem-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recalculateRowHeaderWidth</h4>
<pre>void&nbsp;recalculateRowHeaderWidth(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                               int&nbsp;oldWidth,
                               int&nbsp;newWidth)</pre>
</li>
</ul>
<a name="setFont-org.eclipse.swt.graphics.Font-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFont</h4>
<pre>public&nbsp;void&nbsp;setFont(org.eclipse.swt.graphics.Font&nbsp;font)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>setFont</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Canvas</code></dd>
</dl>
</li>
</ul>
<a name="getItemHeaderWidth--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getItemHeaderWidth</h4>
<pre>public&nbsp;int&nbsp;getItemHeaderWidth()</pre>
<div class="block">Returns the row header width or 0 if row headers are not visible.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the width of the row headers</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been
             disposed</li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setItemHeaderWidth-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setItemHeaderWidth</h4>
<pre>public&nbsp;void&nbsp;setItemHeaderWidth(int&nbsp;width)</pre>
<div class="block">Sets the row header width to the specified value. This automatically disables
 the auto width feature of the grid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>width</code> - the width of the row header</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#getItemHeaderWidth--"><code>getItemHeaderWidth()</code></a>, 
<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setAutoWidth-boolean-"><code>setAutoWidth(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="setItemCount-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setItemCount</h4>
<pre>public&nbsp;void&nbsp;setItemCount(int&nbsp;count)</pre>
<div class="block">Sets the number of items contained in the receiver.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>count</code> - the number of items</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
</dl>
</li>
</ul>
<a name="isDisposing--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isDisposing</h4>
<pre>boolean&nbsp;isDisposing()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the disposing</dd>
</dl>
</li>
</ul>
<a name="setHasSpanning-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setHasSpanning</h4>
<pre>void&nbsp;setHasSpanning(boolean&nbsp;hasSpanning)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>hasSpanning</code> - the hasSpanning to set</dd>
</dl>
</li>
</ul>
<a name="getToolTipText--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getToolTipText</h4>
<pre>public&nbsp;java.lang.String&nbsp;getToolTipText()</pre>
<div class="block">Returns the receiver's tool tip text, or null if it has not been set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getToolTipText</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the receiver's tool tip text</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
</dl>
</li>
</ul>
<a name="setToolTipText-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setToolTipText</h4>
<pre>public&nbsp;void&nbsp;setToolTipText(java.lang.String&nbsp;string)</pre>
<div class="block">Sets the receiver's tool tip text to the argument, which may be null
 indicating that no tool tip text should be shown.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>setToolTipText</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>string</code> - the new tool tip text (or null)</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
</dl>
</li>
</ul>
<a name="imageSetOnItem-int-org.eclipse.nebula.widgets.grid.GridItem-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>imageSetOnItem</h4>
<pre>void&nbsp;imageSetOnItem(int&nbsp;column,
                    <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item)</pre>
<div class="block">Updates the row height when the first image is set on an item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>column</code> - the column the image is change</dd>
<dd><code>item</code> - item which images has just been set on.</dd>
</dl>
</li>
</ul>
<a name="setInsertMark-org.eclipse.nebula.widgets.grid.GridItem-org.eclipse.nebula.widgets.grid.GridColumn-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInsertMark</h4>
<pre>void&nbsp;setInsertMark(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid">GridItem</a>&nbsp;item,
                   <a href="../../../../../org/eclipse/nebula/widgets/grid/GridColumn.html" title="class in org.eclipse.nebula.widgets.grid">GridColumn</a>&nbsp;column,
                   boolean&nbsp;before)</pre>
<div class="block">Display a mark indicating the point at which an item will be inserted. This
 is used as a visual hint to show where a dragged item will be inserted when
 dropped on the grid. This method should not be called directly, instead
 <code>DND.FEEDBACK_INSERT_BEFORE</code> or <code>DND.FEEDBACK_INSERT_AFTER</code>
 should be set in <code>DropTargetEvent.feedback</code> from within a
 <code>DropTargetListener</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>item</code> - the insert item. Null will clear the insertion mark.</dd>
<dd><code>column</code> - the column of the cell. Null will make the insertion mark span all
            columns.</dd>
<dd><code>before</code> - true places the insert mark above 'item'. false places the insert
            mark below 'item'.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
                <li>ERROR_INVALID_ARGUMENT - if the item or column has been
                disposed</li>
                </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
</dl>
</li>
</ul>
<a name="isInDragScrollArea-org.eclipse.swt.graphics.Point-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInDragScrollArea</h4>
<pre>boolean&nbsp;isInDragScrollArea(org.eclipse.swt.graphics.Point&nbsp;point)</pre>
<div class="block">A helper method for <a href="../../../../../org/eclipse/nebula/widgets/grid/GridDropTargetEffect.html#dragOver-org.eclipse.swt.dnd.DropTargetEvent-"><code>GridDropTargetEffect.dragOver(DropTargetEvent)</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>point</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if point is near the top or bottom border of the visible grid
         area</dd>
</dl>
</li>
</ul>
<a name="clear-int-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public&nbsp;void&nbsp;clear(int&nbsp;index,
                  boolean&nbsp;allChildren)</pre>
<div class="block">Clears the item at the given zero-relative index in the receiver. The text,
 icon and other attributes of the item are set to the default value. If the
 table was created with the <code>SWT.VIRTUAL</code> style, these attributes
 are requested again as needed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>index</code> - the index of the item to clear</dd>
<dd><code>allChildren</code> - <code>true</code> if all child items of the indexed item should be
            cleared recursively, and <code>false</code> otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
                <li>ERROR_INVALID_RANGE - if the index is not between 0 and
                the number of elements in the list minus 1 (inclusive)</li>
                </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SWT.VIRTUAL</code>, 
<code>SWT.SetData</code></dd>
</dl>
</li>
</ul>
<a name="clear-int-int-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public&nbsp;void&nbsp;clear(int&nbsp;start,
                  int&nbsp;end,
                  boolean&nbsp;allChildren)</pre>
<div class="block">Clears the items in the receiver which are between the given zero-relative
 start and end indices (inclusive). The text, icon and other attributes of the
 items are set to their default values. If the table was created with the
 <code>SWT.VIRTUAL</code> style, these attributes are requested again as
 needed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>start</code> - the start index of the item to clear</dd>
<dd><code>end</code> - the end index of the item to clear</dd>
<dd><code>allChildren</code> - <code>true</code> if all child items of the range of items should
            be cleared recursively, and <code>false</code> otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
                <li>ERROR_INVALID_RANGE - if either the start or end are not
                between 0 and the number of elements in the list minus 1
                (inclusive)</li>
                </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SWT.VIRTUAL</code>, 
<code>SWT.SetData</code></dd>
</dl>
</li>
</ul>
<a name="clear-int:A-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clear</h4>
<pre>public&nbsp;void&nbsp;clear(int[]&nbsp;indices,
                  boolean&nbsp;allChildren)</pre>
<div class="block">Clears the items at the given zero-relative indices in the receiver. The
 text, icon and other attributes of the items are set to their default values.
 If the table was created with the <code>SWT.VIRTUAL</code> style, these
 attributes are requested again as needed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>indices</code> - the array of indices of the items</dd>
<dd><code>allChildren</code> - <code>true</code> if all child items of the indexed items should
            be cleared recursively, and <code>false</code> otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - <ul>
                <li>ERROR_INVALID_RANGE - if the index is not between 0 and
                the number of elements in the list minus 1 (inclusive)</li>
                <li>ERROR_NULL_ARGUMENT - if the indices array is null</li>
                </ul></dd>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SWT.VIRTUAL</code>, 
<code>SWT.SetData</code></dd>
</dl>
</li>
</ul>
<a name="clearAll-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>clearAll</h4>
<pre>public&nbsp;void&nbsp;clearAll(boolean&nbsp;allChildren)</pre>
<div class="block">Clears all the items in the receiver. The text, icon and other attributes of
 the items are set to their default values. If the table was created with the
 <code>SWT.VIRTUAL</code> style, these attributes are requested again as
 needed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>allChildren</code> - <code>true</code> if all child items of each item should be
            cleared recursively, and <code>false</code> otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
                <li>ERROR_WIDGET_DISPOSED - if the receiver has been
                disposed</li>
                <li>ERROR_THREAD_INVALID_ACCESS - if not called from the
                thread that created the receiver</li>
                </ul></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>SWT.VIRTUAL</code>, 
<code>SWT.SetData</code></dd>
</dl>
</li>
</ul>
<a name="recalculateHeader--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recalculateHeader</h4>
<pre>public&nbsp;void&nbsp;recalculateHeader()</pre>
<div class="block">Recalculate the height of the header</div>
</li>
</ul>
<a name="getVisibleRange--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getVisibleRange</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.GridVisibleRange.html" title="class in org.eclipse.nebula.widgets.grid">Grid.GridVisibleRange</a>&nbsp;getVisibleRange()</pre>
<div class="block">Query the grid for all currently visible rows and columns
 <p>
 <b>This support is provisional and may change</b>
 </p></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>all currently visible rows and columns</dd>
</dl>
</li>
</ul>
<a name="getStartColumnIndex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartColumnIndex</h4>
<pre>int&nbsp;getStartColumnIndex()</pre>
</li>
</ul>
<a name="getEndColumnIndex--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEndColumnIndex</h4>
<pre>int&nbsp;getEndColumnIndex()</pre>
</li>
</ul>
<a name="setSizeOnEveryItemImageChange-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSizeOnEveryItemImageChange</h4>
<pre>void&nbsp;setSizeOnEveryItemImageChange(boolean&nbsp;sizeOnEveryItemImageChange)</pre>
</li>
</ul>
<a name="getRowHeaderWidth--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRowHeaderWidth</h4>
<pre>public&nbsp;int&nbsp;getRowHeaderWidth()</pre>
<div class="block">Returns the width of the row headers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>width of the column header row</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.eclipse.swt.SWTException</code> - <ul>
             <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed
             </li>
             <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread
             that created the receiver</li>
             </ul></dd>
</dl>
</li>
</ul>
<a name="setAutoHeight-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutoHeight</h4>
<pre>public&nbsp;void&nbsp;setAutoHeight(boolean&nbsp;enabled)</pre>
<div class="block">Sets the value of the auto-height feature. When enabled, this feature resizes
 the height of rows to reflect the content of cells with word-wrapping
 enabled. Cell word-wrapping is enabled via the
 GridColumn.setWordWrap(boolean) method. If column headers have word-wrapping
 enabled, this feature will also resize the height of the column headers as
 necessary.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabled</code> - Set to true to enable this feature, false (default) otherwise.</dd>
</dl>
</li>
</ul>
<a name="isAutoHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAutoHeight</h4>
<pre>public&nbsp;boolean&nbsp;isAutoHeight()</pre>
<div class="block">Returns the value of the auto-height feature, which resizes row heights and
 column header heights based on word-wrapped content.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns whether or not the auto-height feature is enabled.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setAutoHeight-boolean-"><code>setAutoHeight(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="setAutoWidth-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutoWidth</h4>
<pre>public&nbsp;void&nbsp;setAutoWidth(boolean&nbsp;enabled)</pre>
<div class="block">Sets the value of the auto-width feature. When enabled, this feature resizes
 the width of the row headers to reflect the content of row headers.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabled</code> - Set to true to enable this feature, false (default) otherwise.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isAutoWidth--"><code>isAutoWidth()</code></a></dd>
</dl>
</li>
</ul>
<a name="isAutoWidth--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAutoWidth</h4>
<pre>public&nbsp;boolean&nbsp;isAutoWidth()</pre>
<div class="block">Returns the value of the auto-height feature, which resizes row header width
 based on content.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns whether or not the auto-width feature is enabled.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setAutoWidth-boolean-"><code>setAutoWidth(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="setWordWrapHeader-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setWordWrapHeader</h4>
<pre>public&nbsp;void&nbsp;setWordWrapHeader(boolean&nbsp;enabled)</pre>
<div class="block">Sets the value of the word-wrap feature for row headers. When enabled, this
 feature will word-wrap the contents of row headers.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>enabled</code> - Set to true to enable this feature, false (default) otherwise.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#isWordWrapHeader--"><code>isWordWrapHeader()</code></a></dd>
</dl>
</li>
</ul>
<a name="setForeground-org.eclipse.swt.graphics.Color-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setForeground</h4>
<pre>public&nbsp;void&nbsp;setForeground(org.eclipse.swt.graphics.Color&nbsp;color)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>setForeground</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Control.setForeground(org.eclipse.swt.graphics.Color)</code></dd>
</dl>
</li>
</ul>
<a name="isWordWrapHeader--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isWordWrapHeader</h4>
<pre>public&nbsp;boolean&nbsp;isWordWrapHeader()</pre>
<div class="block">Returns the value of the row header word-wrap feature, which word-wraps the
 content of row headers.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Returns whether or not the row header word-wrap feature is enabled.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html#setWordWrapHeader-boolean-"><code>setWordWrapHeader(boolean)</code></a></dd>
</dl>
</li>
</ul>
<a name="refreshData--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>refreshData</h4>
<pre>public&nbsp;void&nbsp;refreshData()</pre>
<div class="block">Refresh hasData <a href="../../../../../org/eclipse/nebula/widgets/grid/GridItem.html" title="class in org.eclipse.nebula.widgets.grid"><code>GridItem</code></a> state if <a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.html" title="class in org.eclipse.nebula.widgets.grid"><code>Grid</code></a> is virtual</div>
</li>
</ul>
<a name="isMoveOnTab--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMoveOnTab</h4>
<pre>public&nbsp;boolean&nbsp;isMoveOnTab()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the mouse navigation is enabled on tab/shift tab</dd>
</dl>
</li>
</ul>
<a name="setMoveOnTab-boolean-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMoveOnTab</h4>
<pre>public&nbsp;void&nbsp;setMoveOnTab(boolean&nbsp;moveOnTab)</pre>
<div class="block">This param allows user to change the current selection by pressing TAB and
 SHIFT-TAB</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>moveOnTab</code> - if <code>true</code>, navigation with tab key is enabled.</dd>
</dl>
</li>
</ul>
<a name="isFocusOnGrid--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFocusOnGrid</h4>
<pre>public&nbsp;boolean&nbsp;isFocusOnGrid()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the grid has focus</dd>
</dl>
</li>
</ul>
<a name="setSelectionType-org.eclipse.nebula.widgets.grid.GridSelectionType-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSelectionType</h4>
<pre>public&nbsp;void&nbsp;setSelectionType(<a href="../../../../../org/eclipse/nebula/widgets/grid/GridSelectionType.html" title="enum in org.eclipse.nebula.widgets.grid">GridSelectionType</a>&nbsp;selectionType)</pre>
<div class="block">Change selection type (single or multi)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>selectionType</code> - the new selection type</dd>
</dl>
</li>
</ul>
<a name="addMouseListener-org.eclipse.swt.events.MouseListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addMouseListener</h4>
<pre>public&nbsp;void&nbsp;addMouseListener(org.eclipse.swt.events.MouseListener&nbsp;sourceListener)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>addMouseListener</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Control</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Control.addMouseListener(org.eclipse.swt.events.MouseListener)</code></dd>
</dl>
</li>
</ul>
<a name="addListener-int-org.eclipse.swt.widgets.Listener-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addListener</h4>
<pre>public&nbsp;void&nbsp;addListener(int&nbsp;eventType,
                        org.eclipse.swt.widgets.Listener&nbsp;listener)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>addListener</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Widget</code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>Widget.addListener(int,
      org.eclipse.swt.widgets.Listener)</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/Grid.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/nebula/widgets/grid/DefaultEmptyCellRenderer.html" title="class in org.eclipse.nebula.widgets.grid"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/eclipse/nebula/widgets/grid/Grid.GridVisibleRange.html" title="class in org.eclipse.nebula.widgets.grid"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/nebula/widgets/grid/Grid.html" target="_top">Frames</a></li>
<li><a href="Grid.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
