|
From: <mcu...@us...> - 2009-12-31 07:19:43
|
Revision: 1424
http://orm.svn.sourceforge.net/orm/?rev=1424&view=rev
Author: mcurland
Date: 2009-12-31 07:19:36 +0000 (Thu, 31 Dec 2009)
Log Message:
-----------
Miscellaneous fixes:
* Changes in [1392] resulted in no object type name for an objectified fact type off the toolbox. refs #321
* FactEditor commit with object type name of objectified fact type selected repositioned the object type name shape to the default location.
* Verbalize list separator 'and' and 'or' instances uses the logicalOperator style (bold blue) instead of the listSeparator style (non-bold window text (generally black))
* Added model browser support for 'Select on Diagram' and 'Select on Diagram Spy' with link elements.
* Added defensive code to fix occasional model browser exception due to event order when a referenced element is deleted
* Deserialization of duplicate non-empty objectified link elements caused end element mismatch, eliminated remainder of file (can't duplicated with NORMA-saved files, occurred with some externally generated .orm files).
* Remove dead ReadingEditor command set code. Reading editor commands are handled by the designer command set.
Modified Paths:
--------------
trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/MainList.cs
trunk/ORMModel/Framework/Shell/SerializationEngine.cs
trunk/ORMModel/ObjectModel/VerbalizationCoreSnippets/VerbalizationCoreSnippets.xml
trunk/ORMModel/ObjectModel/VerbalizationGenerator.cs
trunk/ORMModel/ShapeModel/FactTypeShape.cs
trunk/ORMModel/Shell/ORMModelBrowser.cs
trunk/ORMModel/Shell/ORMReadingEditor.cs
Modified: trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/MainList.cs
===================================================================
--- trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/MainList.cs 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/Framework/Shell/DynamicSurveyTreeGrid/MainList.cs 2009-12-31 07:19:36 UTC (rev 1424)
@@ -395,9 +395,15 @@
if (reference != null &&
null != (referencedElement = reference.ReferencedElement))
{
+ NodeLocation targetLocation;
+ if (!surveyTree.myNodeDictionary.TryGetValue(referencedElement, out targetLocation))
+ {
+ // Defensive code to handle callbacks on partially removed references
+ // resulting from event side effects.
+ return retVal;
+ }
referenceOptions = reference.SurveyNodeReferenceOptions;
filterTargetQuestions = 0 != (referenceOptions & SurveyNodeReferenceOptions.FilterReferencedAnswers);
- NodeLocation targetLocation = surveyTree.myNodeDictionary[referencedElement = reference.ReferencedElement];
referenceNode = targetLocation.ElementNode;
referenceSurvey = targetLocation.Survey;
}
Modified: trunk/ORMModel/Framework/Shell/SerializationEngine.cs
===================================================================
--- trunk/ORMModel/Framework/Shell/SerializationEngine.cs 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/Framework/Shell/SerializationEngine.cs 2009-12-31 07:19:36 UTC (rev 1424)
@@ -4318,6 +4318,7 @@
if (element == oppositeRolePlayers[i])
{
createLink = false;
+ PassEndElement(reader);
break;
}
}
Modified: trunk/ORMModel/ObjectModel/VerbalizationCoreSnippets/VerbalizationCoreSnippets.xml
===================================================================
--- trunk/ORMModel/ObjectModel/VerbalizationCoreSnippets/VerbalizationCoreSnippets.xml 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/ObjectModel/VerbalizationCoreSnippets/VerbalizationCoreSnippets.xml 2009-12-31 07:19:36 UTC (rev 1424)
@@ -111,9 +111,9 @@
<Snippet type="IndentedCompoundListFinalSeparator"><![CDATA[<span class="listSeparator">; </span>]]></Snippet>
<Snippet type="IndentedCompoundListClose"><![CDATA[</span>]]></Snippet>
<Snippet type="IndentedListOpen"><![CDATA[<br/><span class="smallIndent">]]></Snippet>
- <Snippet type="IndentedListPairSeparator"><![CDATA[<span class="listSeparator"> and </span><br/>]]></Snippet>
- <Snippet type="IndentedListSeparator"><![CDATA[<span class="listSeparator"> and </span><br/>]]></Snippet>
- <Snippet type="IndentedListFinalSeparator"><![CDATA[<span class="listSeparator"> and </span><br/>]]></Snippet>
+ <Snippet type="IndentedListPairSeparator"><![CDATA[<span class="logicalOperator"> and </span><br/>]]></Snippet>
+ <Snippet type="IndentedListSeparator"><![CDATA[<span class="logicalOperator"> and </span><br/>]]></Snippet>
+ <Snippet type="IndentedListFinalSeparator"><![CDATA[<span class="logicalOperator"> and </span><br/>]]></Snippet>
<Snippet type="IndentedListClose"><![CDATA[</span>]]></Snippet>
<Snippet type="IndentedLogicalOrListOpen"><![CDATA[<br/><span class="smallIndent">]]></Snippet>
<Snippet type="IndentedLogicalOrListPairSeparator"><![CDATA[<br/><span class="logicalOperator">or </span>]]></Snippet>
@@ -155,9 +155,9 @@
<Snippet type="CompoundListClose"><![CDATA[]]></Snippet>
<Snippet type="SimpleListOpen"><![CDATA[]]></Snippet>
- <Snippet type="SimpleListPairSeparator"><![CDATA[<span class="listSeparator"> and </span>]]></Snippet>
+ <Snippet type="SimpleListPairSeparator"><![CDATA[<span class="logicalOperator"> and </span>]]></Snippet>
<Snippet type="SimpleListSeparator"><![CDATA[<span class="listSeparator">, </span>]]></Snippet>
- <Snippet type="SimpleListFinalSeparator"><![CDATA[<span class="listSeparator">, and </span>]]></Snippet>
+ <Snippet type="SimpleListFinalSeparator"><![CDATA[<span class="listSeparator">,</span><span class="logicalOperator"> and </span>]]></Snippet>
<Snippet type="SimpleListClose"><![CDATA[]]></Snippet>
<Snippet type="CompactSimpleListOpen"><![CDATA[]]></Snippet>
<Snippet type="CompactSimpleListPairSeparator"><![CDATA[<span class="listSeparator">, </span>]]></Snippet>
Modified: trunk/ORMModel/ObjectModel/VerbalizationGenerator.cs
===================================================================
--- trunk/ORMModel/ObjectModel/VerbalizationGenerator.cs 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/ObjectModel/VerbalizationGenerator.cs 2009-12-31 07:19:36 UTC (rev 1424)
@@ -458,10 +458,10 @@
@"<span class=""listSeparator"">; </span>",
@"<span class=""listSeparator"">; </span>",
"</span>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
@"<br/><span class=""smallIndent"">",
- @"<span class=""listSeparator""> and </span><br/>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
"</span>",
@"<br/><span class=""logicalOperator"">and that </span>",
@"<br/><span class=""smallIndent"">",
@@ -516,9 +516,9 @@
@"<span class=""smallIndent""><span class=""quantifier"">Reference Scheme:</span> {0}</span>",
"{0}",
"",
- @"<span class=""listSeparator"">, and </span>",
+ @"<span class=""listSeparator"">,</span><span class=""logicalOperator""> and </span>",
"",
- @"<span class=""listSeparator""> and </span>",
+ @"<span class=""logicalOperator""> and </span>",
@"<span class=""listSeparator"">, </span>",
"",
@"<span class=""logicalOperator""> and </span>",
@@ -656,10 +656,10 @@
@"<span class=""listSeparator"">; </span>",
@"<span class=""listSeparator"">; </span>",
"</span>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
@"<br/><span class=""smallIndent"">",
- @"<span class=""listSeparator""> and </span><br/>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
"</span>",
@"<br/><span class=""logicalOperator"">and that </span>",
@"<br/><span class=""smallIndent"">",
@@ -714,9 +714,9 @@
@"<span class=""smallIndent""><span class=""quantifier"">Reference Scheme:</span> {0}</span>",
"{0}",
"",
- @"<span class=""listSeparator"">, and </span>",
+ @"<span class=""listSeparator"">,</span><span class=""logicalOperator""> and </span>",
"",
- @"<span class=""listSeparator""> and </span>",
+ @"<span class=""logicalOperator""> and </span>",
@"<span class=""listSeparator"">, </span>",
"",
@"<span class=""logicalOperator""> and </span>",
@@ -854,10 +854,10 @@
@"<span class=""listSeparator"">; </span>",
@"<span class=""listSeparator"">; </span>",
"</span>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
@"<br/><span class=""smallIndent"">",
- @"<span class=""listSeparator""> and </span><br/>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
"</span>",
@"<br/><span class=""logicalOperator"">and that </span>",
@"<br/><span class=""smallIndent"">",
@@ -912,9 +912,9 @@
@"<span class=""smallIndent""><span class=""quantifier"">Reference Scheme:</span> {0}</span>",
"{0}",
"",
- @"<span class=""listSeparator"">, and </span>",
+ @"<span class=""listSeparator"">,</span><span class=""logicalOperator""> and </span>",
"",
- @"<span class=""listSeparator""> and </span>",
+ @"<span class=""logicalOperator""> and </span>",
@"<span class=""listSeparator"">, </span>",
"",
@"<span class=""logicalOperator""> and </span>",
@@ -1052,10 +1052,10 @@
@"<span class=""listSeparator"">; </span>",
@"<span class=""listSeparator"">; </span>",
"</span>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
@"<br/><span class=""smallIndent"">",
- @"<span class=""listSeparator""> and </span><br/>",
- @"<span class=""listSeparator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
+ @"<span class=""logicalOperator""> and </span><br/>",
"</span>",
@"<br/><span class=""logicalOperator"">and that </span>",
@"<br/><span class=""smallIndent"">",
@@ -1110,9 +1110,9 @@
@"<span class=""smallIndent""><span class=""quantifier"">Reference Scheme:</span> {0}</span>",
"{0}",
"",
- @"<span class=""listSeparator"">, and </span>",
+ @"<span class=""listSeparator"">,</span><span class=""logicalOperator""> and </span>",
"",
- @"<span class=""listSeparator""> and </span>",
+ @"<span class=""logicalOperator""> and </span>",
@"<span class=""listSeparator"">, </span>",
"",
@"<span class=""logicalOperator""> and </span>",
Modified: trunk/ORMModel/ShapeModel/FactTypeShape.cs
===================================================================
--- trunk/ORMModel/ShapeModel/FactTypeShape.cs 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/ShapeModel/FactTypeShape.cs 2009-12-31 07:19:36 UTC (rev 1424)
@@ -5100,11 +5100,13 @@
// Part 1: Resize the existing fact shapes
bool missingNameShapes = false;
+ bool hasShape = false;
foreach (PresentationElement pel in PresentationViewsSubject.GetPresentation(nestedFactType))
{
FactTypeShape factShape = pel as FactTypeShape;
if (factShape != null)
{
+ hasShape = true;
factShape.AutoResize();
if (!missingNameShapes)
{
@@ -5135,6 +5137,7 @@
ObjectTypeShape objectShape = pels[i] as ObjectTypeShape;
if (objectShape != null)
{
+ hasShape = true;
ORMDiagram currentDiagram = (ORMDiagram)objectShape.Diagram;
// Search the current diagram and see if we have a shape for the FactType
@@ -5226,6 +5229,11 @@
#endif // TRACKNEWSHAPES
// Make sure we have name shapes for all fact type shapes
+ if (!hasShape)
+ {
+ Diagram.FixUpDiagram(nestedFactType.Model, nestedFactType);
+ missingNameShapes = true;
+ }
if (missingNameShapes)
{
Diagram.FixUpDiagram(nestedFactType, nestingType);
@@ -5958,7 +5966,10 @@
{
AutoResize();
SizeD size = Size;
- Location = new PointD(0, -1.5 * size.Height);
+ if (createdDuringViewFixup)
+ {
+ Location = new PointD(0, -1.5 * size.Height);
+ }
foreach (ShapeElement childShape in RelativeChildShapes)
{
ORMBaseShape shape = childShape as ORMBaseShape;
Modified: trunk/ORMModel/Shell/ORMModelBrowser.cs
===================================================================
--- trunk/ORMModel/Shell/ORMModelBrowser.cs 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/Shell/ORMModelBrowser.cs 2009-12-31 07:19:36 UTC (rev 1424)
@@ -164,9 +164,13 @@
else if (0 != (commandFlags & (ORMDesignerCommands.DiagramList)))
{
OleMenuCommand cmd = command as OleMenuCommand;
+ object selectedNode = currentWindow.SelectedNode;
+ IElementReference elementReference;
ModelElement element;
string diagramName = null;
- if (null != (element = currentWindow.SelectedNode as ModelElement))
+ if (null != (elementReference = selectedNode as IElementReference) ?
+ null != (element = elementReference.ReferencedElement as ModelElement) :
+ null != (element = selectedNode as ModelElement))
{
int diagramIndex = cmd.MatchedCommandId;
ORMBaseShape.VisitAssociatedShapes(
@@ -643,7 +647,11 @@
protected virtual void OnMenuDiagramList(int diagramIndex, NavigateToWindow targetWindow)
{
ModelElement element;
- if (null != (element = SelectedNode as ModelElement))
+ IElementReference elementReference;
+ object selectedNode = SelectedNode;
+ if (null != (elementReference = selectedNode as IElementReference) ?
+ null != (element = elementReference.ReferencedElement as ModelElement) :
+ null != (element = selectedNode as ModelElement))
{
ORMBaseShape.VisitAssociatedShapes(
element,
Modified: trunk/ORMModel/Shell/ORMReadingEditor.cs
===================================================================
--- trunk/ORMModel/Shell/ORMReadingEditor.cs 2009-12-22 08:38:42 UTC (rev 1423)
+++ trunk/ORMModel/Shell/ORMReadingEditor.cs 2009-12-31 07:19:36 UTC (rev 1424)
@@ -85,27 +85,7 @@
}
}
-
- private object myCommandSet;
- private bool myCommandsPopulated;
/// <summary>
- /// returns the menu service and instantiates a new command set if none exists
- /// </summary>
- public override IMenuCommandService MenuService
- {
- get
- {
- IMenuCommandService retVal = base.MenuService;
- if (retVal != null && !myCommandsPopulated)
- {
- myCommandsPopulated = true;
- myCommandSet = new ReadingEditorCommandSet(myCtorServiceProvider, retVal);
- }
- return retVal;
- }
- }
-
- /// <summary>
/// Gets the title that will be displayed on the tool window.
/// </summary>
public override string WindowTitle
@@ -753,120 +733,5 @@
}
}
#endregion
- #region Nested Tool Window Class
- private sealed class ReadingEditorCommandSet : MarshalByRefObject, IDisposable
- {
- private IMenuCommandService myMenuService;
- private IMonitorSelectionService myMonitorSelection;
- private IServiceProvider myServiceProvider;
- private MenuCommand[] myCommands;
-
- public ReadingEditorCommandSet(IServiceProvider provider, IMenuCommandService menuService)
- {
- myServiceProvider = provider;
- myMenuService = menuService;
- #region command array
- myCommands = new MenuCommand[]{
- new DynamicStatusMenuCommand(
- new EventHandler(OnStatusDelete),
- new EventHandler(OnMenuDelete),
- StandardCommands.Delete)};
- #endregion //command array
- AddCommands(myCommands);
- }
-
- private void AddCommands(MenuCommand[] commands)
- {
- IMenuCommandService menuService = MenuService; //force creation of myMenuService
- if (menuService != null)
- {
- int count = commands.Length;
- for (int i = 0; i < count; ++i)
- {
- menuService.AddCommand(commands[i]);
- }
- }
- }
-
- private void RemoveCommands(MenuCommand[] commands)
- {
- IMenuCommandService menuService = myMenuService;
- if (menuService != null)
- {
- int count = commands.Length;
- for (int i = 0; i < count; ++i)
- {
- menuService.RemoveCommand(commands[i]);
- }
- }
- }
-
- private IMenuCommandService MenuService
- {
- get
- {
- Debug.Assert(myMenuService != null); // Should be passed into the constructor
- return myMenuService;
- }
- }
- private ORMReadingEditorToolWindow CurrentToolWindow
- {
- get
- {
- return MonitorSelection.CurrentWindow as ORMReadingEditorToolWindow;
- }
- }
- /// <summary>
- /// Load the monitor selection service
- /// </summary>
- private IMonitorSelectionService MonitorSelection
- {
- get
- {
- IMonitorSelectionService monitorSelect = myMonitorSelection;
- if (monitorSelect == null)
- {
- myMonitorSelection = monitorSelect = (IMonitorSelectionService)myServiceProvider.GetService(typeof(IMonitorSelectionService));
- }
- return monitorSelect;
- }
- }
-
- #region IDisposable Members
-
- public void Dispose()
- {
- if (myCommands != null)
- {
- RemoveCommands(myCommands);
- }
- myMenuService = null;
- myMonitorSelection = null;
- myServiceProvider = null;
- myCommands = null;
- }
-
- public void OnStatusDelete(Object sender, EventArgs e)
- {
- //IMonitorSelectionService service = MonitorSelection;
- //ORMReadingEditorToolWindow.OnStatusCommand(sender, ORMDesignerCommands.Delete, service.CurrentWindow as ORMReadingEditorToolWindow);
- }
- public void OnMenuDelete(Object sender, EventArgs e)
- {
- //ORMReadingEditorToolWindow currentWindow = CurrentToolWindow;
- //if (currentWindow != null)
- //{
- // currentWindow.OnMenuDelete((sender as OleMenuCommand).Text);
- //}
- }
- #endregion
- }
-
- #region Nested Click Location Class
-
- #endregion //Nested Click Location Class
-
-
- #endregion //Nested Tool Window Class
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|