This repository has been archived on 2022-09-30. You can view files and clone it, but cannot push or open issues or pull requests.
bookmark-manager/BookmarkEditForm.cs

225 lines
7.3 KiB
C#

using bzit.bomg.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using System;
using System.ComponentModel;
using System.Windows.Forms;
using Form = System.Windows.Forms.Form;
using Resources = bzit.bomg.Properties.Resources;
namespace bzit.bomg
{
public partial class BookmarkEditForm : Form
{
protected BackgroundWorker threadWorker1 = null;
protected BookmarkItemModel itemModel = null;
protected BookmarkTreeView treeView = null;
//protected TreeNode treeNode = null;
//public BookmarkEditForm(ref TreeNode node) : base()
public BookmarkEditForm(BookmarkTreeView treeview) : base()
{
InitializeComponent();
treeView = treeview;
//treeNode = node;
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
if (threadWorker1 == null)
{
threadWorker1 = new BackgroundWorker();
threadWorker1.WorkerReportsProgress = threadWorker1.WorkerSupportsCancellation = true;
threadWorker1.DoWork += threadWorker1_DoWork;
threadWorker1.RunWorkerCompleted += threadWorker1_RunWorkerCompleted;
}
}
protected void threadWorker1_DoWork(object sender, DoWorkEventArgs e)
{
if (itemModel == null)
{
itemModel = new BookmarkItemModel();
}
itemModel.SiteAddress = textBox2.Text;
bool rv = itemModel.Update();
if (rv)
{
ThreadHelper.SetText(textBox1, itemModel.SiteName);
ThreadHelper.SetText(textBox2, itemModel.SiteAddress);
ThreadHelper.SetText(memoBox1, itemModel.SiteDescription);
ThreadHelper.SetImage(pictureBox2, itemModel.RetrieveFavicon());
}
}
protected void threadWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
this.IsBusy = false;
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
if (treeView.SNode.GetNodeType() == BookmarkTreeView.NodeType.Page)
{
BookmarkItemViewModel bookmarkItem = (BookmarkItemViewModel)treeView.SelectedNode.Tag;
if (bookmarkItem != null)
{
if (itemModel == null)
{
itemModel = new BookmarkItemModel();
}
updateViewModel(bookmarkItem);
}
}
//if (parentNode.Tag != null)
//{
// if (parentNode.Tag is BookmarkItem)
// {
// bookmarkItem = (BookmarkItem)parentNode.Tag;
// tbxName.Text = bookmarkItem.GetName();
// tbxAddress.Text = bookmarkItem.SiteAddress;
// tbxDescription.Text = bookmarkItem.Description;
// if (parentNode.TreeView.ImageList != null)
// {
// if (parentNode.ImageIndex >= 0)
// {
// pbxIcon.Image = parentNode.TreeView.ImageList.Images[parentNode.ImageIndex];
// }
// else
// {
// pbxIcon.Image = parentNode.TreeView.ImageList.Images[parentNode.ImageKey];
// }
// }
// }
//}
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (this.IsBusy)
{
e.Cancel = true;
}
}
protected bool IsBusy
{
get => threadWorker1.IsBusy;
set
{
textBox1.Enabled = textBox2.Enabled = memoBox1.Enabled = !value;
pictureBox1.Image = (value) ? Resources.aniZomq2x32 : null;
}
}
protected void updateViewModel(BookmarkItemViewModel viewModel)
{
itemModel.SiteName = viewModel.SiteName?.Trim();
itemModel.SiteAddress = viewModel.SiteAddress?.Trim();
itemModel.SiteDescription = viewModel.SiteDescription?.Trim();
itemModel.FaviconAddress = viewModel.FaviconAddress?.Trim();
textBox1.Text = itemModel.SiteName;
textBox2.Text = itemModel.SiteAddress;
memoBox1.Text = itemModel.SiteDescription;
pictureBox2.Image = treeView.ImageList.Images[treeView.SelectedNode.ImageIndex];
}
private void button1_Click(object sender, EventArgs e)
{
if (this.IsBusy)
{
return;
}
if (string.IsNullOrWhiteSpace(textBox2.Text))
{
return;
}
this.IsBusy = true;
threadWorker1.RunWorkerAsync();
}
private void button2_Click(object sender, EventArgs e)
{
if (this.IsBusy)
{
return;
}
if (itemModel == null)
{
itemModel = new BookmarkItemModel();
}
itemModel.SiteName = textBox1.Text?.Trim();
itemModel.SiteAddress = textBox2.Text?.Trim();
itemModel.SiteDescription = memoBox1.Text?.Trim();
treeView?.AddOrUpdateItem_OnSelectedNode(itemModel.ToViewModel());
this.Close();
}
// private void btnSave_Click(object sender, EventArgs e)
// {
// if (this.IsBusy)
// {
// return;
// }
// if (itemModel == null)
// {
// itemModel = new BookmarkItemModel();
// }
// itemModel.SiteName = textBox1.Text?.Trim();
// itemModel.SiteAddress = textBox2.Text?.Trim();
// itemModel.SiteDescription = memoBox1.Text?.Trim();
// treeView?.AddOrUpdateItem_OnSelectedNode(itemModel.ToViewModel());
//// if (bookmarkItem == null)
//// {
//// bookmarkItem = new BookmarkItem();
//// }
//// bookmarkItem.ChangeName(textBox1.Text.Trim());
//// bookmarkItem.SiteAddress = textBox2.Text.Trim();
//// bookmarkItem.Description = memoBox1.Text.Trim();
//// parentNode.Text = textBox1.Text.Trim();
//////// parentNode.ImageIndex = parentNode.SelectedImageIndex = 3;
//// parentNode.ToolTipText = string.Concat(bookmarkItem.SiteAddress, Environment.NewLine, bookmarkItem.Description).Trim();
//// parentNode.Tag = bookmarkItem;
//// BookmarkTreeView bookmarkTreeView = (BookmarkTreeView)parentNode.TreeView;
//// if (bookmarkTreeView != null)
//// {
//// //##parentNode.ImageIndex = parentNode.SelectedImageIndex = bookmarkTreeView.AddToIconList(bookmarkItem);
//// }
// this.Close();
// }
}
}