Author: aolk
Date: 2005-03-13 13:40:24 -0500 (Sun, 13 Mar 2005)
New Revision: 41767

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/OpenFileDialog.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/SaveFileDialog.cs
Log:
- Set correct text for openSaveButton Text property
- Added columns for fileListView Details view and some code that fills the 
columns with
  file and directory related information
- Added fileListViewBigImageList


Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs    
2005-03-13 18:29:46 UTC (rev 41766)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/FileDialog.cs    
2005-03-13 18:40:24 UTC (rev 41767)
@@ -55,6 +55,8 @@
                private string title = "";
                private bool validateNames = true;
                
+               internal string openSaveButtonText;
+               
                public bool AddExtension
                {
                        get
@@ -239,6 +241,19 @@
                        }
                }
                
+               internal string OpenSaveButtonText
+               {
+                       set
+                       {
+                               openSaveButtonText = value;
+                       }
+                       
+                       get
+                       {
+                               return openSaveButtonText;
+                       }
+               }
+               
                public override void Reset( )
                {
                        addExtension = true;
@@ -350,7 +365,7 @@
                        private Button cancelButton;
                        private ToolBarButton upToolBarButton;
                        private ToolBar bigButtonToolBar;
-                       private Button openButton;
+                       private Button openSaveButton;
                        private Label fileTypeLabel;
                        private ToolBarButton menueToolBarButton;
                        private ContextMenu menueToolBarButtonContextMenu;
@@ -384,7 +399,7 @@
                        // store DirectoryInfo for backButton
                        internal Stack directoryStack = new Stack();
                        
-                       internal string currentFileName;
+                       internal string currentFileName = "";
                        
                        private MenuItem previousCheckedMenuItem;
                        
@@ -408,7 +423,7 @@
                                desktopToolBarButton = new ToolBarButton( );
                                menueToolBarButton = new ToolBarButton( );
                                fileTypeLabel = new Label( );
-                               openButton = new Button( );
+                               openSaveButton = new Button( );
                                bigButtonToolBar = new ToolBar( );
                                upToolBarButton = new ToolBarButton( );
                                cancelButton = new Button( );
@@ -462,6 +477,11 @@
                                fileListView.Anchor = ( (AnchorStyles)( ( ( ( 
AnchorStyles.Top | AnchorStyles.Bottom ) | AnchorStyles.Left ) | 
AnchorStyles.Right ) ) );
                                fileListView.Location = new Point( 99, 37 );
                                fileListView.Size = new Size( 449, 282 );
+                               fileListView.Columns.Add( " Name", 170, 
HorizontalAlignment.Left );
+                               fileListView.Columns.Add( "Size ", 80, 
HorizontalAlignment.Right );
+                               fileListView.Columns.Add( " Type", 100, 
HorizontalAlignment.Left );
+                               fileListView.Columns.Add( " Last Access", 150, 
HorizontalAlignment.Left );
+                               fileListView.AllowColumnReorder = true;
                                fileListView.TabIndex = 2;
                                
                                // fileNameLabel
@@ -587,12 +607,12 @@
                                fileTypeLabel.TextAlign = 
ContentAlignment.MiddleLeft;
                                
                                // openButton
-                               openButton.Anchor = ( (AnchorStyles)( ( 
AnchorStyles.Bottom | AnchorStyles.Right ) ) );
-                               openButton.FlatStyle = FlatStyle.System;
-                               openButton.Location = new Point( 475, 330 );
-                               openButton.Size = new Size( 72, 21 );
-                               openButton.TabIndex = 8;
-                               openButton.Text = "Open";
+                               openSaveButton.Anchor = ( (AnchorStyles)( ( 
AnchorStyles.Bottom | AnchorStyles.Right ) ) );
+                               openSaveButton.FlatStyle = FlatStyle.System;
+                               openSaveButton.Location = new Point( 475, 330 );
+                               openSaveButton.Size = new Size( 72, 21 );
+                               openSaveButton.TabIndex = 8;
+                               openSaveButton.Text = 
fileDialog.OpenSaveButtonText;
                                
                                // cancelButton
                                cancelButton.Anchor = ( (AnchorStyles)( ( 
AnchorStyles.Bottom | AnchorStyles.Right ) ) );
@@ -606,7 +626,7 @@
                                
                                Controls.Add( smallButtonToolBar );
                                Controls.Add( cancelButton );
-                               Controls.Add( openButton );
+                               Controls.Add( openSaveButton );
                                Controls.Add( fileTypeLabel );
                                Controls.Add( fileNameLabel );
                                Controls.Add( fileTypeComboBox );
@@ -624,11 +644,14 @@
                                
                                fileListView.UpdateFileListView( );
                                
-                               openButton.Click += new EventHandler( 
OnClickOpenButton );
+                               openSaveButton.Click += new EventHandler( 
OnClickOpenButton );
                                cancelButton.Click += new EventHandler( 
OnClickCancelButton );
                                
                                smallButtonToolBar.ButtonClick += new 
ToolBarButtonClickEventHandler( OnClickSmallButtonToolBar );
                                
+                               // Key events DONT'T work
+                               fileNameComboBox.KeyUp += new KeyEventHandler( 
OnKeyUpFileNameComboBox );
+                               
                                // FIXME: Default for Filter is "", aka 
nothing, nada...
                                // which means, show all files
                                FilterStruct fs = new FilterStruct( "All Files 
(*.*)", "*.*" ); // set default filter;
@@ -679,6 +702,39 @@
                        
                        void OnClickOpenButton( object sender, EventArgs e )
                        {
+                               Console.WriteLine( "OnClickOpenButton 
currentFileName: " + currentFileName );
+                               
+                               currentFileName.Trim();
+                               
+                               if ( currentFileName.Length == 0 )
+                                       return;
+                               
+                               if ( fileDialog.CheckFileExists )
+                               {
+                                       if ( !File.Exists( currentFileName ) )
+                                       {
+                                               string message = 
currentFileName + " doesn't exist. Please verify that you have entered the 
correct file name.";
+                                               MessageBox.Show(message, 
fileDialog.OpenSaveButtonText, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                                               
+                                               currentFileName = "";
+                                               
+                                               return;
+                                       }
+                               }
+                               
+                               if ( fileDialog.CheckPathExists )
+                               {
+                                       if ( !Directory.Exists( 
currentDirectoryName ) )
+                                       {
+                                               string message = 
currentDirectoryName + " doesn't exist. Please verify that you have entered the 
correct directory name.";
+                                               MessageBox.Show(message, 
fileDialog.OpenSaveButtonText, MessageBoxButtons.OK, MessageBoxIcon.Warning);
+                                               
+                                               currentDirectoryName = 
Environment.CurrentDirectory;
+                                               
+                                               return;
+                                       }
+                               }
+                               
                                fileDialog.FileName = currentFileName;
                                
                                CancelEventArgs cancelEventArgs = new 
CancelEventArgs( );
@@ -750,6 +806,7 @@
                                                fileListView.View = 
View.LargeIcon;
                                                break;
                                        case 2:
+                                               fileListView.View = 
View.LargeIcon;
                                                break;
                                        case 3:
                                                fileListView.View = View.List;
@@ -763,6 +820,18 @@
                                
                        }
                        
+                       void OnKeyUpFileNameComboBox( object sender, 
KeyEventArgs e )
+                       {
+                               Console.WriteLine( "OnKeyUpFileNameComboBox");
+                               
+                               if ( e.KeyCode == Keys.Enter )
+                               {
+                                       Console.WriteLine( 
"OnKeyUpFileNameComboBox e.KeyCode =...");
+                                       currentFileName = currentDirectoryName 
+ fileNameComboBox.Text;
+                                       ForceDialogEnd();
+                               }
+                       }
+                       
                        public void UpdateFilters( ArrayList filters )
                        {
                                fileTypeComboBox.Items.Clear( );
@@ -816,7 +885,8 @@
                        // FileListView
                        internal class FileListView : ListView
                        {
-                               private ImageList fileListViewImageList = new 
ImageList();
+                               private ImageList fileListViewSmallImageList = 
new ImageList();
+                               private ImageList fileListViewBigImageList = 
new ImageList();
                                
                                private FileDialogPanel fileDialogPanel;
                                
@@ -824,15 +894,21 @@
                                {
                                        this.fileDialogPanel = fileDialogPanel;
                                        
-                                       fileListViewImageList.ColorDepth = 
ColorDepth.Depth32Bit;
-                                       fileListViewImageList.ImageSize = new 
Size( 16, 16 );
-                                       fileListViewImageList.Images.Add( 
(Image)Locale.GetResource( "paper" ) );
-                                       fileListViewImageList.Images.Add( 
(Image)Locale.GetResource( "folder" ) );
-                                       fileListViewImageList.TransparentColor 
= Color.Transparent;
+                                       fileListViewSmallImageList.ColorDepth = 
ColorDepth.Depth32Bit;
+                                       fileListViewSmallImageList.ImageSize = 
new Size( 16, 16 );
+                                       fileListViewSmallImageList.Images.Add( 
(Image)Locale.GetResource( "paper" ) );
+                                       fileListViewSmallImageList.Images.Add( 
(Image)Locale.GetResource( "folder" ) );
+                                       
fileListViewSmallImageList.TransparentColor = Color.Transparent;
                                        
-                                       SmallImageList = fileListViewImageList;
-                                       LargeImageList = fileListViewImageList;
+                                       fileListViewBigImageList.ColorDepth = 
ColorDepth.Depth32Bit;
+                                       fileListViewBigImageList.ImageSize = 
new Size( 48, 48 );
+                                       fileListViewBigImageList.Images.Add( 
(Image)Locale.GetResource( "paper" ) );
+                                       fileListViewBigImageList.Images.Add( 
(Image)Locale.GetResource( "folder" ) );
+                                       
fileListViewBigImageList.TransparentColor = Color.Transparent;
                                        
+                                       SmallImageList = 
fileListViewSmallImageList;
+                                       LargeImageList = 
fileListViewBigImageList;
+                                       
                                        View = View.List;
                                }
                                
@@ -843,40 +919,54 @@
                                        DirectoryInfo[] directoryInfoArray = 
directoryInfo.GetDirectories( );
                                        FileInfo[] fileInfoArray = 
directoryInfo.GetFiles( );
                                        
+                                       fileDialogPanel.fileHashtable.Clear( );
+                                       
                                        BeginUpdate( );
                                        
                                        Items.Clear( );
                                        
-                                       fileDialogPanel.fileHashtable.Clear( );
-                                       
-                                       foreach ( DirectoryInfo dii in 
directoryInfoArray )
+                                       foreach ( DirectoryInfo directoryInfoi 
in directoryInfoArray )
                                        {
                                                FileStruct fileStruct = new 
FileStruct( );
                                                
-                                               fileStruct.fullname = 
dii.FullName;
+                                               fileStruct.fullname = 
directoryInfoi.FullName;
                                                
-                                               ListViewItem listViewItem = new 
ListViewItem( dii.Name );
+                                               ListViewItem listViewItem = new 
ListViewItem( directoryInfoi.Name );
                                                
                                                listViewItem.ImageIndex = 1;
+                                               
+                                               listViewItem.SubItems.Add( "" );
+                                               listViewItem.SubItems.Add( 
"Directory" );
+                                               listViewItem.SubItems.Add( 
directoryInfoi.LastAccessTime.ToShortDateString() + " " + 
directoryInfoi.LastAccessTime.ToShortTimeString() );
+                                               
                                                fileStruct.attributes = 
FileAttributes.Directory;
                                                
-                                               
fileDialogPanel.fileHashtable.Add( dii.Name, fileStruct );
+                                               
fileDialogPanel.fileHashtable.Add( directoryInfoi.Name, fileStruct );
                                                
                                                Items.Add( listViewItem );
                                        }
                                        
-                                       foreach ( FileInfo fi in fileInfoArray )
+                                       foreach ( FileInfo fileInfo in 
fileInfoArray )
                                        {
                                                FileStruct fileStruct = new 
FileStruct( );
                                                
-                                               fileStruct.fullname = 
fi.FullName;
+                                               fileStruct.fullname = 
fileInfo.FullName;
                                                
-                                               ListViewItem listViewItem = new 
ListViewItem( fi.Name );
+                                               ListViewItem listViewItem = new 
ListViewItem( fileInfo.Name );
                                                
                                                listViewItem.ImageIndex = 0;
+                                               
+                                               long fileLen = 1;
+                                               if ( fileInfo.Length > 1024 )
+                                                       fileLen = 
fileInfo.Length / 1024;
+                                               
+                                               listViewItem.SubItems.Add( 
fileLen.ToString() + " KB" );
+                                               listViewItem.SubItems.Add( 
"File" );
+                                               listViewItem.SubItems.Add( 
fileInfo.LastAccessTime.ToShortDateString() + " " + 
fileInfo.LastAccessTime.ToShortTimeString() );
+                                               
                                                fileStruct.attributes = 
FileAttributes.Normal;
                                                
-                                               
fileDialogPanel.fileHashtable.Add( fi.Name, fileStruct );
+                                               
fileDialogPanel.fileHashtable.Add( fileInfo.Name, fileStruct );
                                                
                                                Items.Add( listViewItem );
                                        }

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/OpenFileDialog.cs
===================================================================
--- 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/OpenFileDialog.cs    
    2005-03-13 18:29:46 UTC (rev 41766)
+++ 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/OpenFileDialog.cs    
    2005-03-13 18:40:24 UTC (rev 41767)
@@ -45,6 +45,8 @@
                        
                        form.Size =  new Size( 554, 384 );
                        
+                       OpenSaveButtonText = "Open";
+                       
                        fileDialogPanel = new FileDialogPanel( this );
                }
                #endregion      // Public Constructors

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/SaveFileDialog.cs
===================================================================
--- 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/SaveFileDialog.cs    
    2005-03-13 18:29:46 UTC (rev 41766)
+++ 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/SaveFileDialog.cs    
    2005-03-13 18:40:24 UTC (rev 41767)
@@ -43,6 +43,8 @@
                        
                        form.Size =  new Size( 554, 384 );
                        
+                       OpenSaveButtonText = "Save";
+                       
                        fileDialogPanel = new FileDialogPanel( this );
                }
                #endregion      // Public Constructors

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to