{
        for (int j = 0; j < columnCount; ++j)
        {
          Rectangle bounds = tableItems[i].getBounds(j);
          if (bounds.y > event.y)
          {
            break LOOP;
          }
          else if (bounds.contains(event.x, event.y))
          {
            if (j != 0 || !tableItems[i].getImageBounds(0).contains(event.x, event.y))
            {
              TableItem tableItem = tableItems[i];
              if (tableItem == selectedTableItem || wasActive)
              {
                if (tableItem != selectedTableItem)
                {
                  table.setSelection(i);
                  Event selectionEvent = new Event();
                  selectionEvent.widget = table;
                  selectionEvent.item = tableItem;
                  table.notifyListeners(SWT.Selection, selectionEvent);
                  selectedTableItem = tableItem;
                }
                editTableItem = tableItems[i];
                editTableItemColumn = j;
              }
              else
              {
                TableItem mouseBasedTableItem = table.getItem(point);
                if (mouseBasedTableItem == null)
                {
                  table.setSelection(i);
                  Event selectionEvent = new Event();
                  selectionEvent.widget = table;
                  selectionEvent.item = tableItem;
                  table.notifyListeners(SWT.Selection, selectionEvent);
                  selectedTableItem = tableItem;
                }
              }
            }

            break LOOP;
          }
        }
      }