1- using System ;
1+ using Files . Filesystem ;
2+ using System ;
23using System . Collections . Generic ;
34using Windows . Storage ;
45using Windows . UI . Xaml . Controls ;
@@ -7,12 +8,9 @@ namespace Files.Dialogs
78{
89 public sealed partial class AddItemDialog : ContentDialog
910 {
10- public ListView addItemsChoices ;
11-
1211 public AddItemDialog ( )
1312 {
14- this . InitializeComponent ( ) ;
15- addItemsChoices = AddItemsListView ;
13+ InitializeComponent ( ) ;
1614 AddItemsToList ( ) ;
1715 }
1816
@@ -21,67 +19,77 @@ public AddItemDialog()
2119 public void AddItemsToList ( )
2220 {
2321 AddItemsList . Clear ( ) ;
24- AddItemsList . Add ( new AddListItem { Header = "Folder" , SubHeader = "Creates an empty folder" , Icon = "\xE838 " , IsItemEnabled = true } ) ;
25- AddItemsList . Add ( new AddListItem { Header = "Text Document" , SubHeader = "Creates a simple text file" , Icon = "\xE8A5 " , IsItemEnabled = true } ) ;
26- AddItemsList . Add ( new AddListItem { Header = "Bitmap Image" , SubHeader = "Creates an empty bitmap image file" , Icon = "\xEB9F " , IsItemEnabled = true } ) ;
22+
23+ AddItemsList . Add ( new AddListItem
24+ {
25+ Header = ResourceController . GetTranslation ( "AddDialogListFolderHeader" ) ,
26+ SubHeader = ResourceController . GetTranslation ( "AddDialogListFolderSubHeader" ) ,
27+ Icon = "\xE838 " ,
28+ IsItemEnabled = true ,
29+ ItemType = AddItemType . Folder
30+ } ) ;
31+
32+ AddItemsList . Add ( new AddListItem
33+ {
34+ Header = ResourceController . GetTranslation ( "AddDialogListTextFileHeader" ) ,
35+ SubHeader = ResourceController . GetTranslation ( "AddDialogListTextFileSubHeader" ) ,
36+ Icon = "\xE8A5 " ,
37+ IsItemEnabled = true ,
38+ ItemType = AddItemType . TextDocument
39+ } ) ;
40+ AddItemsList . Add ( new AddListItem
41+ {
42+ Header = ResourceController . GetTranslation ( "AddDialogListBitmapHeader" ) ,
43+ SubHeader = ResourceController . GetTranslation ( "AddDialogListBitmapSubHeader" ) ,
44+ Icon = "\xEB9F " ,
45+ IsItemEnabled = true ,
46+ ItemType = AddItemType . BitmapImage
47+ } ) ;
2748 }
2849
2950 private void ListView_ItemClick ( object sender , ItemClickEventArgs e )
3051 {
3152 this . Hide ( ) ;
32- switch ( ( e . ClickedItem as AddListItem ) . Header )
33- {
34- case "Folder" :
35- CreateFile ( AddItemType . Folder ) ;
36- break ;
37-
38- case "Text Document" :
39- CreateFile ( AddItemType . TextDocument ) ;
40- break ;
41-
42- case "Bitmap Image" :
43- CreateFile ( AddItemType . BitmapImage ) ;
44- break ;
45- }
53+ CreateFile ( ( e . ClickedItem as AddListItem ) . ItemType ) ;
4654 }
4755
48- public static async void CreateFile ( AddItemType fileType )
56+ public static async void CreateFile ( AddItemType itemType )
4957 {
50- var TabInstance = App . CurrentInstance ;
5158 string currentPath = null ;
52- if ( TabInstance . ContentPage != null )
59+ if ( App . CurrentInstance . ContentPage != null )
5360 {
54- currentPath = TabInstance . FilesystemViewModel . WorkingDirectory ;
61+ currentPath = App . CurrentInstance . FilesystemViewModel . WorkingDirectory ;
5562 }
56- var folderWithPath = await Filesystem . ItemViewModel . GetFolderWithPathFromPathAsync ( currentPath ) ;
63+
64+ StorageFolderWithPath folderWithPath = await ItemViewModel . GetFolderWithPathFromPathAsync ( currentPath ) ;
5765 StorageFolder folderToCreateItem = folderWithPath . Folder ;
58- RenameDialog renameDialog = new RenameDialog ( ) ;
5966
67+ // Show rename dialog
68+ RenameDialog renameDialog = new RenameDialog ( ) ;
6069 var renameResult = await renameDialog . ShowAsync ( ) ;
6170 if ( renameResult != ContentDialogResult . Primary )
6271 {
6372 return ;
6473 }
6574
66- var userInput = renameDialog . storedRenameInput ;
67-
68- if ( fileType == AddItemType . Folder )
69- {
70- userInput = ! string . IsNullOrWhiteSpace ( userInput ) ? userInput : ResourceController . GetTranslation ( "NewFolder" ) ;
71-
72- await folderToCreateItem . CreateFolderAsync ( userInput , CreationCollisionOption . GenerateUniqueName ) ;
73- }
74- else if ( fileType == AddItemType . TextDocument )
75+ // Create file based on dialog result
76+ string userInput = renameDialog . storedRenameInput ;
77+ switch ( itemType )
7578 {
76- userInput = ! string . IsNullOrWhiteSpace ( userInput ) ? userInput : ResourceController . GetTranslation ( "NewTextDocument" ) ;
79+ case AddItemType . Folder :
80+ userInput = ! string . IsNullOrWhiteSpace ( userInput ) ? userInput : ResourceController . GetTranslation ( "NewFolder" ) ;
81+ await folderToCreateItem . CreateFolderAsync ( userInput , CreationCollisionOption . GenerateUniqueName ) ;
82+ break ;
7783
78- await folderToCreateItem . CreateFileAsync ( userInput + ".txt" , CreationCollisionOption . GenerateUniqueName ) ;
79- }
80- else if ( fileType == AddItemType . BitmapImage )
81- {
82- userInput = ! string . IsNullOrWhiteSpace ( userInput ) ? userInput : ResourceController . GetTranslation ( "NewBitmapImage" ) ;
84+ case AddItemType . TextDocument :
85+ userInput = ! string . IsNullOrWhiteSpace ( userInput ) ? userInput : ResourceController . GetTranslation ( "NewTextDocument" ) ;
86+ await folderToCreateItem . CreateFileAsync ( userInput + ".txt" , CreationCollisionOption . GenerateUniqueName ) ;
87+ break ;
8388
84- await folderToCreateItem . CreateFileAsync ( userInput + ".bmp" , CreationCollisionOption . GenerateUniqueName ) ;
89+ case AddItemType . BitmapImage :
90+ userInput = ! string . IsNullOrWhiteSpace ( userInput ) ? userInput : ResourceController . GetTranslation ( "NewBitmapImage" ) ;
91+ await folderToCreateItem . CreateFileAsync ( userInput + ".bmp" , CreationCollisionOption . GenerateUniqueName ) ;
92+ break ;
8593 }
8694 }
8795 }
@@ -100,5 +108,6 @@ public class AddListItem
100108 public string SubHeader { get ; set ; }
101109 public string Icon { get ; set ; }
102110 public bool IsItemEnabled { get ; set ; }
111+ public AddItemType ItemType { get ; set ; }
103112 }
104113}
0 commit comments