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;
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 |