diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs index 10b3d72c0b..f58c4224cc 100644 --- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs +++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs @@ -34,6 +34,7 @@ namespace ResourceEditor.Commands selectedItem.Comment); if (newValue != null && newValue != selectedItem.Comment) { selectedItem.Comment = newValue; + selectedItem.RichComment = newValue; } } } diff --git a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs index 87464bea34..d288f41f59 100644 --- a/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs +++ b/src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs @@ -65,6 +65,7 @@ namespace ResourceEditor.ViewModels this.ResourceValue = resourceValue; this.resourceType = GetResourceTypeFromValue(resourceValue); this.Comment = comment; + this.RichComment = comment; } #region INotifyPropertyChanged implementation diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs index 69f415e7dc..43a268c164 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs @@ -18,13 +18,15 @@ namespace ICSharpCode.Reporting { - public SectionEventArgs(IReportContainer section){ + public SectionEventArgs(IReportContainer section,int pageCount){ if (section == null) throw new ArgumentNullException("section"); Section = section; + PageCount = pageCount; } public IReportContainer Section {get;private set;} + public int PageCount {get; private set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs index 03d7e53fab..17e5607dfb 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs @@ -30,8 +30,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors { - public override void Visit(ExportContainer exportContainer) - { + public override void Visit(ExportContainer exportContainer){ foreach (var element in exportContainer.ExportedItems) { var container = element as ExportContainer; if (container != null) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs index be4ded6e59..11114b1d41 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs @@ -31,6 +31,9 @@ namespace ICSharpCode.Reporting.Globals if (String.IsNullOrWhiteSpace(textColumn.Text)) { return; } + if (textColumn.Name == "xy") { + Console.WriteLine("stop"); + } if (!String.IsNullOrEmpty(textColumn.FormatString)) { if (textColumn.DataType.ToLower().Contains("timespan")) { textColumn.Text = HandleTimeSpan(textColumn.Text,textColumn.FormatString); @@ -38,6 +41,9 @@ namespace ICSharpCode.Reporting.Globals } else { var typeCode = TypeHelper.TypeCodeFromString(textColumn.DataType); textColumn.Text = FormatItem(textColumn.Text,textColumn.FormatString,typeCode); + if (textColumn.Name == "xy") { + Console.WriteLine("stop {0}",textColumn.Text); + } } } } @@ -156,8 +162,11 @@ namespace ICSharpCode.Reporting.Globals DateTime date; if (DateTime.TryParse(toFormat, out date)) { + string str = date.ToString(format, DateTimeFormatInfo.CurrentInfo); + + Console.WriteLine("---------{0} - {1} - {2}",toFormat,format, str); return str.Trim(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 784c15996a..d61931d4a3 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -75,6 +75,7 @@ namespace ICSharpCode.Reporting.PageBuilder void BuildPageHeader(){ var pageHeader = CreateSection(ReportModel.PageHeader,CurrentLocation); DetailStart = new Point(ReportModel.ReportSettings.LeftMargin,pageHeader.Location.Y + pageHeader.DesiredSize.Height +1); +// var xx = pageHeader.ExportedItems.Where(x => x.Name.Contains("xy")).ToList(); AddSectionToPage(pageHeader); } @@ -121,7 +122,7 @@ namespace ICSharpCode.Reporting.PageBuilder #endregion protected IExportContainer CreateSection(IReportContainer container,Point location){ - var sea = new SectionEventArgs(container); + var sea = new SectionEventArgs(container,Pages.Count); Raise (SectionRendering,this,sea); var containerConverter = new ContainerConverter(location); var convertedContainer = containerConverter.ConvertToExportContainer(container); @@ -129,6 +130,7 @@ namespace ICSharpCode.Reporting.PageBuilder var list = containerConverter.CreateConvertedList(container.Items); containerConverter.SetParent(convertedContainer,list); + convertedContainer.ExportedItems.AddRange(list); //Run ExpressionEvaluator for every section, otherwise measure don't work ExpressionRunner.Visitor.Visit(convertedContainer as ExportContainer); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs index 66eacf6fa5..dfce0b6bc2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs @@ -73,6 +73,26 @@ namespace ICSharpCode.Reporting.PageBuilder } } + /* + void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point sectionPosition, IGrouping grouping, ExportContainer sectionContainer) + { + foreach (var child in grouping) { + var dataItems = ExtractDataItems(CurrentSection.Items); + List convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter); + AdjustLocationInSection(sectionPosition, convertedItems); + sectionContainer.ExportedItems.AddRange(convertedItems); + MeasureAndArrangeContainer(sectionContainer); + if (PageFull(sectionContainer)) { + PerformPageBreak(); + InsertContainer(sectionContainer); + pagePosition = DetailStart; + sectionContainer.Location = DetailStart; + } + sectionPosition = new Point(CurrentSection.Location.X, sectionPosition.Y + convertedItems[0].DisplayRectangle.Size.Height + 5); + sectionContainer.Size = new Size(sectionContainer.Size.Width, sectionContainer.Size.Height + convertedItems[0].Size.Height); + } + } +*/ void BuildGroupedDetails (IContainerConverter converter,Point startPosition) { var pagePosition = startPosition; @@ -80,15 +100,17 @@ namespace ICSharpCode.Reporting.PageBuilder foreach (IGrouping grouping in DataSource.GroupedList) { - var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault(); +// var groupHeader = (BaseRowItem)CurrentSection.Items.Where(p => p.GetType() == typeof(GroupHeader)).FirstOrDefault(); + var groupHeader = (BaseRowItem)CurrentSection + .Items. + FirstOrDefault(p => p.GetType() == typeof(GroupHeader)); var sectionContainer = CreateContainerForSection(CurrentPage, pagePosition); - DataSource.Fill(groupHeader.Items,grouping.FirstOrDefault()); var headerRow = converter.ConvertToExportContainer(groupHeader); - - headerRow.Location = new Point(headerRow.Location.X,groupHeader.Location.Y); + headerRow.Location = groupHeader.Location; + var headerItems = converter.CreateConvertedList(groupHeader.Items); converter.SetParent(sectionContainer, headerItems); @@ -107,9 +129,14 @@ namespace ICSharpCode.Reporting.PageBuilder //Childs foreach (var child in grouping) { -// var dataItems = CurrentSection.Items.Where(p => p.GetType() == typeof(BaseDataItem)).ToList(); var dataItems = ExtractDataItems(CurrentSection.Items); - List convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter); + + var convertedItems = FillAndConvert(sectionContainer, child, dataItems, converter) + .OrderBy(p => p.Location.X).ToList(); + + var xx = convertedItems.FirstOrDefault().Location; + + Console.WriteLine(xx); AdjustLocationInSection(sectionPosition, convertedItems); @@ -223,9 +250,14 @@ namespace ICSharpCode.Reporting.PageBuilder static void AdjustLocationInSection(Point sectionPosition,List convertedItems){ - foreach (var element in convertedItems) { - element.Location = new Point(element.Location.X, sectionPosition.Y); - } + + convertedItems.ForEach(element => {element.Location = new Point(element.Location.X,sectionPosition.Y); }); + + +// foreach (var element in convertedItems) { +//// element.Location = new Point(element.Location.X + sectionPosition.X , sectionPosition.Y); +// element.Location = new Point(element.Location.X , sectionPosition.Y); +// } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs index 53b765f57e..690c1dd360 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs @@ -75,15 +75,16 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor formattedText.MaxTextWidth = exportText.DesiredSize.Width ; formattedText.TextAlignment = exportText.TextAlignment; - +// var s = formattedText.Height; if (!exportText.CanGrow) { formattedText.MaxTextHeight = exportText.Size.Height; - } else { - formattedText.MaxTextHeight = ExtensionMethodes.ToPoints(exportText.DesiredSize.Height ); - } + } +// +// else { +//// formattedText.MaxTextHeight = ExtensionMethodes.ToPoints(exportText.DesiredSize.Height ); +// } ApplyPrintStyles(formattedText,exportText); - return formattedText; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs index 9570791c50..aa51278c9d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs @@ -118,15 +118,17 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor // http://stackoverflow.com/questions/25308612/vertical-alignment-with-drawingcontext-drawtext public override void Visit(ExportText exportColumn){ - + if (exportColumn.Text.Equals("BaseTextItem2147483637")) { + Console.WriteLine("stop"); + } var formattedText = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn); - var location = new Point(exportColumn.Location.X,exportColumn.Location.Y); - var visual = new DrawingVisual(); + using (var drawingContext = visual.RenderOpen()){ - var bachgroundRect = new Rect(location,new Size(exportColumn.DesiredSize.Width,formattedText.MaxTextHeight)); +// var bachgroundRect = new Rect(location,new Size(exportColumn.DesiredSize.Width,formattedText.Height)); if (ShouldSetBackcolor(exportColumn)) { + var bachgroundRect = new Rect(location,new Size(exportColumn.DesiredSize.Width,formattedText.Height)); drawingContext.DrawRectangle(FixedDocumentCreator.ConvertBrush(exportColumn.BackColor), null,bachgroundRect); } diff --git a/src/Main/Base/Project/Designer/TypeResolutionService.cs b/src/Main/Base/Project/Designer/TypeResolutionService.cs index dffe5ab729..f69bff6d15 100644 --- a/src/Main/Base/Project/Designer/TypeResolutionService.cs +++ b/src/Main/Base/Project/Designer/TypeResolutionService.cs @@ -411,9 +411,11 @@ namespace ICSharpCode.SharpDevelop.Designer ITypeDefinition definition = ReflectionHelper.ParseReflectionName(name) .Resolve(compilation).GetDefinition(); if (definition != null) { - Assembly assembly = LoadAssembly(definition.ParentAssembly); - if (assembly != null) { - type = assembly.GetType(name, false, ignoreCase); + using (var resolver = new ProjectAssemblyResolver(compilation, this)) { + Assembly assembly = LoadAssembly(definition.ParentAssembly); + if (assembly != null) { + type = assembly.GetType(name, false, ignoreCase); + } } } } @@ -582,5 +584,37 @@ namespace ICSharpCode.SharpDevelop.Designer } return lastAssembly; } + + class ProjectAssemblyResolver : IDisposable + { + readonly ICompilation compilation; + readonly TypeResolutionService typeResolutionService; + + public ProjectAssemblyResolver(ICompilation compilation, TypeResolutionService typeResolutionService) + { + this.compilation = compilation; + this.typeResolutionService = typeResolutionService; + AppDomain.CurrentDomain.AssemblyResolve += AssemblyResolve; + } + + public void Dispose() + { + AppDomain.CurrentDomain.AssemblyResolve -= AssemblyResolve; + } + + Assembly AssemblyResolve(object sender, ResolveEventArgs args) + { + try { + IAssembly assembly = compilation.Assemblies + .FirstOrDefault(asm => asm.FullAssemblyName == args.Name); + if (assembly != null) { + return typeResolutionService.LoadAssembly(assembly); + } + } catch (Exception ex) { + LoggingService.Error(ex); + } + return null; + } + } } } diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs index c8052d4976..6a92448851 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs @@ -365,6 +365,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands FileTemplateResult result = SD.UIService.ShowNewFileDialog(node.Project, node.Directory); if (result != null) { node.RecreateSubNodes(); + ProjectBrowserPad.Instance.ProjectBrowserControl.SelectFile(result.Options.FileName); return result.NewFiles.Select(node.Project.FindFile).Where(f => f != null).ToArray(); } else { return null;