1
- using Files . Common ;
2
- using Files . DataModels ;
3
- using Files . Dialogs ;
4
- using Files . EventArguments ;
1
+ using Files . EventArguments ;
5
2
using Files . Extensions ;
6
3
using Files . Filesystem ;
7
4
using Files . Helpers ;
8
5
using Files . Helpers . ContextFlyouts ;
9
6
using Files . Interacts ;
10
- using Files . UserControls ;
11
7
using Files . ViewModels ;
12
8
using Files . Views ;
13
- using Microsoft . Toolkit . Mvvm . Input ;
14
9
using Microsoft . Toolkit . Uwp ;
15
10
using Microsoft . Toolkit . Uwp . UI ;
16
- using Newtonsoft . Json ;
17
11
using System ;
18
12
using System . Collections ;
19
13
using System . Collections . Generic ;
20
14
using System . ComponentModel ;
21
15
using System . Diagnostics ;
22
- using System . IO ;
23
16
using System . Linq ;
24
17
using System . Runtime . CompilerServices ;
25
- using System . Threading . Tasks ;
26
- using Windows . ApplicationModel . AppService ;
27
18
using Windows . ApplicationModel . DataTransfer ;
28
- using Windows . Foundation ;
29
- using Windows . Foundation . Collections ;
30
19
using Windows . Storage ;
31
20
using Windows . System ;
32
21
using Windows . UI . Core ;
33
22
using Windows . UI . Xaml ;
34
23
using Windows . UI . Xaml . Controls ;
35
- using Windows . UI . Xaml . Controls . Primitives ;
36
- using Windows . UI . Xaml . Input ;
37
- using Windows . UI . Xaml . Media . Imaging ;
38
24
using Windows . UI . Xaml . Navigation ;
39
25
using static Files . Helpers . PathNormalization ;
40
26
@@ -130,8 +116,8 @@ public string JumpString
130
116
131
117
if ( jumpedToItem != null )
132
118
{
133
- SetSelectedItemOnUi ( jumpedToItem ) ;
134
- ScrollIntoView ( jumpedToItem ) ;
119
+ ItemManipulationModel . SetSelectedItem ( jumpedToItem ) ;
120
+ ItemManipulationModel . ScrollIntoView ( jumpedToItem ) ;
135
121
}
136
122
137
123
// Restart the timer
@@ -196,7 +182,7 @@ internal set
196
182
}
197
183
}
198
184
NotifyPropertyChanged ( nameof ( SelectedItems ) ) ;
199
- SetDragModeForItems ( ) ;
185
+ ItemManipulationModel . SetDragModeForItems ( ) ;
200
186
}
201
187
}
202
188
}
@@ -207,6 +193,10 @@ internal set
207
193
208
194
public BaseLayout ( )
209
195
{
196
+ ItemManipulationModel = new ItemManipulationModel ( ) ;
197
+
198
+ HookEvents ( ) ;
199
+
210
200
jumpTimer = new DispatcherTimer ( ) ;
211
201
jumpTimer . Interval = TimeSpan . FromSeconds ( 0.8 ) ;
212
202
jumpTimer . Tick += JumpTimer_Tick ;
@@ -226,6 +216,12 @@ public BaseLayout()
226
216
dragOverTimer = DispatcherQueue . GetForCurrentThread ( ) . CreateTimer ( ) ;
227
217
}
228
218
219
+ protected abstract void HookEvents ( ) ;
220
+
221
+ protected abstract void UnhookEvents ( ) ;
222
+
223
+ public ItemManipulationModel ItemManipulationModel { get ; private set ; }
224
+
229
225
private void JumpTimer_Tick ( object sender , object e )
230
226
{
231
227
jumpString = string . Empty ;
@@ -234,54 +230,8 @@ private void JumpTimer_Tick(object sender, object e)
234
230
235
231
protected abstract void InitializeCommandsViewModel ( ) ;
236
232
237
- public abstract void FocusFileList ( ) ;
238
-
239
- public abstract void SelectAllItems ( ) ;
240
-
241
- public virtual void InvertSelection ( )
242
- {
243
- List < ListedItem > newSelectedItems = GetAllItems ( )
244
- . Cast < ListedItem > ( )
245
- . Except ( SelectedItems )
246
- . ToList ( ) ;
247
-
248
- SetSelectedItemsOnUi ( newSelectedItems ) ;
249
- }
250
-
251
- public abstract void ClearSelection ( ) ;
252
-
253
- public abstract void SetDragModeForItems ( ) ;
254
-
255
- public abstract void ScrollIntoView ( ListedItem item ) ;
256
-
257
- protected abstract void AddSelectedItem ( ListedItem item ) ;
258
-
259
233
protected abstract IEnumerable GetAllItems ( ) ;
260
234
261
- public virtual void SetSelectedItemOnUi ( ListedItem selectedItem )
262
- {
263
- ClearSelection ( ) ;
264
- AddSelectedItem ( selectedItem ) ;
265
- }
266
-
267
- public virtual void SetSelectedItemsOnUi ( List < ListedItem > selectedItems )
268
- {
269
- ClearSelection ( ) ;
270
- AddSelectedItemsOnUi ( selectedItems ) ;
271
- }
272
-
273
- public virtual void AddSelectedItemsOnUi ( List < ListedItem > selectedItems )
274
- {
275
- foreach ( ListedItem selectedItem in selectedItems )
276
- {
277
- AddSelectedItem ( selectedItem ) ;
278
- }
279
- }
280
-
281
- public abstract void FocusSelectedItems ( ) ;
282
-
283
- public abstract void StartRenameItem ( ) ;
284
-
285
235
public virtual void ResetItemOpacity ( )
286
236
{
287
237
IEnumerable items = GetAllItems ( ) ;
@@ -294,7 +244,7 @@ public virtual void ResetItemOpacity()
294
244
{
295
245
if ( listedItem . IsHiddenItem )
296
246
{
297
- listedItem . Opacity = 0.4 ;
247
+ listedItem . Opacity = Constants . UI . DimItemOpacity ;
298
248
}
299
249
else
300
250
{
@@ -303,11 +253,6 @@ public virtual void ResetItemOpacity()
303
253
}
304
254
}
305
255
306
- public virtual void SetItemOpacity ( ListedItem item )
307
- {
308
- item . Opacity = 0.4 ;
309
- }
310
-
311
256
protected abstract ListedItem GetItemFromElement ( object element ) ;
312
257
313
258
private void FolderSettings_LayoutModeChangeRequested ( object sender , LayoutModeEventArgs e )
@@ -407,7 +352,7 @@ protected override async void OnNavigatedTo(NavigationEventArgs eventArgs)
407
352
408
353
FolderSettings . IsLayoutModeChanging = false ;
409
354
410
- FocusFileList ( ) ; // Set focus on layout specific file list control
355
+ ItemManipulationModel . FocusFileList ( ) ; // Set focus on layout specific file list control
411
356
412
357
try
413
358
{
@@ -419,7 +364,7 @@ protected override async void OnNavigatedTo(NavigationEventArgs eventArgs)
419
364
liItemsToSelect . Add ( ParentShellPageInstance . FilesystemViewModel . FilesAndFolders . Where ( ( li ) => li . ItemName == item ) . First ( ) ) ;
420
365
}
421
366
422
- SetSelectedItemsOnUi ( liItemsToSelect ) ;
367
+ ItemManipulationModel . SetSelectedItems ( liItemsToSelect ) ;
423
368
}
424
369
}
425
370
catch ( Exception e )
@@ -549,7 +494,7 @@ protected async void Item_DragOver(object sender, DragEventArgs e)
549
494
item = gvi . Content as ListedItem ;
550
495
}
551
496
552
- SetSelectedItemOnUi ( item ) ;
497
+ ItemManipulationModel . SetSelectedItem ( item ) ;
553
498
554
499
if ( dragOverItem != item )
555
500
{
@@ -661,10 +606,5 @@ protected void UninitializeDrag(UIElement element)
661
606
public readonly VirtualKey MinusKey = ( VirtualKey ) 189 ;
662
607
663
608
public abstract void Dispose ( ) ;
664
-
665
- public void RefreshItems ( )
666
- {
667
- ParentShellPageInstance . Refresh_Click ( ) ;
668
- }
669
609
}
670
610
}
0 commit comments