public void OnListChange(string server, int list, ListChangeType changeType)
 {
     _isListChanged = true;
     _listChange    = new CallbackObjects.ListChange {
         ServerName = server, ListIndex = list, ListChangeType = changeType
     };
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds or removes machines from the machines list.
        /// </summary>
        /// <param name="machine">Machine to add or delete.</param>
        /// <param name="listChangeType">List change type.</param>
        public void ChangeMachine(Machine machine, ListChangeType listChangeType)
        {
            switch (listChangeType)
            {
            case ListChangeType.AutoAdd:
            case ListChangeType.AddByLoad:
            case ListChangeType.AddByUser:
                // If Machine already exists we don't need to do anything else here;
                if (HasMachineWithId(machine.MachineId))
                {
                    return;
                }

                Machines.Add(machine);
                break;

            case ListChangeType.RemoveByUser:
                Machines.Remove(machine);
                break;

            case ListChangeType.RemoveByEvent:
                if (machine.Services.Count == 0)
                {
                    Machines.Remove(machine);
                }
                break;
            }

            OnMachineListChanged(machine, listChangeType);
        }
Ejemplo n.º 3
0
 public void OnListChange(string server, int list, ListChangeType changeType)
 {
     lock (_channelsLocker)
     {
         if (_channels.Contains(new Channel(server, list)))
         {
             WrapWcfCallback(() => _callback.OnListChange(server, list, changeType));
         }
     }
 }
Ejemplo n.º 4
0
        private void onListChanged(List <TItem> items, ListChangeType changeType)
        {
            var onListChanged = OnListChanged;

            if (onListChanged == null)
            {
                return;
            }
            onListChanged.Invoke(new AGSHashSetChangedEventArgs <TItem>(changeType, items));
        }
Ejemplo n.º 5
0
 public ListChangedEventArgs(
     ListChangeType changeType,
     int changedSegmentStartIndex,
     T[] newSegmentItems,
     T[] oldSegmentItems)
 {
     _changeType               = changeType;
     _oldSegmentItems          = oldSegmentItems;
     _newSegmentItems          = newSegmentItems;
     _changedSegmentStartIndex = changedSegmentStartIndex;
 }
Ejemplo n.º 6
0
 private void OnChanged(
     ListChangeType changeType,
     int changedSegmentStartIndex,
     T[] newSegmentItems,
     T[] oldSegmentItems)
 {
     OnChanged(
         new ListChangedEventArgs <T>(
             changeType,
             changedSegmentStartIndex,
             newSegmentItems,
             oldSegmentItems));
 }
Ejemplo n.º 7
0
        /// <summary>
        /// Fires the <see cref="MachineListChanged"/> event.
        /// </summary>
        /// <param name="machine">Machine instance.</param>
        /// <param name="listChangeType">Machine list change type.</param>
        protected virtual void OnMachineListChanged(Machine machine, ListChangeType listChangeType)
        {
            if (listChangeType == ListChangeType.RemoveByEvent || listChangeType == ListChangeType.RemoveByUser)
            {
                int removedServicesQuantity = machine.RemoveAllServices();
                if (removedServicesQuantity > 0)
                {
                    SavetoFile();
                }

                if (machine != LocalMachine)
                {
                    machine.MachineStatusChanged     -= OnMachineStatusChanged;
                    machine.ServiceListChanged       -= OnMachineServiceListChanged;
                    machine.ServiceStatusChanged     -= OnMachineServiceStatusChanged;
                    machine.ServiceStatusChangeError -= OnMachineServiceStatusChangeError;
                }
            }
            else
            {
                if (listChangeType == ListChangeType.Updated)
                {
                    SavetoFile();
                }

                machine.MachineStatusChanged         -= OnMachineStatusChanged;
                machine.ServiceListChanged           -= OnMachineServiceListChanged;
                machine.ServiceStatusChanged         -= OnMachineServiceStatusChanged;
                machine.ServiceStatusChangeError     -= OnMachineServiceStatusChangeError;
                machine.WorkbenchInstallationChanged -= OnWorkbenchInstallationChanged;
                machine.MachineStatusChanged         += OnMachineStatusChanged;
                machine.ServiceListChanged           += OnMachineServiceListChanged;
                machine.ServiceStatusChanged         += OnMachineServiceStatusChanged;
                machine.ServiceStatusChangeError     += OnMachineServiceStatusChangeError;
                machine.WorkbenchInstallationChanged += OnWorkbenchInstallationChanged;
            }

            if (MachineListChanged != null)
            {
                MachineListChanged(machine, listChangeType);
            }
        }
Ejemplo n.º 8
0
 protected virtual void OnComponentsChanged(ListChangeType changeType, int index1, int index2)
 {
 }
Ejemplo n.º 9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:AGS.API.AGSListChangedEventArgs`1"/> class.
 /// </summary>
 /// <param name="changeType">Change type.</param>
 /// <param name="item">Item.</param>
 /// <param name="index">Index.</param>
 public AGSListChangedEventArgs(ListChangeType changeType, TItem item, int index)
 {
     ChangeType = changeType;
     Item       = item;
     Index      = index;
 }
Ejemplo n.º 10
0
 private void onListChanged(TItem item, int index, ListChangeType changeType)
 {
     OnListChanged.Invoke(this, new AGSListChangedEventArgs <TItem>(changeType, item, index));
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:AGS.API.AGSListChangedEventArgs`1"/> class.
 /// </summary>
 /// <param name="changeType">Change type.</param>
 /// <param name="items">Items.</param>
 public AGSListChangedEventArgs(ListChangeType changeType, IEnumerable <AGSListItem <TItem> > items)
 {
     ChangeType = changeType;
     _items     = items;
 }
Ejemplo n.º 12
0
 protected virtual void OnSlotListChanged(ListChangeType ct, params SlotDefinition[] slt)
 {
     EventHandler<SlotListChangedEventArgs> h = AfterSlotListChanged;
     if (h != null)
         h(this, new SlotListChangedEventArgs(ct, slt));
 }
Ejemplo n.º 13
0
 protected virtual void OnExtension(ListChangeType ct, params ClassDefinition[] extensions)
 {
     EventHandler<ExtensionListChangedEventArgs> h = AfterExtensionListChanged;
     if (h != null) {
         ExtensionListChangedEventArgs args = new ExtensionListChangedEventArgs(ct, extensions);
         h(this, args);
     }
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:AGS.API.AGSHashSetChangedEventArgs`1"/> class.
 /// </summary>
 /// <param name="changeType">Change type.</param>
 /// <param name="item">Item.</param>
 public AGSHashSetChangedEventArgs(ListChangeType changeType, TItem item)
 {
     ChangeType  = changeType;
     _singleItem = item;
 }
Ejemplo n.º 15
0
        protected MethodDefinition[] InnerMethods; // TODO: может это и излишне...

        #endregion Fields

        #region Constructors

        public MethodListChangedEventArgs(ListChangeType ct, params MethodDefinition[] mth)
        {
            InnerChangeType = ct;
            InnerMethods = mth;
        }
Ejemplo n.º 16
0
        protected ClassDefinition[] InnerExtensions; // TODO: может это и излишне...

        #endregion Fields

        #region Constructors

        public ExtensionListChangedEventArgs(ListChangeType ct, params ClassDefinition[] mth)
        {
            InnerChangeType = ct;
            InnerExtensions = mth;
        }
Ejemplo n.º 17
0
        protected SlotDefinition[] InnerSlots; // TODO: может это и излишне...

        #endregion Fields

        #region Constructors

        public SlotListChangedEventArgs(ListChangeType ct, params SlotDefinition[] slt)
        {
            InnerChangeType = ct;
            InnerSlots = slt;
        }
    private void OnComponentChanged(ListChangeType listChangeType, int i1, int i2)
    {
        switch (listChangeType)
        {
        //---------------------------------------------------------------------------------------------------------------------
        case ListChangeType.Add:
            ComponentTemplatesList.Add(new EntryComponentTemplate(TemplateInstance.Componets[i1]));
            ObserversList.ForEach(x => x.Componets.Add(ComponentTemplatesList[ComponentTemplatesList.Count - 1].AddObserver()));
            TemplateInstance.Componets[i1].OnEditModeModified += () => ApplyComponentToObservers(TemplateInstance.Componets.IndexOf(TemplateInstance.Componets[i1]));

            break;
        //---------------------------------------------------------------------------------------------------------------------

        case ListChangeType.Duplicate:
            ComponentTemplatesList.Insert(i1 + 1, new EntryComponentTemplate(TemplateInstance.Componets[i1 + 1]));
            ObserversList.ForEach(x => x.Componets.Insert(i1 + 1, ComponentTemplatesList[i1 + 1].AddObserver()));
            TemplateInstance.Componets[i1].OnEditModeModified += () => ApplyComponentToObservers(TemplateInstance.Componets.IndexOf(TemplateInstance.Componets[i1]));

            break;
        //---------------------------------------------------------------------------------------------------------------------

        case ListChangeType.Remove:


            if (ComponentTemplatesList.Count == 0)
            {
                goto case ListChangeType.Clear;
            }

            ComponentTemplatesList[i1].ClearObservers();

            //remove component from entry observers
            ObserversList.ForEach(x => { x.Componets.RemoveAt(i1); });

            //remove component from template
            ComponentTemplatesList.RemoveAt(i1);


            break;

        //---------------------------------------------------------------------------------------------------------------------

        case ListChangeType.Clear:

            foreach (var entryComponent in ComponentTemplatesList)
            {
                entryComponent.ClearObservers();
            }
            ComponentTemplatesList.Clear();


            ObserversList.ForEach(x => { x.Componets.Clear(); });

            break;

        //---------------------------------------------------------------------------------------------------------------------

        case ListChangeType.Reorder:
            var temp = ComponentTemplatesList[i1];
            ComponentTemplatesList[i1] = ComponentTemplatesList[i2];
            ComponentTemplatesList[i2] = temp;

            foreach (var observer in ObserversList)
            {
                var temp2 = observer.Componets[i1];
                observer.Componets[i1] = observer.Componets[i2];
                observer.Componets[i2] = temp2;
            }
            break;

        //---------------------------------------------------------------------------------------------------------------------

        case ListChangeType.None:
        case ListChangeType.DataChanged:
        default:
            break;
            //---------------------------------------------------------------------------------------------------------------------
        }
    }
Ejemplo n.º 19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:AGS.API.AGSHashSetChangedEventArgs`1"/> class.
 /// </summary>
 /// <param name="changeType">Change type.</param>
 /// <param name="items">Items.</param>
 public AGSHashSetChangedEventArgs(ListChangeType changeType, IEnumerable <TItem> items)
 {
     ChangeType = changeType;
     _items     = items;
 }
Ejemplo n.º 20
0
        /// <summary>
        /// Fires the <see cref="MachineServiceListChanged"/> event.
        /// </summary>
        /// <param name="machine">Machine instance.</param>
        /// <param name="service">MySQLService instance.</param>
        /// <param name="listChangeType">Service list change type.</param>
        protected virtual void OnMachineServiceListChanged(Machine machine, MySqlService service, ListChangeType listChangeType)
        {
            switch (listChangeType)
            {
            case ListChangeType.RemoveByEvent:
            case ListChangeType.RemoveByUser:
                MachineServiceListChanged?.Invoke(machine, service, listChangeType);
                if (machine.Services.Count == 0)
                {
                    ChangeMachine(machine, ListChangeType.RemoveByEvent);
                }

                break;

            case ListChangeType.AutoAdd:
                if (machine.Services.Count == 1)
                {
                    ChangeMachine(machine, ListChangeType.AutoAdd);
                }

                MachineServiceListChanged?.Invoke(machine, service, listChangeType);
                break;

            default:
                MachineServiceListChanged?.Invoke(machine, service, listChangeType);
                break;
            }

            SaveToFile();
        }
Ejemplo n.º 21
0
 protected virtual void OnMethodListChanged(ListChangeType ct, params MethodDefinition[] methods)
 {
     EventHandler<MethodListChangedEventArgs> h = AfterMethodListChanged;
     if (h != null)
         h(this, new MethodListChangedEventArgs(ct, methods));
 }
Ejemplo n.º 22
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:AGS.API.AGSListChangedEventArgs`1"/> class.
 /// </summary>
 /// <param name="changeType">Change type.</param>
 /// <param name="item">Item.</param>
 public AGSListChangedEventArgs(ListChangeType changeType, AGSListItem <TItem> item)
 {
     ChangeType  = changeType;
     _singleItem = item;
 }
Ejemplo n.º 23
0
        protected virtual void UpdateSlotListAfterExtention(ListChangeType ct, params ClassDefinition[] exts)
        {
            if (exts == null || exts.Length == 0) return;

            // собираем у себя все слоты родителей
            foreach (ClassDefinition extension in exts) {
                if (ct == ListChangeType.Remove) {
                    // TODO: дописать (см. так же RemoveSlot
                    ;
                } else {
                    foreach (SlotDefinition sd in extension.Slots) {
                        // TODO: что делать с конфликтами?

                        // XXX Не правильно! нужно проверять, где находится extention
                        // в списке наследования, до или после cd.ClassDeclared...
                        InnerSlots[sd.Name] = sd;
                    }

                    // сначала снимаем, потом навешиваем обработчики, что бы
                    // не было двойного навешивания...

                    extension.AfterSlotListChanged -= OnExtensionSlotListChanged;
                    extension.AfterMethodListChanged -= OnExtensionMethodListChanged;
                    extension.AfterExtensionListChanged -= OnExtensionExtend;

                    // TODO: объединить диспечеры!
                    extension.AfterSlotListChanged += OnExtensionSlotListChanged;
                    extension.AfterMethodListChanged += OnExtensionMethodListChanged;
                    extension.AfterExtensionListChanged += OnExtensionExtend;
                }
            }
        }
Ejemplo n.º 24
0
 private void onListChanged(TItem item, ListChangeType changeType)
 {
     OnListChanged.FireEvent(this, new AGSHashSetChangedEventArgs <TItem>(changeType, item));
 }