00001 00002 using System; 00003 using Gtk; 00004 using Foodolini.Activities; 00005 using Foodolini.BusinessLogic; 00006 00007 namespace Foodolini.Activities.RegisterExercise 00008 { 00009 [FoodoliniActivity("Register exercise", true,"Exercise.png")] 00010 [System.ComponentModel.ToolboxItem(true)] 00011 public partial class RegisterExerciseDialog : Gtk.Dialog, IActivity 00012 { 00013 private IOwner owner; 00014 private Exercise exercise; 00015 private ChooseSportsActivity cs = new ChooseSportsActivity(); 00016 00017 public RegisterExerciseDialog() 00018 { 00019 this.Build(); 00020 this.Shown += HandleShown; 00021 vbChooseSport.Add(cs); 00022 cs.Show(); 00023 cs.SportsActivityChanged += HandleSportsActivityChanged; 00024 this.btSaveExercise.Sensitive = false; 00025 } 00026 00027 void HandleSportsActivityChanged(object sender, EventArgs e){ 00028 this.btSaveExercise.Sensitive = this.cs.SportsActivity != null; 00029 } 00030 00031 void HandleShown(object sender, EventArgs e) 00032 { 00033 CheckUser(); 00034 } 00035 00036 public void Register(IOwner owner){ 00037 this.owner = owner; 00038 this.owner.CurrentUserChanged += HandleCurrentUserChanged; 00039 } 00040 00041 void HandleCurrentUserChanged(object sender, PersonEventArgs e) 00042 { 00043 CheckUser(); 00044 } 00045 00050 private void CheckUser() { 00051 if (this.owner.CurrentUser == null) { 00052 btSaveExercise.Sensitive = false; 00053 } else { 00054 btSaveExercise.Sensitive = true; 00055 } 00056 } 00057 00061 public void Unregister(){ 00062 this.owner.CurrentUserChanged -= HandleCurrentUserChanged; 00063 this.owner = null; 00064 } 00065 00075 protected virtual void OnBtSaveExerciseClicked (object sender, System.EventArgs e) 00076 { 00077 TimeSpan time = new TimeSpan((int)spbtHours.Value, (int)spbtMinutes.Value, 0); 00078 this.exercise = new Exercise(this.cs.SportsActivity, time, this.owner.CurrentUser, calDatePerformed.Date); 00079 this.exercise.Save(); 00080 00081 } 00082 00092 protected virtual void OnBtCancelClicked (object sender, System.EventArgs e) 00093 { 00094 } 00095 00099 public Exercise Exercise{ 00100 get {return this.exercise;} 00101 } 00102 00103 public Widget Widget{ 00104 get{ 00105 return this; 00106 } 00107 } 00108 } 00109 00110 00111 }