/// <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); }