Browse Source

Merge remote-tracking branch 'refs/remotes/icsharpcode/master'

pull/741/head
devgopher 10 years ago
parent
commit
38ded11128
  1. 1
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs
  2. 1
      src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs
  3. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs
  4. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs
  5. 9
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs
  6. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  7. 50
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  8. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs
  9. 10
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs
  10. 40
      src/Main/Base/Project/Designer/TypeResolutionService.cs
  11. 1
      src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs

1
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/Commands/EditCommentCommand.cs

@ -34,6 +34,7 @@ namespace ResourceEditor.Commands @@ -34,6 +34,7 @@ namespace ResourceEditor.Commands
selectedItem.Comment);
if (newValue != null && newValue != selectedItem.Comment) {
selectedItem.Comment = newValue;
selectedItem.RichComment = newValue;
}
}
}

1
src/AddIns/DisplayBindings/ResourceEditor/Project/Src/ViewModels/ResourceItem.cs

@ -65,6 +65,7 @@ namespace ResourceEditor.ViewModels @@ -65,6 +65,7 @@ namespace ResourceEditor.ViewModels
this.ResourceValue = resourceValue;
this.resourceType = GetResourceTypeFromValue(resourceValue);
this.Comment = comment;
this.RichComment = comment;
}
#region INotifyPropertyChanged implementation

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Events/SectionEvent.cs

@ -18,13 +18,15 @@ namespace ICSharpCode.Reporting @@ -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;}
}
}

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/FormatVisitor.cs

@ -30,8 +30,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -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) {

9
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/StandardFormatter.cs

@ -31,6 +31,9 @@ namespace ICSharpCode.Reporting.Globals @@ -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 @@ -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 @@ -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();
}

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -75,6 +75,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -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 @@ -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<SectionEventArgs> (SectionRendering,this,sea);
var containerConverter = new ContainerConverter(location);
var convertedContainer = containerConverter.ConvertToExportContainer(container);
@ -129,6 +130,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -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);

50
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

@ -73,6 +73,26 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -73,6 +73,26 @@ namespace ICSharpCode.Reporting.PageBuilder
}
}
/*
void NewMethod(IContainerConverter converter, ref Point pagePosition, ref Point sectionPosition, IGrouping<object, object> grouping, ExportContainer sectionContainer)
{
foreach (var child in grouping) {
var dataItems = ExtractDataItems(CurrentSection.Items);
List<IExportColumn> 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 @@ -80,15 +100,17 @@ namespace ICSharpCode.Reporting.PageBuilder
foreach (IGrouping<object, object> 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 @@ -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<IExportColumn> 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 @@ -223,9 +250,14 @@ namespace ICSharpCode.Reporting.PageBuilder
static void AdjustLocationInSection(Point sectionPosition,List<IExportColumn> 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);
// }
}

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs

@ -75,15 +75,16 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -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;
}

10
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

@ -118,15 +118,17 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -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);
}

40
src/Main/Base/Project/Designer/TypeResolutionService.cs

@ -411,9 +411,11 @@ namespace ICSharpCode.SharpDevelop.Designer @@ -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 @@ -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;
}
}
}
}

1
src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/Commands/FolderNodeCommands.cs

@ -365,6 +365,7 @@ namespace ICSharpCode.SharpDevelop.Project.Commands @@ -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;

Loading…
Cancel
Save