Browse Source

Fix FormatException in Class Diagram addin.

Visual Studio class diagrams do not store the Collapsed xml attribute when the item is not collapsed.
pull/33/head
Matt Ward 13 years ago
parent
commit
d9028a73bc
  1. 1
      src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/ClassCanvas.csproj
  2. 4
      src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/ClassCanvasItem.cs
  3. 21
      src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/XPathNavigatorExtensions.cs

1
src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/ClassCanvas.csproj

@ -78,6 +78,7 @@ @@ -78,6 +78,7 @@
<Compile Include="Shapes\RouteInheritanceShape.cs" />
<Compile Include="Shapes\RouteShape.cs" />
<Compile Include="Shapes\PropertyShape.cs" />
<Compile Include="Src\XPathNavigatorExtensions.cs" />
<EmbeddedResource Include="Src\ClassCanvas.resx">
<DependentUpon>ClassCanvas.Designer.cs</DependentUpon>
</EmbeddedResource>

4
src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/ClassCanvasItem.cs

@ -625,7 +625,7 @@ namespace ClassDiagram @@ -625,7 +625,7 @@ namespace ClassDiagram
{
base.LoadFromXml(navigator);
Collapsed = bool.Parse(navigator.GetAttribute("Collapsed", ""));
Collapsed = navigator.GetBooleanAttribute("Collapsed");
XPathNodeIterator compNI = navigator.Select("Compartments/Compartment");
while (compNI.MoveNext())
@ -634,7 +634,7 @@ namespace ClassDiagram @@ -634,7 +634,7 @@ namespace ClassDiagram
InteractiveHeaderedItem grp;
if (groupsByName.TryGetValue(compNav.GetAttribute("Name", ""), out grp))
{
grp.Collapsed = bool.Parse(compNav.GetAttribute("Collapsed", ""));
grp.Collapsed = compNav.GetBooleanAttribute("Collapsed");
}
}
}

21
src/AddIns/DisplayBindings/ClassDiagram/ClassCanvas/Src/XPathNavigatorExtensions.cs

@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Xml.XPath;
namespace ClassDiagram
{
public static class XPathNavigatorExtensions
{
public static bool GetBooleanAttribute(this XPathNavigator navigator, string name, string namespaceUri = "")
{
string attributeValue = navigator.GetAttribute(name, namespaceUri);
bool result = false;
if (bool.TryParse(attributeValue, out result)) {
return true;
}
return false;
}
}
}
Loading…
Cancel
Save