private void OnItemStateChanged(object sender, ItemChangedEventArgs e) { if (!_allowToSave) { return; } ItemStateChanged?.Invoke(this, e); }
/// <summary> /// Called when an item's property changes state and triggers the <see cref="ItemStateChanged"/> event. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">The event arguments.</param> private void ItemStateChangedHandler(object sender, PropertyChangedEventArgs e) { if (sender is T typedSender) { int index = m_items.IndexOf(typedSender); if (index > -1) { ItemStateChanged?.Invoke(this, new ItemStateChangedEventArgs(index, e)); } } }
public static StringTable Load(string path, ItemStateChanged itemStateChangedHandler, ItemStatsChanged itemStatsChangedHandler) { try { StreamReader fileStream = new StreamReader(path, Encoding.UTF8); XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Fragment; XmlReader xmlReader = XmlReader.Create(fileStream, settings); StringTable result = new StringTable(path, itemStateChangedHandler, itemStatsChangedHandler); result.Load(xmlReader); fileStream.Close(); return(result); } catch (FileNotFoundException) { return(new StringTable(path, itemStateChangedHandler, itemStatsChangedHandler)); } }
public void Init(IList <ApproachItemInfo> itemInfoList, int maxCheckedItems) { _maxCheckedItems = maxCheckedItems; ItemStateChanged = null; if (!itemInfoList.Any()) { return; } xtraScrollableControl.Controls.Clear(); var columOrder = 0; var rowOrder = 0; foreach (var itemInfo in itemInfoList) { var button = new ItemButton(itemInfo); button.ColumnOrder = columOrder; button.RowOrder = rowOrder; button.Text = itemInfo.Title; button.Height = (Int32)(ButtonHeight * Utilities.GetScaleFactor(CreateGraphics().DpiX).Height); button.TextAlignment = eButtonTextAlignment.Center; button.ColorTable = eButtonColor.OrangeWithBackground; button.Style = eDotNetBarStyle.StyleManagerControlled; button.UseMnemonic = false; button.Click += (sender, e) => { var clickedButton = (ItemButton)sender; if (clickedButton.Checked) { clickedButton.Checked = false; } else { var alreadyCheckedButtonsCount = xtraScrollableControl.Controls .OfType <ItemButton>() .Count(itemButton => itemButton.Checked); if (alreadyCheckedButtonsCount < _maxCheckedItems) { clickedButton.Checked = true; } else { var maxCheckedItemsWord = String.Empty; switch (_maxCheckedItems) { case 1: maxCheckedItemsWord = "one"; break; case 2: maxCheckedItemsWord = "two"; break; case 3: maxCheckedItemsWord = "three"; break; case 4: maxCheckedItemsWord = "four"; break; case 5: maxCheckedItemsWord = "five"; break; case 6: maxCheckedItemsWord = "six"; break; case 7: maxCheckedItemsWord = "seven"; break; case 8: maxCheckedItemsWord = "eight"; break; case 9: maxCheckedItemsWord = "nine"; break; case 10: maxCheckedItemsWord = "ten"; break; } PopupMessageHelper.Instance.ShowWarning(String.Format("Only {0} ({1}) items are allowed.{2}{2}If you want to add another item, first remove one…", _maxCheckedItems, maxCheckedItemsWord, Environment.NewLine)); } } }; button.CheckedChanged += (sender, e) => { if (!_allowToSave) { return; } var clickedButton = (ItemButton)sender; ItemStateChanged?.Invoke(sender, new ItemChangedEventArgs { Checked = clickedButton.Checked, ItemInfo = clickedButton.ItemInfo }); UpdateButtonsTooltips(); }; xtraScrollableControl.Controls.Add(button); columOrder++; if (columOrder == ColumnsCount) { columOrder = 0; rowOrder++; } } ResizeButtons(); }
private void RaiseEvent(string data) { var typeTemplate = new Regex(@",""type"":""(.*?)""}"); var json = Json.Fix(data); var type = typeTemplate.Match(data).Groups[1].Value; //Debug.WriteLine($"{type} occured."); switch (type) //TODO this is not a complete list of events { #region Items case "ItemStateEvent": var itemStateEvent = AssembleEvent <ItemStateEvent>(json); ItemStateEventOccured?.Invoke(OpenHab.RestClient, itemStateEvent); break; case "ItemStateChangedEvent": var itemStateChangedEvent = AssembleEvent <ItemStateChangedEvent>(json); ItemStateChanged?.Invoke(OpenHab.RestClient, itemStateChangedEvent); break; case "ItemCommandEvent": var itemCommandEvent = AssembleEvent <ItemCommandEvent>(json); ItemCommandEventOccured?.Invoke(OpenHab.RestClient, itemCommandEvent); break; case "ItemAddedEvent": var itemAddedEvent = AssembleEvent <ItemAddedEvent>(json); ItemAdded?.Invoke(OpenHab.RestClient, itemAddedEvent); break; case "ItemRemovedEvent": var itemRemovedEvent = AssembleEvent <ItemRemovedEvent>(json); ItemRemoved?.Invoke(OpenHab.RestClient, itemRemovedEvent); break; case "ItemUpdatedEvent": var itemUpdatedEvent = AssembleEvent <ItemUpdatedEvent>(json); ItemUpdated?.Invoke(OpenHab.RestClient, itemUpdatedEvent); break; #endregion #region Things case "ThingStatusInfoEvent": var thingStatusInfoEvent = AssembleEvent <ThingStatusInfoEvent>(json); ThingStatusInfoEventOccured?.Invoke(OpenHab.RestClient, thingStatusInfoEvent); break; case "ThingStatusInfoChangedEvent": var thingStatusInfoChangedEvent = AssembleEvent <ThingStatusInfoChangedEvent>(json); ThingStatusInfoChanged?.Invoke(OpenHab.RestClient, thingStatusInfoChangedEvent); break; case "ThingAddedEvent": var thingAddedEvent = AssembleEvent <ThingAddedEvent>(json); ThingAdded?.Invoke(OpenHab.RestClient, thingAddedEvent); break; case "ThingUpdatedEvent": var thingUpdatedEvent = AssembleEvent <ThingUpdatedEvent>(json); ThingUpdated?.Invoke(OpenHab.RestClient, thingUpdatedEvent); break; case "ThingRemovedEvent": var thingRemovedEvent = AssembleEvent <ThingRemovedEvent>(json); ThingRemoved?.Invoke(OpenHab.RestClient, thingRemovedEvent); break; case "ItemChannelLinkAddedEvent": var itemChannelLinkAddedEvent = AssembleEvent <ItemChannelLinkAddedEvent>(json); ItemChannelLinkAdded?.Invoke(OpenHab.RestClient, itemChannelLinkAddedEvent); break; case "ItemChannelLinkRemovedEvent": var itemChannelLinkRemovedEvent = AssembleEvent <ItemChannelLinkRemovedEvent>(json); ItemChannelLinkRemoved?.Invoke(OpenHab.RestClient, itemChannelLinkRemovedEvent); break; #endregion #region Inbox case "InboxAddedEvent": var inboxAddedEvent = AssembleEvent <InboxAddedEvent>(json); InboxAdded?.Invoke(OpenHab.RestClient, inboxAddedEvent); break; case "InboxRemovedEvent": var inboxRemovedEvent = AssembleEvent <InboxRemovedEvent>(json); InboxRemoved?.Invoke(OpenHab.RestClient, inboxRemovedEvent); break; #endregion #region Rules case "RuleStatusInfoEvent": var ruleStatusInfo = AssembleEvent <RuleStatusInfoEvent>(json); RuleStatusInfoEventOccured?.Invoke(OpenHab.RestClient, ruleStatusInfo); break; case "RuleAddedEvent": var ruleAddedEvent = AssembleEvent <RuleAddedEvent>(json); RuleAdded?.Invoke(OpenHab.RestClient, ruleAddedEvent); break; case "RuleUpdatedEvent": var ruleUpdatedEvent = AssembleEvent <RuleUpdatedEvent>(json); RuleUpdated?.Invoke(OpenHab.RestClient, ruleUpdatedEvent); break; case "RuleRemovedEvent": var ruleRemovedEvent = AssembleEvent <RuleRemovedEvent>(json); RuleRemoved?.Invoke(OpenHab.RestClient, ruleRemovedEvent); break; #endregion #region Miscellaneous case "ConfigStatusInfoEvent": var configStatusInfoEvent = AssembleEvent <ConfigStatusInfoEvent>(json); ConfigStatusInfoEventOccured?.Invoke(OpenHab.RestClient, configStatusInfoEvent); break; case "PlayURLEvent": var playUrlEvent = AssembleEvent <PlayUrlEvent>(json); PlayUrlEventOccured?.Invoke(OpenHab.RestClient, playUrlEvent); break; default: var unknownEvent = AssembleEvent <UnknownEvent>(json); UnknownEventOccured?.Invoke(OpenHab.RestClient, unknownEvent); break; #endregion } }
void OnItemStateChanged(object sender, CheckedEventArgs e) { ItemStateChanged?.Invoke(sender as CheckableStorageObject, e); }
public StringTable(string path, ItemStateChanged itemStateChangedHandler, ItemStatsChanged itemStatsChangedHandler) { this.path = path; this.itemStateChangedHandler = itemStateChangedHandler; this.itemStatsChangedHandler = itemStatsChangedHandler; }
private void OnItemStateChanged(object sender, CheckedEventArgs e) => ItemStateChanged?.Invoke(sender as CheckableSystemObject, e);