public VirtualStudioEventProcessor(VirtualStudio virtualStudio, string virtualStudioName, IVirtualStudioUpdateListener operationHandler)
        {
            this.virtualStudio    = virtualStudio ?? throw new ArgumentNullException(nameof(virtualStudio));
            VirtualStudioName     = virtualStudioName ?? throw new ArgumentNullException(nameof(virtualStudioName));
            this.operationHandler = operationHandler ?? throw new ArgumentNullException(nameof(operationHandler));

            if (virtualStudio is VirtualStudioWithArrangement virtualStudioArrangement)
            {
                virtualStudioArrangement.ComponentNodeAdded += VirtualStudioArrangement_ComponentNodeAdded;
                virtualStudioArrangement.ComponentNodeMoved += VirtualStudioArrangement_ComponentNodeMoved;
            }
            else
            {
                virtualStudio.ComponentAdded += VirtualStudio_ComponentAdded;
            }

            virtualStudio.ComponentRemoved  += VirtualStudio_ComponentRemoved;
            virtualStudio.ConnectionAdded   += VirtualStudio_ConnectionAdded;
            virtualStudio.ConnectionRemoved += VirtualStudio_ConnectionRemoved;

            virtualStudio.ComponentRepository.ClientAdded        += ComponentRepository_ClientAdded;
            virtualStudio.ComponentRepository.ClientRemoved      += ComponentRepository_ClientRemoved;
            virtualStudio.ComponentRepository.PlaceholderAdded   += ComponentRepository_PlaceholderAdded;
            virtualStudio.ComponentRepository.PlaceholderRemoved += ComponentRepository_PlaceholderRemoved;

            foreach (var component in virtualStudio.Components)
            {
                if (component is PlaceholderStudioComponent)
                {
                    AttachComponentEventHandlers(component);
                }
            }

            foreach (var component in virtualStudio.ComponentRepository.Clients)
            {
                AttachComponentEventHandlers(component);
            }

            foreach (var component in virtualStudio.ComponentRepository.Placeholders)
            {
                AttachComponentEventHandlers(component);
            }
        }
Пример #2
0
 public bool TryGetVirtualStudio(string name, out VirtualStudio virtualStudio)
 {
     virtualStudio = GetVirtualStudio(name);
     return(virtualStudio != null);
 }