Browse Source

fix some issues:

- formatting and indentation in some files
- do not catch and mute all exceptions in some cases
- use RhinoMocks to mock required services in tests
pull/54/merge
Siegfried Pammer 12 years ago
parent
commit
1ab1d4be4c
  1. 30
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs
  2. 18
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RasterPlacementBehavior.cs
  3. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SnaplinePlacementBehavior.cs
  4. 7
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/ModelTestHelper.cs
  5. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/WpfDesign.Tests.csproj
  6. 86
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs

30
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs

@ -189,30 +189,42 @@ namespace ICSharpCode.WpfDesign.Designer @@ -189,30 +189,42 @@ namespace ICSharpCode.WpfDesign.Designer
/// Enables / Disables the Snapline Placement
/// </summary>
private bool _useSnaplinePlacement = true;
public bool UseSnaplinePlacement
{
public bool UseSnaplinePlacement {
get { return _useSnaplinePlacement; }
set { _useSnaplinePlacement = value; OnPropertyChanged("UseSnaplinePlacement"); }
set {
if (_useSnaplinePlacement != value) {
_useSnaplinePlacement = value;
OnPropertyChanged("UseSnaplinePlacement");
}
}
}
/// <summary>
/// Enables / Disables the Raster Placement
/// </summary>
private bool _useRasterPlacement = false;
public bool UseRasterPlacement
{
public bool UseRasterPlacement {
get { return _useRasterPlacement; }
set { _useRasterPlacement = value; OnPropertyChanged("UseRasterPlacement"); }
set {
if (_useRasterPlacement != value) {
_useRasterPlacement = value;
OnPropertyChanged("UseRasterPlacement");
}
}
}
/// <summary>
/// Sets the with of the Raster when using Raster Placement
/// </summary>
private int _rasterWidth = 5;
public int RasterWidth
{
public int RasterWidth {
get { return _rasterWidth; }
set { _rasterWidth = value; OnPropertyChanged("RasterWidth"); }
set {
if (_rasterWidth != value) {
_rasterWidth = value;
OnPropertyChanged("RasterWidth");
}
}
}
#endregion

18
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RasterPlacementBehavior.cs

@ -13,21 +13,18 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -13,21 +13,18 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
{
public class RasterPlacementBehavior : DefaultPlacementBehavior
{
int raster = 5;
Canvas surface;
AdornerPanel adornerPanel;
private bool rasterDrawn = false;
bool rasterDrawn = false;
int raster = 5;
public override void BeginPlacement(PlacementOperation operation)
{
base.BeginPlacement(operation);
try {
raster = ((DesignPanel) ExtendedItem.Services.DesignPanel).RasterWidth;
}
catch (Exception ex)
{ }
DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel;
if (designPanel != null)
raster = designPanel.RasterWidth;
CreateSurface(operation);
}
@ -79,7 +76,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -79,7 +76,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
base.BeforeSetPosition(operation);
if (surface == null) return;
if (!((DesignPanel) ExtendedItem.Services.DesignPanel).UseRasterPlacement)
DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel;
if (designPanel == null || !designPanel.UseRasterPlacement)
return;
if (Keyboard.IsKeyDown(Key.LeftCtrl))

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SnaplinePlacementBehavior.cs

@ -59,7 +59,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -59,7 +59,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
base.BeforeSetPosition(operation);
if (surface == null) return;
if (!((DesignPanel)ExtendedItem.Services.DesignPanel).UseSnaplinePlacement)
DesignPanel designPanel = ExtendedItem.Services.DesignPanel as DesignPanel;
if (designPanel == null || !designPanel.UseSnaplinePlacement)
return;
surface.Children.Clear();

7
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/ModelTestHelper.cs

@ -10,9 +10,11 @@ using System.Windows; @@ -10,9 +10,11 @@ using System.Windows;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using ICSharpCode.WpfDesign.Adorners;
using NUnit.Framework;
using ICSharpCode.WpfDesign.Designer;
using ICSharpCode.WpfDesign.Designer.Xaml;
using Rhino.Mocks;
namespace ICSharpCode.WpfDesign.Tests.Designer
{
@ -35,6 +37,11 @@ namespace ICSharpCode.WpfDesign.Tests.Designer @@ -35,6 +37,11 @@ namespace ICSharpCode.WpfDesign.Tests.Designer
context.Services.Component.ComponentUnregistered += delegate(object sender, DesignItemEventArgs e) {
log.AppendLine("Unregister " + ItemIdentity(e.Item));
};*/
// create required service mocks
var designPanel = MockRepository.GenerateStub<IDesignPanel>();
designPanel.Stub(dp => dp.Adorners).Return(new System.Collections.Generic.List<AdornerPanel>());
context.Services.AddService(typeof(IDesignPanel), designPanel);
return context;
}

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/WpfDesign.Tests.csproj

@ -43,6 +43,9 @@ @@ -43,6 +43,9 @@
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Rhino.Mocks">
<HintPath>..\..\..\..\..\Libraries\RhinoMocks\Rhino.Mocks.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Xaml">
<RequiredTargetFramework>4.0</RequiredTargetFramework>

86
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlDocument.cs

@ -24,7 +24,7 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -24,7 +24,7 @@ namespace ICSharpCode.WpfDesign.XamlDom
XamlTypeFinder _typeFinder;
int namespacePrefixCounter;
int namespacePrefixCounter;
internal XmlDocument XmlDocument {
get { return _xmlDoc; }
@ -173,14 +173,16 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -173,14 +173,16 @@ namespace ICSharpCode.WpfDesign.XamlDom
return new XamlTextValue(this, c.ConvertToInvariantString(ctx, instance));
}
string ns = GetNamespaceFor(elementType);
string prefix = GetPrefixForNamespace(ns);
XmlElement xml = _xmlDoc.CreateElement(prefix, elementType.Name, ns);
string ns = GetNamespaceFor(elementType);
string prefix = GetPrefixForNamespace(ns);
XmlElement xml = _xmlDoc.CreateElement(prefix, elementType.Name, ns);
if (hasStringConverter && XamlObject.GetContentPropertyName(elementType) != null) {
xml.InnerText = c.ConvertToInvariantString(instance);
} else if (instance is Brush) { //Todo: this is a hacky fix, because Brush Editor don't edit Design Items and so we have no XML, only the Brush Object and we need to Parse the Brush to XAML!
} else if (instance is Brush) { // TODO: this is a hacky fix, because Brush Editor doesn't
// edit Design Items and so we have no XML, only the Brush
// object and we need to parse the Brush to XAML!
var s = new MemoryStream();
XamlWriter.Save(instance, s);
s.Seek(0, SeekOrigin.Begin);
@ -212,48 +214,48 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -212,48 +214,48 @@ namespace ICSharpCode.WpfDesign.XamlDom
return _typeFinder.GetXmlNamespaceFor(type.Assembly, type.Namespace);
}
internal string GetPrefixForNamespace(string @namespace)
{
if (@namespace == XamlConstants.PresentationNamespace)
{
return null;
}
internal string GetPrefixForNamespace(string @namespace)
{
if (@namespace == XamlConstants.PresentationNamespace)
{
return null;
}
string prefix = _xmlDoc.DocumentElement.GetPrefixOfNamespace(@namespace);
string prefix = _xmlDoc.DocumentElement.GetPrefixOfNamespace(@namespace);
if (String.IsNullOrEmpty(prefix))
{
prefix = _typeFinder.GetPrefixForXmlNamespace(@namespace);
if (String.IsNullOrEmpty(prefix))
{
prefix = _typeFinder.GetPrefixForXmlNamespace(@namespace);
string existingNamespaceForPrefix = null;
if (!String.IsNullOrEmpty(prefix))
{
existingNamespaceForPrefix = _xmlDoc.DocumentElement.GetNamespaceOfPrefix(prefix);
}
string existingNamespaceForPrefix = null;
if (!String.IsNullOrEmpty(prefix))
{
existingNamespaceForPrefix = _xmlDoc.DocumentElement.GetNamespaceOfPrefix(prefix);
}
if (String.IsNullOrEmpty(prefix) ||
!String.IsNullOrEmpty(existingNamespaceForPrefix) &&
existingNamespaceForPrefix != @namespace)
{
do
{
prefix = "Controls" + namespacePrefixCounter++;
} while (!String.IsNullOrEmpty(_xmlDoc.DocumentElement.GetNamespaceOfPrefix(prefix)));
}
if (String.IsNullOrEmpty(prefix) ||
!String.IsNullOrEmpty(existingNamespaceForPrefix) &&
existingNamespaceForPrefix != @namespace)
{
do
{
prefix = "Controls" + namespacePrefixCounter++;
} while (!String.IsNullOrEmpty(_xmlDoc.DocumentElement.GetNamespaceOfPrefix(prefix)));
}
string xmlnsPrefix = _xmlDoc.DocumentElement.GetPrefixOfNamespace(XamlConstants.XmlnsNamespace);
System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(xmlnsPrefix));
string xmlnsPrefix = _xmlDoc.DocumentElement.GetPrefixOfNamespace(XamlConstants.XmlnsNamespace);
System.Diagnostics.Debug.Assert(!String.IsNullOrEmpty(xmlnsPrefix));
_xmlDoc.DocumentElement.SetAttribute(xmlnsPrefix + ":" + prefix, @namespace);
if (@namespace == XamlConstants.DesignTimeNamespace)
{
var ignorableProp = new XamlProperty(this._rootElement,new XamlDependencyPropertyInfo(MarkupCompatibilityProperties.IgnorableProperty,true));
ignorableProp.SetAttribute(prefix);
}
}
_xmlDoc.DocumentElement.SetAttribute(xmlnsPrefix + ":" + prefix, @namespace);
if (@namespace == XamlConstants.DesignTimeNamespace)
{
var ignorableProp = new XamlProperty(this._rootElement,new XamlDependencyPropertyInfo(MarkupCompatibilityProperties.IgnorableProperty,true));
ignorableProp.SetAttribute(prefix);
}
}
return prefix;
}
return prefix;
}
}
}

Loading…
Cancel
Save