protected void addNewElement(T newElement) {
    myTableView.stopEditing();
    setModified();
    SwingUtilities.invokeLater(() -> {
      if (myElements.isEmpty() || !isEmpty(myElements.get(myElements.size() - 1))) {
        myElements.add(newElement);
        myTableView.getTableViewModel().setItems(myElements);
      }
      myTableView.scrollRectToVisible(myTableView.getCellRect(myElements.size() - 1, 0, true));
      if (shouldEditRowOnCreation()) {
        myTableView.getComponent().editCellAt(myElements.size() - 1, 0);
      }
      myTableView.getComponent().revalidate();
      myTableView.getComponent().repaint();
    });
  }
protected void addNewElement(T newElement)