コード例 #1
0
ファイル: MainPage.xaml.cs プロジェクト: boring-sandwich/ICE
        private void PhoneOne_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            IsBoxOneTapped = true;
            //Launch the Phone App with the emergency name and contact number
            if (IsReadOnlyOn == false)
            {
                IsPhonePickerOn = true;
                phoneNumberChooserTask.Show();
            }
            else
            {
                PhoneCallTask phoneCallTask = new PhoneCallTask();
                phoneCallTask.DisplayName = settings.EmergencyContactNameOne;
                phoneCallTask.PhoneNumber = settings.EmergencyContactNumberOne;

                if (phoneCallTask.PhoneNumber.Length == 0)
                {
                    MessageBox.Show("Please enter an emergency phone contact number.", "Phone", MessageBoxButton.OK);
                }
                else
                {
                    phoneCallTask.Show();
                }
            }
        }
コード例 #2
0
        private void PhoneNumberChooserTask_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask();

            phoneNumberChooserTask.Completed += new EventHandler <PhoneNumberResult>(phoneNumberChooserTask_Completed);
            phoneNumberChooserTask.Show();
        }
コード例 #3
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var b = sender as Button;

            if (b != null)
            {
                string s = b.Tag as string;
                if (s != null)
                {
                    switch (s)
                    {
                    case "phone":
                        _numberPicker.Show();
                        break;

                    case "email":
                        _emailPicker.Show();
                        break;
                    }

                    return;
                }
            }

            string query = _search.Text;

            if (string.IsNullOrEmpty(query))
            {
                return;
            }

            Search(query);
        }
コード例 #4
0
        private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
        {
            var nummerTask = new PhoneNumberChooserTask();

            nummerTask.Completed += nummerTask_Completed;
            nummerTask.Show();
        }
コード例 #5
0
        private void StartPhoneTask()
        {
            PhoneNumberChooserTask phn = new PhoneNumberChooserTask();

            phn.Completed += new EventHandler <PhoneNumberResult>(phn_Complete);
            phn.Show();
        }
コード例 #6
0
        private void AddPhoneButton_Click(object sender, RoutedEventArgs e)
        {
            PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask();

            phoneNumberChooserTask.Completed += new EventHandler <PhoneNumberResult>(phoneNumberChooserTask_Completed);
            phoneNumberChooserTask.Show();
        }
コード例 #7
0
		private void ApplicationBarAddContactButton_Click(object sender, EventArgs e)
		{
			// prompt for a contact
			var phoneNumberTask = new PhoneNumberChooserTask();
			phoneNumberTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberTask_Completed);
			phoneNumberTask.Show();
		}
コード例 #8
0
ファイル: MainPage.xaml.cs プロジェクト: maguilleng/phonePOS
        private void btnScanNumber_Click(object sender, RoutedEventArgs e)
        {
            var newprod = dbConn.Insert(new Product()
            {
                ProductDescription = "Camisa Dockers"
            });
            var newprod1 = dbConn.Insert(new Product()
            {
                ProductDescription = "Pantalón Levis"
            });

            var newprod2 = dbConn.Insert(new Product()
            {
                ProductDescription = "Cinturón"
            });

            string q2 = "UPDATE Product SET ProductDescription = 'Mantecadas' WHERE ProductDescription = ?";


            txtProducts.Text = GetAllProducts();

            dbConn.Execute(q2, "Cinturón");

            txtProducts.Text = txtProducts.Text + GetAllProducts();

            selNumber.Show();
        }
コード例 #9
0
        private void btnSelectContact_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            PhoneNumberChooserTask addChoser = new PhoneNumberChooserTask();

            addChoser.Completed += new EventHandler <PhoneNumberResult>(addChoser_Completed);

            addChoser.Show();
        }
コード例 #10
0
        private void PhoneDoctor_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {
            IsBoxOneTappedMed = true;
            if (IsReadOnlyOnMed == false)
            {
                IsPhonePickerOnMed = true;
                phoneNumberChooserTask.Show();
            }
            else
            {
                PhoneCallTask phoneCallTask = new PhoneCallTask();
                phoneCallTask.DisplayName = settings.MedDoctorsInfoName;
                phoneCallTask.PhoneNumber = settings.MedDoctorsInfoPhone;

                CompleteThePhoneCall(phoneCallTask);
            }
        }
コード例 #11
0
        private void ApplicationBarAddContactButton_Click(object sender, EventArgs e)
        {
            // prompt for a contact
            var phoneNumberTask = new PhoneNumberChooserTask();

            phoneNumberTask.Completed += new EventHandler <PhoneNumberResult>(phoneNumberTask_Completed);
            phoneNumberTask.Show();
        }
コード例 #12
0
        private void Button_clicked(object sender, RoutedEventArgs e)
        {
            Button current_button = (Button)sender;
            String button_name = current_button.Name;
            switch (button_name)
            {
                case "calculator":
                    break;
                case "contacts":
                    PhoneNumberChooserTask address = new PhoneNumberChooserTask();
                    address.Show();
                    break;
                case "clock":
                    break;
                case "facebook":
                    WebBrowserTask webBrowserTask1 = new WebBrowserTask();
                    webBrowserTask1.Uri = new Uri("http://www.facebook.com", UriKind.Absolute);
                    webBrowserTask1.Show();
                    break;

                case "phone":
                    phoneNumberChooserTask = new PhoneNumberChooserTask();
                    phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
                    try
                    {
                        phoneNumberChooserTask.Show();
                    }
                    catch (System.InvalidOperationException ex)
                    {
                        MessageBox.Show("An error occurred.");
                    }
                    //PhoneCallTask phoneCallTask = new PhoneCallTask();

                    //phoneCallTask.PhoneNumber = "123456789";
                    //phoneCallTask.DisplayName = "Shadowfax Apps";

                    //phoneCallTask.Show();
                    break;
                case "mail":
                    EmailComposeTask emailComposeTask = new EmailComposeTask();
                    emailComposeTask.Subject = "";
                    emailComposeTask.Body = "";
                    emailComposeTask.To = "";
                    emailComposeTask.Show();
                    break;
                case "safari":
                    WebBrowserTask webBrowserTask4 = new WebBrowserTask();
                    webBrowserTask4.Uri = new Uri("http://www.google.com", UriKind.Absolute);
                    webBrowserTask4.Show();
                    break;
                case "ipod":

                    break;

                default:
                    break;
            }
        }
コード例 #13
0
ファイル: Launchers.xaml.cs プロジェクト: follesoe/WP7Demos
 private void makeCall_Click(object sender, RoutedEventArgs e)
 {
     var numberChooser = new PhoneNumberChooserTask();
     numberChooser.Completed += (o, ne) =>
                                    {
                                        var callTask = new PhoneCallTask();
                                        callTask.PhoneNumber = ne.PhoneNumber;
                                        callTask.Show();
                                    };
     numberChooser.Show();
 }
コード例 #14
0
 private void btnContacts_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         _phoneNumberChooserTask.Show();
     }
     catch (System.InvalidOperationException ex)
     {
         MessageBox.Show("An error occurred." + ex.Message);
     }
 }
コード例 #15
0
        private void phoneNumberChooser_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 PhoneNumberChooserTask();

            task.Completed += (object sender2, PhoneNumberResult e2) =>
            {
                if (e2.Error == null && e2.TaskResult == TaskResult.OK)
                {
                    System.Diagnostics.Debug.WriteLine("{0}: {1}", e2.DisplayName, e2.PhoneNumber);
                }
            };
            task.Show();
        }
コード例 #16
0
 /// <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();
     }
 }
コード例 #17
0
ファイル: TelephonyHelper.cs プロジェクト: rahulyhg/cms-cli
        public static void ChoosePhoneNumber(DataEventHandler <string> callback)
        {
            PhoneNumberChooserTask task = new PhoneNumberChooserTask();

            task.Completed +=
                (sender, e) =>
            {
                if ((callback != null) && (e != null) && !String.IsNullOrEmpty(e.PhoneNumber))
                {
                    callback(null, new DataEventArgs <string>(e.PhoneNumber));
                }
            };

            task.Show();
        }
コード例 #18
0
        private void Button_clicked(object sender, RoutedEventArgs e)
        {
            Button current_button = (Button)sender;
            String button_name = current_button.Name;
            switch (button_name)
            {
                case "phone":
                    phoneNumberChooserTask = new PhoneNumberChooserTask();
                    phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
                    try
                    {
                        phoneNumberChooserTask.Show();
                    }
                    catch (System.InvalidOperationException ex)
                    {
                        MessageBox.Show("An error occurred.");
                    }
                    //PhoneCallTask phoneCallTask = new PhoneCallTask();

                    //phoneCallTask.PhoneNumber = "123456789";
                    //phoneCallTask.DisplayName = "Shadowfax Apps";

                    //phoneCallTask.Show();
                    break;
                case "feedback":
                    EmailComposeTask emailComposeTask = new EmailComposeTask();
                    emailComposeTask.Subject = "iPhone Skip App feedback";
                    emailComposeTask.Body = "";
                    emailComposeTask.To = "*****@*****.**";
                    emailComposeTask.Show();
                    break;
                case "website":
                    WebBrowserTask webBrowserTask4 = new WebBrowserTask();
                    webBrowserTask4.Uri = new Uri("http://shadowfax-apps.blogspot.in/", UriKind.Absolute);
                    webBrowserTask4.Show();
                    break;
                case "rate":
                    MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();
                    marketplaceReviewTask.Show();

                    break;

                default:
                    break;
            }
        }
コード例 #19
0
ファイル: dnd.xaml.cs プロジェクト: pvam/FreeSMS
 private void button1_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask task = new PhoneNumberChooserTask();
     task.Completed += (s, evt) =>
     {
         if (evt.Error == null && evt.TaskResult == TaskResult.OK)
         {
             temp = evt.PhoneNumber;
             if (temp != null && temp.Contains("+91"))
                 temp = temp.Substring(3);
             else if (temp != null && temp.Substring(0, 2).Equals("91") && temp.Length > 10)
                 temp = temp.Substring(2);
             textBox1.Text = temp;
         }
     };
     task.Show();
 }
コード例 #20
0
 private void Click_SMS(object sender, EventArgs e)
 {
     if (textBox1.Text != "")
     {
         Phone_Number_Chooser_Task            = new PhoneNumberChooserTask();
         Phone_Number_Chooser_Task.Completed += new EventHandler <PhoneNumberResult>(TaskChooserPhoneCompleted);
         try
         {
             Phone_Number_Chooser_Task.Show();
         }
         catch (System.InvalidOperationException)
         {
             MessageBox.Show("Une erreur est survenue.");
         }
     }
     else
     {
         MessageBox.Show("La localisation n'est pas démarrée !");
     }
 }
コード例 #21
0
        /// <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();
            }
        }
コード例 #22
0
        public static void SendSms(string body)
        {
            PhoneNumberChooserTask           phoneChooseTask = new PhoneNumberChooserTask();
            EventHandler <PhoneNumberResult> temp            = (o, result) =>
            {
                if (result.TaskResult == TaskResult.Cancel)
                {
                    return;
                }

                SmsComposeTask smsComposeTask = new SmsComposeTask
                {
                    To   = result.PhoneNumber,
                    Body = body
                };
                smsComposeTask.Show();
            };

            phoneChooseTask.Completed -= temp;
            phoneChooseTask.Completed += temp;
            phoneChooseTask.Show();
        }
コード例 #23
0
        private void SharePositionButton_Click(object sender, EventArgs e)
        {
            SmsComposeTask help = new SmsComposeTask();

            if (_appSettings.Contains("phonenumber"))
            {
                help.To   = _appSettings["phonenumber"].ToString();
                help.Body = "HELP! My position is:" + Convert.ToString(Dataclass.latX) + " degrees latitude," + Convert.ToString(Dataclass.lonY) + " degrees longitude.";
                help.Show();
            }
            else
            {
                var result1 = MessageBox.Show("Do you want to set default contacts?", "Tips", MessageBoxButton.OKCancel);
                if (result1 == MessageBoxResult.OK)
                {
                    jd.Show();
                }
                else
                {
                    help.Body = "HELP! My position is:" + Convert.ToString(Dataclass.latX) + " degrees latitude," + Convert.ToString(Dataclass.lonY) + " degrees longitude.";
                    help.Show();
                }
            }
        }
コード例 #24
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     but1Clicked = true;
     phNumChoseTask.Show();
 }
コード例 #25
0
 private void Button_Click(object sender, RoutedEventArgs e)
 {
     phoneNumberChooserTask.Show();
 }
コード例 #26
0
 private void btnPhone_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask task = new PhoneNumberChooserTask();
     task.Completed += (s, evt) =>
     {
         if (evt.Error == null && evt.TaskResult == TaskResult.OK)
         {
             MessageBox.Show(evt.PhoneNumber + " phone number selected!");
         }
     };
     task.Show();
 }
コード例 #27
0
 void btnContactos_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask task = new PhoneNumberChooserTask();
     task.Completed += task_Completed;
     task.Show();
 }
コード例 #28
0
ファイル: CallsPage.xaml.cs プロジェクト: IwonaKr/magisterka
 private void btnChooseContact_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask();
     phoneNumberChooserTask.Completed += phoneNumberChooser_Completed;
     phoneNumberChooserTask.Show();
 }
コード例 #29
0
ファイル: EditTask.xaml.cs プロジェクト: elixir67/Sandbox
 private void AddPhoneButton_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask phoneNumberChooserTask = new PhoneNumberChooserTask();
     phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
     phoneNumberChooserTask.Show();
 }
コード例 #30
0
 private void create_click(object sender, RoutedEventArgs e)
 {
     phoneNumberChooserTask.Show();
 }
コード例 #31
0
ファイル: SaveContact.xaml.cs プロジェクト: rvdfox/HelpKit
 private void Contactfn(object sender, System.Windows.Input.GestureEventArgs e)
 {
     PhoneNumberChooserTask chooser = new PhoneNumberChooserTask();
     chooser.Show();
     chooser.Completed += new EventHandler<PhoneNumberResult>(phonechoose_completed);
 }
コード例 #32
0
 public void ExecuteTask()
 {
     phoneNumberChooserTask.Show();
 }
コード例 #33
0
 private void ContactNumberBox_GotFocus(object sender, RoutedEventArgs e)
 {
     if (ContactNumberBox.Text == "Emergency contact phone number") ContactNumberBox.Text = "";
     PhoneNumberChooserTask pnct = new PhoneNumberChooserTask();
     pnct.Completed += pnct_Completed;
     pnct.Show();
 }
コード例 #34
0
 private void btnSendMess_Click(object sender, RoutedEventArgs e)
 {
     _choosePhoneNumberTask.Show();
 }
コード例 #35
0
 private void PhoneNumber_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
 {
     pnct.Show();
 }
コード例 #36
0
 private void btnSelecionar_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask _phone = new PhoneNumberChooserTask();
     _phone.Completed += _phone_Completed;
     _phone.Show();
 }
コード例 #37
0
 private void ApplicationBarIconButton_Click(object sender, System.EventArgs e)
 {
     var nummerTask = new PhoneNumberChooserTask();
     nummerTask.Completed += nummerTask_Completed;
     nummerTask.Show();
 }
コード例 #38
0
 /// <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();
     }
 }
コード例 #39
0
ファイル: MainPage2.xaml.cs プロジェクト: koush/GoogleVoice
 private void Call_Click(object sender, EventArgs e)
 {
     if (mPivot.SelectedItem == mDialerPivot)
     {
         string curNumber = mCurrentNumber.Text;
         if (string.IsNullOrEmpty(curNumber))
             return;
         mCurrentNumber.Text = string.Empty;
         App.Call(curNumber, curNumber, NavigationService);
     }
     else
     {
         PhoneNumberChooserTask phoneTask = new PhoneNumberChooserTask();
         phoneTask.Completed += (o, r) =>
         {
             if (r.TaskResult != TaskResult.OK)
                 return;
             Dispatcher.BeginInvoke(() =>
                 {
                     App.Call(r.PhoneNumber, r.PhoneNumber, NavigationService);
                 });
         };
         phoneTask.Show();
     }
 }
コード例 #40
0
 private void btnSms_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask contactsTask = new PhoneNumberChooserTask();
     contactsTask.Completed += (s, evt) =>
     {
         if (evt.Error == null && evt.TaskResult == TaskResult.OK)
         {
             SmsComposeTask smsTask = new SmsComposeTask();
             smsTask.Body = "Insert text from your application here.";
             smsTask.To = evt.PhoneNumber;
             smsTask.Show();
         }
     };
     contactsTask.Show();
 }
コード例 #41
0
ファイル: SMSPage.xaml.cs プロジェクト: pvam/FreeSMS
 //retreiving phone number
 private void button1_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         PhoneNumberChooserTask task = new PhoneNumberChooserTask();
         task.Completed += (s, evt) =>
         {
             if (evt.Error == null && evt.TaskResult == TaskResult.OK)
             {
                 temp = evt.PhoneNumber;
                 if (temp != null && temp[0] == '0' && temp.Length > 10)
                     temp = temp.Substring(1);
                 else if (temp != null && temp.Contains("+91"))
                     temp = temp.Substring(3);
                 else if (temp != null && temp.Substring(0, 2).Equals("91") && temp.Length > 10)
                     temp = temp.Substring(2);
                 temp = temp.Replace("-", "");
                 temp = temp.Replace("(", "");
                 temp = temp.Replace(")", "");
                 temp = temp.Replace(" ", "");
                 if (textBox1.Text == string.Empty)
                     textBox1.Text = temp;
                 else
                     textBox1.Text += "," + temp;
             }
         };
         task.Show();
     }
     catch (Exception exce)
     {
     }
 }
コード例 #42
0
 private void button1_Click(object sender, RoutedEventArgs e)
 {
     phonenumberchooser.Show();
 }
コード例 #43
0
        private void Button_clicked(object sender, RoutedEventArgs e)
        {
            Button current_button = (Button)sender;
            String button_name = current_button.Name;
            switch (button_name)
            {
                case "message":
                    //MessageBox.Show("message button clicked");
                    SmsComposeTask sms = new SmsComposeTask();
                    sms.To = "";
                    sms.Show();
                    break;
                case "calendar":
                    //MessageBox.Show("Canlendar button clicked");
                    WebBrowserTask webBrowserTask1 = new WebBrowserTask();
                    webBrowserTask1.Uri = new Uri("http://calendar.google.com/", UriKind.Absolute);
            webBrowserTask1.Show();
                    break;
                case "photos":
                     PhotoChooserTask photo = new PhotoChooserTask();
            photo.Show();
                    break;
                case "camera":
                    CameraCaptureTask cam = new CameraCaptureTask();
                    cam.Show();
                    break;
                case "youtube":
                     WebBrowserTask webBrowserTask2 = new WebBrowserTask();
                     webBrowserTask2.Uri = new Uri("http://m.youtube.com/", UriKind.Absolute);
            webBrowserTask2.Show();
                    break;
                case "stocks":
                    break;
                case "maps":
                    //MessageBox.Show("maps clicked");
                    BingMapsTask bmt = new BingMapsTask();
            //bmt.Center = new GeoCoordinate(-27.5, 153);
            bmt.SearchTerm = "New York";
            bmt.Show();
                    break;
                case "weather":
                    WebBrowserTask webBrowserTask3 = new WebBrowserTask();
                    webBrowserTask3.Uri = new Uri("http://www.weather.com/", UriKind.Absolute);
            webBrowserTask3.Show();

                    break;
                case "notes":
                    break;
                case "voice_memos":
                    break;
                case "itunes":
                     MarketplaceHubTask market1 = new MarketplaceHubTask();
                    market1.Show();
                    break;
                case "app_store":
                     MarketplaceHubTask market = new MarketplaceHubTask();
                    market.Show();
                    break;
                case "settings":
                    break;
                case "phone":
                    phoneNumberChooserTask = new PhoneNumberChooserTask();
                    phoneNumberChooserTask.Completed += new EventHandler<PhoneNumberResult>(phoneNumberChooserTask_Completed);
                    try
                    {
                        phoneNumberChooserTask.Show();
                    }
                    catch (System.InvalidOperationException ex)
                    {
                        MessageBox.Show("An error occurred.");
                    }
                    //PhoneCallTask phoneCallTask = new PhoneCallTask();

                    //phoneCallTask.PhoneNumber = "123456789";
                    //phoneCallTask.DisplayName = "Shadowfax Apps";

                    //phoneCallTask.Show();
                    break;
                case "mail":
                    EmailComposeTask emailComposeTask = new EmailComposeTask();
            emailComposeTask.Subject = "";
            emailComposeTask.Body = "";
            emailComposeTask.To = "";
            emailComposeTask.Show();
                    break;
                case "safari":
                    WebBrowserTask webBrowserTask4 = new WebBrowserTask();
            webBrowserTask4.Uri = new Uri("http://www.google.com", UriKind.Absolute);
            webBrowserTask4.Show();
                    break;
                case "ipod":

                    break;

                default:
                    break;
            }
        }
コード例 #44
0
ファイル: MainPage2.xaml.cs プロジェクト: koush/GoogleVoice
        private void Compose_Click(object sender, EventArgs e)
        {
            if (mPivot.SelectedItem == mDialerPivot)
            {
                string curNumber = mCurrentNumber.Text;
                if (string.IsNullOrEmpty(curNumber))
                    return;

                mCurrentNumber.Text = string.Empty;
                Dispatcher.BeginInvoke(() =>
                {
                    NavigationService.Navigate(new Uri(string.Format("/ConversationPage.xaml?phone={0}", Uri.EscapeDataString(curNumber)), UriKind.Relative));
                });
            }
            else
            {

                PhoneNumberChooserTask phoneTask = new PhoneNumberChooserTask();
                phoneTask.Completed += (o, r) =>
                {
                    if (r.TaskResult != TaskResult.OK)
                        return;

                    Dispatcher.BeginInvoke(() =>
                        {
                            NavigationService.Navigate(new Uri(string.Format("/ConversationPage.xaml?phone={0}", Uri.EscapeDataString(r.PhoneNumber)), UriKind.Relative));
                        });
                };
                try
                {
                    phoneTask.Show();
                }
                catch (Exception)
                {
                }
            }
        }
コード例 #45
0
ファイル: createpack.xaml.cs プロジェクト: ahmeda8/RodeDog
 private void invite_Click(object sender, RoutedEventArgs e)
 {
     PhoneNumberChooserTask pct = new PhoneNumberChooserTask();
     pct.Show();
 }
コード例 #46
0
ファイル: TaskPage.xaml.cs プロジェクト: ogazitt/TaskStore
        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);
        }
コード例 #47
0
 private void phoneNumberChooser_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 PhoneNumberChooserTask();
     task.Completed += (object sender2, PhoneNumberResult e2) =>
     {
         if (e2.Error == null && e2.TaskResult == TaskResult.OK)
             System.Diagnostics.Debug.WriteLine("{0}: {1}", e2.DisplayName, e2.PhoneNumber);
     };
     task.Show();
 }
コード例 #48
0
ファイル: ItemPage.xaml.cs プロジェクト: ogazitt/zaplify
        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);
        }
コード例 #49
0
 private void button1_Click(object sender, RoutedEventArgs e)
 {
     pnc.Show();
 }