Browse Source

When list of AddIns (installed or in repository) gets updated, view is trying to restore the previous item selection.

newNRILSpyDebugger
Andreas Weizel 12 years ago
parent
commit
db1ecf4a51
  1. 8
      src/AddIns/Misc/AddInManager2/Project/Src/View/AddInsView.xaml
  2. 6
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInPackageViewModelBase.cs
  3. 20
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInsViewModelBase.cs
  4. 2
      src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

8
src/AddIns/Misc/AddInManager2/Project/Src/View/AddInsView.xaml

@ -119,6 +119,10 @@ @@ -119,6 +119,10 @@
</Style.Triggers>-->
</Style>
<Style x:Key="packageListBoxItemContainerStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=IsSelected}"/>
</Style>
<DataTemplate x:Key="PackageListBoxItemTemplate">
<Grid>
<Grid.ColumnDefinitions>
@ -491,7 +495,7 @@ @@ -491,7 +495,7 @@
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- <TextBlock
<!-- <TextBlock
Grid.Row="0"
Grid.Column="0"
VerticalAlignment="Center"
@ -550,8 +554,10 @@ @@ -550,8 +554,10 @@
x:Name="allPackagesListBox"
Grid.Row="0"
SelectedIndex="0"
IsSynchronizedWithCurrentItem="true"
ItemTemplate="{StaticResource PackageListBoxItemTemplate}"
ItemsSource="{Binding Path=AddInPackages}"
ItemContainerStyle="{StaticResource packageListBoxItemContainerStyle}"
HorizontalContentAlignment="Stretch"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"/>
<ProgressBar

6
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInPackageViewModelBase.cs

@ -252,6 +252,12 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -252,6 +252,12 @@ namespace ICSharpCode.AddInManager2.ViewModel
return false;
}
}
public bool IsSelected
{
get;
set;
}
public virtual void AddPackage()
{

20
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/AddInsViewModelBase.cs

@ -23,6 +23,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -23,6 +23,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
private bool _isReadingPackages;
private bool _isExpandedinView;
private bool _showPackageSources;
private string _lastSelectedId;
private ObservableCollection<PackageRepository> _packageRepositories;
@ -289,9 +290,11 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -289,9 +290,11 @@ namespace ICSharpCode.AddInManager2.ViewModel
protected void UpdatePackageViewModels(IEnumerable<AddInPackageViewModelBase> newPackageViewModels)
{
StoreSelection();
ClearPackages();
NuGet.CollectionExtensions.AddRange(AddInPackages, newPackageViewModels);
UpdateInstallationState();
RestoreSelection();
}
protected void ClearPackages()
@ -545,5 +548,22 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -545,5 +548,22 @@ namespace ICSharpCode.AddInManager2.ViewModel
// Update the list of package sources
UpdatePackageSources();
}
private void StoreSelection()
{
AddInPackageViewModelBase selectedModel = AddInPackages.FirstOrDefault(m => m.IsSelected);
if (selectedModel != null) {
_lastSelectedId = selectedModel.Id;
}
}
private void RestoreSelection()
{
AddInPackageViewModelBase modelToSelect = AddInPackages.FirstOrDefault(m => m.Id == _lastSelectedId);
if (modelToSelect != null) {
modelToSelect.IsSelected = true;
}
_lastSelectedId = null;
}
}
}

2
src/AddIns/Misc/AddInManager2/Project/Src/ViewModel/NuGetAddInsViewModelBase.cs

@ -49,7 +49,7 @@ namespace ICSharpCode.AddInManager2.ViewModel @@ -49,7 +49,7 @@ namespace ICSharpCode.AddInManager2.ViewModel
{
IsReadingPackages = true;
HasError = false;
ClearPackages();
// ClearPackages();
CancelReadPackagesTask();
CreateReadPackagesTask();
_task.Start();

Loading…
Cancel
Save