using System; using System.Windows.Forms; using Com.Piwigo.Lib.DTO; using System.Collections.Generic; using Com.Piwigo.Uploader.DTO; using Com.Piwigo.Uploader.Service; using Com.Piwigo.Uploader.Helper; using System.IO; namespace Com.Piwigo.Uploader { public partial class MainForm : Form { public MainForm() { InitializeComponent(); modelManagerBaseBindingSource.DataSource = ModelManager.Instance; txtOptionAuthor.DataBindings.Add("Text", ModelManager.Instance.UploadOption, "Author", false, DataSourceUpdateMode.OnPropertyChanged); cbOptionLevel.DataBindings.Add("SelectedValue", ModelManager.Instance.UploadOption, "ConfidentialLevel", false, DataSourceUpdateMode.OnPropertyChanged); txtAlbName.DataBindings.Add("Text", ModelManager.Instance.AlbumEdited, "Name", false, DataSourceUpdateMode.OnPropertyChanged); txtAlbComment.DataBindings.Add("Text", ModelManager.Instance.AlbumEdited, "MessageInfo", false, DataSourceUpdateMode.OnPropertyChanged); picshowImg.DataBindings.Add("ImageLocation", ModelManager.Instance.ImageEdited, "LocalFile", false, DataSourceUpdateMode.Never); txtImgName.DataBindings.Add("Text", ModelManager.Instance.ImageEdited, "Name", false, DataSourceUpdateMode.OnPropertyChanged); txtImgComment.DataBindings.Add("Text", ModelManager.Instance.ImageEdited, "AuthorComment", false, DataSourceUpdateMode.OnPropertyChanged); txtImgAuthor.DataBindings.Add("Text", ModelManager.Instance.ImageEdited, "Author", false, DataSourceUpdateMode.OnPropertyChanged); cbImgLevelEnum.DataBindings.Add("SelectedValue", ModelManager.Instance.ImageEdited, "ConfidentialLevel", false, DataSourceUpdateMode.OnPropertyChanged); } private void MainForm_Load(object sender, EventArgs e) { string[] args = Environment.GetCommandLineArgs(); foreach (string arg in args) { if (Directory.Exists(arg)) { try { ModelManager.Instance.directoryName = arg; ServiceFactory.GetByType().runService(); } catch (ApplicationException aex) { MainAppHelper.showdErrorMessageBox(aex); } } } MainAppHelper.BuildAlbumTree(AlbumsTV, ModelManager.Instance.lstAlbumLocaux); } private void Connect_Click(object sender, EventArgs e) { try { String strUri= tbServer.Text.Replace("\\","/"); if (!strUri.StartsWith("http")) { strUri = "http://" + strUri; } if (!strUri.EndsWith("/ws.php")) { if (!strUri.EndsWith("/")) { strUri += "/"; } strUri += "ws.php"; } Uri uriServeur; if (Uri.TryCreate(strUri, UriKind.Absolute,out uriServeur)) { ModelManager.Instance.serveurName = uriServeur; ModelManager.Instance.userName = tbUser.Text; ModelManager.Instance.password = tbPassword.Text; ServiceFactory.GetByType().runService(); } } catch (ApplicationException aex) { MainAppHelper.showdErrorMessageBox(aex); } } private void Telecharger_Click(object sender, EventArgs e) { try { ServiceFactory.GetByType().runService(); } catch (ApplicationException aex) { MainAppHelper.showdErrorMessageBox(aex); } } private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { try { if (ModelManager.Instance.isConnected) { ServiceFactory.GetByType().runService(); } } catch (ApplicationException aex) { MainAppHelper.showdErrorMessageBox(aex); } } private void AlbumsTV_AfterSelect(object sender, TreeViewEventArgs e) { ModelManager.Instance.SelectedNode = AlbumsTV.SelectedNode; if (e.Node.Tag is LocalAlbum) { LocalAlbum alb = (LocalAlbum)e.Node.Tag; ModelManager.Instance.AlbumEdited.Name = alb.Name; ModelManager.Instance.AlbumEdited.Id = alb.Id; ModelManager.Instance.AlbumEdited.LocalDir = alb.LocalDir; ModelManager.Instance.AlbumEdited.MessageInfo = alb.MessageInfo; ModelManager.Instance.ImageEdited.Name = String.Empty; ModelManager.Instance.ImageEdited.Id = null; ModelManager.Instance.ImageEdited.Author = String.Empty; ModelManager.Instance.ImageEdited.AuthorComment = String.Empty; ModelManager.Instance.ImageEdited.ConfidentialLevel = 0; ModelManager.Instance.ImageEdited.LocalFile = String.Empty; ; ModelManager.Instance.ImageEdited.LstTags = null; ModelManager.Instance.ImageEdited.UpperCatId = 0; tabControl1.SelectedTab = tabPageAlbum; tabControl1.Enabled = true; } else if (e.Node.Tag is LocalImage) { LocalImage img = (LocalImage)e.Node.Tag; ModelManager.Instance.ImageEdited.Name = img.Name; ModelManager.Instance.ImageEdited.Id = img.Id; ModelManager.Instance.ImageEdited.Author = img.Author; ModelManager.Instance.ImageEdited.AuthorComment = img.AuthorComment; ModelManager.Instance.ImageEdited.ConfidentialLevel = img.ConfidentialLevel; ModelManager.Instance.ImageEdited.LocalFile = img.LocalFile; ModelManager.Instance.ImageEdited.LstTags = img.LstTags; ModelManager.Instance.ImageEdited.UpperCatId = img.UpperCatId; if ((e.Node.Parent != null) && (e.Node.Parent.Tag is LocalAlbum)) { LocalAlbum alb = (LocalAlbum)e.Node.Parent.Tag; if (ModelManager.Instance.AlbumEdited.LocalDir != alb.LocalDir) { ModelManager.Instance.AlbumEdited.Name = alb.Name; ModelManager.Instance.AlbumEdited.Id = alb.Id; ModelManager.Instance.AlbumEdited.LocalDir = alb.LocalDir; ModelManager.Instance.AlbumEdited.MessageInfo = alb.MessageInfo; } } tabControl1.SelectedTab = tabPageImg; tabControl1.Enabled = true; } else { tabControl1.Enabled = false; } System.Diagnostics.Debug.Print(label5.Visible.ToString()); } private void btnAlbumEditCancel_Click(object sender, EventArgs e) { if (AlbumsTV.SelectedNode.Tag is LocalImage) { LocalImage img = (LocalImage)AlbumsTV.SelectedNode.Tag; if (ModelManager.Instance.ImageEdited.LocalFile == img.LocalFile) { ModelManager.Instance.ImageEdited.Name = img.Name; ModelManager.Instance.ImageEdited.Id = img.Id; ModelManager.Instance.ImageEdited.Author = img.Author; ModelManager.Instance.ImageEdited.AuthorComment = img.AuthorComment; ModelManager.Instance.ImageEdited.ConfidentialLevel = img.ConfidentialLevel; ModelManager.Instance.ImageEdited.LocalFile = img.LocalFile; ModelManager.Instance.ImageEdited.LstTags = img.LstTags; ModelManager.Instance.ImageEdited.UpperCatId = img.UpperCatId; } } else { tabControl1.Enabled = false; } } private void btnImgEditCancel_Click(object sender, EventArgs e) { if (AlbumsTV.SelectedNode.Tag is LocalImage) { LocalImage img = (LocalImage)AlbumsTV.SelectedNode.Tag; if (ModelManager.Instance.ImageEdited.LocalFile == img.LocalFile) { img.Name = ModelManager.Instance.ImageEdited.Name ; img.Id = ModelManager.Instance.ImageEdited.Id ; img.Author = ModelManager.Instance.ImageEdited.Author ; img.AuthorComment = ModelManager.Instance.ImageEdited.AuthorComment ; img.ConfidentialLevel = ModelManager.Instance.ImageEdited.ConfidentialLevel ; img.LocalFile = ModelManager.Instance.ImageEdited.LocalFile ; img.LstTags = ModelManager.Instance.ImageEdited.LstTags ; img.UpperCatId = ModelManager.Instance.ImageEdited.UpperCatId ; } } else { tabControl1.Enabled = false; } } private void btnImgEditOk_Click(object sender, EventArgs e) { if (AlbumsTV.SelectedNode.Tag is LocalAlbum) { LocalAlbum alb = (LocalAlbum)AlbumsTV.SelectedNode.Tag; if (ModelManager.Instance.AlbumEdited.LocalDir == alb.LocalDir) { alb.Name = ModelManager.Instance.AlbumEdited.Name; alb.MessageInfo = ModelManager.Instance.AlbumEdited.MessageInfo; AlbumsTV.SelectedNode.Text = alb.Name; } } else { tabControl1.Enabled = false; } } private void AlbumsTV_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } } private void AlbumsTV_DragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] filePaths = (string[])(e.Data.GetData(DataFormats.FileDrop)); foreach (string fileLoc in filePaths) { if (File.Exists(fileLoc) || Directory.Exists(fileLoc) ) { ModelManager.Instance.directoryName = fileLoc; ServiceFactory.GetByType().runService(); } } MainAppHelper.BuildAlbumTree(AlbumsTV, ModelManager.Instance.lstAlbumLocaux); } } private void btnAlbumAjout_Click(object sender, EventArgs e) { String rootPath = String.Empty; if (AlbumsTV.SelectedNode.Tag is LocalImage) { LocalImage img = (LocalImage)AlbumsTV.SelectedNode.Tag; } else if (AlbumsTV.SelectedNode.Tag is LocalAlbum) { LocalAlbum alb = (LocalAlbum)AlbumsTV.SelectedNode.Tag; } folderBrowserDialog1.RootFolder = Environment.SpecialFolder.MyComputer; folderBrowserDialog1.SelectedPath = rootPath; folderBrowserDialog1.ShowNewFolderButton = false; if (folderBrowserDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK) { ModelManager.Instance.directoryName = folderBrowserDialog1.SelectedPath; ServiceFactory.GetByType().runService(); MainAppHelper.BuildAlbumTree(AlbumsTV, ModelManager.Instance.lstAlbumLocaux); } } private void btnAlbumEditOk_Click(object sender, EventArgs e) { if (AlbumsTV.SelectedNode.Tag is LocalAlbum) { LocalAlbum alb = (LocalAlbum)AlbumsTV.SelectedNode.Tag; if (ModelManager.Instance.AlbumEdited.LocalDir == alb.LocalDir) { alb.Name = ModelManager.Instance.AlbumEdited.Name; alb.MessageInfo = ModelManager.Instance.AlbumEdited.MessageInfo; AlbumsTV.SelectedNode.Text = alb.Name; } } else { tabControl1.Enabled = false; } } private void btnAlbDelete_Click(object sender, EventArgs e) { if (AlbumsTV.SelectedNode.Tag is LocalAlbum) { LocalAlbum alb = (LocalAlbum)AlbumsTV.SelectedNode.Tag; if (ModelManager.Instance.AlbumEdited.LocalDir == alb.LocalDir) { LocalDataHelper.DeleteInTree(alb); TreeNode node = AlbumsTV.SelectedNode; AlbumsTV.SelectedNode = AlbumsTV.SelectedNode.NextVisibleNode; node.Tag = null; node.Remove(); } } else { tabControl1.Enabled = false; } } private void AlbumsTV_MouseDown(object sender, MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Right) { TreeViewCMenu.Show(AlbumsTV.PointToScreen(e.Location)); } } private void TreeViewCMenu_Click(object sender, EventArgs e) { //ContextMenuStrip cms = (ContextMenuStrip)sender; //cms. MainAppHelper.BuildAlbumTree(AlbumsTV, ModelManager.Instance.lstAlbumLocaux); } private void btnImgDelete_Click(object sender, EventArgs e) { } private void btnImgAdd_Click(object sender, EventArgs e) { } } }