INT63DC_2C/INT63DC_2C/Forms/FormDataBackup.cs

363 lines
15 KiB
C#

using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using SmartX;
using INT63DC_ImageDll;
using INT63DC_2C.DialogForms;
namespace INT63DC_2C.Forms
{
public partial class FormDataBackup : Form
{
#region Field
private FormMain m_ParentForm;
private DatabackupFileInfo2 SelectedFiles;
#endregion
#region Constructor
public FormDataBackup(FormMain parent)
{
InitializeComponent();
this.ParentForm = parent;
}
#endregion
#region Property
public FormMain ParentForm
{
get { return this.m_ParentForm; }
private set { this.m_ParentForm = value; }
}
#endregion
#region Method
private void InitializeDesign()
{
ImageDll images = new ImageDll();
switch (this.ParentForm.SystemConfig.Language)
{
case DataStore.E_LanguageID.Korean:
break;
case DataStore.E_LanguageID.English:
#region English
this.labelTitle.Text = "Data backup";
this.labelTitleBackupEnable.Text = "Enable backup";
this.labelTitleDeleteAfterBackup.Text = "Delete after backup";
this.labelTitleSavedFiles.Text = "Saved files";
this.labelTitleFilesToBackup.Text = "Files to Back Up";
this.buttonBackup.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engBackupDisable));
this.buttonBackup.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engBackupDown));
this.buttonBackup.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engBackupUp));
this.buttonBack.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engBackDisable));
this.buttonBack.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engBackDown));
this.buttonBack.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.engBackUp));
#endregion
break;
case DataStore.E_LanguageID.Chinese:
#region Chinese
this.labelTitle.Text = "数据备份";
this.labelTitleBackupEnable.Text = "启用备份";
this.labelTitleDeleteAfterBackup.Text = "备份后删除";
this.labelTitleSavedFiles.Text = "已保存文件";
this.labelTitleFilesToBackup.Text = "待备份文件";
this.buttonBackup.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackupDisable));
this.buttonBackup.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackupDown));
this.buttonBackup.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackupUp));
this.buttonBack.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackDisable));
this.buttonBack.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackDown));
this.buttonBack.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.chnBackUp));
#endregion
break;
case DataStore.E_LanguageID.Czech:
#region Czech
this.labelTitle.Text = "Záloha dat";
this.labelTitleBackupEnable.Text = "Povolit zálohování";
this.labelTitleDeleteAfterBackup.Text = "Odstranit po zálohování";
this.labelTitleSavedFiles.Text = "Soubor";
this.labelTitleFilesToBackup.Text = "Soubory k zálohování";
this.buttonBackup.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.czeBackupDisable));
this.buttonBackup.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.czeBackupDown));
this.buttonBackup.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.czeBackupUp));
this.buttonBack.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.czeBackDisable));
this.buttonBack.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.czeBackDown));
this.buttonBack.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.czeBackUp));
#endregion
break;
case DataStore.E_LanguageID.German:
#region German
this.labelTitle.Text = "Datensicherung";
this.labelTitleBackupEnable.Text = "Sicherung aktivieren";
this.labelTitleDeleteAfterBackup.Text = "Nach der Sicherung löschen";
this.labelTitleSavedFiles.Text = "Datei";
this.labelTitleFilesToBackup.Text = "Zu sichernde Dateien";
this.buttonBackup.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.gerBackupDisable));
this.buttonBackup.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.gerBackupDown));
this.buttonBackup.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.gerBackupUp));
this.buttonBack.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.gerBackDisable));
this.buttonBack.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.gerBackDown));
this.buttonBack.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.gerBackUp));
#endregion
break;
case DataStore.E_LanguageID.Japanese:
#region Japanese
this.labelTitle.Text = "デㅡタバックアップ";
this.labelTitleBackupEnable.Text = "バックアップを有効にする";
this.labelTitleDeleteAfterBackup.Text = "バックアップ後に削除";
this.labelTitleSavedFiles.Text = "ファイル";
this.labelTitleFilesToBackup.Text = "バックアップ待ち";
this.buttonBackup.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.jpnBackupDisable));
this.buttonBackup.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.jpnBackupDown));
this.buttonBackup.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.jpnBackupUp));
this.buttonBack.DisableImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.jpnBackDisable));
this.buttonBack.DownImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.jpnBackDown));
this.buttonBack.UpImage = new Bitmap(images.GetImage(ImageDll.ButtonImages.jpnBackUp));
#endregion
break;
default:
break;
}
}
private void DefaultSetting()
{
this.SelectedFiles = new DatabackupFileInfo2();
}
private void UpdateFileList()
{
this.listBoxDataList.ClearAll();
this.listBoxDataListCHK.ClearAll();
this.listBoxBackupList.ClearAll();
this.SelectedFiles.Clear();
DirectoryInfo dir = new DirectoryInfo(this.ParentForm.PathDataBackupFolder);
bool directoryCheck = dir.Exists;
// 폴더 체크
if (directoryCheck == false)
dir.Create();
FileInfo[] files = dir.GetFiles();
// ListBox
if (files.Length != 0)
{
foreach (FileInfo file in files)
{
this.listBoxDataList.AddItem(file.Name);
this.listBoxDataListCHK.AddItem("");
}
}
this.labelFileCount.Text = files.Length.ToString();
this.labelBackupFileCount.Text = this.listBoxBackupList.ItemCount.ToString();
}
public void DisplayRefresh()
{
this.ParentForm.SystemConfig.CurrentForm = DataStore.FormStore.FormDataBackup;
// DataBackup Enable
if (this.ParentForm.SystemConfig.IsDataBackup == true)
this.buttonDataBackupEnable.ButtonDown();
else
this.buttonDataBackupEnable.ButtonUp();
// Delete After Backup
if (this.ParentForm.SystemConfig.IsDeleteAfterBackup == true)
this.buttonDeleteAfterBackup.ButtonDown();
else
this.buttonDeleteAfterBackup.ButtonUp();
// Update File List
this.UpdateFileList();
}
#endregion
#region Override Member
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.InitializeDesign();
this.DefaultSetting();
}
#endregion
#region Event Handler
private void buttonBackup_Click(object sender, EventArgs e)
{
int count = 0;
SmartSplash splash;
string srcFilePath = "", dstFilePath1 = "", dstFilePath2 = ""; ;
splash = new SmartSplash();
splash.CenterPosition = true;
splash.AnimationInterval = 100;
splash.LoadingImagePathname = "SmartLoading4";
count = this.listBoxBackupList.ItemCount;
if (count == 0)
{
DialogFormMessage msg = new DialogFormMessage(4, this.ParentForm.SystemConfig.Language);
msg.ShowDialog();
return;
}
splash.Start();
try
{
DirectoryInfo dinfo = new DirectoryInfo("하드 디스크\\");
dinfo.GetDirectories();
}
catch
{
DialogFormMessage msg = new DialogFormMessage(5, this.ParentForm.SystemConfig.Language);
splash.Finish();
msg.ShowDialog();
return;
}
try
{
dstFilePath1 = string.Format("하드 디스크\\{0}\\{1:yyyMMdd_HHmmss}\\", this.ParentForm.SystemConfig.SerialNumber, DateTime.Now);
DirectoryInfo dir = new DirectoryInfo(dstFilePath1);
if (dir.Exists == false)
dir.Create();
for (int i = 0; i < count; i++)
{
srcFilePath = string.Format("{0}{1}", this.ParentForm.PathDataBackupFolder, this.SelectedFiles.Files[i].Name);
dstFilePath2 = string.Format("{0}{1}", dstFilePath1, this.SelectedFiles.Files[i].Name);
File.Copy(srcFilePath, dstFilePath2, true);
if (this.ParentForm.SystemConfig.IsDeleteAfterBackup == true)
File.Delete(srcFilePath);
}
this.UpdateFileList();
this.SelectedFiles.Clear();
this.listBoxBackupList.ClearAll();
this.labelFileCount.Text = this.listBoxDataList.ItemCount.ToString();
this.labelBackupFileCount.Text = this.listBoxBackupList.ItemCount.ToString();
DialogFormMessage msg = new DialogFormMessage(count.ToString(), this.ParentForm.SystemConfig.Language, "Data backup");
splash.Finish();
msg.ShowDialog();
}
catch
{
DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.SystemConfig.Language);
splash.Finish();
msg.ShowDialog();
return;
}
}
private void buttonBack_Click(object sender, EventArgs e)
{
this.ParentForm.ChildFormMenu.DisplayRefresh();
((FormMain)(Owner)).smartForm.Show((int)DataStore.FormStore.FormMenu);
}
private void buttonFileAdd_Click(object sender, EventArgs e)
{
if (this.listBoxDataListCHK.Items[this.listBoxDataListCHK.SelectItemIndex].ToString() != "V")
{
if (this.listBoxBackupList.ItemCount < 10)
{
int index = this.listBoxDataList.SelectItemIndex;
string name = this.listBoxDataList.Items[index].ToString();
this.SelectedFiles.Add(index, name);
this.listBoxBackupList.AddItem(name);
this.listBoxDataListCHK.Items[index] = "V";
this.listBoxDataListCHK.Refresh();
}
else
{
DialogFormMessage msg = new DialogFormMessage(12, this.ParentForm.SystemConfig.Language);
msg.ShowDialog();
}
this.labelBackupFileCount.Text = this.listBoxBackupList.ItemCount.ToString();
}
}
private void buttonFileRemove_Click(object sender, EventArgs e)
{
if (this.listBoxBackupList.SelectItemIndex != -1)
{
string name = this.listBoxBackupList.Items[this.listBoxBackupList.SelectItemIndex].ToString();
int fileIndex = this.SelectedFiles.GetIndex(name);
int listboxIndex = this.listBoxBackupList.SelectItemIndex;
this.listBoxDataListCHK.Items[fileIndex] = "";
this.listBoxDataListCHK.Refresh();
this.listBoxBackupList.RemoveItem(listboxIndex);
this.SelectedFiles.RemoveAt(name);
this.labelBackupFileCount.Text = this.listBoxBackupList.ItemCount.ToString();
}
}
private void buttonScrollUp_Click(object sender, EventArgs e)
{
this.listBoxDataList.ScrollUp(100);
this.listBoxDataListCHK.ScrollUp(100);
}
private void buttonScrollDown_Click(object sender, EventArgs e)
{
this.listBoxDataList.ScrollDown(100);
this.listBoxDataListCHK.ScrollDown(100);
}
private void buttonDataBackupEnable_Click(object sender, EventArgs e)
{
if (this.buttonDataBackupEnable.ButtonStatus == SmartButton.BUTSTATUS.DOWN)
this.ParentForm.SystemConfig.IsDataBackup = true;
else
this.ParentForm.SystemConfig.IsDataBackup = false;
this.ParentForm.SaveSystemConfigurationFile1(this.ParentForm.SystemConfig);
}
private void buttonDeleteAfterBackup_Click(object sender, EventArgs e)
{
if (this.buttonDeleteAfterBackup.ButtonStatus == SmartButton.BUTSTATUS.DOWN)
this.ParentForm.SystemConfig.IsDeleteAfterBackup = true;
else
this.ParentForm.SystemConfig.IsDeleteAfterBackup = false;
this.ParentForm.SaveSystemConfigurationFile1(this.ParentForm.SystemConfig);
}
private void listBoxDataList_SelectedIndexChanged(object sender, EventArgs e)
{
this.listBoxDataListCHK.SelectItemIndex = this.listBoxDataList.SelectItemIndex;
}
private void listBoxDataListCHK_SelectedIndexChanged(object sender, EventArgs e)
{
this.listBoxDataList.SelectItemIndex = this.listBoxDataListCHK.SelectItemIndex;
}
#endregion
}
}