diff -r beb938b4fb76 -r bd33267300aa client/src/Iri.Modernisation.Controls/View/BookTimeLine/BookTimeLine.xaml.cs --- a/client/src/Iri.Modernisation.Controls/View/BookTimeLine/BookTimeLine.xaml.cs Wed Jan 27 10:55:59 2010 +0100 +++ b/client/src/Iri.Modernisation.Controls/View/BookTimeLine/BookTimeLine.xaml.cs Thu Feb 04 16:38:04 2010 +0100 @@ -13,6 +13,7 @@ using Iri.Modernisation.Data.Models; using Iri.Modernisation.Controls.ViewModel; using Iri.Modernisation.BaseMVVM.Commands; +using System.IO; namespace Iri.Modernisation.Controls.View { public partial class BookTimeLine : UserControl @@ -22,15 +23,53 @@ InitializeComponent(); TimeStripsPanel.SizeChanged += new SizeChangedEventHandler(TimeStripsPanel_SizeChanged); - BookTimeLineSlider.MouseLeftButtonUp += new MouseButtonEventHandler(BookTimeLineSlider_MouseLeftButtonUp); + BookTimeLineSlider.ThumbDragStarted += new EventHandler(TimeSlider_ThumbDragCompleted); + BookTimeLineSlider.ThumbDragCompleted += new EventHandler(TimeSlider_ThumbDragCompleted); + BookTimeLineSlider.MouseLeftButtonUp += new MouseButtonEventHandler(BookTimeLineSlider_MouseLeftButtonUp); + saveAnnotationsButton.Click += new RoutedEventHandler(saveAnnotationsButton_Click); + Commands.AnnotationMaker.NewAnnotationFinished.Executed += new EventHandler(NewAnnotationFinished_Executed); } - void BookTimeLineSlider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) + void saveAnnotationsButton_Click(object sender, RoutedEventArgs e) + { + SaveFileDialog mySaveDialog = new SaveFileDialog(); + mySaveDialog.Filter = "Ldt File (.ldt)|*.ldt|All Files|*.*"; + bool? ret = mySaveDialog.ShowDialog(); + if (ret == true) + { + + + VideoBookUploader.UpdateAnnotation(((BookTimeLineVM)DataContext).SelectedBook, new StreamWriter(mySaveDialog.OpenFile())); + + } + + } + private bool _saveVideoViewerState { get; set; } + private void TimeSlider_ThumbDragCompleted(object sender, EventArgs e) + { + if (_saveVideoViewerState) + { + ((BookTimeLineVM)DataContext).ViewModelVideoViewer.Play(); + } + } + + private void TimeSlider_ThumbDragStarted(object sender, EventArgs e) + { + _saveVideoViewerState = ((BookTimeLineVM)DataContext).ViewModelVideoViewer.IsPLayed; + ((BookTimeLineVM)DataContext).ViewModelVideoViewer.Pause(); + + } + private void NewAnnotationFinished_Executed(object sender, SLExtensions.Input.ExecutedEventArgs e) + { + Draw(); + } + + private void BookTimeLineSlider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { Commands.TimeChange.Execute(BookTimeLineSlider.Value,DataContext); } - - void TimeStripsPanel_SizeChanged(object sender, SizeChangedEventArgs e) + + private void TimeStripsPanel_SizeChanged(object sender, SizeChangedEventArgs e) { Draw(); } @@ -47,16 +86,15 @@ { PolemicElementControl pol = new PolemicElementControl(); - pol.SetValue(Canvas.ZIndexProperty, 10); pol.DataContext = new PolemicElementVM(Index); BookTimeLineElementPanel.Children.Add(pol); - - Canvas.SetLeft(pol, (Index.TimerIn.TotalMilliseconds * ScaleTimeLine.Value) / VM.TotalDuration); - pol.Width = (Index.Duration.TotalMilliseconds * ScaleTimeLine.Value) / VM.TotalDuration; + double timeleft = (double)((Index.TimerIn.TotalMilliseconds / BookTimeLineVM.ratioPixMs) * ScaleTimeLine.Value); + Canvas.SetLeft(pol,timeleft); + pol.Width = (Index.Duration.TotalMilliseconds / BookTimeLineVM.ratioPixMs) * ScaleTimeLine.Value; } } - int basi = 30; + int basi = 0; foreach (List LAnnotation in VM.Annotations) { foreach (Annotation Annotation in LAnnotation) @@ -64,21 +102,41 @@ PolemicElementControl pol = new PolemicElementControl(); pol.SetValue(Canvas.ZIndexProperty, 10); pol.DataContext = new PolemicElementVM(Annotation); - BookTimeLineAnnotationPanel.Children.Add(pol); - Canvas.SetLeft(pol, (Annotation.TimerIn.TotalMilliseconds * ScaleTimeLine.Value) / VM.TotalDuration); + + Canvas.SetLeft(pol, (Annotation.TimerIn.TotalMilliseconds / BookTimeLineVM.ratioPixMs)* ScaleTimeLine.Value); + + /** It's TETRIS time **/ + foreach (PolemicElementControl lockedControl in BookTimeLineAnnotationPanel.Children) + { + if ( + ((PolemicElementVM)pol.DataContext).TimerIn >= ((PolemicElementVM)lockedControl.DataContext).TimerIn && ((PolemicElementVM)pol.DataContext).TimerIn <= ((PolemicElementVM)lockedControl.DataContext).TimerOut + || ((PolemicElementVM)pol.DataContext).TimerOut >= ((PolemicElementVM)lockedControl.DataContext).TimerIn && ((PolemicElementVM)pol.DataContext).TimerOut <= ((PolemicElementVM)lockedControl.DataContext).TimerOut + + ) + { + int actualTop = (int)Canvas.GetTop(lockedControl); + if (basi <= actualTop) + { + basi += 10; + } + + } + } + Canvas.SetTop(pol, basi); - basi += 10; - pol.Width = (Annotation.Duration.TotalMilliseconds * ScaleTimeLine.Value) / VM.TotalDuration; + /***********************/ + + + // pol.Width = (Annotation.Duration.TotalMilliseconds * ScaleTimeLine.Value) / VM.TotalDuration; + pol.Width = (Annotation.Duration.TotalMilliseconds / BookTimeLineVM.ratioPixMs)* ScaleTimeLine.Value; + BookTimeLineAnnotationPanel.Children.Add(pol); + basi = 0; } } BookTimeLineElementPanel.UpdateLayout(); } - private void BookTimeLineSlider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) - { - MessageBox.Show("Change"); - BookTimeLineSlider.Value = (e.GetPosition(BookTimeLineSlider).X) * BookTimeLineSlider.Maximum / BookTimeLineSlider.Width; - } +