1919
2020namespace OpenLoco . Gui . ViewModels
2121{
22+ public class DesignerFolderTreeViewModel : FolderTreeViewModel
23+ {
24+ public DesignerFolderTreeViewModel ( )
25+ {
26+ SelectedTabIndex = 0 ;
27+ CurrentLocalDirectory = "test/directory" ;
28+ LocalDirectoryItems = [ new ( "local-filename1" , "local-displayname1" ) ] ;
29+ OnlineDirectoryItems = [ new ( "online-filename1" , "online-displayname1" ) ] ;
30+
31+ UpdateDirectoryItemsView ( ) ;
32+ }
33+ }
34+
2235 public class FolderTreeViewModel : ReactiveObject
2336 {
2437 public HierarchicalTreeDataGridSource < FileSystemItemBase > TreeDataGridSource { get ; set ; }
@@ -50,13 +63,10 @@ public class FolderTreeViewModel : ReactiveObject
5063 public ObjectDisplayMode DisplayMode { get ; set ; } = ObjectDisplayMode . All ;
5164
5265 [ Reactive ]
53- List < FileSystemItemBase > LocalDirectoryItems { get ; set ; } = [ ] ;
66+ protected List < FileSystemItemBase > LocalDirectoryItems { get ; set ; } = [ ] ;
5467
5568 [ Reactive ]
56- List < FileSystemItemBase > OnlineDirectoryItems { get ; set ; } = [ ] ;
57-
58- [ Reactive ]
59- public ObservableCollection < FileSystemItemBase > DirectoryItems { get ; set ; } = [ ] ;
69+ protected List < FileSystemItemBase > OnlineDirectoryItems { get ; set ; } = [ ] ;
6070
6171 [ Reactive ]
6272 public float IndexOrDownloadProgress { get ; set ; }
@@ -78,7 +88,7 @@ public string RecreateText
7888 => IsLocal ? "Recreate index" : "Download object list" ;
7989
8090 public string DirectoryFileCount
81- => $ "Objects: { DirectoryItems . Sum ( CountNodes ) } ";
91+ => $ "Objects: { CurrentDirectoryItems . Sum ( CountNodes ) } ";
8292
8393 // used for design-time view
8494 public FolderTreeViewModel ( )
@@ -120,17 +130,17 @@ public FolderTreeViewModel(ObjectEditorModel model)
120130 . Skip ( 1 )
121131 . Subscribe ( async _ => await ReloadDirectoryAsync ( true ) ) ;
122132
123- _ = this . WhenAnyValue ( o => o . DirectoryItems )
124- . Skip ( 1 )
125- . Subscribe ( _ => this . RaisePropertyChanged ( nameof ( DirectoryFileCount ) ) ) ;
133+ // _ = this.WhenAnyValue(o => o.DirectoryItems)
134+ // .Skip(1)
135+ // .Subscribe(_ => this.RaisePropertyChanged(nameof(DirectoryFileCount)));
126136
127- _ = this . WhenAnyValue ( o => o . DirectoryItems )
128- . Skip ( 1 )
129- . Subscribe ( _ => CurrentlySelectedObject = null ) ;
137+ // _ = this.WhenAnyValue(o => o.DirectoryItems)
138+ // .Skip(1)
139+ // .Subscribe(_ => CurrentlySelectedObject = null);
130140
131141 _ = this . WhenAnyValue ( o => o . SelectedTabIndex )
132142 . Skip ( 1 )
133- . Subscribe ( _ => SwitchDirectoryItemsView ( ) ) ;
143+ . Subscribe ( _ => UpdateDirectoryItemsView ( ) ) ;
134144
135145 _ = this . WhenAnyValue ( o => o . SelectedTabIndex )
136146 . Skip ( 1 )
@@ -142,11 +152,11 @@ public FolderTreeViewModel(ObjectEditorModel model)
142152
143153 _ = this . WhenAnyValue ( o => o . LocalDirectoryItems )
144154 //.Skip(1)
145- . Subscribe ( _ => SwitchDirectoryItemsView ( ) ) ;
155+ . Subscribe ( _ => UpdateDirectoryItemsView ( ) ) ;
146156
147157 _ = this . WhenAnyValue ( o => o . OnlineDirectoryItems )
148158 . Skip ( 1 )
149- . Subscribe ( _ => SwitchDirectoryItemsView ( ) ) ;
159+ . Subscribe ( _ => UpdateDirectoryItemsView ( ) ) ;
150160
151161 // loads the last-viewed folder
152162 CurrentLocalDirectory = Model . Settings . ObjDataDirectory ;
@@ -169,10 +179,10 @@ public static int CountNodes(FileSystemItemBase fib)
169179 return count ;
170180 }
171181
172- void SwitchDirectoryItemsView ( )
173- => DirectoryItems = SelectedTabIndex == 0
174- ? new ( LocalDirectoryItems )
175- : new ( OnlineDirectoryItems ) ;
182+ List < FileSystemItemBase > CurrentDirectoryItems => IsLocal ? LocalDirectoryItems : OnlineDirectoryItems ;
183+
184+ protected void UpdateDirectoryItemsView ( )
185+ => UpdateGrid ( CurrentDirectoryItems ) ;
176186
177187 async Task ReloadDirectoryAsync ( bool useExistingIndex )
178188 {
0 commit comments