title: Neither startEdit or setOnEditCommit getting called
body: <p>I followed this example mentioned on this link - 
      <a href="https://stackoverflow.com/questions/7880494/tableview-better-editing-through-binding?lq=1">UITableView - Better Editing through Binding?</a>
      I changed it a bit accordingly  </p>
  
  <pre><code>Model class - 
  
       public static class TableData {
  
          private String firstName, lastName;
  
          private TableData(String first, String last) {
              this.firstName = first;
              this.lastName = last;
          }
  
          public String getFirstName() {
              return firstName;
          }
  
          public void setFirstName(String firstName) {
              this.firstName = firstName;
          }
  
          public String getLastName() {
              return lastName;
          }
  
          public void setLastName(String lastName) {
              this.lastName = lastName;
          }
  
      }
  </code></pre>
  
  <p>Custom Cell factory -   </p>
  
  <pre><code>     public static class TextFieldCellFactory implements Callback&lt;TableColumn&lt;TableData, String&gt;, TableCell&lt;TableData, String&gt;&gt; {
  
      @Override
      public TableCell&lt;TableData, String&gt; call(TableColumn&lt;TableData, String&gt; param) {
          TextFieldCell textFieldCell = new TextFieldCell();
          return textFieldCell;
      }
  
      public static class TextFieldCell extends TableCell&lt;TableData, String&gt; {
  
          private TextField textField;
          private StringProperty boundToCurrently = null;
          private String newval = "";
  
          public TextFieldCell() {
  
  
              textField = new TextField();
              textField.setOnKeyPressed(new EventHandler&lt;KeyEvent&gt;() {
                  @Override
                  public void handle(KeyEvent t) {
                      if (t.getCode() == KeyCode.ENTER) {
                          System.out.println("key pressed");
                          commitEdit(textField.getText());
  
                      } else if (t.getCode() == KeyCode.ESCAPE) {
                          cancelEdit();
                      }
                  }
              });
  
              textField.textProperty().addListener(new ChangeListener&lt;String&gt;() {
  
                  @Override
                  public void changed(ObservableValue&lt;? extends String&gt; observable, String oldValue, String newValue) {
               // throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  
                      // commitEdit(newValue);
                      System.out.println("" + newValue);
                      newval = newValue;
                  }
  
              });
  
              textField.focusedProperty().addListener(new ChangeListener&lt;Boolean&gt;() {
  
                  public void changed(ObservableValue&lt;? extends Boolean&gt; observable, Boolean oldValue, Boolean newValue) {
  
                          if(!newValue){
                          System.out.println("losing focus" + newval);
                          //commichange();
                          commitEdit(textField.getText());
                          }
  
                      }
                  });
  
  
  
              this.setGraphic(textField);
          }
  
          @Override
          protected void updateItem(String item, boolean empty) {
              super.updateItem(item, empty);
              if (!empty) {
                  // Show the Text Field
                  this.setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
                  textField.setText(item);
  
  
  
              } else {
                  this.setContentDisplay(ContentDisplay.TEXT_ONLY);
              }
          }
  
      }
  }
  </code></pre>
  
  <p>setting onEditCommit-</p>
  
  <pre><code>c1.setOnEditCommit(
              new EventHandler&lt;TableColumn.CellEditEvent&lt;TableData, String&gt;&gt;() {
                  @Override
                  public void handle(TableColumn.CellEditEvent&lt;TableData, String&gt; t) {
                      System.out.println("ON edit commit" + t);
                      ((TableData) t.getTableView().getItems().get(
                              t.getTablePosition().getRow())).setFirstName(t.getNewValue());
                  }
              }
      );
  </code></pre>
  
  <ol>
  <li>Problem 1- I want to know what happens when commitEdit() is called. Does it invoke setOnEditCommit ? If it does then why its not invoking setOnEditCoommit</li>
  <li>Problem 2 - Why its not going into setOnEditCommit?</li>
  <li>Problem 3 I applied startEdit just to check if its enters that field. But that method also is not getting invoked.</li>
  </ol>
  
  <p>Can anyone specify what i am missing here.I don't want a workaround. I need to understand whats the reason behind it
  P.S I have removed the binding properties as given in the link.</p>