From: <mcu...@us...> - 2009-03-04 00:10:36
|
Revision: 1363 http://orm.svn.sourceforge.net/orm/?rev=1363&view=rev Author: mcurland Date: 2009-03-04 00:10:35 +0000 (Wed, 04 Mar 2009) Log Message: ----------- A couple of fixes for [1162]. refs #387 * Deleting one reference from the model browser lost track of remaining reference nodes * Population of the 'delete from group' did not correctly break out of the inner loop Modified Paths: -------------- trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/SurveyClasses.cs trunk/ORMModel/Shell/ORMDesignerCommandManager.cs Modified: trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/SurveyClasses.cs =================================================================== --- trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/SurveyClasses.cs 2009-02-27 21:44:05 UTC (rev 1362) +++ trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/SurveyClasses.cs 2009-03-04 00:10:35 UTC (rev 1363) @@ -602,6 +602,7 @@ myReferenceDictionary.TryGetValue(element, out headLinkNode)) { LinkedNode<SurveyNodeReference> linkNode = headLinkNode; + LinkedNode<SurveyNodeReference> startHeadLinkNode = headLinkNode; while (linkNode != null) { SurveyNodeReference link = linkNode.Value; @@ -628,6 +629,10 @@ } } } + else if (startHeadLinkNode != headLinkNode) + { + myReferenceDictionary[element] = headLinkNode; + } } } void INotifySurveyElementChanged.ElementReferenceDeleted(object element, object referenceReason, object contextElement) Modified: trunk/ORMModel/Shell/ORMDesignerCommandManager.cs =================================================================== --- trunk/ORMModel/Shell/ORMDesignerCommandManager.cs 2009-02-27 21:44:05 UTC (rev 1362) +++ trunk/ORMModel/Shell/ORMDesignerCommandManager.cs 2009-03-04 00:10:35 UTC (rev 1363) @@ -1460,14 +1460,23 @@ ElementGrouping grouping = groupings[i]; for (int j = 0; j < selectedElementCount; ++j) { + bool allowGroupDeletion; switch (grouping.GetMembershipType(normalizedElements[j])) { case GroupingMembershipType.Inclusion: case GroupingMembershipType.Contradiction: - cachedGroupings[allowedGroupingCount] = grouping; - ++allowedGroupingCount; + allowGroupDeletion = true; break; + default: + allowGroupDeletion = false; + break; } + if (allowGroupDeletion) + { + cachedGroupings[allowedGroupingCount] = grouping; + ++allowedGroupingCount; + break; + } } } if (allowedGroupingCount < groupingCount) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |