private void AddCodeSymbolCodeOptionsItem(DrawableCodeSymbolCode drawableCode, PropertyType ctrlType)
        {
            var newOptionsItem = new CodeSymbolCodeOptionsItem(drawableCode.DisplayName, drawableCode);

            newOptionsItem.PropertyChangedEvent += this.PropertyChangedEvent;
            this.ctrlCollection.Add(newOptionsItem);
            this.drawingManager.RegisterCodeSymbolCode(drawableCode);
            this.settingsControls[ctrlType].Add(newOptionsItem);
        }
        private void HandleCodeChange(IEnumerable <ICodeSymbolCode> codeSymbolCodes, PropertyType propertyType)
        {
            List <CodeSymbolCodeOptionsItem> optionsItemList;

            // create list, if not existing yet
            if (!this.settingsControls.TryGetValue(propertyType, out optionsItemList))
            {
                optionsItemList = new List <CodeSymbolCodeOptionsItem>();
                this.settingsControls[propertyType] = optionsItemList;
            }

            var newCount = codeSymbolCodes.Count();

            // remove excessive trailing old items
            for (int i = optionsItemList.Count; i > newCount; i--)
            {
                RemoveControlTypeElement(propertyType, i - 1);
            }

            // update existing item
            for (int i = 0; i < optionsItemList.Count; i++)
            {
                var newDrawableCode = new DrawableCodeSymbolCode(codeSymbolCodes.ElementAt(i), this.drawingProperties[propertyType]);
                var optionsItem     = optionsItemList[i];

                this.drawingManager.UnregisterCodeSymbolCode(optionsItem.DrawableCodeSymbolCode);
                optionsItem.DrawableCodeSymbolCode = newDrawableCode;
                this.drawingManager.RegisterCodeSymbolCode(newDrawableCode);
            }

            // add new items
            for (int i = optionsItemList.Count; i < newCount; i++)
            {
                var drawableCode = new DrawableCodeSymbolCode(codeSymbolCodes.ElementAt(i), this.drawingProperties[propertyType]);

                this.AddCodeSymbolCodeOptionsItem(drawableCode, propertyType);
            }
        }
Ejemplo n.º 3
0
 public void UnregisterCodeSymbolCode(DrawableCodeSymbolCode symbolCode)
 {
     this.drawableCodeSymbolCodes.Remove(symbolCode);
 }
Ejemplo n.º 4
0
 public void RegisterCodeSymbolCode(DrawableCodeSymbolCode symbolCode)
 {
     this.drawableCodeSymbolCodes.Add(symbolCode);
 }