public void SetUp() { scaleGridToggleBehaviourMock_ = Substitute.For <IToggleButtonBehaviour>(); directionGridToggleBehaviourMock_ = Substitute.For <IToggleButtonBehaviour>(); equatorToggleBehaviourMock_ = Substitute.For <IToggleButtonBehaviour>(); scaleGridToggleButtonMock_ = Substitute.For <IToggleButton>(); directionGridToggleButtonMock_ = Substitute.For <IToggleButton>(); equatorGridToggleButtonMock_ = Substitute.For <IToggleButton>(); consoleBehaviourMock_ = Substitute.For <IConsoleBehaviour>(); gridBehaviourMock_ = Substitute.For <IGridBehaviour>(); componentFactoryMock_ = Substitute.For <IComponentFactory>(); scaleCircleBehaviourMock_ = Substitute.For <IVisible>(); directionCircleBehaviourMock_ = Substitute.For <IVisible>(); equatorCircleBehaviourMock_ = Substitute.For <IVisible>(); pureDataFacadeMock_ = Substitute.For <IPureDataFacade>(); consoleBehaviourMock_.ScaleGridToggleBehaviour.Returns(scaleGridToggleBehaviourMock_); consoleBehaviourMock_.DirectionGridToggleBehaviour.Returns(directionGridToggleBehaviourMock_); consoleBehaviourMock_.EquatorToggleBehaviour.Returns(equatorToggleBehaviourMock_); componentFactoryMock_.CreateToggleButton(scaleGridToggleBehaviourMock_).Returns(scaleGridToggleButtonMock_); componentFactoryMock_.CreateToggleButton(directionGridToggleBehaviourMock_).Returns(directionGridToggleButtonMock_); componentFactoryMock_.CreateToggleButton(equatorToggleBehaviourMock_).Returns(equatorGridToggleButtonMock_); gridBehaviourMock_.ScaleCircleBehaviour.Returns(scaleCircleBehaviourMock_); gridBehaviourMock_.DirectionCircleBehaviour.Returns(directionCircleBehaviourMock_); gridBehaviourMock_.FFTCircleBehaviour.Returns(equatorCircleBehaviourMock_); console_ = new Console(consoleBehaviourMock_, gridBehaviourMock_, pureDataFacadeMock_, componentFactoryMock_); }
/// <summary> /// Add a ToggleButton to group /// </summary> /// <param name="button">Button to add</param> public void Add(IToggleButton button) { if (_Buttons.Contains(button)) { return; } _Buttons.Add(button); button.Checked += button_Checked; button.Unchecked += button_Unchecked; }
/// <summary> /// Remove ToggleButton to group /// </summary> /// <param name="button">Button to remove</param> /// <returns>True if success otherwise false</returns> public bool Remove(IToggleButton button) { bool result = _Buttons.Remove(button); if (result) { button.Checked -= button_Checked; button.Unchecked -= button_Unchecked; } return(result); }
public void OnButtonClick(IToggleButton button) { if (LastButton != button) { LastButton?.IsButtonClick(false); } button.IsButtonClick(true); LastButton = button; }
/// <summary> /// Remove from group /// </summary> private static void RemoveFromGroup(string groupName, IToggleButton toggleButton) { List <WeakReference> buttons; if (!groupedButtons.TryGetValue(groupName, out buttons)) { return; } buttons.RemoveAt(buttons.FindIndex(x => (x.IsAlive && ((IToggleButton)x.Target) == toggleButton))); }
/// <summary> /// Add to group /// </summary> private static void AddToGroup(string groupName, IToggleButton toggleButton) { List <WeakReference> buttons; if (!groupedButtons.TryGetValue(groupName, out buttons)) { buttons = new List <WeakReference>(); groupedButtons.Add(groupName, buttons); } buttons.Add(new WeakReference(toggleButton)); }
public override void Dispose() { if (this.IsDisposed) { return; } base.Dispose(); this.ButtonList?.Clear(); this.ButtonList = null; LastButton = null; }
private static int GetIsCheckedValue(IToggleButton childAsToggleButton) { var isChecked = childAsToggleButton.IsChecked; var isCheckedValue = isChecked.GetValueOrDefault() ? (isChecked.HasValue ? 1 : 0) : 0; return(isCheckedValue); }
public void Awake() { if (ButtonList == null) { ButtonList = new List <IToggleButton>(); } else { ButtonList.Clear(); } LastButton = null; }
/// <summary> /// Add to group /// </summary> private static void AddToGroup(string groupName, IToggleButton toggleButton) { List <WeakReference> buttons; if (GroupedButtons.TryGetValue(groupName, out buttons) == false) { buttons = new List <WeakReference>(); GroupedButtons.Add(groupName, buttons); } else { PurgeDead(buttons, null); } buttons.Add(new WeakReference(toggleButton)); }
/// <summary> /// Remove from group /// </summary> private static void RemoveFromGroup(string groupName, IToggleButton toggleButton) { List <WeakReference> buttons; if (GroupedButtons.TryGetValue(groupName, out buttons) == false) { return; } PurgeDead(buttons, toggleButton); if (buttons.Count == 0) { GroupedButtons.Remove(groupName); } }
public bool RemoveButton(IToggleButton button, IToggleButton clickButton = null) { if (LastButton == button) { LastButton = null; } if (!ButtonList.Contains(button)) { return(false); } clickButton?.IsButtonClick(true); button.ButtonGroup = null; return(ButtonList.Remove(button)); }
/// <summary> /// Gets all buttons in the given group /// </summary> private static IEnumerable <IToggleButton> GetButtonsInGroup(IToggleButton button) { List <WeakReference> buttons; if (GroupedButtons.TryGetValue(button.GroupName, out buttons) == false) { return(Enumerable.Empty <IToggleButton>()); } PurgeDead(buttons, null); var rootScope = PresentationSource.FromVisual((Visual)button); return(buttons .Where(x => rootScope == PresentationSource.FromVisual((Visual)x.Target)) .Select(x => (IToggleButton)x.Target).ToList()); }
private static void Unregister(string groupName, IToggleButton toggleButton) { if (groupNameToElements == null) { return; } var groupNameToElement = (ArrayList)groupNameToElements[groupName]; if (groupNameToElement != null) { PurgeDead(groupNameToElement, toggleButton); if (groupNameToElement.Count == 0) { groupNameToElements.Remove(groupName); } } }
private static void UncheckToggleButton(IToggleButton toggleButton) { var dependencyObject = toggleButton as DependencyObject; if (dependencyObject == null) { return; } if (toggleButton is System.Windows.Controls.MenuItem) { dependencyObject.SetCurrentValue(System.Windows.Controls.MenuItem.IsCheckedProperty, BooleanBoxes.FalseBox); } else { dependencyObject.SetCurrentValue(System.Windows.Controls.Primitives.ToggleButton.IsCheckedProperty, BooleanBoxes.FalseBox); } }
private static void Register(string groupName, IToggleButton toggleButton) { if (groupNameToElements == null) { groupNameToElements = new Hashtable(1); } var elements = (ArrayList)groupNameToElements[groupName]; if (elements == null) { elements = new ArrayList(1); groupNameToElements[groupName] = elements; } else { PurgeDead(elements, null); } elements.Add(new WeakReference(toggleButton)); }
public void AddButton(IToggleButton button, bool isSelected = true) { if (ButtonList.Contains(button)) { return; } ButtonList?.Add(button); button.ButtonGroup = this; if (isSelected) { if (LastButton != null) { button.IsButtonClick(false); return; } button.IsButtonClick(true); LastButton = button; } }
/// <summary> /// Updates the states of all buttons inside the group which <paramref name="toggleButton" /> belongs to. /// </summary> public static void UpdateButtonGroup(IToggleButton toggleButton) { var groupName = toggleButton.GroupName; if (string.IsNullOrEmpty(groupName) == false) { var visualRoot = getVisualRootMethodInfo.Invoke(null, new object[] { (DependencyObject)toggleButton }); if (groupNameToElements == null) { groupNameToElements = new Hashtable(1); } var groupNameToElement = (ArrayList)groupNameToElements[groupName]; var index = 0; while (index < groupNameToElement.Count) { var target = ((WeakReference)groupNameToElement[index]).Target as IToggleButton; if (target == null) { groupNameToElement.RemoveAt(index); } else { if (target != toggleButton) { var isCheckedValue = GetIsCheckedValue(target); if (isCheckedValue != 0 && visualRoot == getVisualRootMethodInfo.Invoke(null, new object[] { (DependencyObject)target })) { UncheckToggleButton(target); } } ++index; } } } //else //{ // var parent = toggleButton.Parent; // if (parent == null) // { // return; // } // foreach (var child in LogicalTreeHelper.GetChildren(parent)) // { // var childAsToggleButton = child as IToggleButton; // if (childAsToggleButton != null // && childAsToggleButton != toggleButton // && string.IsNullOrEmpty(childAsToggleButton.GroupName)) // { // var isCheckedValue = GetIsCheckedValue(childAsToggleButton); // if (isCheckedValue != 0) // { // UncheckToggleButton(childAsToggleButton); // } // } // } //} }
/// <summary> /// Add to group /// </summary> private static void AddToGroup(string groupName, IToggleButton toggleButton) { List<WeakReference> buttons; if (!groupedButtons.TryGetValue(groupName, out buttons)) { buttons = new List<WeakReference>(); groupedButtons.Add(groupName, buttons); } buttons.Add(new WeakReference(toggleButton)); }
/// <summary> /// Remove from group /// </summary> private static void RemoveFromGroup(string groupName, IToggleButton toggleButton) { List<WeakReference> buttons; if (!groupedButtons.TryGetValue(groupName, out buttons)) { return; } buttons.RemoveAt(buttons.FindIndex(x => (x.IsAlive && ((IToggleButton)x.Target) == toggleButton))); }
/// <summary> /// Remove from group /// </summary> private static void RemoveFromGroup(string groupName, IToggleButton toggleButton) { List<WeakReference> buttons; if (GroupedButtons.TryGetValue(groupName, out buttons) == false) { return; } PurgeDead(buttons, toggleButton); if (buttons.Count == 0) { GroupedButtons.Remove(groupName); } }
/// <summary> /// Add to group /// </summary> private static void AddToGroup(string groupName, IToggleButton toggleButton) { List<WeakReference> buttons; if (GroupedButtons.TryGetValue(groupName, out buttons) == false) { buttons = new List<WeakReference>(); GroupedButtons.Add(groupName, buttons); } else { PurgeDead(buttons, null); } buttons.Add(new WeakReference(toggleButton)); }
/// <summary> /// Gets all buttons in the given group /// </summary> private static IEnumerable<IToggleButton> GetButtonsInGroup(IToggleButton button) { List<WeakReference> buttons; if (GroupedButtons.TryGetValue(button.GroupName, out buttons) == false) { return Enumerable.Empty<IToggleButton>(); } PurgeDead(buttons, null); var rootScope = PresentationSource.FromVisual((Visual)button); return buttons .Where(x => rootScope == PresentationSource.FromVisual((Visual)x.Target)) .Select(x => (IToggleButton)x.Target).ToList(); }