draft of the save file

This commit is contained in:
Abdel
2015-09-12 22:52:29 -04:00
parent ffb53ccaf8
commit 46b80269f2
7 changed files with 72 additions and 6 deletions

View File

@@ -137,13 +137,17 @@ namespace VCFEditor
return stream;
}
public List<Contact> FilterContacts(string p)
public List<Contact> FilterContacts(string filter)
{
List<Contact> Filtered = new List<Contact>(Contacts);
Filtered.RemoveAll(i => !(i.Name.IndexOf(p, StringComparison.OrdinalIgnoreCase) >= 0));
Filtered.RemoveAll(i => !(i.Name.IndexOf(filter, StringComparison.OrdinalIgnoreCase) >= 0));
return Filtered;
}
public void SaveContactRawContent(int index, string rawContent )
{
if (index > -1)
_contacts[index].RawContent = new StringBuilder(rawContent);
}
}
}

View File

@@ -18,7 +18,7 @@ namespace VCFEditor
void SaveContacts(string fileName);
vCard ParseContactAt(int index);
void DeleteContact();
List<Contact> FilterContacts(string p);
void SaveContactRawContent(int index, string rawContent );
}
}

View File

@@ -27,10 +27,16 @@ namespace VCFEditor.Presenter
_view.ChangeContactsSelected += ChangeContactSelected;
_view.DeleteContact += DeleteContact;
_view.FilterTextChanged += FilterTextChanged;
_view.TextBoxValueChanged += TextBoxValueChanged;
}
public void TextBoxValueChanged(object sender, EventArg<string> e)
{
_repository.SaveContactRawContent(_view.SelectedContactIndex, e.Data);
}
public void FilterTextChanged(object sender, EventArg<string> e)
{
var FilteredContacts = _repository.FilterContacts(e.Data);

View File

@@ -17,8 +17,10 @@ namespace VCFEditor.View
event EventHandler<EventArg<string>> NewFileOpened;
event EventHandler<EventArg<int>> ChangeContactsSelected;
event EventHandler<EventArg<string>> FilterTextChanged;
event EventHandler<EventArg<string>> TextBoxValueChanged;
#endregion
int SelectedContactIndex { get; }
void DisplayContacts(BindingList<Contact> contacts);
void DisplayContacts(List<Contact> contacts);
void DisplayContactDetail(vCard card);

View File

@@ -234,6 +234,7 @@
this.HomePhoneValue.Name = "HomePhoneValue";
this.HomePhoneValue.Size = new System.Drawing.Size(272, 20);
this.HomePhoneValue.TabIndex = 45;
this.HomePhoneValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
//
// CellularPhoneLabel
//
@@ -252,6 +253,7 @@
this.CellularPhoneValue.Name = "CellularPhoneValue";
this.CellularPhoneValue.Size = new System.Drawing.Size(272, 20);
this.CellularPhoneValue.TabIndex = 47;
this.CellularPhoneValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
//
// PersonalWebSiteLabel
//
@@ -279,6 +281,7 @@
this.PersonalWebSiteValue.Name = "PersonalWebSiteValue";
this.PersonalWebSiteValue.Size = new System.Drawing.Size(272, 20);
this.PersonalWebSiteValue.TabIndex = 56;
this.PersonalWebSiteValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
//
// WorkPhoneValue
//
@@ -288,6 +291,7 @@
this.WorkPhoneValue.Name = "WorkPhoneValue";
this.WorkPhoneValue.Size = new System.Drawing.Size(272, 20);
this.WorkPhoneValue.TabIndex = 57;
this.WorkPhoneValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
//
// groupBox1
//
@@ -322,6 +326,7 @@
this.EmailAddressValue.Name = "EmailAddressValue";
this.EmailAddressValue.Size = new System.Drawing.Size(272, 20);
this.EmailAddressValue.TabIndex = 59;
this.EmailAddressValue.TextChanged += new System.EventHandler(this.Value_TextChanged);
//
// EmailAddressLabel
//
@@ -399,6 +404,7 @@
this.dgContacts.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
this.dgContacts.Size = new System.Drawing.Size(225, 334);
this.dgContacts.TabIndex = 6;
this.dgContacts.SelectionChanged += new System.EventHandler(this.dgContacts_SelectionChanged);
//
// Column1
//

View File

@@ -9,6 +9,7 @@ using System.Windows.Forms;
using VCFEditor.View;
using VCFEditor.Model;
using Thought.vCards;
using System.IO;
namespace vCardEditor.View
{
@@ -19,7 +20,14 @@ namespace vCardEditor.View
public event EventHandler<EventArg<string>> NewFileOpened;
public event EventHandler<EventArg<int>> ChangeContactsSelected;
public event EventHandler<EventArg<string>> FilterTextChanged;
public event EventHandler<EventArg<string>> TextBoxValueChanged;
public int SelectedContactIndex
{
get { return dgContacts.CurrentCell.RowIndex; }
}
public MainForm()
{
InitializeComponent();
@@ -67,6 +75,13 @@ namespace vCardEditor.View
}
}
private void Value_TextChanged(object sender, EventArgs e)
{
//if (TextBoxValueChanged != null)
// TextBoxValueChanged(sender, new EventArg<string>(generateRawContent()));
}
public void DisplayContactDetail(vCard card)
{
if (card == null)
@@ -171,6 +186,39 @@ namespace vCardEditor.View
textBoxFilter.Text = string.Empty;
}
/// <summary>
/// Generate a vcard from differents fields
/// </summary>
/// <returns></returns>
private string generateRawContent()
{
vCard card = new vCard();
card.FormattedName = this.FormattedNameValue.Text;
if (!string.IsNullOrEmpty(HomePhoneValue.Text))
{
card.Phones.Add(
new vCardPhone(HomePhoneValue.Text, vCardPhoneTypes.Home));
}
if (!string.IsNullOrEmpty(CellularPhoneValue.Text))
{
card.Phones.Add(
new vCardPhone(CellularPhoneValue.Text, vCardPhoneTypes.Cellular));
}
if (!string.IsNullOrEmpty(this.EmailAddressValue.Text))
{
card.EmailAddresses.Add(
new vCardEmailAddress(this.EmailAddressValue.Text));
}
vCardStandardWriter writer = new vCardStandardWriter();
TextWriter tw = new StringWriter();
writer.Write(card, tw);
return tw.ToString();
}
}

View File

@@ -229,7 +229,7 @@
<data name="btnClearFilter.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsEAAA7BAbiRa+0AAAJ4SURBVDhPbZNfSFNxFMdPrdYf18TKNEEo//XUTEqb9kcC
YQUAAAAJcEhZcwAADr8AAA6/ATgFUyQAAAJ4SURBVDhPbZNfSFNxFMdPrdYf18TKNEEo//XUTEqb9kcC
NXqTRASH5Z9AVvjQpkv7Y2qUZOq0qHSrUFrDxiJS6GEg6EPP5SDouYcC96DTuT8O+XbO3TWSduDDOfd7
zvdw7+/eS//GGNFpB9GEZFX6G6yfYEZeER1Tpa0xTtQ6oUvBj24bJMu12hJz/4f8HPgtN/7rKbFpXhwf
xsb8DALOEbgzD0GMgjf3CCIzbmzMTSPgsG9dophT9mLxWT/iHifWXw8h/t6BsOcNvHk5CuEpJ+Lul1h3