private void ThirdTabAlarmSettings(TabItem item) { item.Header = "Alarm Settings"; StackPanel sp = new StackPanel(); sp.Background = Brushes.Transparent; Grid g = new Grid(); g.Background = Brushes.Transparent; RowDefinition rdef1 = new RowDefinition(); RowDefinition rdef2 = new RowDefinition(); RowDefinition rdef3 = new RowDefinition(); g.RowDefinitions.Add(rdef1); g.RowDefinitions.Add(rdef2); g.RowDefinitions.Add(rdef3); ColumnDefinition cd1 = new ColumnDefinition(); GridLength gdl = new GridLength(300); cd1.Width = gdl; ColumnDefinition cd2 = new ColumnDefinition(); g.ColumnDefinitions.Add(cd1); g.ColumnDefinitions.Add(cd2); Label l1 = new Label(); l1.Background = sp.Background; l1.Content = "Date (mm/dd/yyyy)"; TextBox date = new TextBox(); date.Text = "/2006"; date.Name = "date"; //if (Alarm.CompareTo(DateTime.Now) >= 0) //{ // date.Text = Alarm.Date.ToShortDateString(); //} if (AlarmRepetition.Contains("null")) { if ((Alarm.CompareTo(DateTime.Now) >= 0) || (((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) < 8) && ((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) >= 0))) { date.Text = Alarm.Date.ToShortDateString(); } } else { date.Text = Alarm.Date.ToShortDateString(); } Grid.SetRow(l1, 0); Grid.SetColumn(l1, 0); Grid.SetRow(date, 0); Grid.SetColumn(date, 1); Label l2 = new Label(); l2.Background = sp.Background; l2.Content = "Time (hr:min:sec)"; TextBox time = new TextBox(); time.Text = "00:00:00"; time.Name = "time"; if (AlarmRepetition.Contains("null")) { if ((Alarm.CompareTo(DateTime.Now) >= 0) || (((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) < 8) && ((DateTime.Now.TimeOfDay.Hours - Alarm.TimeOfDay.Hours) >= 0))) { time.Text = Alarm.TimeOfDay.ToString(); } } else { time.Text = Alarm.TimeOfDay.ToString(); } Grid.SetRow(l2, 1); Grid.SetColumn(l2, 0); Grid.SetRow(time, 1); Grid.SetColumn(time, 1); g.Children.Add(l1); g.Children.Add(date); g.Children.Add(l2); g.Children.Add(time); Label l3 = new Label(); l3.Background = sp.Background; l3.Content = "Repeat Every:"; TextBox repeatNumber = new TextBox(); repeatNumber.Text = "0"; repeatNumber.Name = "repeat"; repeatNumber.MaxLength = 3; repeatNumber.TextChanged += new TextChangedEventHandler(repeatNumber_TextChanged); if (alarmRepetition.Contains("null") == false) { repeatNumber.Text = alarmRepetition.Substring(1); } Label space = new Label(); space.Background = sp.Background; space.Content = " "; CheckBox daysCheck = new CheckBox(); daysCheck.IsChecked = false; daysCheck.VerticalAlignment = VerticalAlignment.Center; daysCheck.Name = "daysCheck"; daysCheck.Checked += new RoutedEventHandler(daysCheck_Checked); Label l4 = new Label(); l4.Background = sp.Background; l4.Content = "Day(s)"; Label space1 = new Label(); space.Background = sp.Background; space.Content = " "; CheckBox weeksCheck = new CheckBox(); weeksCheck.IsChecked = false; weeksCheck.VerticalAlignment = VerticalAlignment.Center; weeksCheck.Name = "weeksCheck"; weeksCheck.Checked += new RoutedEventHandler(weeksCheck_Checked); try { if (alarmRepetition.Contains("null") == false) { char[] charr = alarmRepetition.ToCharArray(0, 1); switch (charr[0]) { case 'D': daysCheck.IsChecked = true; break; case 'W': weeksCheck.IsChecked = true; break; default: break; } } } catch (Exception) { } Label l5 = new Label(); l5.Background = sp.Background; l5.Content = "Week(s)"; WrapPanel wp = new WrapPanel(); wp.Children.Add(l3); wp.Children.Add(repeatNumber); wp.Children.Add(space); wp.Children.Add(daysCheck); wp.Children.Add(l4); wp.Children.Add(space1); wp.Children.Add(weeksCheck); wp.Children.Add(l5); Label status = new Label(); status.Background = sp.Background; status.Name = "statusThirdTab"; sp.Children.Add(g); sp.Children.Add(wp); sp.Children.Add(status); item.Content = sp; }
void ok_Click(object sender, RoutedEventArgs e) { TextBox server = LogicalTreeHelper.FindLogicalNode(this, "server") as TextBox; TextBox account = LogicalTreeHelper.FindLogicalNode(this, "account") as TextBox; TextBox date = LogicalTreeHelper.FindLogicalNode(this, "date") as TextBox; TextBox time = LogicalTreeHelper.FindLogicalNode(this, "time") as TextBox; TextBox repeatNumber = LogicalTreeHelper.FindLogicalNode(this, "repeat") as TextBox; CheckBox daysCheck = LogicalTreeHelper.FindLogicalNode(this, "daysCheck") as CheckBox; CheckBox weeksCheck = LogicalTreeHelper.FindLogicalNode(this, "weeksCheck") as CheckBox; string str = (daysCheck.IsChecked == true) ? "D" : ""; str += (weeksCheck.IsChecked == true) ? "W" : ""; if (str != string.Empty) { str += repeatNumber.Text; } else { str = "null"; } if ((date.Text != string.Empty) && (date.Text != "/2006") && (!(date.Text.Contains(Alarm.Date.ToShortDateString())) || !(AlarmRepetition.Contains(str)) || !(Alarm.TimeOfDay.ToString().Contains(time.Text)))) { string dateString = date.Text; int[] arr = new int[3]; string timeString = time.Text; int[] arr1 = new int[3]; int tail = 0; int head = dateString.IndexOf('/'); head = (head >= 0) ? head : 0; try { for (int i = 0; i < 3; i++) { head = (i == (arr.Length - 1)) ? (dateString.Length) : head; arr[i] = Int32.Parse(dateString.Substring(tail, head - tail)); if (head == dateString.Length) { break; } tail = head + 1; head = dateString.IndexOf('/', tail); } tail = 0; head = timeString.IndexOf(':'); head = (head >= 0) ? head : 0; for (int i = 0; i < 3; i++) { head = (i == (arr1.Length - 1)) ? (timeString.Length) : head; arr1[i] = Int32.Parse(timeString.Substring(tail, head - tail)); if (head == timeString.Length) { break; } tail = head + 1; head = timeString.IndexOf(':', tail); } DateTime dt = new DateTime(arr[2], arr[0], arr[1], arr1[0], arr1[1], arr1[2]); if (dt.CompareTo(DateTime.Now) >= 0) { this.alarm = dt; PropArray[(int)PropNames.Alarm] = dt; if (repeatNumber.Text != string.Empty) { alarmRepetition = (daysCheck.IsChecked == true) ? "D" : ""; alarmRepetition += (weeksCheck.IsChecked == true) ? "W" : ""; if (alarmRepetition != string.Empty) { alarmRepetition += repeatNumber.Text; } else { alarmRepetition = "null"; } } this.Tag = "OK"; this.Close(); } else { this.Title = "AlarmSettings Error"; Label l = LogicalTreeHelper.FindLogicalNode(this, "statusThirdTab") as Label; l.Content = "Alarm can be set if the event is after Current time"; l.Foreground = Brushes.Red; } } catch (Exception e1) { Label l = LogicalTreeHelper.FindLogicalNode(this, "statusThirdTab") as Label; l.Content = e1.Message; l.Foreground = Brushes.Red; this.Title = "AlarmSettings Error"; } } else { if (((server.Text == string.Empty) && (account.Text == string.Empty)) || ((server.Text != string.Empty) && (account.Text != string.Empty))) { if (((server.Text != string.Empty) && (account.Text != string.Empty))) { TextBox port = LogicalTreeHelper.FindLogicalNode(this, "port") as TextBox; CheckBox cb = LogicalTreeHelper.FindLogicalNode(this, "sslCheck") as CheckBox; FileStream fs = new FileStream("MailServerInfo", FileMode.OpenOrCreate); StreamWriter _writer = new StreamWriter(fs); _writer.WriteLine(server.Text); _writer.WriteLine(account.Text); port.Text = (port.Text != string.Empty) ? port.Text : "25"; _writer.WriteLine(port.Text); string check = (cb.IsChecked == true) ? "true" : "false"; _writer.WriteLine(check); _writer.Close(); fs.Close(); } this.Tag = "OK"; this.Close(); } else { this.Title = "Mail settings are incomplete"; server.Background = account.Background = Window2.ChangeBackgroundColor(Colors.Red); Label status = LogicalTreeHelper.FindLogicalNode(this, "status") as Label; status.Content = "Fill in highlighted fields"; status.Foreground = Brushes.Red; } } }