using ESystem.Globalization; using Eugen.ESystem; using Eugen.ESystem.Windows.Forms; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Globalization; using System.IO; using System.Linq; using System.Reflection; using System.Security.Policy; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Template; using static System.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel; using Language = ESystem.Globalization.Languages.Language; namespace RenameIt { public partial class Form1 : Form { #region Version and Copyright // Version und Copyright readonly string programName = Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); // Den Programmnamen auslesen readonly string programVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); readonly static object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); readonly string copyright = GenerateCopyright(); private static string CurrentYear() { DateTime dtn = DateTime.Now; return dtn.Year.ToString(); } private static string StartYear() { if (((AssemblyCopyrightAttribute)attributes[0]).Copyright.Contains("Copyright © ")) { string startYear = ((AssemblyCopyrightAttribute)attributes[0]).Copyright.Replace("Copyright © ", ""); while (startYear.StartsWith(" ")) { startYear = startYear.Remove(0, 1); } if (startYear.Contains("-")) { startYear = startYear.Remove(startYear.IndexOf("-")); } else { startYear = startYear.Remove(startYear.IndexOf(" ")); } return startYear; } else { DateTime dtn = DateTime.Now; return dtn.Year.ToString(); } } private static string GenerateCopyright() { string startYear = StartYear(); string currentYear = CurrentYear(); if (startYear == currentYear) { return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; } else { string temp = ((AssemblyCopyrightAttribute)attributes[0]).Copyright; string start = temp.Remove(temp.IndexOf(startYear) - 1); string end = (temp.Remove(0, temp.IndexOf(" by"))); return String.Concat(start, " ", startYear, "-", currentYear, end); } } #endregion #region Program-Info /// /// Contains the name of the program file /// public static string ProgramName { set; get; } /// /// Contains the version of the program file /// public static string ProgramVersion { set; get; } /// /// Contains the copyright notice /// public static string Copyright { set; get; } private void SetProgramInfo() { // Name, Version und Copyright setzen ProgramName = programName; ProgramVersion = programVersion; Copyright = copyright; } #endregion #region Language Control Language CurrentLanguage { set; get; } private void SetLanguageToSystemLanguage() { if (Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName == "de") { SetLanguage(Language.German, CultureInfo.GetCultureInfo("de")); //germanToolStripMenuItem.Checked = true; //englishToolStripMenuItem.Checked = false; CurrentLanguage = Language.German; } else { SetLanguage(Language.English, CultureInfo.GetCultureInfo("en")); //germanToolStripMenuItem.Checked = false; //englishToolStripMenuItem.Checked = true; CurrentLanguage = Language.English; } } private void SetLanguage(Language language, CultureInfo languageShortForm) { CultureInfoDisplayItem cidi = (CultureInfoDisplayItem)new CultureInfoDisplayItem(language.ToString(), languageShortForm); FormLanguageSwitchSingleton.Instance.ChangeLanguage(this, cidi.CultureInfo); Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(languageShortForm.ToString()); ChangeLanguage(languageShortForm.ToString()); switch (language) { case Language.German: germanToolStripMenuItem.Checked = true; englishToolStripMenuItem.Checked = false; break; case Language.English: germanToolStripMenuItem.Checked = false; englishToolStripMenuItem.Checked = true; break; default: germanToolStripMenuItem.Checked = true; englishToolStripMenuItem.Checked = false; break; } } private void ChangeLanguage(string lang) { Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(lang); ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1)); resources.ApplyResources(this, "$this"); ApplyResources(resources, this.Controls); } private void ApplyResources(ComponentResourceManager resources, Control.ControlCollection ctls) { //all controls foreach (Control ctl in ctls) { resources.ApplyResources(ctl, ctl.Name); ApplyResources(resources, ctl.Controls); } //the menu bar and its items foreach (ToolStripItem item in menuStrip.Items) { if (item is ToolStripDropDownItem) { resources.ApplyResources(item, item.Name); foreach (ToolStripItem dropDownItem in ((ToolStripDropDownItem)item).DropDownItems) { resources.ApplyResources(dropDownItem, dropDownItem.Name); } } } } #endregion public Form1() { SetProgramInfo(); InitializeComponent(); // Systemsprache auslesen und Programmsprache setzen oder ... SetLanguageToSystemLanguage(); // Deutsch als Programmsprache setzen //SetLanguage("Deutsch", CultureInfo.GetCultureInfo("de")); //////////////////////////////////////////////////////////// //TODO: Ab hier kommt der Code } private void Form1_Load(object sender, EventArgs e) { textBoxDirectory.Text = String.Empty; textBoxExtension.Text = fileExtensionAll; textBoxSearchFor.Text = String.Empty; textBoxReplaceThrough.Text = String.Empty; } #region Surface #region Menu #region Action private void previewToolStripMenuItem_Click(object sender, EventArgs e) { Convert(true); } private void convertToolStripMenuItem_Click(object sender, EventArgs e) { Convert(false); } private void cancelToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } #endregion #region Language private void germanToolStripMenuItem_Click(object sender, EventArgs e) { SetLanguage(Language.German, CultureInfo.GetCultureInfo("de")); CurrentLanguage = Language.German; } private void englishToolStripMenuItem_Click_1(object sender, EventArgs e) { SetLanguage(Language.English, CultureInfo.GetCultureInfo("en")); CurrentLanguage = Language.English; } #endregion #region Help private void helpToolStripMenuItem1_Click(object sender, EventArgs e) { try { OpenHelpFile.Open(CurrentLanguage.ToString()); //Hier die Sprache übergeben in der die Hilfe aufgerufen werden soll } catch (FileNotFoundException) { MessageBox.Show(AppResources.msg001, AppResources.capt001, MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (CannotShowHelpFileException) { MessageBox.Show(AppResources.msg002, AppResources.capt001, MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (Exception) { MessageBox.Show(AppResources.msg003, AppResources.capt002, MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void aboutToolStripMenuItem_Click(object sender, EventArgs e) { //Zeigt das 'AboutBox' Fenster an var about = new Eugen.ESystem.Windows.Forms.AboutBox(ProgramName, ProgramVersion, Copyright, true, 530, 400); about.ShowDialog(); } #endregion #endregion #region UI #region Directory private void textBoxDirectory_TextChanged(object sender, EventArgs e) { SetDirectory(); } private void buttonDirectory_Click(object sender, EventArgs e) { SetDirectoryButton(); } #endregion #region Convert private void checkBoxFiles_CheckedChanged(object sender, EventArgs e) { if (checkBoxFiles.Checked) { ConvertFilesSelected(); //Wenn angewählt, dann Extensions aktiviert } else { ConvertFilesDeselected(); //Wenn abgewählt, dann Extensions deaktiviert } EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen } private void checkBoxDirectories_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen } #endregion #region Function private void radioButtonUpperCase_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); } private void radioButtonLowerCase_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); } private void radioButtonProperCase_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonProperCaseLast_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonReverseCharacter_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonUnderlineToSpace_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonSpaceToUnderline_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonHyphenToSpace_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonSpaceToHyphen_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeDeselected(); //Suchen und Ersetzen deaktivieren } private void radioButtonFreeReplace_CheckedChanged(object sender, EventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FunctionReplaceFreeSelected(); //Suchen und Ersetzen Aktivieren } #endregion #region Report private void checkBoxSave_CheckedChanged(object sender, EventArgs e) { checkBoxOverwrite.Enabled = !checkBoxOverwrite.Enabled; } #endregion #region Action Buttons private void buttonPreview_Click(object sender, EventArgs e) { Convert(true); } private void buttonConvert_Click(object sender, EventArgs e) { Convert(false); } private void buttonCancel_Click(object sender, EventArgs e) { this.Close(); } #endregion #endregion #endregion #region Global varibles const string defaultDir = @"C:\"; const string fileExtensionAll = ".*"; string directory = ""; private bool Preview { get; set; } private string Directory { get; set; } public bool DirectoryChecked { get; set; } public bool SubDirectoriesChecked { get; set; } public bool SaveChecked { get; set; } public bool OverwriteReportChecked { get; set; } #endregion #region Methodes private void Convert(bool preview) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen if (System.IO.Directory.Exists(textBoxDirectory.Text)) { Preview = preview; Directory = textBoxDirectory.Text; //Nur Starten wenn der BackgroundWorker nicht bereits läuft if (!backgroundWorker.IsBusy) { //Startet den BackgroundWorker backgroundWorker.RunWorkerAsync(); //Erlaubt das Reporten backgroundWorker.WorkerReportsProgress = true; } } else { //'Text kann nicht umgewandelt werden, weil ein ungültiges Verzeichnis angegeben wurde. Bitte ein gültiges Verzeichnis angeben.' MessageBox.Show(AppResources.msg004, AppResources.capt002, MessageBoxButtons.OK); } } private void SetDirectory() { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen directory = textBoxDirectory.Text; } private void SetDirectoryButton() { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen FolderBrowserDialog objDialog = new FolderBrowserDialog(); objDialog.Description = AppResources.dlg001; //'Wähle Verzeichnis' objDialog.SelectedPath = defaultDir; // Vorgabe Pfad (und danach der gewählte Pfad) DialogResult objResult = objDialog.ShowDialog(this); if (objResult == DialogResult.OK) { directory = objDialog.SelectedPath; } textBoxDirectory.Text = directory; } private void EmptyProgressbar() { progressBarStatus.Value = 0; //Fortschrittsanzeige auf Null setzen } private void ConvertFilesSelected() { labelExtension.Enabled = true; textBoxExtension.Enabled = true; } private void ConvertFilesDeselected() { labelExtension.Enabled = false; textBoxExtension.Enabled = false; textBoxExtension.Text = fileExtensionAll; } private void FunctionReplaceFreeSelected() { labelSearchFor.Enabled = true; textBoxSearchFor.Enabled = true; labelReplaceThrough.Enabled = true; textBoxReplaceThrough.Enabled = true; } private void FunctionReplaceFreeDeselected() { labelSearchFor.Enabled = false; textBoxSearchFor.Enabled = false; labelReplaceThrough.Enabled = false; textBoxReplaceThrough.Enabled = false; textBoxSearchFor.Text = string.Empty; textBoxReplaceThrough.Text = string.Empty; } private void ProtocolSaveSelected() { checkBoxOverwrite.Enabled = true; } private void ProtocolSaveDeselected() { checkBoxOverwrite.Enabled = false; } #endregion #region Background Worker private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { EmptyProgressbar(); //Fortschrittsanzeige auf Null setzen var af = new AllFiles(textBoxDirectory.Text, textBoxExtension.Text, checkBoxSubdirectories.Checked); var ad = new AllDirectories(textBoxDirectory.Text, checkBoxSubdirectories.Checked); List fileList = new List(); List directoryList = new List(); //Daten zählen int numberOfFiles = 0; int numberOfDirectories = 0; int numberOfDatas = 0; if (checkBoxFiles.Checked) { numberOfFiles = af.Lenght(); } if (checkBoxDirectories.Checked) { numberOfDirectories = ad.Lenght(); } numberOfDatas = numberOfFiles + numberOfDirectories; //TODO: //MessageBox.Show("Anzahl Dateien: " + numberOfFiles + "\n\rAnzahl Verzeichnisse: " + numberOfDirectories + "\n\rAnzahl Daten: " + numberOfDatas); //Dateiliste erstellen fileList = af.GetFileList(); //Verzeichnisliste erstellen directoryList = ad.GetDirectoryList(); } private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { //Ändert den Wert in der ProgressBar durch den BackgroundWorker if (e.ProgressPercentage < 0) { progressBarStatus.Value = 0; } else if (e.ProgressPercentage > 100) { progressBarStatus.Value = 100; } else { progressBarStatus.Value = e.ProgressPercentage; } } private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { //'Umbenennen erfolgreich abgeschlossen.' MessageBox.Show(AppResources.msg005, AppResources.capt003, MessageBoxButtons.OK); } #endregion } }