/// <summary> /// Call corresponding on changed method when the depependency property /// for this <seealso cref="ITextBoxController"/> is changed. /// </summary> /// <param name="d"></param> /// <param name="e"></param> private static void OnTextBoxControllerChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var fileDoc = d as EdiTextEditor; if (fileDoc == null) { return; } ////throw new ArgumentNullException("Object of type FileDocument is not available!"); var txtBox = fileDoc as EdiTextEditor; // Remove event handler from old if OldValue is available if (e.OldValue is ITextBoxController) { ITextBoxController oldController = e.OldValue as ITextBoxController; elements.Remove(oldController); oldController.SelectAll -= SelectAll; oldController.Select -= Select; oldController.ScrollToLineEvent -= ScrollToLine; oldController.CurrentSelectionEvent -= CurrentSelection; oldController.BeginChangeEvent -= EdiTextEditor.BeginChange; oldController.EndChangeEvent -= EdiTextEditor.EndChange; oldController.GetSelectedTextEvent -= EdiTextEditor.GetSelectedText; } // Add new eventhandler for each event declared in the interface declaration if (e.NewValue is ITextBoxController) { ITextBoxController newController = e.NewValue as ITextBoxController; // Sometime the newController is already there but the event handling is not working // Remove controller and event handling and install a new one instead. TextEditor test; if (elements.TryGetValue(newController, out test) == true) { elements.Remove(newController); newController.SelectAll -= EdiTextEditor.SelectAll; newController.Select -= EdiTextEditor.Select; newController.ScrollToLineEvent -= EdiTextEditor.ScrollToLine; newController.CurrentSelectionEvent -= EdiTextEditor.CurrentSelection; newController.BeginChangeEvent -= EdiTextEditor.BeginChange; newController.EndChangeEvent -= EdiTextEditor.EndChange; newController.GetSelectedTextEvent -= EdiTextEditor.GetSelectedText; } elements.Add(newController, txtBox); newController.SelectAll += SelectAll; newController.Select += Select; newController.ScrollToLineEvent += ScrollToLine; newController.CurrentSelectionEvent += CurrentSelection; newController.BeginChangeEvent += EdiTextEditor.BeginChange; newController.EndChangeEvent += EdiTextEditor.EndChange; newController.GetSelectedTextEvent += EdiTextEditor.GetSelectedText; } }
private static void GetSelectedText(ITextBoxController sender, out string selectedText) { if (!elements.TryGetValue(sender, out TextEditor element)) { throw new ArgumentException("Unable to get element for sender in GetSelectedText"); } selectedText = element.SelectedText; }
private static void EndChange(ITextBoxController sender) { TextEditor element; if (!elements.TryGetValue(sender, out element)) throw new ArgumentException("sender"); element.EndChange(); }
private static void EndChange(ITextBoxController sender) { if (!elements.TryGetValue(sender, out TextEditor element)) { throw new ArgumentException("Unable to get element for sender in EndChange"); } element.EndChange(); }
/// <summary> /// Scroll to a specific line in the currently displayed editor text /// </summary> /// <param name="sender"></param> /// <param name="line"></param> private static void ScrollToLine(ITextBoxController sender, int line) { if (!elements.TryGetValue(sender, out TextEditor element)) { throw new ArgumentException("Unable to get element from sender for ScrollToline method"); } element.Focus(); element.ScrollToLine(line); }
/// <summary> /// Select all text in the editor /// </summary> /// <param name="sender"></param> private static void SelectAll(ITextBoxController sender) { if (!elements.TryGetValue(sender, out TextEditor element)) { throw new ArgumentException("Unable to get element from sender for SelecteAll method"); } element.Focus(); element.SelectAll(); }
private static void SelectAll(ITextBoxController sender) { TextBox element; if (!elements.TryGetValue(sender, out element)) { throw new ArgumentException("sender"); } element.Focus(); element.SelectAll(); }
private static void EndChange(ITextBoxController sender) { if (!elements.TryGetValue(sender, out TextEditor element)) #pragma warning disable CA1303 // Do not pass literals as localized parameters { throw new ArgumentException("Unable to get element for sender in EndChange"); } #pragma warning restore CA1303 // Do not pass literals as localized parameters element.EndChange(); }
private static void EndChange(ITextBoxController sender) { TextEditor element; if (!elements.TryGetValue(sender, out element)) { throw new ArgumentException("sender"); } element.EndChange(); }
private static void GetSelectedText(ITextBoxController sender, out string selectedText) { if (!elements.TryGetValue(sender, out TextEditor element)) #pragma warning disable CA1303 // Do not pass literals as localized parameters { throw new ArgumentException("Unable to get element for sender in GetSelectedText"); } #pragma warning restore CA1303 // Do not pass literals as localized parameters selectedText = element.SelectedText; }
/// <summary> /// Scroll to a specific line in the currently displayed editor text /// </summary> /// <param name="sender"></param> /// <param name="line"></param> private static void ScrollToLine(ITextBoxController sender, int line) { TextEditor element; if (!elements.TryGetValue(sender, out element)) { throw new ArgumentException("sender"); } element.Focus(); element.ScrollToLine(line); }
/// <summary> /// Select all text in the editor /// </summary> /// <param name="sender"></param> private static void SelectAll(ITextBoxController sender) { if (!elements.TryGetValue(sender, out TextEditor element)) #pragma warning disable CA1303 // Do not pass literals as localized parameters { throw new ArgumentException("Unable to get element from sender for SelecteAll method"); } #pragma warning restore CA1303 // Do not pass literals as localized parameters element.Focus(); element.SelectAll(); }
private static void GetSelectedText(ITextBoxController sender, out string selectedText) { TextEditor element; selectedText = string.Empty; if (!elements.TryGetValue(sender, out element)) { throw new ArgumentException("sender"); } selectedText = element.SelectedText; }
/// <summary> /// Select the text in the editor as indicated by <paramref name="start"/> /// and <paramref name="length"/>. /// </summary> /// <param name="sender"></param> /// <param name="start"></param> /// <param name="length"></param> private static void Select(ITextBoxController sender, int start, int length) { if (!elements.TryGetValue(sender, out TextEditor element)) { throw new ArgumentException("Unable to get element from sender for Select method"); } // element.Focus(); element.Select(start, length); TextLocation loc = element.Document.GetLocation(start); element.ScrollTo(loc.Line, loc.Column); }
/// <summary> /// Get the state of the current selection start, end and whether its rectangular or not. /// </summary> /// <param name="sender"></param> /// <param name="start"></param> /// <param name="length"></param> /// <param name="IsRectangularSelection"></param> private static void CurrentSelection(ITextBoxController sender, out int start, out int length, out bool IsRectangularSelection) { if (!elements.TryGetValue(sender, out TextEditor element)) { throw new ArgumentException("Unable to get Element for sender in CurrentSelection method"); } start = element.SelectionStart; length = element.SelectionLength; IsRectangularSelection = element.TextArea.Selection.EnableVirtualSpace; // element.TextArea.Selection = RectangleSelection.Create(element.TextArea, start, length); }
/// <summary> /// Get the state of the current selection start, end and whether its rectangular or not. /// </summary> /// <param name="sender"></param> /// <param name="start"></param> /// <param name="length"></param> /// <param name="IsRectangularSelection"></param> private static void CurrentSelection(ITextBoxController sender, out int start, out int length, out bool IsRectangularSelection) { TextEditor element; if (!elements.TryGetValue(sender, out element)) throw new ArgumentException("sender"); start = element.SelectionStart; length = element.SelectionLength; IsRectangularSelection = element.TextArea.Selection.EnableVirtualSpace; // element.TextArea.Selection = RectangleSelection.Create(element.TextArea, start, length); }
/// <summary> /// Select the text in the editor as indicated by <paramref name="start"/> /// and <paramref name="length"/>. /// </summary> /// <param name="sender"></param> /// <param name="start"></param> /// <param name="length"></param> private static void Select(ITextBoxController sender, int start, int length) { if (!elements.TryGetValue(sender, out TextEditor element)) #pragma warning disable CA1303 // Do not pass literals as localized parameters { throw new ArgumentException("Unable to get element from sender for Select method"); } #pragma warning restore CA1303 // Do not pass literals as localized parameters // element.Focus(); element.Select(start, length); TextLocation loc = element.Document.GetLocation(start); element.ScrollTo(loc.Line, loc.Column); }
/// <summary> /// Get the state of the current selection start, end and whether its rectangular or not. /// </summary> /// <param name="sender"></param> /// <param name="start"></param> /// <param name="length"></param> /// <param name="IsRectangularSelection"></param> private static void CurrentSelection(ITextBoxController sender, out int start, out int length, out bool IsRectangularSelection) { if (!elements.TryGetValue(sender, out TextEditor element)) #pragma warning disable CA1303 // Do not pass literals as localized parameters { throw new ArgumentException("Unable to get Element for sender in CurrentSelection method"); } #pragma warning restore CA1303 // Do not pass literals as localized parameters start = element.SelectionStart; length = element.SelectionLength; IsRectangularSelection = element.TextArea.Selection.EnableVirtualSpace; // element.TextArea.Selection = RectangleSelection.Create(element.TextArea, start, length); }
internal static void SetTextBoxController(UIElement element, ITextBoxController value) { element.SetValue(DAXEditor.TextBoxControllerProperty, value); }
/// <summary> /// Select all text in the editor /// </summary> /// <param name="sender"></param> private static void SelectAll(ITextBoxController sender) { TextEditor element; if (!elements.TryGetValue(sender, out element)) throw new ArgumentException("sender"); element.Focus(); element.SelectAll(); }
/// <summary> /// Scroll to a specific line in the currently displayed editor text /// </summary> /// <param name="sender"></param> /// <param name="line"></param> private static void ScrollToLine(ITextBoxController sender, int line) { TextEditor element; if (!elements.TryGetValue(sender, out element)) throw new ArgumentException("sender"); element.Focus(); element.ScrollToLine(line); }
/// <summary> /// Get method for TextBoxController dependency property is set. /// </summary> /// <param name="element"></param> /// <param name="value"></param> public static void SetTextBoxController(UIElement element, ITextBoxController value) { element.SetValue(EdiTextEditor.TextBoxControllerProperty, value); }
public static void SetTextBoxController(UIElement element, ITextBoxController value) { element.SetValue(TextBoxControllerProperty, value); }
/// <summary> /// Select the text in the editor as indicated by <paramref name="start"/> /// and <paramref name="length"/>. /// </summary> /// <param name="sender"></param> /// <param name="start"></param> /// <param name="length"></param> private static void Select(ITextBoxController sender, int start, int length) { TextEditor element; if (!elements.TryGetValue(sender, out element)) throw new ArgumentException("sender"); // element.Focus(); element.Select(start, length); TextLocation loc = element.Document.GetLocation(start); element.ScrollTo(loc.Line, loc.Column); }
private static void GetSelectedText(ITextBoxController sender, out string selectedText) { TextEditor element; selectedText = string.Empty; if (!elements.TryGetValue(sender, out element)) throw new ArgumentException("sender"); selectedText = element.SelectedText; }