private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { e.Handled = true; if (_holdingStart || _holdingEnd || _moving) { return; } if (e.ClickCount == 2) { this.Cursor = _moving ? Cursors.Hand : Cursors.Arrow; _holdingStart = _holdingEnd = _moving = false; Mouse.Capture(null); e.Handled = true; var edit = new TimeslotEdit(Model); //TODO consume suggestion service edit.CaseSuggestions.Add("test case 1"); edit.CaseSuggestions.Add("test case 2"); edit.CaseSuggestions.Add("test second case 1"); edit.CaseSuggestions.Add("test second case 2"); edit.CaseSuggestions = edit.CaseSuggestions; edit.OrderSuggestions.Add("test order 1"); edit.OrderSuggestions.Add("test order 2"); edit.OrderSuggestions.Add("test second order 1"); edit.OrderSuggestions.Add("second test order 2"); edit.OrderSuggestions = edit.OrderSuggestions; edit.DescriptionSuggestions.Add("test desc 1"); edit.DescriptionSuggestions.Add("test desc 2"); edit.DescriptionSuggestions.Add("second test desc 1"); edit.DescriptionSuggestions.Add("second test desc 2"); edit.DescriptionSuggestions = edit.DescriptionSuggestions; edit.Left = PointToScreen(e.GetPosition(this)).X - (edit.Width / 2); edit.Top = PointToScreen(e.GetPosition(this)).Y - (edit.Height / 2); edit.ShowDialog(); return; } var pos = e.GetPosition(this); var ancestor = this.FindParent<TimelineControl>(); var outerPos = ancestor == null ? e.GetPosition(Application.Current.MainWindow) : e.GetPosition(ancestor); if (pos.X < EDGE_WIDTH) { _holdingStart = true; _tickSize = this.ActualWidth / Model.Duration.TotalMinutes; _origin = outerPos.X; _previousAdjustment = 0; Mouse.Capture(this); } else if (pos.X > this.ActualWidth - EDGE_WIDTH) { _holdingEnd = true; _tickSize = this.ActualWidth / Model.Duration.TotalMinutes; _origin = outerPos.X; _previousAdjustment = 0; Mouse.Capture(this); } else { _moving = true; _tickSize = this.ActualWidth / Model.Duration.TotalMinutes; _origin = outerPos.X; _previousAdjustment = 0; Mouse.Capture(this); if (!Model.Selected) { OnSelected(true); } } }
private void UserControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { Mouse.Capture(null); Mouse.OverrideCursor = null; if (_recordAdding != null) { var edit = new TimeslotEdit(_recordAdding); //TODO consume suggestion service edit.CaseSuggestions.Add("test case 1"); edit.CaseSuggestions.Add("test case 2"); edit.CaseSuggestions.Add("test second case 1"); edit.CaseSuggestions.Add("test second case 2"); edit.CaseSuggestions = edit.CaseSuggestions; edit.OrderSuggestions.Add("test order 1"); edit.OrderSuggestions.Add("test order 2"); edit.OrderSuggestions.Add("test second order 1"); edit.OrderSuggestions.Add("second test order 2"); edit.OrderSuggestions = edit.OrderSuggestions; edit.DescriptionSuggestions.Add("test desc 1"); edit.DescriptionSuggestions.Add("test desc 2"); edit.DescriptionSuggestions.Add("second test desc 1"); edit.DescriptionSuggestions.Add("second test desc 2"); edit.DescriptionSuggestions = edit.DescriptionSuggestions; edit.Left = PointToScreen(e.GetPosition(this)).X - (edit.Width / 2); edit.Top = PointToScreen(e.GetPosition(this)).Y - (edit.Height / 2); edit.ShowDialog(); if (edit.ShouldSave) { //TODO persist via service } else { Model.Records.Remove(_recordAdding); } } _recordAdding = null; }