/// <summary> /// Displays info about any previous incarnations of the feature /// currently selected for update. /// </summary> internal void Predecessors() { // Return if there is no predecessor. LineFeature prevLine = GetPredecessor(m_SelectedFeature); if (prevLine == null) { return; } // Get a list of all the predecessor lines List <LineFeature> prev = new List <LineFeature>(); while (prevLine != null) { prev.Add(prevLine); prevLine = prevLine.GetPredecessor(); } // Display list of the edits using (PickPredecessorForm dial = new PickPredecessorForm(prev.ToArray(), true)) { if (dial.ShowDialog() == DialogResult.OK) { Run(dial.SelectedLine); } } }
/// <summary> /// Returns the first predecessor (if any) for a specific feature. /// </summary> /// <param name="feat"></param> /// <returns>The predecessor (must be a line). Null if none.</returns> internal static LineFeature GetPredecessor(Feature feat) { LineFeature line = (feat as LineFeature); if (line == null) { return(null); } else { return(line.GetPredecessor()); } }