private void AddressChooserExecute() { EmailAddressChooserTask emailChooser = new EmailAddressChooserTask(); emailChooser.Completed += emailChooser_Completed; emailChooser.Show(); }
public EmailAddressChooser() { InitializeComponent(); eac = new EmailAddressChooserTask(); eac.Completed += new EventHandler <EmailResult>(eac_Completed); }
/* private void EditFileData(string filePath) * { * using (IsolatedStorageFile appIsolatedStorage = IsolatedStorageFile.GetUserStoreForApplication()) * { * if (appIsolatedStorage.FileExists(filePath)) * { * using (IsolatedStorageFileStream fileStream = appIsolatedStorage.OpenFile(filePath, FileMode.Open, FileAccess.Write)) * { * using (StreamWriter writer = new StreamWriter(fileStream)) * { * string editedText = this.fileContent.Text.Trim(); * writer.Write(editedText); * writer.Close(); * } * } * } * } * * this.NavigationService.Navigate(new Uri("/GPX.xaml", UriKind.Relative)); * }*/ private void Click_Email(object sender, EventArgs e) { try { if (fileContent.Text != "") { using (IsolatedStorageFileStream fileStream = appIsolatedStorage.OpenFile(currentFileNamePath, FileMode.Open, FileAccess.Read)) { double gpx_length = fileStream.Length; if (gpx_length > 32700) // 64k mais chaque char vaut 2 octets { MessageBox.Show("Windows Phone n'autorise pas l'envoi de pièces jointes et limite la taille maximale du contenu des e-mails à 32 kilo octets.\nMalheureusement vous avez dépassé cette taille (" + (gpx_length / 1024).ToString("0.0") + " ko).\nVeuillez utiliser Skydrive afin de transférer votre fichier et éventuellement l'utiliser ou l'envoyer à partir de votre ordinateur.\n"); } else { Email_Chooser_Task = new EmailAddressChooserTask(); Email_Chooser_Task.Completed += new EventHandler <EmailResult>(TaskChooserEmailCompleted); Email_Chooser_Task.Show(); } } } else { MessageBox.Show("La localisation n'est pas démarrée !"); } } catch (Exception ex) { MessageBox.Show("Une erreur est survenue."); FlurryWP7SDK.Api.LogError(DateTime.Now.Hour.ToString("00") + "h" + DateTime.Now.Minute.ToString("00") + ": GPX_View Click_Email: " + ex.Message.ToString(), ex); FlurryWP7SDK.Api.LogError(ex.StackTrace.ToString(), ex); } }
// Constructor public inviaemail() { InitializeComponent(); emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler <EmailResult>(emailAddressChooserTask_Completed); }
private void EmailAddressChooserTask_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { EmailAddressChooserTask emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler <EmailResult>(emailAddressChooserTask_Completed); emailAddressChooserTask.Show(); }
/// <summary> /// Display chooser for invitation /// </summary> public void ShowInviteUserChooser() { var chooser = new EmailAddressChooserTask(); chooser.Completed += InvitationContactChooser_Completed; chooser.Show(); }
private void GetEmail_Click(object sender, RoutedEventArgs e) { EmailAddressChooserTask emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler <EmailResult>(emailAddressChooserTask_Completed); emailAddressChooserTask.Show(); }
// Constructor public MainPage() { InitializeComponent(); act = new AddressChooserTask(); act.Completed += new EventHandler <AddressResult>(act_Completed); cct = new CameraCaptureTask(); cct.Completed += new EventHandler <PhotoResult>(cct_Completed); eact = new EmailAddressChooserTask(); eact.Completed += new EventHandler <EmailResult>(eact_Completed); git = new GameInviteTask(); git.Completed += new EventHandler <TaskEventArgs>(git_Completed); pct = new PhotoChooserTask(); pct.Completed += new EventHandler <PhotoResult>(pct_Completed); pnct = new PhoneNumberChooserTask(); pnct.Completed += new EventHandler <PhoneNumberResult>(pnct_Completed); seat = new SaveEmailAddressTask(); seat.Completed += new EventHandler <TaskEventArgs>(seat_Completed); srt = new SaveRingtoneTask(); srt.Completed += new EventHandler <TaskEventArgs>(srt_Completed); spnt = new SavePhoneNumberTask(); spnt.Completed += new EventHandler <TaskEventArgs>(spnt_Completed); }
public MainPage() { InitializeComponent(); address = new EmailAddressChooserTask(); address.Completed += new EventHandler <EmailResult>(address_Completed); this.gcw = new GeoCoordinateWatcher(); this.gcw.PositionChanged += new EventHandler <GeoPositionChangedEventArgs <GeoCoordinate> >(gcw_PositionChanged); this.gcw.Start(); Application.Current.UnhandledException += new EventHandler <ApplicationUnhandledExceptionEventArgs>(Current_UnhandledException); this.Loaded += new RoutedEventHandler(MainPage_Loaded); if (mailMessage == null) { //create MailMessage object mailMessage = new MailMessage(); //License needed from Venetasoft (Purchase it from here:http://www.geekchamp.com/marketplace/) mailMessage.LicenceKey = ""; //set message event handlers mailMessage.Error += new EventHandler <Venetasoft.WP7.ErrorEventArgs>(mailMessage_Error); mailMessage.MailSent += new EventHandler <Venetasoft.WP7.ValueEventArgs <bool> >(mailMessage_MailSent); mailMessage.Progress += new EventHandler <Venetasoft.WP7.ValueEventArgs <int> >(mailMessage_Progress); } if (this.textBoxMailTo.Text == ";") { this.textBoxMailTo.Text = ""; } //debug info: show attachments that will be added to mail (from resource) => see code in buttonSend_Click() }
public GroupEditView() { InitializeComponent(); this.selectedGroup = null; // initialize email chooser and add an event handler emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler <EmailResult>(emailAddressChooserTask_Completed); }
public FriendSearch() { InitializeComponent(); _numberPicker = new PhoneNumberChooserTask(); _numberPicker.Completed += OnNumberPicked; _emailPicker = new EmailAddressChooserTask(); _emailPicker.Completed += OnEmailPicked; }
public NewPayMePage() { InitializeComponent(); _ParticipantList = new ParticipantListViewModel(); this.Participants.DataContext = _ParticipantList; emailTask = new EmailAddressChooserTask(); emailTask.Completed += new EventHandler<EmailResult>(emailTask_Completed); }
private void emailAddressChooser_Click(object sender, EventArgs e) { // with a local task, the completed event will be called when returning from dormant, // but WILL NOT be called when returning from tombstone. var task = new EmailAddressChooserTask(); task.Completed += (object sender2, EmailResult e2) => { if (e2.Error == null && e2.TaskResult == TaskResult.OK) System.Diagnostics.Debug.WriteLine("{0}: {1}", e2.DisplayName, e2.Email); }; task.Show(); }
private void ApplicationBarIconButton_Click(object sender, EventArgs e) { var task = new EmailAddressChooserTask(); task.Completed += new EventHandler<EmailResult>((object searchSender, EmailResult csea) => { if (csea.TaskResult == TaskResult.OK) { ContactList.Items.Add(csea.Email); } }); task.Show(); }
/// <summary> /// Handles the Click event of the bButton control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param> private void bButton_Click(object sender, RoutedEventArgs e) { if (((SettingsViewModel)SettingsStackPanel.DataContext).SendMethodEnum == addressType.Email) { var email = new EmailAddressChooserTask(); email.Completed += email_Completed; email.Show(); } else { var sms = new PhoneNumberChooserTask(); sms.Completed += sms_Completed; sms.Show(); } }
private void emailAddressChooser_Click(object sender, EventArgs e) { // with a local task, the completed event will be called when returning from dormant, // but WILL NOT be called when returning from tombstone. var task = new EmailAddressChooserTask(); task.Completed += (object sender2, EmailResult e2) => { if (e2.Error == null && e2.TaskResult == TaskResult.OK) { System.Diagnostics.Debug.WriteLine("{0}: {1}", e2.DisplayName, e2.Email); } }; task.Show(); }
private void btnEmail_Click(object sender, RoutedEventArgs e) { EmailAddressChooserTask contactsTask = new EmailAddressChooserTask(); contactsTask.Completed += (s, evt) => { if (evt.Error == null && evt.TaskResult == TaskResult.OK) { EmailComposeTask emailTask = new EmailComposeTask(); emailTask.Body = "Insert text from your application here."; emailTask.To = evt.Email; emailTask.Show(); } }; contactsTask.Show(); }
public TasksAddView() { InitializeComponent(); DT = DateTime.Now; DT = DT.AddDays(1); string format = "M/d/yyyy"; ddtbl.Text = DT.ToString(format); // initialize camera chooser and add an event handler cameraCaptureTask = new CameraCaptureTask(); cameraCaptureTask.Completed += new EventHandler <PhotoResult>(cameraCaptureTask_Completed); // initialize email chooser and add an event handler emailChooserTask = new EmailAddressChooserTask(); emailChooserTask.Completed += new EventHandler <EmailResult>(emailAddressChooserTask_Completed); }
private void AddItemButton_Click(object sender, EventArgs e) { // check for itemtype-specific processing if (list.ItemTypeID == SystemItemTypes.Contact) { // put up the contact picker EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler <EmailResult>((s, ea) => { if (ea.TaskResult == TaskResult.OK && !String.IsNullOrEmpty(ea.Email)) { // find the contact using the email address Contacts contacts = new Contacts(); contacts.SearchCompleted += new EventHandler <ContactsSearchEventArgs>((sen, ev) => { // save the contact info as a new contact var contact = ev.Results.FirstOrDefault(); if (contact == null) { return; } var newItem = ContactPickerHelper.ProcessContact(contact, list); // sync with the service App.ViewModel.SyncWithService(); // add the contact and re-render the List list.Items.Add(newItem); ListHelper.RenderList(list); }); contacts.SearchAsync(ea.Email, FilterKind.EmailAddress, null); } }); chooser.Show(); return; } // trace page navigation TraceHelper.StartMessage("ListPage: Navigate to Main Add Page"); // Navigate to the main page's add tab NavigationService.Navigate( new Uri("/MainPage.xaml?Tab=Add", UriKind.Relative)); }
private void Click_Email(object sender, EventArgs e) { if (textBox1.Text != "") { Email_Chooser_Task = new EmailAddressChooserTask(); Email_Chooser_Task.Completed += new EventHandler <EmailResult>(TaskChooserEmailCompleted); try { Email_Chooser_Task.Show(); } catch (System.InvalidOperationException) { MessageBox.Show("Une erreur est survenue."); } } else { MessageBox.Show("La localisation n'est pas démarrée !"); } }
private void SecondListBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { switch ((e.AddedItems[0] as ListBoxItem).Name) { case "iCameraCaptureTask": MessageBox.Show("See recipe 7-1 for CameraCaptureTask chooser explanation."); break; case "iPhotoChooserTask": MessageBox.Show("See recipe 7-2 for PhotoChooserTask chooser explanation."); break; case "iEmailAddressChooserTask": EmailAddressChooserTask eact = new EmailAddressChooserTask(); eact.Completed += new EventHandler <EmailResult>(EmailAddressChooserTask_Completed); eact.Show(); break; case "iPhoneNumberChooserTask": PhoneNumberChooserTask pnct = new PhoneNumberChooserTask(); pnct.Completed += new EventHandler <PhoneNumberResult>(PhoneNumberChooserTask_Completed); pnct.Show(); break; case "iSaveEmailAddressTask": SaveEmailAddressTask seat = new SaveEmailAddressTask(); seat.Completed += new EventHandler <TaskEventArgs>(SaveEmailAddressTask_Completed); seat.Email = "*****@*****.**"; seat.Show(); break; case "iSavePhoneNumberTask": SavePhoneNumberTask spnt = new SavePhoneNumberTask(); spnt.PhoneNumber = "55512345678"; spnt.Completed += new EventHandler <TaskEventArgs>(SavePhoneNumberTask_Completed); spnt.Show(); break; } }
/// <summary> /// Handles the Click event of the bButton control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="RoutedEventArgs" /> instance containing the event data.</param> private void bButton_Click(object sender, RoutedEventArgs e) { var b = ((HyperlinkButton)sender); BindingExpression be = b.GetBindingExpression(ContentControl.ContentProperty); if (be != null) { _contactChooser = (Setting)be.DataItem; } if (_contactChooser.AddressType == addressType.Email) { var email = new EmailAddressChooserTask(); email.Completed += email_Completed; email.Show(); } else { var sms = new PhoneNumberChooserTask(); sms.Completed += sms_Completed; sms.Show(); } }
private void choose_Click(object sender, RoutedEventArgs e) { var emailChooser = new EmailAddressChooserTask(); emailChooser.Completed += emailChooser_Completed; emailChooser.Show(); }
private void AddItemButton_Click(object sender, EventArgs e) { // check for itemtype-specific processing if (list.ItemTypeID == SystemItemTypes.Contact) { // put up the contact picker EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((s, ea) => { if (ea.TaskResult == TaskResult.OK && !String.IsNullOrEmpty(ea.Email)) { // find the contact using the email address Contacts contacts = new Contacts(); contacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>((sen, ev) => { // save the contact info as a new contact var contact = ev.Results.FirstOrDefault(); if (contact == null) return; var newItem = ContactPickerHelper.ProcessContact(contact, list); // sync with the service App.ViewModel.SyncWithService(); // add the contact and re-render the List list.Items.Add(newItem); ListHelper.RenderList(list); }); contacts.SearchAsync(ea.Email, FilterKind.EmailAddress, null); } }); chooser.Show(); return; } // trace page navigation TraceHelper.StartMessage("ListPage: Navigate to Main Add Page"); // Navigate to the main page's add tab NavigationService.Navigate( new Uri("/MainPage.xaml?Tab=Add", UriKind.Relative)); }
private void btnSelectEmailAddress_Click(object sender, RoutedEventArgs e) { EmailAddressChooserTask task = new EmailAddressChooserTask(); task.Completed += (s, evt) => { if (evt.Error == null && evt.TaskResult == TaskResult.OK) { MessageBox.Show(evt.Email + " e-mail address selected!"); } }; task.Show(); }
private void selectContactButton_Click(object sender, EventArgs e) { try { EmailAddressChooserTask emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler<EmailResult>(emailAddressChooserTask_Completed); emailAddressChooserTask.Show(); } catch (Exception ex) { } }
private void RenderEditTaskField(Task task, FieldType fieldType) { PropertyInfo pi; // make sure the property exists on the local type try { pi = task.GetType().GetProperty(fieldType.Name); if (pi == null) return; // see comment below } catch (Exception) { // we can't do anything with this property since we don't have it on the local type // this indicates that the phone software isn't caught up with the service version return; } // get the value of the property var val = pi.GetValue(task, null); ListBoxItem listBoxItem = new ListBoxItem(); StackPanel EditStackPanel = new StackPanel(); listBoxItem.Content = EditStackPanel; EditStackPanel.Children.Add( new TextBlock() { Text = fieldType.DisplayName, Style = (Style)App.Current.Resources["PhoneTextNormalStyle"] }); // create a textbox (will be used by the majority of field types) double minWidth = App.Current.RootVisual.RenderSize.Width; if ((int)minWidth == 0) minWidth = ((this.Orientation & PageOrientation.Portrait) == PageOrientation.Portrait) ? 480.0 : 800.0; TextBox tb = new TextBox() { DataContext = taskCopy, MinWidth = minWidth, IsTabStop = true }; tb.SetBinding(TextBox.TextProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); bool notMatched = false; // render the right control based on the type switch (fieldType.DisplayType) { case "String": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "TextBox": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.AcceptsReturn = true; tb.TextWrapping = TextWrapping.Wrap; tb.Height = 300; tb.TabIndex = tabIndex++; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); EditStackPanel.Children.Add(tb); break; case "Phone": case "PhoneNumber": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.TelephoneNumber } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; StackPanel innerPanel = RenderEditTaskImageButtonPanel(tb); ImageButton imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { PhoneNumberChooserTask chooser = new PhoneNumberChooserTask(); chooser.Completed += new EventHandler<PhoneNumberResult>((sender, e) => { if (e.TaskResult == TaskResult.OK && e.PhoneNumber != null && e.PhoneNumber != "") pi.SetValue(task, e.PhoneNumber, null); }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case "Website": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Url } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "Email": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.EmailSmtpAddress } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); innerPanel = RenderEditTaskImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((sender, e) => { if (e.TaskResult == TaskResult.OK && e.Email != null && e.Email != "") pi.SetValue(task, e.Email, null); }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case "Location": case "Address": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.AddressStreet }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCity }, new InputScopeName() { NameValue = InputScopeNameValue.AddressStateOrProvince }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCountryName }, } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); innerPanel = RenderEditTaskImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { // start the location service GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.MovementThreshold = 20; // Use MovementThreshold to ignore noise in the signal. watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>((sender, e) => { if (e.Status == GeoPositionStatus.Ready) { // Use the Position property of the GeoCoordinateWatcher object to get the current location. GeoCoordinate co = watcher.Position.Location; tb.Text = co.Latitude.ToString("0.000") + "," + co.Longitude.ToString("0.000"); //Stop the Location Service to conserve battery power. watcher.Stop(); } }); watcher.Start(); }); EditStackPanel.Children.Add(innerPanel); break; case "Priority": ListPicker lp = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate) App.Current.Resources["FullListPickerTemplate"], IsTabStop = true }; lp.ItemsSource = App.ViewModel.Constants.Priorities; lp.DisplayMemberPath = "Name"; int? lpval = (int?)pi.GetValue(taskCopy, null); if (lpval != null) lp.SelectedIndex = (int)lpval; else lp.SelectedIndex = 1; // HACK: hardcode to "Normal" priority. this should come from a table. lp.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(taskCopy, lp.SelectedIndex == 1 ? (int?)null : lp.SelectedIndex, null); }); lp.TabIndex = tabIndex++; EditStackPanel.Children.Add(lp); break; case "TaskList": ListPicker taskListPicker = new ListPicker() { MinWidth = minWidth, IsTabStop = true }; taskListPicker.ItemsSource = App.ViewModel.TaskLists; taskListPicker.DisplayMemberPath = "Name"; TaskList tl = App.ViewModel.TaskLists.FirstOrDefault(list => list.ID == taskList.ID); taskListPicker.SelectedIndex = App.ViewModel.TaskLists.IndexOf(tl); taskListPicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(taskCopy, App.ViewModel.TaskLists[taskListPicker.SelectedIndex].ID, null); }); taskListPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(taskListPicker); break; case "Integer": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Digits } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, Convert.ToInt32(tb.Text), null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "Date": DatePicker dp = new DatePicker() { DataContext = taskCopy, MinWidth = minWidth, IsTabStop = true }; dp.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { pi.SetValue(taskCopy, dp.Value, null); taskList.NotifyPropertyChanged("FirstDue"); taskList.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case "Boolean": CheckBox cb = new CheckBox() { DataContext = taskCopy, IsTabStop = true }; cb.SetBinding(CheckBox.IsCheckedProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; case "TagList": TextBox taglist = new TextBox() { MinWidth = minWidth, IsTabStop = true }; taglist.KeyUp += new KeyEventHandler(TextBox_KeyUp); taglist.TabIndex = tabIndex++; RenderEditTaskTagList(taglist, taskCopy, pi); EditStackPanel.Children.Add(taglist); break; case "ListPointer": innerPanel = RenderEditTaskListPointer(pi, minWidth); EditStackPanel.Children.Add(innerPanel); break; default: notMatched = true; break; } // if wasn't able to match field type by display type, try matching by CLR type if (notMatched == true) { string typename = GetTypeName(pi); switch (typename) { case "String": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "Int32": tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Digits } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(taskCopy, Convert.ToInt32(tb.Text), null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case "DateTime": DatePicker dp = new DatePicker() { DataContext = taskCopy, MinWidth = minWidth, IsTabStop = true }; dp.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { pi.SetValue(taskCopy, dp.Value, null); taskList.NotifyPropertyChanged("FirstDue"); taskList.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case "Boolean": CheckBox cb = new CheckBox() { DataContext = taskCopy, IsTabStop = true }; cb.SetBinding(CheckBox.IsEnabledProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; default: break; } } // add the listboxitem to the listbox EditListBox.Items.Add(listBoxItem); }
private void GetEmail_Click(object sender, RoutedEventArgs e) { EmailAddressChooserTask emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler<EmailResult>(emailAddressChooserTask_Completed); emailAddressChooserTask.Show(); }
private void RenderEditItemField(Item item, Field field) { // skip rendering a hidden field if (field.DisplayType == DisplayTypes.Hidden) return; PropertyInfo pi = null; object currentValue = null; object container = null; // get the current field value. // the value can either be in a strongly-typed property on the item (e.g. Name), // or in one of the FieldValues try { // get the strongly typed property pi = item.GetType().GetProperty(field.Name); if (pi != null) { // store current item's value for this field currentValue = pi.GetValue(item, null); // set the container - this will be the object that will be passed // to pi.SetValue() below to poke new values into container = itemCopy; } } catch (Exception) { // an exception indicates this isn't a strongly typed property on the Item // this is NOT an error condition } // if couldn't find a strongly typed property, this property is stored as a // FieldValue on the item if (pi == null) { // get current item's value for this field, or create a new FieldValue // if one doesn't already exist FieldValue fieldValue = item.GetFieldValue(field.ID, true); currentValue = fieldValue.Value; // get the value property of the current fieldvalue (this should never fail) pi = fieldValue.GetType().GetProperty("Value"); if (pi == null) return; // set the container - this will be the object that will be passed // to pi.SetValue() below to poke new values into container = fieldValue; } ListBoxItem listBoxItem = new ListBoxItem(); StackPanel EditStackPanel = new StackPanel(); listBoxItem.Content = EditStackPanel; EditStackPanel.Children.Add( new TextBlock() { Text = field.DisplayName, Style = (Style)App.Current.Resources["PhoneTextNormalStyle"] }); // create a textbox (will be used by the majority of field types) double minWidth = App.Current.RootVisual.RenderSize.Width; if ((int)minWidth == 0) minWidth = ((this.Orientation & PageOrientation.Portrait) == PageOrientation.Portrait) ? 480.0 : 800.0; TextBox tb = new TextBox() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; tb.SetBinding(TextBox.TextProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); bool notMatched = false; // render the right control based on the DisplayType switch (field.DisplayType) { case DisplayTypes.Text: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case DisplayTypes.TextArea: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.AcceptsReturn = true; tb.TextWrapping = TextWrapping.Wrap; tb.Height = 150; tb.TabIndex = tabIndex++; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); EditStackPanel.Children.Add(tb); break; case DisplayTypes.Phone: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.TelephoneNumber } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.MinWidth -= 64; tb.MaxWidth = tb.MinWidth; StackPanel innerPanel = RenderImageButtonPanel(tb); ImageButton imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { PhoneNumberChooserTask chooser = new PhoneNumberChooserTask(); chooser.Completed += new EventHandler<PhoneNumberResult>((sender, e) => { if (e.TaskResult == TaskResult.OK && e.PhoneNumber != null && e.PhoneNumber != "") pi.SetValue(container, e.PhoneNumber, null); }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.Link: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Url } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case DisplayTypes.Email: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.EmailSmtpAddress } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); tb.MinWidth -= 64; tb.MaxWidth = tb.MinWidth; innerPanel = RenderImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((s, e) => { if (e.TaskResult == TaskResult.OK && !String.IsNullOrEmpty(e.Email)) { pi.SetValue(container, e.Email, null); // find the contact using the email address Contacts contacts = new Contacts(); contacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>((sen, ev) => { // save the contact info as a new contact var contact = ev.Results.FirstOrDefault(); if (contact == null) return; ContactPickerHelper.AddContactInfo(contact, item); }); contacts.SearchAsync(e.Email, FilterKind.EmailAddress, null); } }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.Address: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.AddressStreet }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCity }, new InputScopeName() { NameValue = InputScopeNameValue.AddressStateOrProvince }, new InputScopeName() { NameValue = InputScopeNameValue.AddressCountryName }, } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); tb.MinWidth -= 64; tb.MaxWidth = tb.MinWidth; innerPanel = RenderImageButtonPanel(tb); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { // start the location service GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.MovementThreshold = 20; // Use MovementThreshold to ignore noise in the signal. watcher.StatusChanged += new EventHandler<GeoPositionStatusChangedEventArgs>((sender, e) => { if (e.Status == GeoPositionStatus.Ready) { // Use the Position property of the GeoCoordinateWatcher object to get the current location. GeoCoordinate co = watcher.Position.Location; tb.Text = co.Latitude.ToString("0.000") + "," + co.Longitude.ToString("0.000"); // Stop the Location Service to conserve battery power. watcher.Stop(); // also store the latlong information in a hidden LatLong FieldValue var latlong = item.GetFieldValue(FieldNames.LatLong, true); if (latlong != null) latlong.Value = tb.Text; } }); watcher.Start(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.Priority: ListPicker lp = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate)App.Current.Resources["FullListPickerTemplate"], IsTabStop = true }; lp.ItemsSource = App.ViewModel.Constants.Priorities; lp.DisplayMemberPath = "Name"; int? lpval = (int?)pi.GetValue(container, null); if (lpval != null) lp.SelectedIndex = (int)lpval; else lp.SelectedIndex = 1; // HACK: hardcode to "Normal" priority. this should come from a table. lp.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, lp.SelectedIndex == 1 ? (int?)null : lp.SelectedIndex, null); }); lp.TabIndex = tabIndex++; EditStackPanel.Children.Add(lp); break; case DisplayTypes.Folders: ListPicker folderPicker = new ListPicker() { MinWidth = minWidth, IsTabStop = true }; folderPicker.ItemsSource = App.ViewModel.Folders; folderPicker.DisplayMemberPath = "Name"; Folder tl = App.ViewModel.Folders.FirstOrDefault(list => list.ID == folder.ID); folderPicker.SelectedIndex = App.ViewModel.Folders.IndexOf(tl); folderPicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, App.ViewModel.Folders[folderPicker.SelectedIndex].ID, null); }); folderPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(folderPicker); break; case DisplayTypes.Lists: ListPicker listPicker = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate)App.Current.Resources["FullListPickerTemplate"], ExpansionMode = ExpansionMode.FullScreenOnly, IsTabStop = true }; var lists = App.ViewModel.Items. Where(i => i.FolderID == item.FolderID && i.IsList == true && i.ItemTypeID != SystemItemTypes.Reference). OrderBy(i => i.Name). ToObservableCollection(); lists.Insert(0, new Item() { ID = Guid.Empty, Name = folder.Name + " (folder)" }); listPicker.ItemsSource = lists; listPicker.DisplayMemberPath = "Name"; var listGuid = currentValue != null ? (Guid) currentValue : Guid.Empty; Item thisItem = lists.FirstOrDefault(i => i.ID == (Guid) listGuid); // if the list isn't found (e.g. ParentID == null), SelectedIndex will default to the Folder scope (which is correct for that case) listPicker.SelectedIndex = Math.Max(lists.IndexOf(thisItem), 0); listPicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, lists[listPicker.SelectedIndex].ID, null); }); listPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(listPicker); break; case DisplayTypes.DatePicker: DatePicker dp = new DatePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; DateTime date = Convert.ToDateTime((string)currentValue); if (date.Ticks == 0) date = DateTime.Now.Date; dp.Value = date; dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { //pi.SetValue(container, dp.Value, null); pi.SetValue(container, dp.Value == null ? null : ((DateTime)dp.Value).ToString("d"), null); folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case DisplayTypes.DateTimePicker: // create date picker DatePicker datePicker = new DatePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; // set up two-way data binding so that we don't have to pick up the new value in the event handler datePicker.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); datePicker.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); datePicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(datePicker); // create time picker TimePicker timePicker = new TimePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; // set up two-way data binding so that we don't have to pick up the new value in the event handler timePicker.SetBinding(TimePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); timePicker.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); timePicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(timePicker); break; case DisplayTypes.Checkbox: CheckBox cb = new CheckBox() { DataContext = container, IsTabStop = true }; cb.SetBinding(CheckBox.IsCheckedProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; case DisplayTypes.TagList: TextBox taglist = new TextBox() { MinWidth = minWidth, IsTabStop = true }; taglist.KeyUp += new KeyEventHandler(TextBox_KeyUp); taglist.TabIndex = tabIndex++; RenderEditItemTagList(taglist, (Item) container, pi); EditStackPanel.Children.Add(taglist); break; case DisplayTypes.ImageUrl: // TODO: wire up to picture picker, and upload to an image service break; case DisplayTypes.LinkArray: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Url } } }; tb.AcceptsReturn = true; tb.TextWrapping = TextWrapping.Wrap; tb.Height = 150; tb.TabIndex = tabIndex++; tb.ClearValue(TextBox.TextProperty); if (!String.IsNullOrEmpty((string) currentValue)) { try { var linkList = JsonConvert.DeserializeObject<List<Link>>((string)currentValue); tb.Text = String.Concat(linkList.Select(l => l.Name != null ? l.Name + "," + l.Url + "\n" : l.Url + "\n").ToList()); } catch (Exception) { } } tb.LostFocus += new RoutedEventHandler(delegate { // the expected format is a newline-delimited list of Name, Url pairs var linkArray = tb.Text.Split(new char[] { '\r','\n' }, StringSplitOptions.RemoveEmptyEntries); var linkList = new List<Link>(); foreach (var link in linkArray) { var nameval = link.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (nameval.Length == 0) continue; if (nameval.Length == 1) linkList.Add(new Link() { Url = nameval[0].Trim() }); else linkList.Add(new Link() { Name = nameval[0].Trim(), Url = nameval[1].Trim() }); } var json = JsonConvert.SerializeObject(linkList); pi.SetValue(container, json, null); }); EditStackPanel.Children.Add(tb); break; case DisplayTypes.Hidden: // skip rendering break; case DisplayTypes.ContactList: Item currentContacts = CreateValueList(item, field, currentValue == null ? Guid.Empty : new Guid((string) currentValue)); var contactPicker = new ItemRefListPicker(folder, currentContacts, SystemItemTypes.Contact, pi, container) { MinWidth = minWidth, IsTabStop = true }; contactPicker.TabIndex = tabIndex++; contactPicker.MinWidth -= 84; contactPicker.MaxWidth = contactPicker.MinWidth; innerPanel = RenderImageButtonPanel(contactPicker, "/Images/button.add.png", "/Images/button.add.pressed.png"); imageButton = (ImageButton)innerPanel.Children[1]; imageButton.Click += new RoutedEventHandler(delegate { EmailAddressChooserTask chooser = new EmailAddressChooserTask(); chooser.Completed += new EventHandler<EmailResult>((s, e) => { if (e.TaskResult == TaskResult.OK && !String.IsNullOrEmpty(e.Email)) { // find the contact using the email address Contacts contacts = new Contacts(); contacts.SearchCompleted += new EventHandler<ContactsSearchEventArgs>((sen, ev) => { // save the contact info as a new contact var contact = ev.Results.FirstOrDefault(); if (contact == null) return; var newContact = ContactPickerHelper.ProcessContact(contact); if (newContact != null) { // if the list doesn't yet exist, create it now if (currentContacts.ID == Guid.Empty) { Guid id = Guid.NewGuid(); currentContacts.ID = id; // enqueue the Web Request Record RequestQueue.EnqueueRequestRecord(RequestQueue.UserQueue, new RequestQueue.RequestRecord() { ReqType = RequestQueue.RequestRecord.RequestType.Insert, Body = currentContacts }); // add the list to the folder folder.Items.Add(currentContacts); StorageHelper.WriteFolder(folder); // store the list's Guid in the item's property pi.SetValue(container, id.ToString(), null); } // rebuild the image panel with a new ItemRefListPicker HandleAddedContact(currentContacts, newContact); var oldListPicker = innerPanel.Children[0] as ItemRefListPicker; contactPicker = new ItemRefListPicker(folder, currentContacts, SystemItemTypes.Contact, pi, container) { IsTabStop = true }; if (oldListPicker != null) { contactPicker.TabIndex = oldListPicker.TabIndex; contactPicker.MinWidth = oldListPicker.MinWidth; contactPicker.MaxWidth = oldListPicker.MaxWidth; } innerPanel.Children[0] = contactPicker; } }); contacts.SearchAsync(e.Email, FilterKind.EmailAddress, null); } }); chooser.Show(); }); EditStackPanel.Children.Add(innerPanel); break; case DisplayTypes.LocationList: Item currentLocations = CreateValueList(item, field, currentValue == null ? Guid.Empty : new Guid((string) currentValue)); var locationPicker = new ItemRefListPicker(folder, currentLocations, SystemItemTypes.Location, pi, container) { MinWidth = minWidth, IsTabStop = true }; locationPicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(locationPicker); break; case DisplayTypes.ItemTypes: ListPicker itemTypePicker = new ListPicker() { MinWidth = minWidth, FullModeItemTemplate = (DataTemplate)App.Current.Resources["FullListPickerTemplate"], ExpansionMode = ExpansionMode.FullScreenOnly, IsTabStop = true }; var itemTypes = App.ViewModel.ItemTypes.Where(i => i.UserID != SystemUsers.System).OrderBy(i => i.Name).ToList(); itemTypePicker.ItemsSource = itemTypes; itemTypePicker.DisplayMemberPath = "Name"; ItemType thisItemType = itemTypes.FirstOrDefault(i => i.ID == (Guid) currentValue); itemTypePicker.SelectedIndex = Math.Max(itemTypes.IndexOf(thisItemType), 0); itemTypePicker.SelectionChanged += new SelectionChangedEventHandler(delegate { pi.SetValue(container, itemTypes[itemTypePicker.SelectedIndex].ID, null); }); itemTypePicker.TabIndex = tabIndex++; EditStackPanel.Children.Add(itemTypePicker); break; default: notMatched = true; break; } // if wasn't able to match field type by display type, try matching by FieldType if (notMatched == true) { switch (field.FieldType) { case FieldTypes.String: default: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Text } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, tb.Text, null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case FieldTypes.Integer: tb.InputScope = new InputScope() { Names = { new InputScopeName() { NameValue = InputScopeNameValue.Digits } } }; tb.LostFocus += new RoutedEventHandler(delegate { pi.SetValue(container, Convert.ToInt32(tb.Text), null); }); tb.TabIndex = tabIndex++; tb.KeyUp += new KeyEventHandler(TextBox_KeyUp); EditStackPanel.Children.Add(tb); break; case FieldTypes.DateTime: DatePicker dp = new DatePicker() { DataContext = container, MinWidth = minWidth, IsTabStop = true }; dp.SetBinding(DatePicker.ValueProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); dp.ValueChanged += new EventHandler<DateTimeValueChangedEventArgs>(delegate { pi.SetValue(container, dp.Value, null); folder.NotifyPropertyChanged("FirstDue"); folder.NotifyPropertyChanged("FirstDueColor"); }); dp.TabIndex = tabIndex++; EditStackPanel.Children.Add(dp); break; case FieldTypes.Boolean: CheckBox cb = new CheckBox() { DataContext = container, IsTabStop = true }; cb.SetBinding(CheckBox.IsEnabledProperty, new Binding(pi.Name) { Mode = BindingMode.TwoWay }); cb.TabIndex = tabIndex++; EditStackPanel.Children.Add(cb); break; } } // add the listboxitem to the listbox EditListBox.Items.Add(listBoxItem); }
private void ChooseEmailClick(object sender, EventArgs e) { EmailAddressChooserTask emailAddressChooserTask; emailAddressChooserTask = new EmailAddressChooserTask(); emailAddressChooserTask.Completed += new EventHandler<EmailResult>(EmailAddressChooserTaskCompleted); try { emailAddressChooserTask.Show(); } catch (System.InvalidOperationException ex) { var toast = new ToastPrompt { MillisecondsUntilHidden = 1500, Foreground = App.WhiteColor, Message = AppResources.channel_removed }; toast.Show(); } }
private void mnuEnviarCorreo_Click(object sender, RoutedEventArgs e) { System.ServiceModel.Syndication.SyndicationItem item = (sender as FrameworkElement).DataContext as System.ServiceModel.Syndication.SyndicationItem; if (item != null) { //1. Instanciamos el selector EmailAddressChooserTask selector = new EmailAddressChooserTask(); //2. Completamos las propiedades si las tiene (En este caso no las tiene) //3. Nos suscribimos al evento Completed selector.Completed += new EventHandler<EmailResult>(selector_Completed); this.itemSeleccionado = item; //4. Mostramos el selector selector.Show(); } }