Browse Source

Fix items selected in Advanced service reference dialog changing on opening and closing dialog.

pull/6/merge
Matt Ward 14 years ago
parent
commit
30d21da23e
  1. 14
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/AdvancedServiceDialog.xaml
  2. 19
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/AdvancedServiceViewModel.cs
  3. 11
      src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceGeneratorOptions.cs

14
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/AdvancedServiceDialog.xaml

@ -115,23 +115,25 @@ @@ -115,23 +115,25 @@
<RadioButton Grid.Row="4" Margin="45,0,0,0"
VerticalAlignment="Center"
GroupName="ReferenceType"
GroupName="ReferenceType"
IsChecked="{Binding ReuseTypes}"
IsEnabled="{Binding UseReferencedAssemblies}"
Content="Reuse types in all referenced assemblies">
</RadioButton>
<RadioButton Grid.Row="5" Margin="45,0,0,0"
VerticalAlignment="Center"
GroupName="ReferenceType"
GroupName="ReferenceType"
IsChecked="{Binding ReuseReferencedTypes}"
IsEnabled="{Binding UseReferencedAssemblies}"
Content="Reuse types in specified referenced assemblies">
</RadioButton>
<ListBox Grid.Row="6" Grid.ColumnSpan="2" Width="400"
Margin="80,0,0,0"
SelectionMode="Multiple"
ItemsSource="{Binding AssembliesToReference}"
IsEnabled="{Binding ListViewEnable}">
Margin="80,0,0,0"
SelectionMode="Multiple"
ItemsSource="{Binding AssembliesToReference}"
IsEnabled="{Binding ListViewEnable}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">

19
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/AdvancedServiceViewModel.cs

@ -69,7 +69,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -69,7 +69,6 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
this.options = options;
UpdateSettingsFromOptions();
Title = "Service Reference Settings";
UseReferencedAssemblies = true;
BitmapSource image = PresentationResourceService.GetBitmapSource("Icons.16x16.Reference");
AssembliesToReference = new ObservableCollection<CheckableImageAndDescription>();
AssembliesToReference.Add(new CheckableImageAndDescription(image, "Microsoft.CSharp"));
@ -98,7 +97,11 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -98,7 +97,11 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
if (options.UseTypesInProjectReferences) {
this.ReuseTypes = true;
this.UseReferencedAssemblies = true;
} else if (options.UseTypesInSpecifiedAssemblies) {
this.ReuseReferencedTypes = true;
this.UseReferencedAssemblies = true;
} else {
this.ReuseReferencedTypes = false;
this.ReuseTypes = false;
this.UseReferencedAssemblies = false;
}
@ -125,10 +128,16 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -125,10 +128,16 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
get { return selectedModifier; }
set {
selectedModifier = value;
UpdateClassGenerationModifier();
base.RaisePropertyChanged(() => SelectedModifier);
}
}
void UpdateClassGenerationModifier()
{
options.GenerateInternalClasses = (selectedModifier == Modifiers.Internal);
}
public bool GenerateAsyncOperations {
get { return options.GenerateAsyncOperations; }
set {
@ -168,6 +177,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -168,6 +177,8 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
set {
useReferencedAssemblies = value;
ReuseTypes = useReferencedAssemblies;
if (!useReferencedAssemblies)
ReuseReferencedTypes = false;
base.RaisePropertyChanged(() => UseReferencedAssemblies);
}
}
@ -180,12 +191,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -180,12 +191,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
}
}
bool reuseReferencedTypes;
public bool ReuseReferencedTypes {
get { return reuseReferencedTypes; }
get { return options.UseTypesInSpecifiedAssemblies; }
set {
reuseReferencedTypes = value;
options.UseTypesInSpecifiedAssemblies = value;
ListViewEnable = value;
base.RaisePropertyChanged(() => ReuseReferencedTypes);
}

11
src/Main/Base/Project/Src/Gui/Dialogs/ReferenceDialog/ServiceReference/ServiceReferenceGeneratorOptions.cs

@ -6,6 +6,8 @@ using System.Collections.Generic; @@ -6,6 +6,8 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
{
public class ServiceReferenceGeneratorOptions
@ -42,6 +44,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -42,6 +44,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
public bool GenerateAsyncOperations { get; set; }
public bool GenerateMessageContract { get; set; }
public bool UseTypesInProjectReferences { get; set; }
public bool UseTypesInSpecifiedAssemblies { get; set; }
public CollectionTypes ArrayCollectionType { get; set; }
public DictionaryCollectionTypes DictionaryCollectionType { get; set; }
@ -68,7 +71,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -68,7 +71,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
AppConfigFileName = this.AppConfigFileName,
NoAppConfig = this.NoAppConfig,
MergeAppConfig = this.MergeAppConfig,
UseTypesInSpecifiedAssemblies = this.UseTypesInSpecifiedAssemblies,
UseTypesInProjectReferences = this.UseTypesInProjectReferences,
ArrayCollectionType = this.ArrayCollectionType,
DictionaryCollectionType = this.DictionaryCollectionType,
@ -143,10 +146,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference @@ -143,10 +146,12 @@ namespace ICSharpCode.SharpDevelop.Gui.Dialogs.ReferenceDialog.ServiceReference
return "`2";
}
public void AddProjectReferencesIfUsingTypesFromProjectReferences(IEnumerable<string> assemblies)
public void AddProjectReferencesIfUsingTypesFromProjectReferences(IEnumerable<ReferenceProjectItem> assemblies)
{
if (UseTypesInProjectReferences) {
Assemblies.AddRange(assemblies);
foreach (ReferenceProjectItem item in assemblies) {
Assemblies.Add(item.FileName);
}
}
}
}

Loading…
Cancel
Save