Beispiel #1
0
 private void OnItemStateChanged(object sender, ItemChangedEventArgs e)
 {
     if (!_allowToSave)
     {
         return;
     }
     ItemStateChanged?.Invoke(this, e);
 }
Beispiel #2
0
 /// <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));
         }
     }
 }
Beispiel #3
0
        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();
        }
Beispiel #5
0
        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);
 }
Beispiel #7
0
 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);