diff --git a/PROMS/Volian.Controls.Library/EditItem.cs b/PROMS/Volian.Controls.Library/EditItem.cs
index d90d811a..d10d686c 100644
--- a/PROMS/Volian.Controls.Library/EditItem.cs
+++ b/PROMS/Volian.Controls.Library/EditItem.cs
@@ -578,12 +578,11 @@ namespace Volian.Controls.Library
EditItem lastChild = LastChild(siblingEditItems);
siblingEditItems.Add(this);
MyPreviousEditItem = lastChild;
- if (MyParentEditItem == null) MyParentEditItem = parentEditItem;
}
else // Add to the middle of the list before a particular item
{
EditItem prevChild = nextEditItem.MyPreviousEditItem;
- EditItem parent = nextEditItem.MyParentEditItem??parentEditItem;
+ EditItem parent = nextEditItem.MyParentEditItem;
if(siblingEditItems.Contains(nextEditItem))
siblingEditItems.Insert(siblingEditItems.IndexOf(nextEditItem), this);
else
@@ -592,7 +591,7 @@ namespace Volian.Controls.Library
_MyNextEditItem = nextEditItem;
nextEditItem._MyPreviousEditItem = this;
MyPreviousEditItem = prevChild;// If a previous exists - this will adjust the location and width of the EditItem
- //nextEditItem.MyParentEditItem = null; // jsj 5-13-2016 commented out got null referenced error when deleting an empty figure type substep
+ nextEditItem.MyParentEditItem = null;
MyParentEditItem = parent; // If a parent exists - this will adjust the location and width of the EditItem
//nextEditItem.MyPreviousEditItem = this;
MyStepPanel.ItemMoving--;
@@ -1829,8 +1828,17 @@ namespace Volian.Controls.Library
///
///
///
- protected Point TableLocation(EditItem myParentEditItem, StepSectionLayoutData myStepSectionLayoutData, int width)
+ protected Point TableLocation(StepSectionLayoutData myStepSectionLayoutData, int width)
{
+ // bug fix: B2016-111 - myParentEditItem was getting a null reference error when inserting a figure before/after a figure
+ EditItem myParentEditItem = _MyParentEditItem;
+ if (myParentEditItem == null)
+ {
+ EditItem parentEI = _MyPreviousEditItem;
+ while (parentEI._MyPreviousEditItem != null)
+ parentEI = parentEI._MyPreviousEditItem;
+ myParentEditItem = parentEI._MyParentEditItem;
+ }
// Should center on parent unless it is a centered table in the AER column
int center = myParentEditItem.ContentLeft + myParentEditItem.ContentWidth / 2;
int rightLimit = myParentEditItem.Right;
diff --git a/PROMS/Volian.Controls.Library/GridItem.cs b/PROMS/Volian.Controls.Library/GridItem.cs
index 1190e9db..4a1b80f1 100644
--- a/PROMS/Volian.Controls.Library/GridItem.cs
+++ b/PROMS/Volian.Controls.Library/GridItem.cs
@@ -153,7 +153,7 @@ namespace Volian.Controls.Library
if (wNew > ItemWidth)
{
ItemWidth = wNew;
- ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, wNew);
+ ItemLocation = TableLocation(MyStepSectionLayoutData, wNew);
}
}
else
@@ -162,7 +162,7 @@ namespace Volian.Controls.Library
if (ItemWidth != newwidth)
{
ItemWidth = newwidth;
- ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, newwidth);
+ ItemLocation = TableLocation( MyStepSectionLayoutData, newwidth);
}
}
}
@@ -452,7 +452,7 @@ namespace Volian.Controls.Library
// We had a table that was in a funky state. This allows it to appear in editor so
// that is could be deleted.
if (_MyParentEditItem == null) return;
- Point newLocation = TableLocation(_MyParentEditItem, MyStepSectionLayoutData, ItemWidth);
+ Point newLocation = TableLocation(MyStepSectionLayoutData, ItemWidth);
if (!newLocation.Equals(ItemLocation)) ItemLocation = newLocation;
}
public override void SetToolTip(string tip)
diff --git a/PROMS/Volian.Controls.Library/RTBItem.cs b/PROMS/Volian.Controls.Library/RTBItem.cs
index 5a5c2d30..d11ad16e 100644
--- a/PROMS/Volian.Controls.Library/RTBItem.cs
+++ b/PROMS/Volian.Controls.Library/RTBItem.cs
@@ -124,7 +124,7 @@ namespace Volian.Controls.Library
_MyStepRTB.Font = MyStepData.Font.WindowsFont;
ItemWidth = (int)GetTableWidth(_MyStepRTB.Font, MyItemInfo.MyContent.Text, true);
ItemLocation = new Point(50, _MyParentEditItem.Bottom);
- ItemLocation = TableLocation(_MyParentEditItem, MyStepSectionLayoutData, ItemWidth);
+ ItemLocation = TableLocation(MyStepSectionLayoutData, ItemWidth);
}
override public void SetToolTip(string tip)
@@ -604,7 +604,7 @@ namespace Volian.Controls.Library
if (wNew > ItemWidth)
{
ItemWidth = wNew;
- ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, wNew);
+ ItemLocation = TableLocation(MyStepSectionLayoutData, wNew);
}
}
else
@@ -613,7 +613,7 @@ namespace Volian.Controls.Library
if (ItemWidth != newwidth)
{
ItemWidth = newwidth;
- ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, newwidth);
+ ItemLocation = TableLocation(MyStepSectionLayoutData, newwidth);
}
}
}