00001 00002 using System; 00003 using Gtk; 00004 using Foodolini.Activities; 00005 using Foodolini.BusinessLogic; 00006 00007 00008 namespace Foodolini.Activities.RegisterExercise 00009 { 00010 [FoodoliniActivity("Edit exercise", true)] 00011 [System.ComponentModel.ToolboxItem(true)] 00012 public partial class ExerciseEditorDialog : Gtk.Dialog, IActivity 00013 { 00014 private IOwner owner; 00015 private Exercise exercise; 00016 private ChooseSportsActivity cs = new ChooseSportsActivity(); 00017 00018 public ExerciseEditorDialog(Exercise chosenExercise) 00019 { 00020 this.Build(); 00021 this.exercise = chosenExercise; 00022 spbtHours.Value = (double)exercise.Duration.Hours; 00023 spbtMinutes.Value = (double)exercise.Duration.Minutes; 00024 calDatePerformed.Date = exercise.PerformedDate; 00025 vbChooseSport.Add(cs); 00026 cs.SportsActivity = exercise.Activity; 00027 cs.Show(); 00028 cs.SportsActivityChanged += HandleSportsActivityChanged; 00029 this.buttonOK.Sensitive = this.cs.SportsActivity != null;; 00030 } 00031 00032 void HandleSportsActivityChanged(object sender, EventArgs e){ 00033 this.buttonOK.Sensitive = this.cs.SportsActivity != null; 00034 } 00035 00036 protected virtual void OnBtSaveExerciseClicked (object sender, System.EventArgs e) 00037 { 00038 } 00039 00043 public void SaveExercise() 00044 { 00045 TimeSpan time = new TimeSpan((int)spbtHours.Value, (int)spbtMinutes.Value, 0); 00046 00047 00048 this.exercise.Activity = this.cs.SportsActivity; 00049 this.exercise.Duration = time; 00050 this.exercise.PerformedDate = calDatePerformed.Date; 00051 this.exercise.Save(); 00052 } 00053 00057 public Exercise Exercise{ 00058 get {return this.exercise;} 00059 } 00060 00061 public void Register(IOwner owner){ 00062 this.owner = owner; 00063 } 00064 00065 public void Unregister(){ 00066 00067 this.owner = null; 00068 } 00069 00070 protected virtual void OnButtonOKClicked (object sender, System.EventArgs e) 00071 { 00072 } 00073 00074 protected virtual void OnButtonCancelClicked (object sender, System.EventArgs e) 00075 { 00076 } 00077 public Widget Widget{ 00078 get{ 00079 return this; 00080 } 00081 } 00082 00083 } 00084 }