/// <summary>
 /// Displays the <see cref="PickAndPlaceDatabaseManager.FootprintForm"/> and handles the changes to the data.
 /// </summary>
 /// <param name="footprintForm">FootprintForm to display</param>
 private void ShowFootprintForm(FootprintForm footprintForm)
 {
     try
     {
         if (footprintForm.ShowDialog() == DialogResult.Yes)
         {
             bool      newFootprintMade;
             Footprint footprint = footprintForm.GetFootprint(out newFootprintMade);
             //The footprintForm makes/updates the footprint in the database
             DataRow datarow;
             if (newFootprintMade)
             {
                 //reloading the complete database would be waste of resorces.
                 //solution: manualy adding the new component to the datatable
                 datarow = footprintTable.NewRow();
                 datarow["manufacturerPartNumber"] = footprint.ManufacturerPartNumber;
                 footprintTable.Rows.Add(datarow);
             }
             else
             {
                 //Update the edited row
                 datarow = footprintTable.Select("manufacturerPartNumber = '" + footprint.ManufacturerPartNumber + "'")[0];
             }
             datarow["Length"]       = footprint.Length;
             datarow["Height"]       = footprint.Height;
             datarow["width"]        = footprint.Width;
             datarow["offsetStackX"] = footprint.OffsetStackX;
             datarow["offsetStackY"] = footprint.OffsetStackY;
             datarow["feedRate"]     = footprint.FeedRate;
             datarow["rotation"]     = footprint.Rotation;
             datarow["nozzle"]       = footprint.Nozzle;
             datarow["stacktype"]    = footprint.StackType;
         }
     }
     catch (Exception exc)
     {
         MessageBox.Show(exc.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }