|
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.
|