Browse Source

Merge remote-tracking branch 'origin/master' into newNR

pull/32/merge
Daniel Grunwald 13 years ago
parent
commit
be41187303
  1. 16
      src/AddIns/BackendBindings/VBNetBinding/Test/CodeCompletionTests.cs
  2. 2
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/Windows/ConnectionWizardWindow.xaml
  3. 6
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/Windows/ConnectionWizardWindow.xaml.cs
  4. 92
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/DisplayBinding/EDMDesignerViewContent.cs
  5. 23
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/MSLIO.cs
  6. 1
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs
  7. 16
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs
  8. 1134
      src/AddIns/DisplayBindings/XmlEditor/Test/Resources/xslt.xsd
  9. 38
      src/AddIns/DisplayBindings/XmlEditor/Test/Schema/SubstitutionGroupTests.cs
  10. 48
      src/AddIns/DisplayBindings/XmlEditor/Test/Schema/XsltSchemaTests.cs
  11. 8
      src/AddIns/DisplayBindings/XmlEditor/Test/Utils/ResourceManager.cs
  12. 5
      src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj
  13. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Console.Types.dll
  14. BIN
      src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Core.dll
  15. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/FormatStringConverte.cs
  16. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  17. 45
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardFormatter.cs
  18. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs
  19. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/DateAdd.cs
  20. 45
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/DateSubtract.cs
  21. 18
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/TypeNormalizer.cs
  22. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/GlobalLists.cs
  23. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj
  24. 138
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Printing/FormattingFixture.cs
  25. 82
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/DateTimeFunctionsFixture.cs
  26. 43
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/FunctionsFixture.cs
  27. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/AggregateFunctionsFixture.cs
  28. 4
      src/AddIns/VersionControl/GitAddIn/GitAddIn.addin
  29. 8
      src/AddIns/VersionControl/GitAddIn/Src/Commands.cs
  30. 5
      src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs
  31. 1
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchPanel.cs
  32. 6
      src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs
  33. 15
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.xaml
  34. 1
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ApplicationSettings.xaml.cs
  35. 3
      src/Main/Base/Project/Src/Project/AbstractProject.cs
  36. 2
      src/Main/GlobalAssemblyInfo.template
  37. 1
      src/Main/SharpDevelop/Workbench/FileService.cs

16
src/AddIns/BackendBindings/VBNetBinding/Test/CodeCompletionTests.cs

@ -119,5 +119,21 @@ End Module";
TestCtrlSpace(text, true, list => Assert.IsFalse(list.Items.Any(i => i.Text == "InnerException"))); TestCtrlSpace(text, true, list => Assert.IsFalse(list.Items.Any(i => i.Text == "InnerException")));
} }
[Test]
public void TestLocalVariablesAvailableAtEndOfForLoop()
{
string text = @"Module Test
Public Sub f()
Dim cheeses = { ""cheddar"", ""brie"", ""edam"" }
For Each cheese As String In cheeses
Dim gouda = ""is tasty""
|
Next
End Sub
End Module";
TestKeyPress(text, 'g', CodeCompletionKeyPressResult.CompletedIncludeKeyInCompletion, list => Assert.IsTrue(list.Items.Any(i => i.Text == "gouda")));
}
} }
} }

2
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/Windows/ConnectionWizardWindow.xaml

@ -84,7 +84,7 @@
<TextBlock Grid.Row="5" Margin="3">Database:</TextBlock> <TextBlock Grid.Row="5" Margin="3">Database:</TextBlock>
<ComboBox x:Name="cboDatabases" Grid.Row="5" Grid.Column="1" Margin="3" SelectedItem="{Binding SelectedDatabase, ElementName=This}" <ComboBox x:Name="cboDatabases" Grid.Row="5" Grid.Column="1" Margin="3" SelectedItem="{Binding SelectedDatabase, ElementName=This}"
ItemsSource="{Binding SelectedDatasource.Databases, ElementName=This}" SelectionChanged="cboDatabases_SelectionChanged"> ItemsSource="{Binding SelectedDatasource.Databases, ElementName=This}">
<ComboBox.ItemTemplate> <ComboBox.ItemTemplate>
<DataTemplate> <DataTemplate>
<TextBlock Text="{Binding Name}" /> <TextBlock Text="{Binding Name}" />

6
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/Windows/ConnectionWizardWindow.xaml.cs

@ -92,6 +92,7 @@ namespace ICSharpCode.Data.Core.UI.Windows
set set
{ {
_selectedDatabase = value; _selectedDatabase = value;
btnAdd.IsEnabled = (_selectedDatabase != null);
OnPropertyChanged("SelectedDatabase"); OnPropertyChanged("SelectedDatabase");
} }
} }
@ -212,11 +213,6 @@ namespace ICSharpCode.Data.Core.UI.Windows
} }
} }
private void cboDatabases_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
btnAdd.IsEnabled = true;
}
private void btnAdd_Click(object sender, RoutedEventArgs e) private void btnAdd_Click(object sender, RoutedEventArgs e)
{ {
if (_addAction == null) if (_addAction == null)

92
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core.UI/DisplayBinding/EDMDesignerViewContent.cs

@ -1,9 +1,8 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // 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) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
#region Usings
using System; using System;
using System.Collections.ObjectModel;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
@ -11,8 +10,11 @@ using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Xml.Linq; using System.Xml.Linq;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Common;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer; using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.ChangeWatcher; using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.ChangeWatcher;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL.Property;
using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL.Type; using ICSharpCode.Data.EDMDesigner.Core.EDMObjects.Designer.CSDL.Type;
using ICSharpCode.Data.EDMDesigner.Core.IO; using ICSharpCode.Data.EDMDesigner.Core.IO;
using ICSharpCode.Data.EDMDesigner.Core.UI.UserControls; using ICSharpCode.Data.EDMDesigner.Core.UI.UserControls;
@ -22,29 +24,22 @@ using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Workbench; using ICSharpCode.SharpDevelop.Workbench;
#endregion
namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
{ {
public class EDMDesignerViewContent : AbstractViewContent, IHasPropertyContainer, IToolsHost, IEDMDesignerChangeWatcherObserver public class EDMDesignerViewContent : AbstractViewContent, IHasPropertyContainer, IToolsHost, IEDMDesignerChangeWatcherObserver
{ {
#region Fields private ScrollViewer _scrollViewer = new ScrollViewer() {
HorizontalScrollBarVisibility = ScrollBarVisibility.Auto,
private ScrollViewer _scrollViewer = new ScrollViewer() { HorizontalScrollBarVisibility = ScrollBarVisibility.Auto, VerticalScrollBarVisibility = ScrollBarVisibility.Auto }; VerticalScrollBarVisibility = ScrollBarVisibility.Auto
};
private DesignerCanvas _designerCanvas = null; private DesignerCanvas _designerCanvas = null;
private PropertyContainer _propertyContainer = new PropertyContainer(); private PropertyContainer _propertyContainer = new PropertyContainer();
private EDMView _edmView = null; private EDMView _edmView = null;
private object _selection = null; private object _selection = null;
#endregion public object Selection {
#region Properties
public object Selection
{
get { return _selection; } get { return _selection; }
set set {
{
if (_selection == null) if (_selection == null)
_propertyContainer.Clear(); _propertyContainer.Clear();
else else
@ -54,30 +49,22 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
} }
} }
public Window Window public Window Window {
{
get { return Application.Current.MainWindow; } get { return Application.Current.MainWindow; }
} }
public EDMView EDMView public EDMView EDMView {
{
get { return _edmView; } get { return _edmView; }
} }
public override object Control public override object Control {
{
get { return _scrollViewer; } get { return _scrollViewer; }
} }
public DesignerCanvas DesignerCanvas public DesignerCanvas DesignerCanvas {
{
get { return _designerCanvas; } get { return _designerCanvas; }
} }
#endregion
#region Constructor
public EDMDesignerViewContent(OpenedFile primaryFile) public EDMDesignerViewContent(OpenedFile primaryFile)
: base(primaryFile) : base(primaryFile)
{ {
@ -89,10 +76,6 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
EDMDesignerChangeWatcher.AddEDMDesignerViewContent(this); EDMDesignerChangeWatcher.AddEDMDesignerViewContent(this);
} }
#endregion
#region Methods
public override void Load(OpenedFile file, Stream stream) public override void Load(OpenedFile file, Stream stream)
{ {
Debug.Assert(file == this.PrimaryFile); Debug.Assert(file == this.PrimaryFile);
@ -105,17 +88,13 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
_edmView = new EDMView(stream, readMoreAction); _edmView = new EDMView(stream, readMoreAction);
// If EDMX is empty run EDM Wizard // If EDMX is empty run EDM Wizard
if (_edmView.EDM.IsEmpty) if (_edmView.EDM.IsEmpty) {
{
edmxElement = null; edmxElement = null;
string ns = String.Empty; string ns = String.Empty;
if (ProjectService.CurrentProject == null) if (ProjectService.CurrentProject == null) {
{
ns = ICSharpCode.Core.MessageService.ShowInputBox("EDMDesigner","Enter NameSpace","DefaultNamespace"); ns = ICSharpCode.Core.MessageService.ShowInputBox("EDMDesigner","Enter NameSpace","DefaultNamespace");
} } else {
else
{
ns = ProjectService.CurrentProject.RootNamespace; ns = ProjectService.CurrentProject.RootNamespace;
} }
@ -132,8 +111,7 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
XElement designerViewsElement = null; XElement designerViewsElement = null;
if (edmxElement == null || (designerViewsElement = EDMXIO.ReadSection(edmxElement, EDMXIO.EDMXSection.DesignerViews)) == null) if (edmxElement == null || (designerViewsElement = EDMXIO.ReadSection(edmxElement, EDMXIO.EDMXSection.DesignerViews)) == null) {
{
designerViewsElement = DesignerIO.GenerateNewDesignerViewsFromCSDLView(_edmView); designerViewsElement = DesignerIO.GenerateNewDesignerViewsFromCSDLView(_edmView);
} }
@ -147,11 +125,15 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
_scrollViewer.Content = _designerCanvas; _scrollViewer.Content = _designerCanvas;
// Register CSDL of EDMX in CSDL DatabaseTreeView // Register CSDL of EDMX in CSDL DatabaseTreeView
CSDLDatabaseTreeViewAdditionalNode.Instance.CSDLViews.Add(_edmView.CSDL); CSDLViews.Add(_edmView.CSDL);
EDMDesignerChangeWatcher.Init = false; EDMDesignerChangeWatcher.Init = false;
} }
ObservableCollection<CSDLView> CSDLViews {
get { return CSDLDatabaseTreeViewAdditionalNode.Instance.CSDLViews; }
}
public override void Save(OpenedFile file, Stream stream) public override void Save(OpenedFile file, Stream stream)
{ {
EDMXIO.WriteXDocument(_edmView).Save(stream); EDMXIO.WriteXDocument(_edmView).Save(stream);
@ -159,7 +141,7 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
private EDMWizardWindow RunWizard(OpenedFile file, string projectStandardNamespace) private EDMWizardWindow RunWizard(OpenedFile file, string projectStandardNamespace)
{ {
EDMWizardWindow wizard = new EDMWizardWindow(file, projectStandardNamespace); var wizard = new EDMWizardWindow(file, projectStandardNamespace);
wizard.Owner = Application.Current.MainWindow; wizard.Owner = Application.Current.MainWindow;
wizard.WindowStartupLocation = WindowStartupLocation.CenterOwner; wizard.WindowStartupLocation = WindowStartupLocation.CenterOwner;
wizard.ShowDialog(); wizard.ShowDialog();
@ -169,21 +151,20 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
public override void Dispose() public override void Dispose()
{ {
if (CSDLDatabaseTreeViewAdditionalNode.Instance.CSDLViews.Contains(_edmView.CSDL)) if (_edmView != null) {
CSDLDatabaseTreeViewAdditionalNode.Instance.CSDLViews.Remove(_edmView.CSDL); CSDLViews.Remove(_edmView.CSDL);
}
EDMDesignerChangeWatcher.RemoveEDMDesignerViewContent(this); EDMDesignerChangeWatcher.RemoveEDMDesignerViewContent(this);
} }
public void ShowMappingTab(IUIType uiType) public void ShowMappingTab(IUIType uiType)
{ } {
}
#endregion
#region IHasPropertyContainer #region IHasPropertyContainer
public PropertyContainer PropertyContainer public PropertyContainer PropertyContainer {
{
get { return _propertyContainer; } get { return _propertyContainer; }
} }
@ -191,8 +172,7 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
#region IToolsHost #region IToolsHost
object IToolsHost.ToolsContent object IToolsHost.ToolsContent {
{
get { return null; } get { return null; }
} }
@ -202,18 +182,14 @@ namespace ICSharpCode.Data.EDMDesigner.Core.UI.DisplayBinding
public bool ObjectChanged(object changedObject) public bool ObjectChanged(object changedObject)
{ {
foreach (DesignerView designerView in _edmView.DesignerViews) foreach (DesignerView designerView in _edmView.DesignerViews) {
{ foreach (ITypeDesigner uiType in designerView) {
foreach (ITypeDesigner uiType in designerView) if (uiType == changedObject || uiType.UIType.BusinessInstance == changedObject) {
{
if (uiType == changedObject || uiType.UIType.BusinessInstance == changedObject)
{
PrimaryFile.IsDirty = true; PrimaryFile.IsDirty = true;
return true; return true;
} }
} }
} }
return false; return false;
} }

23
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/MSLIO.cs

@ -25,10 +25,6 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
{ {
public class MSLIO : IO public class MSLIO : IO
{ {
#region Methods
#region Read
public static XDocument GenerateTypeMapping(XDocument mslDocument) public static XDocument GenerateTypeMapping(XDocument mslDocument)
{ {
XElement mappingElement = mslDocument.Element(XName.Get("Mapping", mslNamespace.NamespaceName)); XElement mappingElement = mslDocument.Element(XName.Get("Mapping", mslNamespace.NamespaceName));
@ -41,8 +37,10 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
if (entityContainerMappingElement == null || entityContainerMappingElement.IsEmpty) if (entityContainerMappingElement == null || entityContainerMappingElement.IsEmpty)
return null; return null;
foreach (XElement entitySetMapping in entityContainerMappingElement.Elements(mslNamespace + "EntitySetMapping")) foreach (XElement entitySetMapping in entityContainerMappingElement.Elements(mslNamespace + "EntitySetMapping")) {
{ if (entitySetMapping.HasEntityTypeMappingChildElement())
continue;
string name = entitySetMapping.Attribute("Name").Value; string name = entitySetMapping.Attribute("Name").Value;
string storeEntitySet = entitySetMapping.Attribute("StoreEntitySet").Value; string storeEntitySet = entitySetMapping.Attribute("StoreEntitySet").Value;
string typeName = entitySetMapping.Attribute("TypeName").Value; string typeName = entitySetMapping.Attribute("TypeName").Value;
@ -263,10 +261,6 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
} }
} }
#endregion
#region Write
public static XElement Write(EDM edm) public static XElement Write(EDM edm)
{ {
CSDLContainer csdlContainer = edm.CSDLContainer; CSDLContainer csdlContainer = edm.CSDLContainer;
@ -533,10 +527,6 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
new XAttribute("ColumnName", result.Value)); new XAttribute("ColumnName", result.Value));
} }
} }
#endregion
#endregion
} }
#region Extension methods #region Extension methods
@ -560,6 +550,11 @@ namespace ICSharpCode.Data.EDMDesigner.Core.IO
return element; return element;
} }
public static bool HasEntityTypeMappingChildElement(this XElement entitySetMapping)
{
return entitySetMapping.Elements().Any(e => e.Name.LocalName == "EntityTypeMapping");
}
} }
#endregion #endregion

1
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs

@ -37,6 +37,7 @@ namespace ICSharpCode.WpfDesign.Designer
return 0; return 0;
} }
} }
tmp = tmp.Parent;
} }
return 0; return 0;
} }

16
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlSchemaCompletion.cs

@ -335,11 +335,25 @@ namespace ICSharpCode.XmlEditor
{ {
XmlSchemaComplexType complexType = element.SchemaType as XmlSchemaComplexType; XmlSchemaComplexType complexType = element.SchemaType as XmlSchemaComplexType;
if (complexType == null) { if (complexType == null) {
complexType = FindNamedType(schema, element.SchemaTypeName); if (element.SchemaTypeName.IsEmpty) {
return GetComplexTypeFromSubstitutionGroup(element);
}
return FindNamedType(schema, element.SchemaTypeName);
} }
return complexType; return complexType;
} }
XmlSchemaComplexType GetComplexTypeFromSubstitutionGroup(XmlSchemaElement element)
{
if (!element.SubstitutionGroup.IsEmpty) {
XmlSchemaElement substitutedElement = FindElement(element.SubstitutionGroup);
if (substitutedElement != null) {
return GetElementAsComplexType(substitutedElement);
}
}
return null;
}
/// <summary> /// <summary>
/// Handler for schema validation errors. /// Handler for schema validation errors.
/// </summary> /// </summary>

1134
src/AddIns/DisplayBindings/XmlEditor/Test/Resources/xslt.xsd

File diff suppressed because it is too large Load Diff

38
src/AddIns/DisplayBindings/XmlEditor/Test/Schema/SubstitutionGroupTests.cs

@ -0,0 +1,38 @@
// 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 ICSharpCode.XmlEditor;
using NUnit.Framework;
namespace XmlEditor.Tests.Schema
{
[TestFixture]
public class SubstitutionGroupTests : SchemaTestFixtureBase
{
string namespaceURI = "http://www.w3.org/1999/XSL/Transform";
protected override string GetSchema()
{
return
"<xs:schema " +
" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"" +
" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"" +
" targetNamespace=\"http://www.w3.org/1999/XSL/Transform\"" +
" elementFormDefault=\"qualified\">\r\n" +
" <xs:element name=\"stylesheet\" substitutionGroup=\"xsl:transform\"/>\r\n" +
"</xs:schema>";
}
[Test]
public void GetChildElementCompletion_ParentElementIsSubstitutionGroupButNoCorrespondingElementInSchema_NullReferenceExceptionIsNotThrown()
{
var path = new XmlElementPath();
path.AddElement(new QualifiedName("stylesheet", namespaceURI));
XmlCompletionItemCollection items = SchemaCompletion.GetChildElementCompletion(path);
Assert.AreEqual(0, items.Count);
}
}
}

48
src/AddIns/DisplayBindings/XmlEditor/Test/Schema/XsltSchemaTests.cs

@ -0,0 +1,48 @@
// 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 ICSharpCode.XmlEditor;
using NUnit.Framework;
using XmlEditor.Tests.Utils;
namespace XmlEditor.Tests.Schema
{
[TestFixture]
public class XsltSchemaTests
{
string namespaceURI = "http://www.w3.org/1999/XSL/Transform";
XmlSchemaCompletion schemaCompletion;
[TestFixtureSetUp]
public void SetUp()
{
schemaCompletion = new XmlSchemaCompletion(ResourceManager.ReadXsltSchema());
}
[Test]
public void GetChildElementCompletion_StylesheetElement_SubstitutionGroupUsedForTemplateAndTemplateElementReturned()
{
var path = new XmlElementPath();
path.AddElement(new QualifiedName("stylesheet", namespaceURI));
XmlCompletionItemCollection completionItems = schemaCompletion.GetChildElementCompletion(path);
bool contains = completionItems.Contains("template");
Assert.IsTrue(contains);
}
[Test]
public void GetAttributeCompletion_TemplateElementIsChildOfStylesheetElement_SubstitutionGroupUsedForTemplateAndMatchAttributeReturned()
{
var path = new XmlElementPath();
path.AddElement(new QualifiedName("stylesheet", namespaceURI));
path.AddElement(new QualifiedName("template", namespaceURI));
XmlCompletionItemCollection completionItems = schemaCompletion.GetAttributeCompletion(path);
bool contains = completionItems.Contains("match");
Assert.IsTrue(contains);
}
}
}

8
src/AddIns/DisplayBindings/XmlEditor/Test/Utils/ResourceManager.cs

@ -35,6 +35,14 @@ namespace XmlEditor.Tests.Utils
return manager.ReadXml("XMLSchema.xsd"); return manager.ReadXml("XMLSchema.xsd");
} }
/// <summary>
/// Reads the XSL Transforms schema.
/// </summary>
public static StreamReader ReadXsltSchema()
{
return manager.ReadXml("xslt.xsd");
}
/// <summary> /// <summary>
/// Returns the xml read from the specified file which is embedded /// Returns the xml read from the specified file which is embedded
/// in this assembly as a resource. /// in this assembly as a resource.

5
src/AddIns/DisplayBindings/XmlEditor/Test/XmlEditor.Tests.csproj

@ -172,6 +172,8 @@
<Compile Include="Schema\SingleElementSchemaTestFixture.cs" /> <Compile Include="Schema\SingleElementSchemaTestFixture.cs" />
<Compile Include="Schema\ElementWithAttributeSchemaTestFixture.cs" /> <Compile Include="Schema\ElementWithAttributeSchemaTestFixture.cs" />
<Compile Include="Schema\NestedElementSchemaTestFixture.cs" /> <Compile Include="Schema\NestedElementSchemaTestFixture.cs" />
<Compile Include="Schema\SubstitutionGroupTests.cs" />
<Compile Include="Schema\XsltSchemaTests.cs" />
<Compile Include="Schema\TwoElementSchemaTestFixture.cs" /> <Compile Include="Schema\TwoElementSchemaTestFixture.cs" />
<Compile Include="Schema\ReferencedElementsTestFixture.cs" /> <Compile Include="Schema\ReferencedElementsTestFixture.cs" />
<Compile Include="Schema\NamespaceCompletionTestFixture.cs" /> <Compile Include="Schema\NamespaceCompletionTestFixture.cs" />
@ -378,5 +380,8 @@
<Folder Include="FindSchemaObject" /> <Folder Include="FindSchemaObject" />
<Folder Include="Tree" /> <Folder Include="Tree" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Resources\xslt.xsd" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

BIN
src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Console.Types.dll

Binary file not shown.

BIN
src/AddIns/Misc/PackageManagement/RequiredLibraries/NuGet.Core.dll

Binary file not shown.

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/FormatStringConverte.cs

@ -38,10 +38,7 @@ namespace ICSharpCode.Reports.Addin.Dialogs
public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)
{ {
// return new StandardValuesCollection(
// new string[] { "entry1", "entry2", "entry3" });
return new StandardValuesCollection(GlobalLists.Formats()); return new StandardValuesCollection(GlobalLists.Formats());
} }
} }

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -176,6 +176,7 @@
<Compile Include="Project\Exporter\ExportRenderer\IExportRunner.cs" /> <Compile Include="Project\Exporter\ExportRenderer\IExportRunner.cs" />
<Compile Include="Project\Exporter\GapList.cs" /> <Compile Include="Project\Exporter\GapList.cs" />
<Compile Include="Project\Expressions\EvaluationHelper.cs" /> <Compile Include="Project\Expressions\EvaluationHelper.cs" />
<Compile Include="Project\Expressions\SimpleExpressionEvaluator\Compilation\Functions\DateSubtract.cs" />
<Compile Include="Project\Expressions\SimpleExpressionEvaluator\Compilation\Functions\ReportingService\FieldReference.cs" /> <Compile Include="Project\Expressions\SimpleExpressionEvaluator\Compilation\Functions\ReportingService\FieldReference.cs" />
<Compile Include="Project\Exporter\BasePager.cs" /> <Compile Include="Project\Exporter\BasePager.cs" />
<Compile Include="Project\Exporter\Converters\BaseConverter.cs" /> <Compile Include="Project\Exporter\Converters\BaseConverter.cs" />

45
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardFormatter.cs

@ -18,30 +18,27 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
internal static class StandardFormatter internal static class StandardFormatter
{ {
public static string FormatOutput(string valueToFormat,string format, public static string FormatOutput(string valueToFormat,string format,
string dataType, string nullValue ) string dataType, string nullValue )
{ {
if (String.IsNullOrEmpty(format)) {
return valueToFormat;
}
if (String.IsNullOrEmpty(valueToFormat)) {
return nullValue;
}
TypeCode typeCode = TypeHelpers.TypeCodeFromString(dataType); TypeCode typeCode = TypeHelpers.TypeCodeFromString(dataType);
return StandardFormatter.FormatItem(valueToFormat,format, return FormatItem(valueToFormat,format,typeCode,nullValue);
typeCode,nullValue);
} }
public static string FormatItem (string valueToFormat,string format, private static string FormatItem (string valueToFormat,string format,
TypeCode typeCode,string nullValue) TypeCode typeCode,string nullValue)
{ {
string retValue = String.Empty; string retValue = String.Empty;
if (String.IsNullOrEmpty(format)) {
retValue = valueToFormat;
return retValue;
}
if (String.IsNullOrEmpty(valueToFormat)) {
return nullValue;
}
switch (typeCode) { switch (typeCode) {
case TypeCode.Int16: case TypeCode.Int16:
case TypeCode.Int32: case TypeCode.Int32:
@ -124,23 +121,29 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
return str; return str;
} }
// http://stackoverflow.com/questions/4710455/i-need-code-to-validate-any-time-in-c-sharp-in-hhmmss-format
private static string FormatDate(string toFormat, string format) private static string FormatDate(string toFormat, string format)
{ {
try { DateTime date;
DateTime date = DateTime.Parse (toFormat.Trim(), if (DateTime.TryParse(toFormat, out date))
CultureInfo.CurrentCulture.DateTimeFormat); {
string str = date.ToString(format, string str = date.ToString(format,
DateTimeFormatInfo.CurrentInfo); DateTimeFormatInfo.CurrentInfo);
return str.Trim(); return str.Trim();
} catch (System.FormatException ) {
// string s = String.Format("< {0} > {1}",toFormat,e.Message);
// System.Console.WriteLine("\t\tDateValue {0}",s);
} }
return toFormat.Trim(); TimeSpan time;
bool valid = TimeSpan.TryParseExact(toFormat,
"g",
CultureInfo.CurrentCulture,
out time);
if (valid) {
return time.ToString("g");
} }
return toFormat;
}
private static bool CheckValue (string toFormat) private static bool CheckValue (string toFormat)
{ {

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs

@ -67,6 +67,9 @@ namespace ICSharpCode.Reports.Core.Project.BaseClasses
if (String.IsNullOrEmpty(type)) { if (String.IsNullOrEmpty(type)) {
throw new ArgumentNullException("type"); throw new ArgumentNullException("type");
} }
// var x = Type.GetType(type,false,true);
// var s = Type.GetTypeCode( Type.GetType(type));
// Console.WriteLine ("typeCode for {0} - {1}",type,s);
return Type.GetTypeCode( Type.GetType(type)); return Type.GetTypeCode( Type.GetType(type));
} }
} }

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/DateAdd.cs

@ -31,7 +31,6 @@ $Log: /CoreServices/Hsi/ExpressionEvaluator/Parser/Functions/ToString.cs $
using System; using System;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using SimpleExpressionEvaluator.Compilation.Functions;
using SimpleExpressionEvaluator.Utilities; using SimpleExpressionEvaluator.Utilities;
namespace SimpleExpressionEvaluator.Compilation.Functions namespace SimpleExpressionEvaluator.Compilation.Functions

45
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Compilation/Functions/DateSubtract.cs

@ -0,0 +1,45 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.02.2013
* Time: 20:18
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using SimpleExpressionEvaluator.Utilities;
namespace SimpleExpressionEvaluator.Compilation.Functions
{
/// <summary>
/// DateSubtract (endDate,startDate)
/// </summary>
public class DateSubtract: Function<TimeSpan>
{
protected override int ExpectedArgumentCount
{
get{return 2;}
}
protected override TimeSpan EvaluateFunction(object[] args)
{
args[0] = args[0] == null ? DateTime.Today : TypeNormalizer.EnsureType(args[0], typeof (DateTime));
args[1] = args[1] == null ? DateTime.Today : TypeNormalizer.EnsureType(args[1], typeof (DateTime));
var endDate = (DateTime) args[0];
if (endDate == DateTime.MinValue) {
endDate = DateTime.Today;
}
var startDate = (DateTime) args[1];
if (startDate == DateTime.MinValue)
startDate = DateTime.Today;
return endDate.Subtract(startDate);
}
}
}

18
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Expressions/SimpleExpressionEvaluator/Utilities/TypeNormalizer.cs

@ -116,20 +116,14 @@ namespace SimpleExpressionEvaluator.Utilities
if (value.GetType() == targetType) if (value.GetType() == targetType)
return value; return value;
/* try {
TypeConverter converter = TypeDescriptor.GetConverter(targetType);
if (converter != null && converter.CanConvertFrom(value.GetType()))
{
return converter.ConvertFrom(value);
}
*/
try
{
return Convert.ChangeType(value, targetType); return Convert.ChangeType(value, targetType);
} catch (Exception e) {
Console.WriteLine("TypeNormalizer {0} - {1}",value.ToString(),e.Message);
return value.ToString();
//throw new Exception()String.Format("TypeNormalizer for <{0}> - {1}",value.ToString(),e.Message));
} }
catch
{ }
return nullValue;
} }
} }
} }

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/GlobalLists.cs

@ -64,6 +64,7 @@ namespace ICSharpCode.Reports.Core.Globals
private static readonly string[] MyDataTypeList = new string[] { private static readonly string[] MyDataTypeList = new string[] {
"System.String", "System.String",
"System.DateTime", "System.DateTime",
"System.TimeSpan",
"System.Decimal", "System.Decimal",
"System.Int"}; "System.Int"};
#endregion #endregion
@ -155,7 +156,9 @@ namespace ICSharpCode.Reports.Core.Globals
"Ddd, dd MMM yyyy HH\':\'mm\'\"ss \'GMT\'", "Ddd, dd MMM yyyy HH\':\'mm\'\"ss \'GMT\'",
"yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss",
"yyyy-MM-dd HH:mm:ss GMT", "yyyy-MM-dd HH:mm:ss GMT",
"HH:mm", "HH:mm:ss", "HH:mm",
"HH:mm:ss",
"hh:mm:ss",
"yyyy-MM-dd HH:mm:ss", "html"}; "yyyy-MM-dd HH:mm:ss", "html"};
#endregion #endregion

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

@ -81,6 +81,7 @@
<Compile Include="DataManager\TableStragy\TableDataManagerFixture.cs" /> <Compile Include="DataManager\TableStragy\TableDataManagerFixture.cs" />
<Compile Include="DataManager\TableStragy\TableStrategyFixture.cs" /> <Compile Include="DataManager\TableStragy\TableStrategyFixture.cs" />
<Compile Include="Globals\ServiceContainerFixture.cs" /> <Compile Include="Globals\ServiceContainerFixture.cs" />
<Compile Include="Printing\FormattingFixture.cs" />
<Compile Include="Printing\SectionBoundFixture.cs" /> <Compile Include="Printing\SectionBoundFixture.cs" />
<Compile Include="Printing\Shapes\BaseLineFixture.cs" /> <Compile Include="Printing\Shapes\BaseLineFixture.cs" />
<Compile Include="Printing\Shapes\EllipseShapeFixture.cs" /> <Compile Include="Printing\Shapes\EllipseShapeFixture.cs" />
@ -89,7 +90,7 @@
<Compile Include="Printing\SinglePageFixture.cs" /> <Compile Include="Printing\SinglePageFixture.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ReportingLanguage\ExpressionEvaluatorFixture.cs" /> <Compile Include="ReportingLanguage\ExpressionEvaluatorFixture.cs" />
<Compile Include="ReportingLanguage\FunctionsFixture.cs" /> <Compile Include="ReportingLanguage\DateTimeFunctionsFixture.cs" />
<Compile Include="ReportingLanguage\IntegrationTests\AggregateFunctionsFixture.cs" /> <Compile Include="ReportingLanguage\IntegrationTests\AggregateFunctionsFixture.cs" />
<Compile Include="ReportingLanguage\IntegrationTests\AggregateFunctionsFromIListFixture.cs" /> <Compile Include="ReportingLanguage\IntegrationTests\AggregateFunctionsFromIListFixture.cs" />
<Compile Include="ReportingLanguage\IntegrationTests\ConcatFieldsFixture.cs" /> <Compile Include="ReportingLanguage\IntegrationTests\ConcatFieldsFixture.cs" />

138
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Printing/FormattingFixture.cs

@ -0,0 +1,138 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 13.02.2013
* Time: 19:48
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Globalization;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using NUnit.Framework;
namespace ICSharpCode.Reports.Core.Test.Printing
{
[TestFixture]
public class FormattingFixture
{
private const string stringType = "System.String";
private const string dateTimetype = "System.DateTime";
private const string nullValue ="NullValue";
[Test]
public void String_Is_Not_Formatted()
{
string toFormat = "Hello World";
string format = "dd/MM/yy";
var result = StandardFormatter.FormatOutput(toFormat,format,stringType,nullValue);
Assert.That(result,Is.EqualTo(toFormat));
}
[Test]
public void Empty_Input_Returns_NullValue()
{
string toFormat = string.Empty;;
string format = "dd/MM/yy";
var result = StandardFormatter.FormatOutput(toFormat,format,stringType,nullValue);
Assert.That(result,Is.EqualTo(nullValue));
}
#region DateTime
[Test]
public void DateTime_dd_MM_YY ()
{
string toFormat = "2012/02/12";
string format = "dd.MM.yy";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
Assert.That(result,Is.EqualTo("12.02.12"));
}
[Test]
public void TypeDateTimeOfResultIsString()
{
string toFormat = "2012/02/12";
string format = "dd.MM.yy";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
Assert.That(result,Is.TypeOf(typeof(string)));
}
[Test]
public void ConvertResultToDateTime()
{
DateTime date;
string toFormat = "2012/02/12";
string format = "dd.MM.yy";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
bool valid = DateTime.TryParse(toFormat, out date);
Assert.That(valid,Is.True);
Assert.That(date,Is.EqualTo(new DateTime(2012,02,12)));
}
#endregion
#region TimeSpan
[Test]
public void TimeSpan_HH_mm_ss ()
{
string toFormat = "5:50:10";
string format = "HH:mm:ss";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
Assert.That(result,Is.EqualTo("05:50:10"));
}
[Test]
public void TimeSpan_H_mm_ss ()
{
string toFormat = "5:50:10";
string format = "H:mm:ss";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
Assert.That(result,Is.EqualTo("5:50:10"));
}
[Test]
public void TimeSpan_D_H_mm_ss ()
{
string toFormat = "1,5:50:10";
string format = "H:mm:ss";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
Assert.That(result,Is.EqualTo("1,5:50:10"));
}
[Test]
public void TypeOfTimeSpanResultIsString()
{
string toFormat = "5,50,10";
string format = "H:mm:ss";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
Assert.That(result,Is.TypeOf(typeof(string)));
}
[Test]
public void ConvertResultToTimeSpan()
{
TimeSpan time;
string toFormat = "5:50:10";
string format = "H:mm:ss";
var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue);
bool valid = TimeSpan.TryParseExact(result,
"c",
CultureInfo.CurrentCulture,
out time);
Assert.That(valid,Is.True);
Assert.That(time,Is.EqualTo(new TimeSpan(5,50,10)));
}
#endregion
}
}

82
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/DateTimeFunctionsFixture.cs

@ -0,0 +1,82 @@
// 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 ICSharpCode.Reports.Expressions.ReportingLanguage;
using NUnit.Framework;
using SimpleExpressionEvaluator;
namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.LanguageTests
{
[TestFixture]
public class DateTimeFunctionsFixture
{
[Test]
public void Can_Compile_Function()
{
const string expression = "today()";
IExpression expr = CreateExpression(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(DateTime.Today));
}
[Test]
public void Can_Compile_Expr_With_Generic_Return()
{
const string expression = "Today()";
IExpression expr = CreateExpression(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(DateTime.Today));
}
[Test]
public void Can_Compile_DateAdd()
{
const string expression = "dateAdd(today(),d,1)";
IExpression expr = CreateExpression(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(DateTime.Today.AddDays(1)));
}
[Test]
public void Can_Compile_DateDiff ()
{
const string expression = "dateSubtract('10.02.2013','09.02.2013')";
IExpression expr = CreateExpression(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(new TimeSpan(1,0,0,0).Duration()));
}
[Test]
public void Can_Compile_DateDiff_Start_Greater_End ()
{
const string expression = "dateSubtract('09.02.2013','10.02.2013')";
IExpression expr = CreateExpression(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(new TimeSpan(1,0,0,0)));
}
[Test]
public void Can_Compile_DateDiff_Include_Hours_Minutes()
{
// Example found at:
// http://msdn.microsoft.com/en-us/library/ae6246z1.aspx
System.DateTime date1 = new System.DateTime(1996, 6, 3, 22, 15, 0);
System.DateTime date2 = new System.DateTime(1996, 12, 6, 13, 2, 0);
// diff1 gets 185 days, 14 hours, and 47 minutes.
System.TimeSpan diff1 = date2.Subtract(date1);
const string expression = "dateSubtract('1996.12.6 13:2:0','1996.6.3 22:15:0')";
IExpression expr = CreateExpression(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(diff1));
}
private static IExpression CreateExpression (string expression)
{
var compiler = new ReportingLanguageCompiler();
return compiler.CompileExpression<object>(expression);
}
}
}

43
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/FunctionsFixture.cs

@ -1,43 +0,0 @@
// 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 ICSharpCode.Reports.Expressions.ReportingLanguage;
using NUnit.Framework;
using SimpleExpressionEvaluator;
namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.LanguageTests
{
[TestFixture]
public class FunctionsFixture
{
[Test]
public void Can_Compile_Function()
{
const string expression = "today()";
var compiler = new ReportingLanguageCompiler();
IExpression expr = compiler.CompileExpression<DateTime>(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(DateTime.Today));
}
[Test]
public void Can_Compile_Expr_With_Generic_Return()
{
const string expression = "Today()";
var compiler = new ReportingLanguageCompiler();
IExpression expr = compiler.CompileExpression<object>(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(DateTime.Today));
}
[Test]
public void Can_Compile_DateAdd()
{
const string expression = "dateAdd(today(),d,1)";
var compiler = new ReportingLanguageCompiler();
IExpression expr = compiler.CompileExpression<object>(expression);
Assert.That(expr.Evaluate(null), Is.EqualTo(DateTime.Today.AddDays(1)));
}
}
}

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/AggregateFunctionsFixture.cs

@ -15,7 +15,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
{ {
[TestFixture] [TestFixture]
[SetCulture("en-US")] // [SetCulture("en-US")]
public class AggregateFunctionsFromTableFixture public class AggregateFunctionsFromTableFixture
{ {
@ -107,7 +107,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
const string expression = "=max(amount)"; const string expression = "=max(amount)";
//var s = this.evaluator.Evaluate(expression); //var s = this.evaluator.Evaluate(expression);
Assert.That(this.evaluator.Evaluate(expression), Assert.That(this.evaluator.Evaluate(expression),
Is.EqualTo("400.5")); Is.EqualTo("400,5"));
} }
@ -134,8 +134,6 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
[TestFixtureSetUp] [TestFixtureSetUp]
public void Init() public void Init()
{ {
this.singlePage = TestHelper.CreateSinglePage(); this.singlePage = TestHelper.CreateSinglePage();
this.evaluator = new ExpressionEvaluatorFacade(this.singlePage); this.evaluator = new ExpressionEvaluatorFacade(this.singlePage);
@ -151,6 +149,5 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
this.dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.testTable, new ReportSettings()); this.dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(this.testTable, new ReportSettings());
this.singlePage.IDataNavigator = this.dataManager.GetNavigator; this.singlePage.IDataNavigator = this.dataManager.GetNavigator;
} }
} }
} }

4
src/AddIns/VersionControl/GitAddIn/GitAddIn.addin

@ -36,6 +36,10 @@
label = "Git ${res:AddIns.Subversion.Diff}..." label = "Git ${res:AddIns.Subversion.Diff}..."
icon = "Svn.Diff" icon = "Svn.Diff"
class = "ICSharpCode.GitAddIn.GitDiffCommand"/> class = "ICSharpCode.GitAddIn.GitDiffCommand"/>
<MenuItem id = "GitLog"
label = "Git ${res:AddIns.Subversion.ShowLog}..."
class = "ICSharpCode.GitAddIn.GitLogCommand"/>
</Condition> </Condition>
</Path> </Path>

8
src/AddIns/VersionControl/GitAddIn/Src/Commands.cs

@ -93,4 +93,12 @@ namespace ICSharpCode.GitAddIn
GitGuiWrapper.Diff(filename, callback); GitGuiWrapper.Diff(filename, callback);
} }
} }
public class GitLogCommand : GitCommand
{
protected override void Run(string filename, Action callback)
{
GitGuiWrapper.Log(filename, callback);
}
}
} }

5
src/AddIns/VersionControl/GitAddIn/Src/GitGuiWrapper.cs

@ -99,5 +99,10 @@ namespace ICSharpCode.GitAddIn
{ {
Proc("diff", fileName, callback); Proc("diff", fileName, callback);
} }
public static void Log(string fileName, Action callback)
{
Proc("log", fileName, callback);
}
} }
} }

1
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchPanel.cs

@ -183,7 +183,6 @@ namespace ICSharpCode.AvalonEdit.Search
DataContext = this; DataContext = this;
renderer = new SearchResultBackgroundRenderer(); renderer = new SearchResultBackgroundRenderer();
textArea.TextView.BackgroundRenderers.Add(renderer);
currentDocument = textArea.Document; currentDocument = textArea.Document;
currentDocument.TextChanged += textArea_Document_TextChanged; currentDocument.TextChanged += textArea_Document_TextChanged;
textArea.DocumentChanged += textArea_DocumentChanged; textArea.DocumentChanged += textArea_DocumentChanged;

6
src/Libraries/ICSharpCode.Build.Tasks/Project/Resources.cs

@ -36,7 +36,11 @@ namespace ICSharpCode.Build.Tasks
} }
if (resourceService != null) { if (resourceService != null) {
const BindingFlags flags = BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static; const BindingFlags flags = BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Static;
return (string)resourceService.InvokeMember("Parse", flags, null, null, new object[] { key }); string translation = (string)resourceService.InvokeMember("Parse", flags, null, null, new object[] { key });
if (translation != null && translation.StartsWith("${res")) {
return null;
}
return translation;
} else { } else {
return null; return null;
} }

15
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ExternalToolPanel.xaml

@ -73,7 +73,7 @@
<TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" <TextBox Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Text="{Binding SelectedTool.MenuCommand}"> Text="{Binding SelectedTool.MenuCommand,UpdateSourceTrigger=PropertyChanged}">
</TextBox> </TextBox>
<Label Grid.Row="4" IsEnabled="{Binding EditEnable}" <Label Grid.Row="4" IsEnabled="{Binding EditEnable}"
@ -82,10 +82,10 @@
<TextBox x:Name="commandTextBox" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2" <TextBox x:Name="commandTextBox" Grid.Row="4" Grid.Column="1" Grid.ColumnSpan="2"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Text="{Binding SelectedTool.Command}"> Text="{Binding SelectedTool.Command,UpdateSourceTrigger=PropertyChanged}">
</TextBox> </TextBox>
<Button x:Name="browseButton" Grid.Row="4" Grid.Column="4" Margin="5,0,5,0" <Button Grid.Row="4" Grid.Column="4" Margin="5,0,5,0"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Click="BrowseButton_Click" Click="BrowseButton_Click"
Content="..."> Content="...">
@ -97,7 +97,7 @@
<TextBox x:Name="argumentTextBox" Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2" <TextBox x:Name="argumentTextBox" Grid.Row="5" Grid.Column="1" Grid.ColumnSpan="2"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Text="{Binding SelectedTool.Arguments}"> Text="{Binding SelectedTool.Arguments,UpdateSourceTrigger=PropertyChanged}">
<TextBox.ContextMenu > <TextBox.ContextMenu >
<ContextMenu ItemsSource="{Binding ArgumentContextMenu}" <ContextMenu ItemsSource="{Binding ArgumentContextMenu}"
MenuItem.Click="ArgumentTextBoxMenuItem_Click"> MenuItem.Click="ArgumentTextBoxMenuItem_Click">
@ -106,12 +106,11 @@
<MenuItem Header="{Binding Key}"></MenuItem> <MenuItem Header="{Binding Key}"></MenuItem>
</DataTemplate> </DataTemplate>
</ContextMenu.ItemTemplate> </ContextMenu.ItemTemplate>
</ContextMenu> </ContextMenu>
</TextBox.ContextMenu> </TextBox.ContextMenu>
</TextBox> </TextBox>
<Button x:Name="argumentQuickInsertButton" Grid.Row="5" Grid.Column="4" Margin="5,0,5,0" <Button Grid.Row="5" Grid.Column="4" Margin="5,0,5,0"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Content="&gt;" Content="&gt;"
Click="ArgumentQuickInsertButton_Click"> Click="ArgumentQuickInsertButton_Click">
@ -124,7 +123,7 @@
<TextBox x:Name="workingDirTextBox" Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="2" <TextBox x:Name="workingDirTextBox" Grid.Row="6" Grid.Column="1" Grid.ColumnSpan="2"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Text="{Binding SelectedTool.InitialDirectory}"> Text="{Binding SelectedTool.InitialDirectory,UpdateSourceTrigger=PropertyChanged}">
<TextBox.ContextMenu> <TextBox.ContextMenu>
<ContextMenu ItemsSource="{Binding WorkingDirContextMenu}" <ContextMenu ItemsSource="{Binding WorkingDirContextMenu}"
MenuItem.Click="WorkingDirTextBoxMenuItem_Click"> MenuItem.Click="WorkingDirTextBoxMenuItem_Click">
@ -139,7 +138,7 @@
</TextBox.ContextMenu> </TextBox.ContextMenu>
</TextBox> </TextBox>
<Button x:Name="workingDirQuickInsertButton" Grid.Row="6" Grid.Column="4" Margin="5,0,5,0" <Button Grid.Row="6" Grid.Column="4" Margin="5,0,5,0"
IsEnabled="{Binding EditEnable}" IsEnabled="{Binding EditEnable}"
Click="WorkingDirQuickInsertButton_Click" Click="WorkingDirQuickInsertButton_Click"
Content="&gt;"> Content="&gt;">

1
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/ApplicationSettings.xaml.cs

@ -136,6 +136,7 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
} else { } else {
applicationManifestComboBox.Text = this.ApplicationManifest.Value; applicationManifestComboBox.Text = this.ApplicationManifest.Value;
} }
this.projectInformation.OutputTypeName = AssemblyName.Value + CompilableProject.GetExtension(OutputType.Value);
IsDirty = false; IsDirty = false;
} }

3
src/Main/Base/Project/Src/Project/AbstractProject.cs

@ -139,7 +139,8 @@ namespace ICSharpCode.SharpDevelop.Project
return ((FileAttributes.ReadOnly & attributes) == FileAttributes.ReadOnly); return ((FileAttributes.ReadOnly & attributes) == FileAttributes.ReadOnly);
} catch (FileNotFoundException) { } catch (FileNotFoundException) {
return false; return false;
} catch (DirectoryNotFoundException) { } catch (IOException) {
// directory not found, network path not available, etc.
return true; return true;
} }
} }

2
src/Main/GlobalAssemblyInfo.template

@ -30,7 +30,7 @@ internal static class RevisionClass
public const string Minor = "0"; public const string Minor = "0";
public const string Build = "0"; public const string Build = "0";
public const string Revision = "$INSERTREVISION$"; public const string Revision = "$INSERTREVISION$";
public const string VersionName = "alpha"; public const string VersionName = "alpha"; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1")
public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$"; public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$";
} }

1
src/Main/SharpDevelop/Workbench/FileService.cs

@ -231,6 +231,7 @@ namespace ICSharpCode.SharpDevelop.Workbench
if (openedFileDict.ContainsKey(newName)) { if (openedFileDict.ContainsKey(newName)) {
OpenedFile oldFile = openedFileDict[newName]; OpenedFile oldFile = openedFileDict[newName];
if (oldFile.CurrentView != null) { if (oldFile.CurrentView != null) {
if (oldFile.CurrentView.WorkbenchWindow != null)
oldFile.CurrentView.WorkbenchWindow.CloseWindow(true); oldFile.CurrentView.WorkbenchWindow.CloseWindow(true);
} else { } else {
throw new ArgumentException("there already is a file with the newName"); throw new ArgumentException("there already is a file with the newName");

Loading…
Cancel
Save