title: TableViewer cell editor not working - SWT
body: <p>I am trying  to implement an editable table viewer in Eclipse SWT. I think I've done everything ok until now, problem is the table is not editable - nothing happens if I click on any row. </p>
  
  <p>I have registered some CellEditors with all my columns:</p>
  
  <pre><code>CellEditor[] editors = new CellEditor[columnNames.length]; 
  editors[0] = new TextCellEditor(table);
  //do the above for all columns
  tableViewer.setCellEditors(editors);
  </code></pre>
  
  <p>and then I specify a cell modifier for my table:</p>
  
  <pre><code>tableViewer.setCellModifier(new CellModifier(this));
  </code></pre>
  
  <p>The CellModifier class looks like this:</p>
  
  <pre><code>public class CellModifier implements ICellModifier{
  
  private DBStructureView dbView;
  
  public CellModifier(DBStructureView view){
      super();
      this.dbView = view;
  }
  
  @Override
  public boolean canModify(Object element, String property) {
      return true;
  }
  
  @Override
  public Object getValue(Object element, String property) {
      int columnIndex = dbView.getColumnNames().indexOf(property);
  
      Object result = null;
      AttributeNode node = (AttributeNode) element;
  
      switch(columnIndex){
      case 0://row id
              result = node.getRow();
      case 1://name
              result = node.getName();
      case 2://value
              result = node.getValue();
      default:
              result = "unknown";
      }
  
      System.out.println(result);
      return result;
  }
  
  @Override
  public void modify(Object element, String property, Object value) {
      int columnIndex = dbView.getColumnNames().indexOf(property);
  
      TableItem item = (TableItem) element;
      AttributeNode node = (AttributeNode)item.getData();
      String valueString;
  
      switch(columnIndex){
      case 0:
          valueString = ((String) value).trim();
          node.setRow(valueString);
          break;
      case 1: 
          valueString = ((String) value).trim();
          node.setName(valueString);
          break;
      case 2:
          valueString = ((String) value).trim();
          node.setValue(valueString);
          break;
      default:
          break;
      }   
  
  }
  }
  </code></pre>
  
  <p>Having done all this, what can go wrong?</p>
  
  <p>Thanks in advance!</p>