public void testDeleteSelection() throws Exception {
    IStructuredSelection selection =
        new StructuredSelection(new SimpleFeature[] {feature1, feature3});
    table.setSelection(selection);

    UDIGTestUtil.inDisplayThreadWait(
        1000,
        new WaitCondition() {

          public boolean isTrue() {
            return table.getSelectionCount() == 2;
          }
        },
        false);

    table.deleteSelection();

    UDIGTestUtil.inDisplayThreadWait(
        1000,
        new WaitCondition() {

          public boolean isTrue() {
            return table.getViewer().getTable().getItemCount() == 2;
          }
        },
        false);

    assertEquals(feature2, table.getViewer().getTable().getItem(0).getData());
    assertEquals(feature4, table.getViewer().getTable().getItem(1).getData());
    assertEquals(0, table.getSelectionCount());
    assertTrue(table.getSelection().isEmpty());
  }
  public void XtestUserSelection() throws Exception {

    // test normal click
    doEventBasedSelection(1, 0, 1);

    IStructuredSelection structuredSelection = ((IStructuredSelection) table.getSelection());
    assertNotNull("Selection expected", structuredSelection);

    Object firstElement = structuredSelection.getFirstElement();
    assertNotNull("First element should not be null", firstElement);

    Id idFilter = (Id) firstElement;
    assertFalse("Expect a non empty selection", idFilter.getIdentifiers().isEmpty());
    assertFalse("Expect a non empty selection", idFilter.getIDs().isEmpty());
    Set<Object> ds = (idFilter).getIDs();

    String[] fids = ds.toArray(new String[0]);
    assertEquals("Expect selected ID to match", feature2.getID(), fids[0]);

    assertSelectedBackgroundColor(1);

    doEventBasedSelection(2, 0, 1);

    firstElement = structuredSelection.getFirstElement();
    fids = ds.toArray(new String[0]);
    assertEquals(1, fids.length);
    assertEquals(feature3.getID(), fids[0]);
    assertSelectedBackgroundColor(2);

    doEventBasedSelection(2, 0, 2);

    firstElement = structuredSelection.getFirstElement();
    assertEquals(1, fids.length);
    fids = ds.toArray(new String[0]);
    assertEquals(feature3.getID(), fids[0]);
    assertSelectedBackgroundColor(2);

    // test MOD2 click
    doEventBasedSelection(0, SWT.MOD2, 1);

    firstElement = structuredSelection.getFirstElement();
    fids = ds.toArray(new String[0]);
    assertEquals(3, fids.length);
    assertTrue(contains(feature3.getID(), fids));
    assertTrue(contains(feature1.getID(), fids));
    assertTrue(contains(feature2.getID(), fids));
    assertSelectedBackgroundColor(0, 1, 2);

    doEventBasedSelection(1, SWT.MOD2, 1);

    firstElement = structuredSelection.getFirstElement();
    fids = ds.toArray(new String[0]);
    assertEquals(2, fids.length);
    assertTrue(contains(feature3.getID(), fids));
    assertTrue(contains(feature2.getID(), fids));
    assertSelectedBackgroundColor(1, 2);

    // test MOD1 click
    doEventBasedSelection(1, SWT.MOD1, 1);

    firstElement = structuredSelection.getFirstElement();
    fids = ds.toArray(new String[0]);
    assertEquals(1, fids.length);
    assertTrue(contains(feature3.getID(), fids));
    assertSelectedBackgroundColor(2);

    doEventBasedSelection(1, SWT.MOD1, 1);

    firstElement = structuredSelection.getFirstElement();
    fids = ds.toArray(new String[0]);
    assertEquals(2, fids.length);
    assertTrue(contains(feature3.getID(), fids));
    assertTrue(contains(feature2.getID(), fids));
    assertSelectedBackgroundColor(1, 2);
  }