From 49c0190daee8744f82903dc5191483b9ecf38749 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Tue, 17 Aug 2010 18:19:46 +0000 Subject: [PATCH] Implement ComponentChangeService.ComponentRename in all Designers: http://social.msdn.microsoft.com/forums/en-US/winformsdesigner/threads/ git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6420 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Designer/DataItemDesigner.cs | 19 +++++++- .../Project/Designer/GroupeHeaderDesigner.cs | 27 +++++++++++ .../Project/Designer/GroupedRowDesigner.cs | 46 +++++++++++++++++++ .../Project/Designer/ImageDesigner.cs | 10 ++++ .../Project/Designer/LineDesigner.cs | 10 ++++ .../RootDesigner/ReportRootDesigner.cs | 12 +---- .../Project/Designer/RowItemDesigner.cs | 19 ++++++++ .../Project/Designer/ShapeDesigner.cs | 10 ++++ .../Project/Designer/TableDesigner.cs | 18 ++++++++ .../Project/Designer/TextItemDesigner.cs | 27 ++++++++++- 10 files changed, 185 insertions(+), 13 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/DataItemDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/DataItemDesigner.cs index e5edf76b4b..a25225a2a0 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/DataItemDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/DataItemDesigner.cs @@ -22,7 +22,7 @@ namespace ICSharpCode.Reports.Addin.Designer public class DataItemDesigner:ControlDesigner { private ISelectionService selectionService; - + private IComponentChangeService componentChangeService; public override void Initialize(IComponent component) { @@ -49,6 +49,15 @@ namespace ICSharpCode.Reports.Addin.Designer } + + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + + private void GetService () { selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -56,6 +65,11 @@ namespace ICSharpCode.Reports.Addin.Designer { selectionService.SelectionChanged += OnSelectionChanged; } + + componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); + if (componentChangeService != null) { + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); + } } @@ -66,6 +80,9 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; } + if (componentChangeService != null) { + componentChangeService.ComponentRename -= OnComponentRename; + } base.Dispose(disposing); } #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupeHeaderDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupeHeaderDesigner.cs index 901c84d6b1..176f18d5f3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupeHeaderDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupeHeaderDesigner.cs @@ -20,6 +20,7 @@ namespace ICSharpCode.Reports.Addin.Designer { private ISelectionService selectionService; + private IComponentChangeService componentChangeService; public GroupHeaderDesigner() { @@ -38,6 +39,14 @@ namespace ICSharpCode.Reports.Addin.Designer } + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + + private void GetService () { selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -45,6 +54,24 @@ namespace ICSharpCode.Reports.Addin.Designer { selectionService.SelectionChanged += OnSelectionChanged; } + + componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); + if (componentChangeService != null) { + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); + } + } + + + protected override void Dispose(bool disposing) + { + if (this.selectionService != null) { + selectionService.SelectionChanged -= OnSelectionChanged; + } + + if (componentChangeService != null) { + componentChangeService.ComponentRename -= OnComponentRename; + } + base.Dispose(disposing); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupedRowDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupedRowDesigner.cs index 1ab82c041b..f6bd1f4e64 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupedRowDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/GroupedRowDesigner.cs @@ -18,6 +18,7 @@ namespace ICSharpCode.Reports.Addin.Designer public class GroupedRowDesigner:RowItemDesigner { private ISelectionService selectionService; + private IComponentChangeService componentChangeService; public GroupedRowDesigner() { @@ -27,6 +28,51 @@ namespace ICSharpCode.Reports.Addin.Designer public override void Initialize(IComponent component) { base.Initialize(component); + GetService(); + } + + private void GetService () + { + selectionService = GetService(typeof(ISelectionService)) as ISelectionService; + if (selectionService != null) + { + selectionService.SelectionChanged += OnSelectionChanged; + + } + + componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); + if (componentChangeService != null) { + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); + } + + } + + + private void OnSelectionChanged(object sender, EventArgs e) + { + Control.Invalidate( ); + } + + + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Text = e.NewName; + Control.Invalidate(); + } + } + + + protected override void Dispose(bool disposing) + { + if (this.selectionService != null) { + selectionService.SelectionChanged -= OnSelectionChanged; + } + + if (componentChangeService != null) { + componentChangeService.ComponentRename -= OnComponentRename; + } + base.Dispose(disposing); } } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs index 4d476d14f7..a58ee7a17f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs @@ -39,6 +39,7 @@ namespace ICSharpCode.Reports.Addin.Designer if (componentChangeService != null) { componentChangeService.ComponentChanging += OnComponentChanging; componentChangeService.ComponentChanged += OnComponentChanged; + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); } selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -63,6 +64,14 @@ namespace ICSharpCode.Reports.Addin.Designer } + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + + private void OnSelectionChanged(object sender, EventArgs e) { Control.Invalidate( ); @@ -74,6 +83,7 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.componentChangeService != null) { componentChangeService.ComponentChanging -= OnComponentChanging; componentChangeService.ComponentChanged -= OnComponentChanged; + componentChangeService.ComponentRename -= OnComponentRename; } if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/LineDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/LineDesigner.cs index 6f33c9f33b..f4b76297b8 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/LineDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/LineDesigner.cs @@ -42,6 +42,7 @@ namespace ICSharpCode.Reports.Addin.Designer if (componentChangeService != null) { componentChangeService.ComponentChanging += OnComponentChanging; componentChangeService.ComponentChanged += OnComponentChanged; + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); } selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -68,6 +69,14 @@ namespace ICSharpCode.Reports.Addin.Designer } + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + + private void OnSelectionChanged(object sender, EventArgs e) { Control.Invalidate( ); @@ -222,6 +231,7 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.componentChangeService != null) { componentChangeService.ComponentChanging -= OnComponentChanging; componentChangeService.ComponentChanged -= OnComponentChanged; + componentChangeService.ComponentRename -= OnComponentRename; } if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RootDesigner/ReportRootDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RootDesigner/ReportRootDesigner.cs index 6c6ea6b810..c20370adeb 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RootDesigner/ReportRootDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RootDesigner/ReportRootDesigner.cs @@ -18,9 +18,9 @@ using System.Drawing.Printing; using System.Windows.Forms; using System.Windows.Forms.Design; -using ICSharpCode.Reports.Core; -using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.Core; +using ICSharpCode.Reports.Core; + namespace ICSharpCode.Reports.Addin.Designer { /// @@ -264,12 +264,6 @@ namespace ICSharpCode.Reports.Addin.Designer LoggingService.InfoFormatted("RootDesigner:OnComponentChanged"); String str = String.Format("RootDesigner:OnComponentChanged <{0}> from <{1}> to <{2}>",ce.Component.ToString(),ce.OldValue,ce.NewValue); LoggingService.InfoFormatted(str); - - AbstractItem item = ce.Component as AbstractItem; - var member = ce.Member; - if (member.Name == "Name") { - item.Name = ce.NewValue.ToString(); - } BaseSection section = ce.Component as BaseSection; if (section != null) { @@ -281,11 +275,9 @@ namespace ICSharpCode.Reports.Addin.Designer } RecalculateSections(); } - } - private void OnComponentChanging(object sender, ComponentChangingEventArgs ce) { System.Console.WriteLine("RootDesigner:OnComponentChanging"); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RowItemDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RowItemDesigner.cs index f8c088e726..4a41f90dba 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RowItemDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/RowItemDesigner.cs @@ -24,6 +24,7 @@ namespace ICSharpCode.Reports.Addin.Designer { private ISelectionService selectionService; + private IComponentChangeService componentChangeService; public RowItemDesigner() { @@ -53,6 +54,13 @@ namespace ICSharpCode.Reports.Addin.Designer } + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + private void GetService () { selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -60,6 +68,12 @@ namespace ICSharpCode.Reports.Addin.Designer { selectionService.SelectionChanged += OnSelectionChanged; } + + componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); + if (componentChangeService != null) + { + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); + } } @@ -69,6 +83,11 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; } + + + if (componentChangeService != null) { + componentChangeService.ComponentRename -= OnComponentRename; + } base.Dispose(disposing); } #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ShapeDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ShapeDesigner.cs index ed56f69467..1024a6c4c7 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ShapeDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ShapeDesigner.cs @@ -39,6 +39,7 @@ namespace ICSharpCode.Reports.Addin.Designer if (componentChangeService != null) { componentChangeService.ComponentChanging += OnComponentChanging; componentChangeService.ComponentChanged += OnComponentChanged; + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); } selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -63,6 +64,14 @@ namespace ICSharpCode.Reports.Addin.Designer } + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + + private void OnSelectionChanged(object sender, EventArgs e) { Control.Invalidate( ); @@ -74,6 +83,7 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.componentChangeService != null) { componentChangeService.ComponentChanging -= OnComponentChanging; componentChangeService.ComponentChanged -= OnComponentChanged; + componentChangeService.ComponentRename -= OnComponentRename; } if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TableDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TableDesigner.cs index 91b8fde9aa..f0b4d4f501 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TableDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TableDesigner.cs @@ -22,6 +22,7 @@ namespace ICSharpCode.Reports.Addin.Designer public class TableDesigner:ParentControlDesigner { private ISelectionService selectionService; + private IComponentChangeService componentChangeService; public TableDesigner():base() { @@ -70,6 +71,14 @@ namespace ICSharpCode.Reports.Addin.Designer } + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Invalidate(); + } + } + + private void GetService () { selectionService = GetService(typeof(ISelectionService)) as ISelectionService; @@ -77,6 +86,11 @@ namespace ICSharpCode.Reports.Addin.Designer { selectionService.SelectionChanged += OnSelectionChanged; } + + componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); + if (componentChangeService != null) { + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); + } } @@ -99,6 +113,10 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; } + + if (componentChangeService != null) { + componentChangeService.ComponentRename -= OnComponentRename; + } base.Dispose(disposing); } #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TextItemDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TextItemDesigner.cs index a5fbd0c9c7..dfae32ba1f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TextItemDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/TextItemDesigner.cs @@ -23,8 +23,9 @@ namespace ICSharpCode.Reports.Addin.Designer public class TextItemDesigner:ControlDesigner { - ISelectionService selectionService; - BaseTextItem ctrl; + private ISelectionService selectionService; + private IComponentChangeService componentChangeService; + private BaseTextItem ctrl; public override void Initialize(IComponent component) { @@ -40,7 +41,14 @@ namespace ICSharpCode.Reports.Addin.Designer if (selectionService != null) { selectionService.SelectionChanged += OnSelectionChanged; + + } + + componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); + if (componentChangeService != null) { + componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); } + } @@ -49,6 +57,17 @@ namespace ICSharpCode.Reports.Addin.Designer Control.Invalidate( ); } + + private void OnComponentRename(object sender,ComponentRenameEventArgs e) { + if (e.Component == this.Component) { + Control.Name = e.NewName; + Control.Text = e.NewName; + Control.Invalidate(); + } + } + + + #region SmartTag public override DesignerActionListCollection ActionLists { @@ -101,6 +120,10 @@ namespace ICSharpCode.Reports.Addin.Designer if (this.selectionService != null) { selectionService.SelectionChanged -= OnSelectionChanged; } + + if (componentChangeService != null) { + componentChangeService.ComponentRename -= OnComponentRename; + } base.Dispose(disposing); } }