204 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			204 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.ComponentModel;
 | 
						|
using System.Data;
 | 
						|
using System.Drawing;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using System.Windows.Forms;
 | 
						|
using VEPROMS.CSLA.Library;
 | 
						|
 | 
						|
namespace VEPROMS
 | 
						|
{
 | 
						|
    // C2025-027 Annotation Type Filtering
 | 
						|
    public partial class dlgAnnotationsSelect : Form
 | 
						|
    {
 | 
						|
        public dlgAnnotationsSelect()
 | 
						|
        {
 | 
						|
            InitializeComponent();
 | 
						|
        }
 | 
						|
 | 
						|
        public dlgAnnotationsSelect(string userid)
 | 
						|
        {
 | 
						|
            InitializeComponent();
 | 
						|
            UserID = userid;
 | 
						|
        }
 | 
						|
 | 
						|
        private int _MyItemID;
 | 
						|
        public int MyItemID
 | 
						|
        {
 | 
						|
            get { return _MyItemID; }
 | 
						|
            set { _MyItemID = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        private string _UserID;
 | 
						|
        public string UserID
 | 
						|
        {
 | 
						|
            get { return _UserID; }
 | 
						|
            set { _UserID = value; }
 | 
						|
        }
 | 
						|
 | 
						|
        private void btnSelect_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            MoveSelectedItems(lstUnselected, lstSelected);
 | 
						|
        }
 | 
						|
 | 
						|
        // Move selected items to lstUnselected.
 | 
						|
        private void btnDeselect_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            MoveSelectedItems(lstSelected, lstUnselected);
 | 
						|
        }
 | 
						|
 | 
						|
        // Move selected items from one ListBox to another.
 | 
						|
        private void MoveSelectedItems(ListBox lstFrom, ListBox lstTo)
 | 
						|
        {
 | 
						|
            while (lstFrom.SelectedItems.Count > 0)
 | 
						|
            {
 | 
						|
                lstSelected.DisplayMember = "NameStr";
 | 
						|
                lstSelected.ValueMember = "TypeID";
 | 
						|
 | 
						|
                AnnotataionItem item = (AnnotataionItem)lstFrom.SelectedItems[0];
 | 
						|
                lstTo.Items.Add(new AnnotataionItem(item.NameStr, item.TypeID));
 | 
						|
                lstFrom.Items.Remove(item);
 | 
						|
            }
 | 
						|
            SetButtonsEditable();
 | 
						|
            btnUpdate.Enabled = true;
 | 
						|
        }
 | 
						|
 | 
						|
        // Move all items to lstSelected.
 | 
						|
        private void btnSelectAll_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            MoveAllItems(lstUnselected, lstSelected);
 | 
						|
            btnUpdate.Enabled = true;
 | 
						|
        }
 | 
						|
 | 
						|
        // Move all items to lstUnselected.
 | 
						|
        private void btnDeselectAll_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            MoveAllItems(lstSelected, lstUnselected);
 | 
						|
            btnUpdate.Enabled = true;
 | 
						|
        }
 | 
						|
 | 
						|
        // Move all items from one ListBox to another.
 | 
						|
        private void MoveAllItems(ListBox lstFrom, ListBox lstTo)
 | 
						|
        {
 | 
						|
            lstTo.Items.AddRange(lstFrom.Items);
 | 
						|
            lstFrom.Items.Clear();
 | 
						|
            SetButtonsEditable();
 | 
						|
            btnUpdate.Enabled = true;
 | 
						|
        }
 | 
						|
 | 
						|
        // Enable and disable buttons.
 | 
						|
        private void lst_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            SetButtonsEditable();
 | 
						|
        }
 | 
						|
        // Save selected list to DB.
 | 
						|
        private void btnUpdate_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            saveChanges();
 | 
						|
        }
 | 
						|
        public class AnnotataionItem
 | 
						|
        {
 | 
						|
            private string _NameStr;
 | 
						|
            private int _TypeID;
 | 
						|
 | 
						|
            public AnnotataionItem(string NameStr, int TypeID)
 | 
						|
            {
 | 
						|
                this._NameStr = NameStr;
 | 
						|
                this._TypeID = TypeID;
 | 
						|
            }
 | 
						|
            public string NameStr
 | 
						|
            {
 | 
						|
                get
 | 
						|
                {
 | 
						|
                    return _NameStr;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            public int TypeID
 | 
						|
            {
 | 
						|
                get
 | 
						|
                {
 | 
						|
                    return _TypeID;
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        // Enable and disable buttons.
 | 
						|
        private void SetButtonsEditable()
 | 
						|
        {
 | 
						|
            btnSelect.Enabled = (lstUnselected.SelectedItems.Count > 0);
 | 
						|
            btnSelectAll.Enabled = (lstUnselected.Items.Count > 0);
 | 
						|
            btnDeselect.Enabled = (lstSelected.SelectedItems.Count > 0);
 | 
						|
            btnDeselectAll.Enabled = (lstSelected.Items.Count > 0);
 | 
						|
        }
 | 
						|
 | 
						|
        private void DlgAnnotationsSelect_Load(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            lstUnselected.DisplayMember = "NameStr";
 | 
						|
            lstUnselected.ValueMember = "TypeID";
 | 
						|
            SetButtonsEditable();
 | 
						|
            DataTable AnnoType = AnnotationstypeSelections.GetAnnoTypes(UserID);
 | 
						|
            foreach (DataRow dr in AnnoType.Rows)
 | 
						|
            {
 | 
						|
                lstUnselected.Items.Add(new AnnotataionItem(dr["Name"].ToString(), (int)dr["TypeID"]));
 | 
						|
            }
 | 
						|
 | 
						|
            lstSelected.DisplayMember = "NameStr";
 | 
						|
            lstSelected.ValueMember = "TypeID";
 | 
						|
            DataTable lstSelectedTbl = VEPROMS.CSLA.Library.AnnotationstypeSelections.Retrieve(UserID);
 | 
						|
 | 
						|
            foreach (DataRow lstSelectedRow in lstSelectedTbl.Rows)
 | 
						|
            {
 | 
						|
                lstSelected.Items.Add(new AnnotataionItem(lstSelectedRow["Name"].ToString(), (int)lstSelectedRow["TypeID"]));
 | 
						|
            }
 | 
						|
            btnUpdate.Enabled = false;
 | 
						|
        }
 | 
						|
 | 
						|
        private void btnCancel_Click_1(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (btnUpdate.Enabled == true)
 | 
						|
            {
 | 
						|
                string message = "Changes have not yet been saved.  Do you want to save the changes prior to closing?";
 | 
						|
                string title = "Save Annotation Selections";
 | 
						|
                MessageBoxButtons buttons = MessageBoxButtons.YesNo;
 | 
						|
                DialogResult result = MessageBox.Show(message, title, buttons);
 | 
						|
                if (result == DialogResult.Yes)
 | 
						|
                {
 | 
						|
                    saveChanges();
 | 
						|
                    this.Close();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    this.Close();
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                this.Close();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        private DataTable coverToTable()
 | 
						|
        {
 | 
						|
            DataTable dt = new DataTable();
 | 
						|
            dt.Columns.Add("TypeID", typeof(Int32));
 | 
						|
 | 
						|
 | 
						|
            foreach (AnnotataionItem item in lstSelected.Items.OfType<AnnotataionItem>())
 | 
						|
            {
 | 
						|
                dt.Rows.Add(item.TypeID);
 | 
						|
            }
 | 
						|
            return dt;
 | 
						|
        }
 | 
						|
        private void saveChanges()
 | 
						|
        {
 | 
						|
            DataTable dt2 = coverToTable();
 | 
						|
            VEPROMS.CSLA.Library.AnnotationstypeSelections.Update(dt2, UserID);
 | 
						|
            btnUpdate.Enabled = false;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 |