/// <summary>
        /// Creates a new plot using the plot info view and adds it to the given stratum's plot collection
        /// </summary>
        /// <returns>reference to newly created plot</returns>
        protected Plot AddPlot()
        {
            var newPlot = Stratum.MakePlot(DataService.CuttingUnit);

            if (View.ShowPlotInfo(DataService, newPlot, Stratum, true))
            {
                newPlot.Save();
                this.Stratum.Plots.Add(newPlot);

                if (newPlot.IsNull)
                {
                    return(this.AddPlot() ?? newPlot);//add plot may return null, in that case return most recently created plot
                }
                else if (Stratum.Is3PPNT && newPlot.Trees.Count == 0)
                {
                    return(this.AddPlot() ?? newPlot);//add plot may return null, in that case return most recently created plot
                }
                return(newPlot);
            }
            return(null);
        }