Exemplo n.º 1
0
        protected void OnOpenButtonClicked(object sender, EventArgs e)
        {
            // Open a file chooser window
            FileChooserDialog fcd = new FileChooserDialog(
                "Sélection du fichier à dupliquer",
                null, fileChooserAction,
                "Annuler", ResponseType.Cancel,
                "Ouvrir", ResponseType.Accept)
            {
                DefaultResponse = ResponseType.Ok,
                SelectMultiple  = false
            };

            if (fcd.Run() == (int)ResponseType.Accept)
            {
                // If the user want to duplicate a repository...
                if (fileChooserAction.Equals(FileChooserAction.SelectFolder))
                {
                    DirectoryInfo directoryInfo = new DirectoryInfo(fcd.Filename);

                    // Set folder values
                    fileFingerprint = "";
                    fullFileName    = directoryInfo.FullName + "/";
                    shortFileName   = directoryInfo.Name;
                    fileSize        = GetRepositorySize(directoryInfo);

                    // Set UI folder information
                    filenameLabel.Text             = SetItalic(shortFileName + "/");
                    filenameInfoLabel.Text         = SetItalic(directoryInfo.FullName + "/");
                    sizeInfoLabel.Text             = SetItalic(GetRepositorySize(directoryInfo) + " octets");
                    parentRepositoryInfoLabel.Text = SetItalic(directoryInfo.Parent + "/");
                    lastAccessDateInfoLabel.Text   = SetItalic(directoryInfo.LastAccessTime.ToString());
                    lastWriteDateInfoLabel.Text    = SetItalic(directoryInfo.LastWriteTime.ToString());
                    fingerprintInfoLabel.Text      = SetItalic("Empreinte MD5 indisponible");
                }
                // ... or a file
                else
                {
                    FileInfo fileInfo = new FileInfo(fcd.Filename);

                    // Set file values
                    fileFingerprint = GetFileFingerprint(fileInfo.FullName);
                    fullFileName    = fileInfo.FullName;
                    shortFileName   = GetFileName(fullFileName);
                    fileSize        = fileInfo.Length;

                    // Set UI file information
                    filenameLabel.Text             = SetItalic(shortFileName);
                    filenameInfoLabel.Text         = SetItalic(fileInfo.FullName);
                    sizeInfoLabel.Text             = SetItalic(fileInfo.Length.ToString() + " octets");
                    parentRepositoryInfoLabel.Text = SetItalic(fileInfo.DirectoryName + "/");
                    lastAccessDateInfoLabel.Text   = SetItalic(fileInfo.LastAccessTime.ToString());
                    lastWriteDateInfoLabel.Text    = SetItalic(fileInfo.LastWriteTime.ToString());
                    fingerprintInfoLabel.Text      = SetItalic(fileFingerprint);
                }

                // Apply tags
                filenameLabel.UseMarkup             = true;
                filenameInfoLabel.UseMarkup         = true;
                sizeInfoLabel.UseMarkup             = true;
                parentRepositoryInfoLabel.UseMarkup = true;
                lastAccessDateInfoLabel.UseMarkup   = true;
                lastWriteDateInfoLabel.UseMarkup    = true;
                fingerprintInfoLabel.UseMarkup      = true;

                // Unsensitive the other frames
                filenameLabel.Sensitive    = true;
                fileFrame.Sensitive        = true;
                duplicationFrame.Sensitive = true;
            }
            fcd.Destroy();
        }