Hi Vadym,

I just tried your snippet and I can't reproduce the problem.  Your 
description does sounds familar though.  Perhaps its a bug that was 
recently fixed.  Could you try downloading a recent nightly build and see 
if that fixes the problem?

Thanks,
-Chris



From:
"Vadym Yepishov" <[EMAIL PROTECTED]>
To:
<[email protected]>
Date:
12/26/2007 12:14 PM
Subject:
[nebula-dev] Pressing Arrow Down Key right after focusing and   selection 
of some cell in Grid programmatically leads to  NullPointerException.


Hi guys,
 
When I try to focus and select some cell in a grid and right after this to 
press ?Arrow Down? key, I have got NullPointerException.
 
I have used the first snippet of grid (and changed it a little bit J) to 
reproduce the problem. Here is the snippet:
 
package com.maconomy.widgets.snippets;
 
import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.nebula.widgets.grid.GridColumn;
import org.eclipse.nebula.widgets.grid.GridItem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
 
/**
 * Creates a simple grid and a button for focusing and selection of the 
first cell
 * of the grid.
 */
public class MxSnippet001GridCellFocusingAndSelection {
 
  /**
   * Main entry.
   * @param args command line arguments
   */
  public static void main(final String [] args) {
      final Display display = new Display ();
      final Shell shell = new Shell (display);
//      shell.setLayout(new FillLayout());
      // The following code line was inserted instead of the line 
commented out above in
      // order to be able to add a button below the grid.
      shell.setLayout(new GridLayout(1, false));
 
      final Grid grid = new Grid(shell, SWT.BORDER | SWT.V_SCROLL | 
SWT.H_SCROLL);
      grid.setHeaderVisible(true);
      final GridColumn column = new GridColumn(grid, SWT.NONE);
      column.setTree(true);
      column.setText("Column 1");
      column.setWidth(100);
      final GridItem item1 = new GridItem(grid, SWT.NONE);
      item1.setText("Root Item");
//      final GridItem item2 = new GridItem(item1, SWT.NONE);
      // The following line was inserted instead of the line commented out 
above.
      final GridItem item2 = new GridItem(grid, SWT.NONE);
      item2.setText("Second item");
//      final GridItem item3 = new GridItem(item2, SWT.NONE);
      // The following line was inserted instead of the line commented out 
above.
      final GridItem item3 = new GridItem(grid, SWT.NONE);
      item3.setText("Third Item");
 
      // The following code is added to demonstrate the defect with the 
grid cell
      // focusing and selection. 
      grid.setCellSelectionEnabled(true);
      // The following button is used to focus and select the first cell 
of the grid.
      // Try to press "Arrow Down" key right after clicking on this 
button.
      final Button button = new Button(shell, SWT.BORDER);
      button.addSelectionListener(new SelectionAdapter() {
        /** [EMAIL PROTECTED] */
        @Override
        public void widgetSelected(final SelectionEvent e) {
          grid.forceFocus();
          // We tried to use the following three code lines in order to 
both focus and
          // select some cell of the grid, but as it was found, the third 
code line leads
          // to the NullPointerException. If we do not use the third line, 
the cell is in
          // fact selected, but NOT FOCUSED (and focusing is what we 
need).
          grid.setCellSelection(new Point(0, 0));
          grid.setFocusItem(grid.getItem(0));
          // When you comment out the following code line the first cell 
will be selected
          // but NOT FOCUSED. You will see that the first cell of the grid 
being not
          // focused is indicated by the fact that the border of the cell 
is not present.
          // If you do not comment the line the first cell will be both 
focused and selected,
          // but pressing "Arrow Down" key leads to NullPointerException.
          grid.setFocusColumn(grid.getColumn(0));
        }
      });
      button.setText("Click this button to select and focus the first cell 
of the grid. " +
                               "Right after clicking this button press 
\"Arrow Down\" key.");
 
      //shell.setSize(200,200);
      // The following line was inserted instead of the line commented out 
above.
      shell.pack();
      shell.open ();
      while (!shell.isDisposed()) {
          if (!display.readAndDispatch ()) display.sleep ();
      }
      display.dispose ();
  }
}
 
Do you know why it might be a problem?
 
Best regards,
 
Vadym Yepishov
 _______________________________________________
nebula-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/nebula-dev

_______________________________________________
nebula-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/nebula-dev

Reply via email to