private void synchronizeFormWithTable() {
   if (getSelectedCompanyItem() != null) {
     getUi().getForm().setItemDataSource(getSelectedCompanyItem());
   } else {
     // set a dummy bean item to prevent the fields from disappearing
     getUi().getForm().setItemDataSource(new BeanItem<Company>(new Company()));
   }
   // must happen after setting the datasource...
   getUi().getForm().setVisibleItemProperties(CompanyFormFieldFactory.getVisibleFields());
 }
  void handleNewButtonClicked() {
    // Unselect table
    getUi().getTable().select(getUi().getTable().getNullSelectionItemId());

    // set a fresh new bean item
    getUi().getForm().setItemDataSource(new BeanItem<Company>(new Company()));

    // must happen after setting the datasource...
    getUi().getForm().setVisibleItemProperties(CompanyFormFieldFactory.getVisibleFields());

    getUi().getBtnSave().setEnabled(true);
  }