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 }