Reference.cs

00001 using System;
00002 using System.Collections.Generic;
00003 using System.ComponentModel;
00004 using System.Data;
00005 using System.Drawing;
00006 using System.Text;
00007 using System.Windows.Forms;
00008 using Shared;
00009 
00010 namespace Client
00011 {
00015     public partial class Reference : Form
00016     {
00018         private Dictionary<int, string> items = new Dictionary<int, string>();
00020         private List<int> IDList = new List<int>();
00022         public int ID = -1;
00023 
00030         public Reference(ISearchable[] allItems, ReferenceInfo[] References, int projectID)
00031         {
00032             bool found = false;
00033             InitializeComponent();
00034 
00035             this.Text = "Add Reference...";
00036 
00037             if (allItems.Length != 0 && allItems[0] is LiteratureInfo)
00038             {
00039                 foreach (LiteratureInfo item in allItems)
00040                 {
00041                     foreach (ReferenceInfo Reference in References)
00042                     {
00043                         if (projectID == Reference.project && Reference.literature == item.id)
00044                             found = true;
00045                     }
00046 
00047                     if (!found)
00048                     {
00049                         items.Add(item.id, item.Title);
00050                         listReferences.Items.Add(item.Title);
00051                         IDList.Add(item.id);
00052                     }
00053                     found = false;
00054                 }
00055             }
00056         }
00057 
00064         public Reference(ISearchable[] allItems, ReviewInfo[] Reviews, int projectID)
00065         {
00066             bool found = false;
00067             InitializeComponent();
00068 
00069             this.Text = "Add Review...";
00070 
00071             if (allItems.Length != 0 && allItems[0] is LiteratureInfo)
00072             {
00073                 foreach (LiteratureInfo item in allItems)
00074                 {
00075                     foreach (ReviewInfo Review in Reviews)
00076                     {
00077                         if (projectID == Review.project && Review.literature == item.id)
00078                             found = true;
00079                     }
00080 
00081                     if (!found)
00082                     {
00083                         items.Add(item.id, item.Title);
00084                         listReferences.Items.Add(item.Title);
00085                         IDList.Add(item.id);
00086                     }
00087                     found = false;
00088                 }
00089             }
00090         }
00091 
00092 
00097         public Reference(ISearchable[] allItems)
00098         {
00099             InitializeComponent();
00100 
00101             if (allItems.Length != 0 && allItems[0] is ProjectInfo)
00102             {
00103                 foreach (ProjectInfo item in allItems)
00104                 {
00105                     items.Add(item.id, item.title);
00106                     listReferences.Items.Add(item.title);
00107                     IDList.Add(item.id);
00108                 }
00109             }
00110             else if (allItems.Length != 0 && allItems[0] is LiteratureInfo)
00111             {
00112                 foreach (LiteratureInfo item in allItems)
00113                 {
00114                     items.Add(item.id, item.title);
00115                     listReferences.Items.Add(item.title);
00116                     IDList.Add(item.id);
00117                 }
00118             }
00119         }
00120 
00125         private void FilterListbox(string filter)
00126         {
00127             listReferences.Items.Clear();
00128             IDList.Clear();
00129             foreach (KeyValuePair<int,string> item in items)
00130             {
00131                 if (item.Value.Contains(filter))
00132                 {
00133                     listReferences.Items.Add(item.Value);
00134                     IDList.Add(item.Key);
00135                 }
00136             }
00137         }
00138 
00144         private void txtFilter_TextChanged(object sender, EventArgs e)
00145         {
00146             if (txtFilter.Text.Length > 0 && txtFilter.Text != "Filter...")
00147                 FilterListbox(txtFilter.Text);
00148             else
00149             {
00150                 listReferences.Items.Clear();
00151                 IDList.Clear();
00152                 foreach (KeyValuePair<int, string> item in items)
00153                 {
00154                     listReferences.Items.Add(item.Value);
00155                     IDList.Add(item.Key);
00156                 }
00157             }
00158         }
00159 
00165         private void txtFilter_Enter(object sender, EventArgs e)
00166         {
00167             if (txtFilter.Text == "Filter...")
00168             {
00169                 txtFilter.Text = "";
00170                 txtFilter.ForeColor = System.Drawing.SystemColors.ControlText;
00171             }
00172         }
00173 
00179         private void txtFilter_Leave(object sender, EventArgs e)
00180         {
00181             if (txtFilter.Text.Trim() == "")
00182             {
00183                 txtFilter.Text = "Filter...";
00184                 txtFilter.ForeColor = System.Drawing.SystemColors.GrayText;
00185             }
00186         }
00187 
00193         private void btnCancel_Click(object sender, EventArgs e)
00194         {
00195             ID = -1;
00196             this.Close();
00197         }
00198 
00204         private void btnOK_Click(object sender, EventArgs e)
00205         {
00206             this.Close();
00207         }
00208 
00214         private void listReferences_SelectedIndexChanged(object sender, EventArgs e)
00215         {
00216             if (listReferences.SelectedIndex > -1)
00217                 ID = IDList[listReferences.SelectedIndex];
00218             else
00219                 ID = -1;
00220         }
00221 
00227         private void listReferences_DoubleClick(object sender, EventArgs e)
00228         {
00229             if (listReferences.SelectedIndex > -1)
00230                 ID = IDList[listReferences.SelectedIndex];
00231             else
00232                 ID = -1;
00233 
00234             this.Close();
00235         }
00236 
00237         private void btoAddLit_Click(object sender, EventArgs e)
00238         {
00239             ID = -2;
00240             this.Close();
00241         }
00242 
00243         private void Reference_Shown(object sender, EventArgs e)
00244         {
00245             listReferences.Focus();
00246         }
00247     }
00248 }

Generated on Thu Dec 21 06:21:55 2006 for SCRAML by  doxygen 1.5.1-p1