19
19
20
20
namespace OpenLoco . Gui . ViewModels
21
21
{
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
+
22
35
public class FolderTreeViewModel : ReactiveObject
23
36
{
24
37
public HierarchicalTreeDataGridSource < FileSystemItemBase > TreeDataGridSource { get ; set ; }
@@ -50,13 +63,10 @@ public class FolderTreeViewModel : ReactiveObject
50
63
public ObjectDisplayMode DisplayMode { get ; set ; } = ObjectDisplayMode . All ;
51
64
52
65
[ Reactive ]
53
- List < FileSystemItemBase > LocalDirectoryItems { get ; set ; } = [ ] ;
66
+ protected List < FileSystemItemBase > LocalDirectoryItems { get ; set ; } = [ ] ;
54
67
55
68
[ Reactive ]
56
- List < FileSystemItemBase > OnlineDirectoryItems { get ; set ; } = [ ] ;
57
-
58
- [ Reactive ]
59
- public ObservableCollection < FileSystemItemBase > DirectoryItems { get ; set ; } = [ ] ;
69
+ protected List < FileSystemItemBase > OnlineDirectoryItems { get ; set ; } = [ ] ;
60
70
61
71
[ Reactive ]
62
72
public float IndexOrDownloadProgress { get ; set ; }
@@ -78,7 +88,7 @@ public string RecreateText
78
88
=> IsLocal ? "Recreate index" : "Download object list" ;
79
89
80
90
public string DirectoryFileCount
81
- => $ "Objects: { DirectoryItems . Sum ( CountNodes ) } ";
91
+ => $ "Objects: { CurrentDirectoryItems . Sum ( CountNodes ) } ";
82
92
83
93
// used for design-time view
84
94
public FolderTreeViewModel ( )
@@ -120,17 +130,17 @@ public FolderTreeViewModel(ObjectEditorModel model)
120
130
. Skip ( 1 )
121
131
. Subscribe ( async _ => await ReloadDirectoryAsync ( true ) ) ;
122
132
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)));
126
136
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);
130
140
131
141
_ = this . WhenAnyValue ( o => o . SelectedTabIndex )
132
142
. Skip ( 1 )
133
- . Subscribe ( _ => SwitchDirectoryItemsView ( ) ) ;
143
+ . Subscribe ( _ => UpdateDirectoryItemsView ( ) ) ;
134
144
135
145
_ = this . WhenAnyValue ( o => o . SelectedTabIndex )
136
146
. Skip ( 1 )
@@ -142,11 +152,11 @@ public FolderTreeViewModel(ObjectEditorModel model)
142
152
143
153
_ = this . WhenAnyValue ( o => o . LocalDirectoryItems )
144
154
//.Skip(1)
145
- . Subscribe ( _ => SwitchDirectoryItemsView ( ) ) ;
155
+ . Subscribe ( _ => UpdateDirectoryItemsView ( ) ) ;
146
156
147
157
_ = this . WhenAnyValue ( o => o . OnlineDirectoryItems )
148
158
. Skip ( 1 )
149
- . Subscribe ( _ => SwitchDirectoryItemsView ( ) ) ;
159
+ . Subscribe ( _ => UpdateDirectoryItemsView ( ) ) ;
150
160
151
161
// loads the last-viewed folder
152
162
CurrentLocalDirectory = Model . Settings . ObjDataDirectory ;
@@ -169,10 +179,10 @@ public static int CountNodes(FileSystemItemBase fib)
169
179
return count ;
170
180
}
171
181
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 ) ;
176
186
177
187
async Task ReloadDirectoryAsync ( bool useExistingIndex )
178
188
{
0 commit comments