public virtual new WebPartConnection ConnectWebParts (WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer)
    {
      Contract.Requires (provider != null);
      Contract.Requires (consumer != null);
      Contract.Requires (providerConnectionPoint != null);
      Contract.Requires (consumerConnectionPoint != null);

      return default(WebPartConnection);
    }
コード例 #2
0
 internal void SetTransformer(WebPartTransformer transformer)
 {
     if (this.Transformers.Count == 0)
     {
         this.Transformers.Add(transformer);
     }
     else
     {
         this.Transformers[0] = transformer;
     }
 }
 public void Insert(int index, WebPartTransformer transformer)
 {
 }
 public void SetTransformer(WebPartConnection connection, WebPartTransformer transformer)
 {
 }
 private Control GetConfigurationControl(WebPartTransformer transformer)
 {
     Control control = transformer.CreateConfigurationControl();
     if (control == null)
     {
         return null;
     }
     if (!(control is ITransformerConfigurationControl))
     {
         throw new InvalidOperationException(System.Web.SR.GetString("ConnectionsZone_MustImplementITransformerConfigurationControl"));
     }
     string assemblyQualifiedName = control.GetType().AssemblyQualifiedName;
     if ((this._pendingTransformerConfigurationControlTypeName != null) && (this._pendingTransformerConfigurationControlTypeName != assemblyQualifiedName))
     {
         this.DisplayConnectionError();
         return null;
     }
     this._pendingTransformerConfigurationControlTypeName = assemblyQualifiedName;
     return control;
 }
 public bool Contains(WebPartTransformer transformer)
 {
   return default(bool);
 }
コード例 #7
0
        private Control GetConfigurationControl(WebPartTransformer transformer) {
            Control configurationControl = transformer.CreateConfigurationControl();

            if (configurationControl == null) {
                return null;
            }
            if (configurationControl is ITransformerConfigurationControl) {
                string configControlTypeName = configurationControl.GetType().AssemblyQualifiedName;

                if (_pendingTransformerConfigurationControlTypeName != null &&
                    _pendingTransformerConfigurationControlTypeName != configControlTypeName) {

                    DisplayConnectionError();
                    return null;
                }
                else {
                    _pendingTransformerConfigurationControlTypeName = configControlTypeName;
                    return configurationControl;
                }
            }
            else {
                throw new InvalidOperationException(SR.GetString(SR.ConnectionsZone_MustImplementITransformerConfigurationControl));
            }
        }
 public int IndexOf(WebPartTransformer transformer)
 {
     return(default(int));
 }
コード例 #9
0
 public void Remove(WebPartTransformer transformer)
 {
     base.List.Remove(transformer);
 }
コード例 #10
0
 public void CopyTo(WebPartTransformer[] array, int index) {
     List.CopyTo(array, index);
 }
コード例 #11
0
 public int IndexOf(WebPartTransformer transformer)
 {
     return(base.List.IndexOf(transformer));
 }
コード例 #12
0
 public void Insert(int index, WebPartTransformer transformer)
 {
     base.List.Insert(index, transformer);
 }
コード例 #13
0
 public bool Contains(WebPartTransformer transformer)
 {
     return(base.List.Contains(transformer));
 }
コード例 #14
0
 public int Add(WebPartTransformer transformer)
 {
     return(base.List.Add(transformer));
 }
コード例 #15
0
        internal void Activate()
        {
            // This method should only be called on WebPartConnections in the WebPartManager, so
            // _webPartManager should never be null.
            Debug.Assert(_webPartManager != null);

            Transformers.SetReadOnly();

            WebPart providerWebPart = Provider;

            // Cannot be null because Activate() is only called on valid Connections
            Debug.Assert(providerWebPart != null);

            WebPart consumerWebPart = Consumer;

            // Cannot be null because Activate() is only called on valid Connections
            Debug.Assert(consumerWebPart != null);

            Control providerControl = providerWebPart.ToControl();
            Control consumerControl = consumerWebPart.ToControl();

            ProviderConnectionPoint providerConnectionPoint = ProviderConnectionPoint;

            // Cannot be null because Activate() is only called on valid Connections
            Debug.Assert(providerConnectionPoint != null);

            if (!providerConnectionPoint.GetEnabled(providerControl))
            {
                consumerWebPart.SetConnectErrorMessage(SR.GetString(SR.WebPartConnection_DisabledConnectionPoint, providerConnectionPoint.DisplayName, providerWebPart.DisplayTitle));
                return;
            }

            ConsumerConnectionPoint consumerConnectionPoint = ConsumerConnectionPoint;

            // Cannot be null because Activate() is only called on valid Connections
            Debug.Assert(consumerConnectionPoint != null);

            if (!consumerConnectionPoint.GetEnabled(consumerControl))
            {
                consumerWebPart.SetConnectErrorMessage(SR.GetString(SR.WebPartConnection_DisabledConnectionPoint, consumerConnectionPoint.DisplayName, consumerWebPart.DisplayTitle));
                return;
            }

            // Do not activate connections involving closed WebParts
            if (!providerWebPart.IsClosed && !consumerWebPart.IsClosed)
            {
                WebPartTransformer transformer = Transformer;
                if (transformer == null)
                {
                    if (providerConnectionPoint.InterfaceType == consumerConnectionPoint.InterfaceType)
                    {
                        ConnectionInterfaceCollection secondaryInterfaces = providerConnectionPoint.GetSecondaryInterfaces(providerControl);
                        if (consumerConnectionPoint.SupportsConnection(consumerControl, secondaryInterfaces))
                        {
                            object dataObject = providerConnectionPoint.GetObject(providerControl);
                            consumerConnectionPoint.SetObject(consumerControl, dataObject);
                            _isActive = true;
                        }
                        else
                        {
                            consumerWebPart.SetConnectErrorMessage(SR.GetString(SR.WebPartConnection_IncompatibleSecondaryInterfaces, new string[] {
                                consumerConnectionPoint.DisplayName, consumerWebPart.DisplayTitle,
                                providerConnectionPoint.DisplayName, providerWebPart.DisplayTitle
                            }));
                        }
                    }
                    else
                    {
                        consumerWebPart.SetConnectErrorMessage(SR.GetString(SR.WebPartConnection_NoCommonInterface, new string[] {
                            providerConnectionPoint.DisplayName, providerWebPart.DisplayTitle,
                            consumerConnectionPoint.DisplayName, consumerWebPart.DisplayTitle
                        }));
                    }
                }
                else
                {
                    Type transformerType = transformer.GetType();

                    if (!_webPartManager.AvailableTransformers.Contains(transformerType))
                    {
                        string errorMessage;
                        if (_webPartManager.Context != null && _webPartManager.Context.IsCustomErrorEnabled)
                        {
                            errorMessage = SR.GetString(SR.WebPartConnection_TransformerNotAvailable);
                        }
                        else
                        {
                            errorMessage = SR.GetString(SR.WebPartConnection_TransformerNotAvailableWithType, transformerType.FullName);
                        }
                        consumerWebPart.SetConnectErrorMessage(errorMessage);

                        //
                    }

                    // Check matching interfaces on connection points and transformer attribute
                    Type transformerConsumerType = WebPartTransformerAttribute.GetConsumerType(transformerType);
                    Type transformerProviderType = WebPartTransformerAttribute.GetProviderType(transformerType);

                    if (providerConnectionPoint.InterfaceType == transformerConsumerType &&
                        transformerProviderType == consumerConnectionPoint.InterfaceType)
                    {
                        // A transformer never provides any secondary interfaces
                        if (consumerConnectionPoint.SupportsConnection(consumerControl, ConnectionInterfaceCollection.Empty))
                        {
                            object dataObject        = providerConnectionPoint.GetObject(providerControl);
                            object transformedObject = transformer.Transform(dataObject);
                            consumerConnectionPoint.SetObject(consumerControl, transformedObject);
                            _isActive = true;
                        }
                        else
                        {
                            consumerWebPart.SetConnectErrorMessage(SR.GetString(SR.WebPartConnection_ConsumerRequiresSecondaryInterfaces,
                                                                                consumerConnectionPoint.DisplayName, consumerWebPart.DisplayTitle));
                        }
                    }
                    else if (providerConnectionPoint.InterfaceType != transformerConsumerType)
                    {
                        string errorMessage;
                        if (_webPartManager.Context != null && _webPartManager.Context.IsCustomErrorEnabled)
                        {
                            errorMessage = SR.GetString(SR.WebPartConnection_IncompatibleProviderTransformer,
                                                        providerConnectionPoint.DisplayName, providerWebPart.DisplayTitle);
                        }
                        else
                        {
                            errorMessage = SR.GetString(SR.WebPartConnection_IncompatibleProviderTransformerWithType,
                                                        providerConnectionPoint.DisplayName, providerWebPart.DisplayTitle, transformerType.FullName);
                        }
                        consumerWebPart.SetConnectErrorMessage(errorMessage);
                    }
                    else
                    {
                        string errorMessage;
                        if (_webPartManager.Context != null && _webPartManager.Context.IsCustomErrorEnabled)
                        {
                            errorMessage = SR.GetString(SR.WebPartConnection_IncompatibleConsumerTransformer,
                                                        consumerConnectionPoint.DisplayName, consumerWebPart.DisplayTitle);
                        }
                        else
                        {
                            errorMessage = SR.GetString(SR.WebPartConnection_IncompatibleConsumerTransformerWithType,
                                                        transformerType.FullName, consumerConnectionPoint.DisplayName, consumerWebPart.DisplayTitle);
                        }
                        consumerWebPart.SetConnectErrorMessage(errorMessage);
                    }
                }
            }
        }
 public Object SaveConfigurationState(WebPartTransformer transformer)
 {
   return default(Object);
 }
コード例 #17
0
 public object SaveConfigurationState(WebPartTransformer transformer)
 {
     return(transformer.SaveConfigurationState());
 }
コード例 #18
0
 public int Add(WebPartTransformer transformer) {
     return List.Add(transformer);
 }
 public void SetTransformer(WebPartConnection connection, WebPartTransformer transformer)
 {
 }
コード例 #20
0
 public void Insert(int index, WebPartTransformer transformer) {
     List.Insert(index, transformer);
 }
コード例 #21
0
 public virtual bool CanConnectWebParts(WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer)
 {
     return this.CanConnectWebPartsCore(provider, providerConnectionPoint, consumer, consumerConnectionPoint, transformer, false);
 }
コード例 #22
0
        protected internal override void CreateChildControls() {
            Controls.Clear();
            _connectDropDownLists = new HybridDictionary();
            _connectionPointInfo = new HybridDictionary();
            _pendingTransformerConfigurationControl = null;

            WebPart webPartToConnect = WebPartToConnect;
            if (webPartToConnect != null && !webPartToConnect.IsClosed) {
                WebPartManager webPartManager = WebPartManager;
                Debug.Assert(webPartManager != null);

                ProviderConnectionPointCollection providerConnectionPoints =
                    WebPartManager.GetEnabledProviderConnectionPoints(webPartToConnect);
                foreach (ProviderConnectionPoint providerConnectionPoint in providerConnectionPoints) {
                    DropDownList list = new DropDownList();
                    list.ID = providerListIdPrefix + providerConnectionPoint.ID;
                    // Don't want to track changes to Items collection in ViewState
                    list.EnableViewState = false;
                    _connectDropDownLists[providerConnectionPoint] = list;
                    Controls.Add(list);
                }

                ConsumerConnectionPointCollection consumerConnectionPoints =
                    WebPartManager.GetEnabledConsumerConnectionPoints(webPartToConnect);
                foreach (ConsumerConnectionPoint consumerConnectionPoint in consumerConnectionPoints) {
                    DropDownList list = new DropDownList();
                    list.ID = consumerListIdPrefix + consumerConnectionPoint.ID;
                    // Don't want to track changes to Items collection in ViewState
                    list.EnableViewState = false;
                    _connectDropDownLists[consumerConnectionPoint] = list;
                    Controls.Add(list);
                }

                SetDropDownProperties();

                // Handle pending connection
                if (_pendingConnectionType == ConnectionType.Consumer) {
                    if (EnsurePendingData()) {
                        Control pendingProviderControl = _pendingProvider.ToControl();
                        Control pendingConsumerControl = _pendingConsumer.ToControl();

                        if (_pendingSelectedValue != null) {
                            IDictionary providers = (IDictionary)_connectionPointInfo[_pendingConsumerConnectionPoint];
                            ProviderInfo providerInfo = (ProviderInfo)providers[_pendingSelectedValue];

                            Debug.Assert(providerInfo != null && providerInfo.TransformerType != null && providerInfo.TransformerType.IsSubclassOf(typeof(WebPartTransformer)));
                            _pendingTransformer = (WebPartTransformer)WebPartUtil.CreateObjectFromType(
                                providerInfo.TransformerType);
                        }
                        // Otherwise, we're updating an existing connection and _pendingTransformer has been set by EnsurePendingData.


                        _pendingTransformerConfigurationControl = GetConfigurationControl(_pendingTransformer);
                        if(_pendingTransformerConfigurationControl != null) {

                            ((ITransformerConfigurationControl)_pendingTransformerConfigurationControl).Cancelled +=
                                new EventHandler(OnConfigurationControlCancelled);
                            ((ITransformerConfigurationControl)_pendingTransformerConfigurationControl).Succeeded +=
                                new EventHandler(OnConfigurationControlSucceeded);

                            Controls.Add(_pendingTransformerConfigurationControl);
                        }
                    }
                }
                else if (_pendingConnectionType == ConnectionType.Provider) {
                    if (EnsurePendingData()) {
                        Control pendingProviderControl = _pendingProvider.ToControl();
                        Control pendingConsumerControl = _pendingConsumer.ToControl();

                        ConsumerInfo consumerInfo;
                        Debug.Assert(_pendingSelectedValue != null);

                        IDictionary consumers = (IDictionary)_connectionPointInfo[_pendingProviderConnectionPoint];
                        consumerInfo = (ConsumerInfo)consumers[_pendingSelectedValue];
                        Debug.Assert(consumerInfo != null && consumerInfo.TransformerType != null && consumerInfo.TransformerType.IsSubclassOf(typeof(WebPartTransformer)));
                        _pendingTransformer = (WebPartTransformer)WebPartUtil.CreateObjectFromType(
                            consumerInfo.TransformerType);

                        _pendingTransformerConfigurationControl = GetConfigurationControl(_pendingTransformer);
                        if (_pendingTransformerConfigurationControl != null) {

                            ((ITransformerConfigurationControl)_pendingTransformerConfigurationControl).Cancelled +=
                                new EventHandler(OnConfigurationControlCancelled);
                            ((ITransformerConfigurationControl)_pendingTransformerConfigurationControl).Succeeded +=
                                new EventHandler(OnConfigurationControlSucceeded);

                            Controls.Add(_pendingTransformerConfigurationControl);
                        }
                    }
                }

                SetTransformerConfigurationControlProperties();
            }
        }
 public int Add(WebPartTransformer transformer)
 {
     return(default(int));
 }
 public Object SaveConfigurationState(WebPartTransformer transformer)
 {
     return(default(Object));
 }
コード例 #25
0
        internal void Activate()
        {
            this.Transformers.SetReadOnly();
            WebPart provider = this.Provider;
            WebPart consumer = this.Consumer;
            Control control  = provider.ToControl();
            Control control2 = consumer.ToControl();

            System.Web.UI.WebControls.WebParts.ProviderConnectionPoint providerConnectionPoint = this.ProviderConnectionPoint;
            if (!providerConnectionPoint.GetEnabled(control))
            {
                consumer.SetConnectErrorMessage(System.Web.SR.GetString("WebPartConnection_DisabledConnectionPoint", new object[] { providerConnectionPoint.DisplayName, provider.DisplayTitle }));
            }
            else
            {
                System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint consumerConnectionPoint = this.ConsumerConnectionPoint;
                if (!consumerConnectionPoint.GetEnabled(control2))
                {
                    consumer.SetConnectErrorMessage(System.Web.SR.GetString("WebPartConnection_DisabledConnectionPoint", new object[] { consumerConnectionPoint.DisplayName, consumer.DisplayTitle }));
                }
                else if (!provider.IsClosed && !consumer.IsClosed)
                {
                    WebPartTransformer transformer = this.Transformer;
                    if (transformer == null)
                    {
                        if (providerConnectionPoint.InterfaceType == consumerConnectionPoint.InterfaceType)
                        {
                            ConnectionInterfaceCollection secondaryInterfaces = providerConnectionPoint.GetSecondaryInterfaces(control);
                            if (consumerConnectionPoint.SupportsConnection(control2, secondaryInterfaces))
                            {
                                object data = providerConnectionPoint.GetObject(control);
                                consumerConnectionPoint.SetObject(control2, data);
                                this._isActive = true;
                            }
                            else
                            {
                                consumer.SetConnectErrorMessage(System.Web.SR.GetString("WebPartConnection_IncompatibleSecondaryInterfaces", new string[] { consumerConnectionPoint.DisplayName, consumer.DisplayTitle, providerConnectionPoint.DisplayName, provider.DisplayTitle }));
                            }
                        }
                        else
                        {
                            consumer.SetConnectErrorMessage(System.Web.SR.GetString("WebPartConnection_NoCommonInterface", new string[] { providerConnectionPoint.DisplayName, provider.DisplayTitle, consumerConnectionPoint.DisplayName, consumer.DisplayTitle }));
                        }
                    }
                    else
                    {
                        Type type = transformer.GetType();
                        if (!this._webPartManager.AvailableTransformers.Contains(type))
                        {
                            string str;
                            if ((this._webPartManager.Context != null) && this._webPartManager.Context.IsCustomErrorEnabled)
                            {
                                str = System.Web.SR.GetString("WebPartConnection_TransformerNotAvailable");
                            }
                            else
                            {
                                str = System.Web.SR.GetString("WebPartConnection_TransformerNotAvailableWithType", new object[] { type.FullName });
                            }
                            consumer.SetConnectErrorMessage(str);
                        }
                        Type consumerType = WebPartTransformerAttribute.GetConsumerType(type);
                        Type providerType = WebPartTransformerAttribute.GetProviderType(type);
                        if ((providerConnectionPoint.InterfaceType == consumerType) && (providerType == consumerConnectionPoint.InterfaceType))
                        {
                            if (consumerConnectionPoint.SupportsConnection(control2, ConnectionInterfaceCollection.Empty))
                            {
                                object providerData = providerConnectionPoint.GetObject(control);
                                object obj4         = transformer.Transform(providerData);
                                consumerConnectionPoint.SetObject(control2, obj4);
                                this._isActive = true;
                            }
                            else
                            {
                                consumer.SetConnectErrorMessage(System.Web.SR.GetString("WebPartConnection_ConsumerRequiresSecondaryInterfaces", new object[] { consumerConnectionPoint.DisplayName, consumer.DisplayTitle }));
                            }
                        }
                        else if (providerConnectionPoint.InterfaceType != consumerType)
                        {
                            string str2;
                            if ((this._webPartManager.Context != null) && this._webPartManager.Context.IsCustomErrorEnabled)
                            {
                                str2 = System.Web.SR.GetString("WebPartConnection_IncompatibleProviderTransformer", new object[] { providerConnectionPoint.DisplayName, provider.DisplayTitle });
                            }
                            else
                            {
                                str2 = System.Web.SR.GetString("WebPartConnection_IncompatibleProviderTransformerWithType", new object[] { providerConnectionPoint.DisplayName, provider.DisplayTitle, type.FullName });
                            }
                            consumer.SetConnectErrorMessage(str2);
                        }
                        else
                        {
                            string str3;
                            if ((this._webPartManager.Context != null) && this._webPartManager.Context.IsCustomErrorEnabled)
                            {
                                str3 = System.Web.SR.GetString("WebPartConnection_IncompatibleConsumerTransformer", new object[] { consumerConnectionPoint.DisplayName, consumer.DisplayTitle });
                            }
                            else
                            {
                                str3 = System.Web.SR.GetString("WebPartConnection_IncompatibleConsumerTransformerWithType", new object[] { type.FullName, consumerConnectionPoint.DisplayName, consumer.DisplayTitle });
                            }
                            consumer.SetConnectErrorMessage(str3);
                        }
                    }
                }
            }
        }
        public virtual new WebPartConnection ConnectWebParts(WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer)
        {
            Contract.Requires(provider != null);
            Contract.Requires(consumer != null);
            Contract.Requires(providerConnectionPoint != null);
            Contract.Requires(consumerConnectionPoint != null);

            return(default(WebPartConnection));
        }
コード例 #27
0
        private bool CanConnectWebPartsCore(WebPart provider, ProviderConnectionPoint providerConnectionPoint,
                                            WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint,
                                            WebPartTransformer transformer, bool throwOnError) {
            if (!Personalization.IsModifiable) {
                if (throwOnError) {
                    // Will throw appropriate exception
                    Personalization.EnsureEnabled(/* ensureModifiable */ true);
                }
                else {
                    return false;
                }
            }

            if (provider == null) {
                throw new ArgumentNullException("provider");
            }
            if (!Controls.Contains(provider)) {
                throw new ArgumentException(SR.GetString(SR.UnknownWebPart), "provider");
            }

            if (consumer == null) {
                throw new ArgumentNullException("consumer");
            }
            if (!Controls.Contains(consumer)) {
                throw new ArgumentException(SR.GetString(SR.UnknownWebPart), "consumer");
            }

            if (providerConnectionPoint == null) {
                throw new ArgumentNullException("providerConnectionPoint");
            }
            if (consumerConnectionPoint == null) {
                throw new ArgumentNullException("consumerConnectionPoint");
            }

            Control providerControl = provider.ToControl();
            Control consumerControl = consumer.ToControl();

            if (providerConnectionPoint.ControlType != providerControl.GetType()) {
                throw new ArgumentException(SR.GetString(SR.WebPartManager_InvalidConnectionPoint), "providerConnectionPoint");
            }
            if (consumerConnectionPoint.ControlType != consumerControl.GetType()) {
                throw new ArgumentException(SR.GetString(SR.WebPartManager_InvalidConnectionPoint), "consumerConnectionPoint");
            }

            if (provider == consumer) {
                if (throwOnError) {
                    throw new InvalidOperationException(SR.GetString(SR.WebPartManager_CantConnectToSelf));
                }
                else {
                    return false;
                }
            }

            if (provider.IsClosed) {
                if (throwOnError) {
                    throw new InvalidOperationException(SR.GetString(SR.WebPartManager_CantConnectClosed, provider.ID));
                }
                else {
                    return false;
                }
            }

            if (consumer.IsClosed) {
                if (throwOnError) {
                    throw new InvalidOperationException(SR.GetString(SR.WebPartManager_CantConnectClosed, consumer.ID));
                }
                else {
                    return false;
                }
            }

            if (!providerConnectionPoint.GetEnabled(providerControl)) {
                if (throwOnError) {
                    throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_DisabledConnectionPoint, providerConnectionPoint.ID, provider.ID));
                }
                else {
                    return false;
                }
            }

            if (!consumerConnectionPoint.GetEnabled(consumerControl)) {
                if (throwOnError) {
                    throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_DisabledConnectionPoint, consumerConnectionPoint.ID, consumer.ID));
                }
                else {
                    return false;
                }
            }

            // Check AllowsMultipleConnections on each ConnectionPoint
            if (!providerConnectionPoint.AllowsMultipleConnections) {
                foreach (WebPartConnection c in Connections) {
                    if (c.Provider == provider && c.ProviderConnectionPoint == providerConnectionPoint) {
                        if (throwOnError) {
                            throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_Duplicate, providerConnectionPoint.ID, provider.ID));
                        }
                        else {
                            return false;
                        }
                    }
                }
            }

            if (!consumerConnectionPoint.AllowsMultipleConnections) {
                foreach (WebPartConnection c in Connections) {
                    if (c.Consumer == consumer && c.ConsumerConnectionPoint == consumerConnectionPoint) {
                        if (throwOnError) {
                            throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_Duplicate, consumerConnectionPoint.ID, consumer.ID));
                        }
                        else {
                            return false;
                        }
                    }
                }
            }

            if (transformer == null) {
                if (providerConnectionPoint.InterfaceType != consumerConnectionPoint.InterfaceType) {
                    if (throwOnError) {
                        throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_NoCommonInterface,
                            new string[] {providerConnectionPoint.DisplayName, provider.ID,
                                consumerConnectionPoint.DisplayName, consumer.ID}));
                    }
                    else {
                        return false;
                    }
                }

                ConnectionInterfaceCollection secondaryInterfaces = providerConnectionPoint.GetSecondaryInterfaces(providerControl);
                if (!consumerConnectionPoint.SupportsConnection(consumerControl, secondaryInterfaces)) {
                    if (throwOnError) {
                        throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_IncompatibleSecondaryInterfaces, new string[] {
                                consumerConnectionPoint.DisplayName, consumer.ID,
                                providerConnectionPoint.DisplayName, provider.ID}));
                    }
                    else {
                        return false;
                    }
                }
            }
            else {
                Type transformerType = transformer.GetType();

                if (!AvailableTransformers.Contains(transformerType)) {
                    throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_TransformerNotAvailable, transformerType.FullName));
                }

                // Check matching interfaces on connection points and transformer attribute.
                // Note that we require the connection interfaces to match exactly.  We do not match
                // a derived interface type.  This is because we want to simplify the interface matching
                // algorithm when transformers are involved.  If we allowed derived interfaces to match,
                // then we would to take into account the "closest" match if multiple transformers
                // have compatible interfaces.
                Type transformerConsumerType = WebPartTransformerAttribute.GetConsumerType(transformerType);
                Type transformerProviderType = WebPartTransformerAttribute.GetProviderType(transformerType);
                if (providerConnectionPoint.InterfaceType != transformerConsumerType) {
                    if (throwOnError) {
                        throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_IncompatibleProviderTransformer,
                            providerConnectionPoint.DisplayName, provider.ID, transformerType.FullName));
                    }
                    else {
                        return false;
                    }
                }
                if (transformerProviderType != consumerConnectionPoint.InterfaceType) {
                    if (throwOnError) {
                        throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_IncompatibleConsumerTransformer,
                            transformerType.FullName, consumerConnectionPoint.DisplayName, consumer.ID));
                    }
                    else {
                        return false;
                    }
                }

                // A transformer never provides any secondary interfaces
                if (!consumerConnectionPoint.SupportsConnection(consumerControl, ConnectionInterfaceCollection.Empty)) {
                    if (throwOnError) {
                        throw new InvalidOperationException(SR.GetString(SR.WebPartConnection_ConsumerRequiresSecondaryInterfaces,
                            consumerConnectionPoint.DisplayName, consumer.ID));
                    }
                    else {
                        return false;
                    }
                }

            }

            return true;
        }
 public int Add(WebPartTransformer transformer)
 {
   return default(int);
 }
コード例 #29
0
        public virtual WebPartConnection ConnectWebParts(WebPart provider, ProviderConnectionPoint providerConnectionPoint,
                                                         WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint,
                                                         WebPartTransformer transformer) {
            CanConnectWebPartsCore(provider, providerConnectionPoint, consumer, consumerConnectionPoint,
                                   transformer, /*throwOnError*/ true);

            if (DynamicConnections.IsReadOnly) {
                throw new InvalidOperationException(SR.GetString(SR.WebPartManager_ConnectTooLate));
            }

            WebPartConnectionsCancelEventArgs ce = new WebPartConnectionsCancelEventArgs(
                provider, providerConnectionPoint, consumer, consumerConnectionPoint);
            OnWebPartsConnecting(ce);
            if (_allowEventCancellation && ce.Cancel) {
                return null;
            }

            Control providerControl = provider.ToControl();
            Control consumerControl = consumer.ToControl();

            WebPartConnection connection = new WebPartConnection();
            connection.ID = CreateDynamicConnectionID();
            connection.ProviderID = providerControl.ID;
            connection.ConsumerID = consumerControl.ID;
            connection.ProviderConnectionPointID = providerConnectionPoint.ID;
            connection.ConsumerConnectionPointID = consumerConnectionPoint.ID;

            if (transformer != null) {
                Internals.SetTransformer(connection, transformer);
            }

            Internals.SetIsShared(connection, Personalization.Scope == PersonalizationScope.Shared);
            Internals.SetIsStatic(connection, false);

            DynamicConnections.Add(connection);
            _hasDataChanged = true;

            OnWebPartsConnected(new WebPartConnectionsEventArgs(provider, providerConnectionPoint,
                                                                consumer, consumerConnectionPoint, connection));

            return connection;
        }
 public int IndexOf(WebPartTransformer transformer)
 {
   return default(int);
 }
 public bool Contains(WebPartTransformer transformer)
 {
     return(default(bool));
 }
 public void Remove(WebPartTransformer transformer)
 {
 }
        public int IndexOf(WebPartTransformer transformer)
        {
            Contract.Ensures(Contract.Result <int>() >= -1);

            return(default(int));
        }
 public void LoadConfigurationState(WebPartTransformer transformer, Object savedState)
 {
 }
 public void Insert(int index, WebPartTransformer transformer)
 {
 }
 internal void SetTransformer(WebPartTransformer transformer)
 {
     if (this.Transformers.Count == 0)
     {
         this.Transformers.Add(transformer);
     }
     else
     {
         this.Transformers[0] = transformer;
     }
 }
 public void Remove(WebPartTransformer transformer)
 {
 }
コード例 #38
0
 public bool Contains(WebPartTransformer transformer) {
     return List.Contains(transformer);
 }
 public virtual new WebPartConnection ConnectWebParts(WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer)
 {
   return default(WebPartConnection);
 }
コード例 #40
0
 public int IndexOf(WebPartTransformer transformer) {
     return List.IndexOf(transformer);
 }
 public void SetTransformer(WebPartConnection connection, WebPartTransformer transformer)
 {
     Contract.Requires(connection != null);
     Contract.Ensures(((System.Array)connection.Transformers).Length >= 0);
 }
コード例 #42
0
 public void Remove(WebPartTransformer transformer) {
     List.Remove(transformer);
 }
 public void LoadConfigurationState(WebPartTransformer transformer, Object savedState)
 {
     Contract.Requires(transformer != null);
 }
コード例 #44
0
 private bool HasConfigurationControl(WebPartTransformer transformer) {
     return (transformer.CreateConfigurationControl() != null);
 }
        public Object SaveConfigurationState(WebPartTransformer transformer)
        {
            Contract.Requires(transformer != null);

            return(default(Object));
        }
コード例 #46
0
        private bool EnsurePendingData() {
            if (WebPartToConnect == null) {
                ClearPendingConnection();
                _mode = ConnectionsZoneMode.ExistingConnections;
                return false;
            }

            if ((_pendingConsumer != null) &&
                (_pendingConsumerConnectionPoint == null ||
                _pendingProvider == null ||
                _pendingProviderConnectionPoint == null)) {

                DisplayConnectionError();
                return false;
            }

            if (_pendingConnectionType == ConnectionType.Provider) {
                Debug.Assert(_pendingSelectedValue != null);

                _pendingProvider = WebPartToConnect;
                _pendingProviderConnectionPoint =
                    WebPartManager.GetProviderConnectionPoint(WebPartToConnect, _pendingConnectionPointID);

                if (_pendingProviderConnectionPoint == null) {
                    DisplayConnectionError();
                    return false;
                }

                IDictionary consumers = (IDictionary)_connectionPointInfo[_pendingProviderConnectionPoint];
                ConsumerInfo consumerInfo = null;
                if (consumers != null) {
                    consumerInfo = (ConsumerInfo)consumers[_pendingSelectedValue];
                }

                if (consumerInfo == null) {
                    DisplayConnectionError();
                    return false;
                }

                _pendingConsumer = consumerInfo.WebPart;
                _pendingConsumerConnectionPoint = consumerInfo.ConnectionPoint;

                return true;
            }

            string consumerID = _pendingConsumerID;
            if (_pendingConnectionType == ConnectionType.Consumer) {
                if (!String.IsNullOrEmpty(_pendingConnectionID)) {
                    // Editing an existing connection
                    WebPartConnection connection = WebPartManager.Connections[_pendingConnectionID];
                    if (connection != null) {
                        _pendingConnectionPointID = connection.ConsumerConnectionPointID;
                        _pendingConsumer = connection.Consumer;
                        _pendingConsumerConnectionPoint = connection.ConsumerConnectionPoint;
                        _pendingConsumerID = connection.Consumer.ID;
                        _pendingProvider = connection.Provider;
                        _pendingProviderConnectionPoint = connection.ProviderConnectionPoint;
                        _pendingTransformer = connection.Transformer;
                        _pendingSelectedValue = null;
                        _pendingConnectionType = ConnectionType.Consumer;
                        return true;
                    }
                    DisplayConnectionError();
                    return false;
                }
                if (String.IsNullOrEmpty(consumerID)) {
                    _pendingConsumer = WebPartToConnect;
                }
                else {
                    _pendingConsumer = WebPartManager.WebParts[consumerID];
                }

                _pendingConsumerConnectionPoint =
                    WebPartManager.GetConsumerConnectionPoint(_pendingConsumer, _pendingConnectionPointID);

                if (_pendingConsumerConnectionPoint == null) {
                    DisplayConnectionError();
                    return false;
                }

                // Get provider
                if (!String.IsNullOrEmpty(_pendingSelectedValue)) {
                    IDictionary providers = (IDictionary)_connectionPointInfo[_pendingConsumerConnectionPoint];
                    ProviderInfo providerInfo = null;
                    if (providers != null) {
                        providerInfo = (ProviderInfo)providers[_pendingSelectedValue];
                    }

                    if (providerInfo == null) {
                        DisplayConnectionError();
                        return false;
                    }

                    _pendingProvider = providerInfo.WebPart;
                    _pendingProviderConnectionPoint = providerInfo.ConnectionPoint;
                }

                return true;
            }
            else {
                // No pending connection
                Debug.Assert(_pendingConnectionType == ConnectionType.None);

                ClearPendingConnection();

                return false;
            }
        }
コード例 #47
0
 public object SaveConfigurationState(WebPartTransformer transformer) {
     return transformer.SaveConfigurationState();
 }
 public void LoadConfigurationState(WebPartTransformer transformer, Object savedState)
 {
 }
コード例 #49
0
 protected internal override void CreateChildControls()
 {
     this.Controls.Clear();
     this._connectDropDownLists = new HybridDictionary();
     this._connectionPointInfo = new HybridDictionary();
     this._pendingTransformerConfigurationControl = null;
     WebPart webPartToConnect = this.WebPartToConnect;
     if ((webPartToConnect != null) && !webPartToConnect.IsClosed)
     {
         WebPartManager webPartManager = base.WebPartManager;
         foreach (ProviderConnectionPoint point in base.WebPartManager.GetEnabledProviderConnectionPoints(webPartToConnect))
         {
             DropDownList child = new DropDownList {
                 ID = "_providerlist_" + point.ID,
                 EnableViewState = false
             };
             this._connectDropDownLists[point] = child;
             this.Controls.Add(child);
         }
         foreach (ConsumerConnectionPoint point2 in base.WebPartManager.GetEnabledConsumerConnectionPoints(webPartToConnect))
         {
             DropDownList list2 = new DropDownList {
                 ID = "_consumerlist_" + point2.ID,
                 EnableViewState = false
             };
             this._connectDropDownLists[point2] = list2;
             this.Controls.Add(list2);
         }
         this.SetDropDownProperties();
         if (this._pendingConnectionType == ConnectionType.Consumer)
         {
             if (this.EnsurePendingData())
             {
                 this._pendingProvider.ToControl();
                 this._pendingConsumer.ToControl();
                 if (this._pendingSelectedValue != null)
                 {
                     IDictionary dictionary = (IDictionary) this._connectionPointInfo[this._pendingConsumerConnectionPoint];
                     ProviderInfo info = (ProviderInfo) dictionary[this._pendingSelectedValue];
                     this._pendingTransformer = (WebPartTransformer) WebPartUtil.CreateObjectFromType(info.TransformerType);
                 }
                 this._pendingTransformerConfigurationControl = this.GetConfigurationControl(this._pendingTransformer);
                 if (this._pendingTransformerConfigurationControl != null)
                 {
                     ((ITransformerConfigurationControl) this._pendingTransformerConfigurationControl).Cancelled += new EventHandler(this.OnConfigurationControlCancelled);
                     ((ITransformerConfigurationControl) this._pendingTransformerConfigurationControl).Succeeded += new EventHandler(this.OnConfigurationControlSucceeded);
                     this.Controls.Add(this._pendingTransformerConfigurationControl);
                 }
             }
         }
         else if ((this._pendingConnectionType == ConnectionType.Provider) && this.EnsurePendingData())
         {
             this._pendingProvider.ToControl();
             this._pendingConsumer.ToControl();
             IDictionary dictionary2 = (IDictionary) this._connectionPointInfo[this._pendingProviderConnectionPoint];
             ConsumerInfo info2 = (ConsumerInfo) dictionary2[this._pendingSelectedValue];
             this._pendingTransformer = (WebPartTransformer) WebPartUtil.CreateObjectFromType(info2.TransformerType);
             this._pendingTransformerConfigurationControl = this.GetConfigurationControl(this._pendingTransformer);
             if (this._pendingTransformerConfigurationControl != null)
             {
                 ((ITransformerConfigurationControl) this._pendingTransformerConfigurationControl).Cancelled += new EventHandler(this.OnConfigurationControlCancelled);
                 ((ITransformerConfigurationControl) this._pendingTransformerConfigurationControl).Succeeded += new EventHandler(this.OnConfigurationControlSucceeded);
                 this.Controls.Add(this._pendingTransformerConfigurationControl);
             }
         }
         this.SetTransformerConfigurationControlProperties();
     }
 }
コード例 #50
0
 public virtual WebPartConnection ConnectWebParts(WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer)
 {
     this.CanConnectWebPartsCore(provider, providerConnectionPoint, consumer, consumerConnectionPoint, transformer, true);
     if (this.DynamicConnections.IsReadOnly)
     {
         throw new InvalidOperationException(System.Web.SR.GetString("WebPartManager_ConnectTooLate"));
     }
     WebPartConnectionsCancelEventArgs e = new WebPartConnectionsCancelEventArgs(provider, providerConnectionPoint, consumer, consumerConnectionPoint);
     this.OnWebPartsConnecting(e);
     if (this._allowEventCancellation && e.Cancel)
     {
         return null;
     }
     Control control = provider.ToControl();
     Control control2 = consumer.ToControl();
     WebPartConnection connection = new WebPartConnection {
         ID = this.CreateDynamicConnectionID(),
         ProviderID = control.ID,
         ConsumerID = control2.ID,
         ProviderConnectionPointID = providerConnectionPoint.ID,
         ConsumerConnectionPointID = consumerConnectionPoint.ID
     };
     if (transformer != null)
     {
         this.Internals.SetTransformer(connection, transformer);
     }
     this.Internals.SetIsShared(connection, this.Personalization.Scope == PersonalizationScope.Shared);
     this.Internals.SetIsStatic(connection, false);
     this.DynamicConnections.Add(connection);
     this._hasDataChanged = true;
     this.OnWebPartsConnected(new WebPartConnectionsEventArgs(provider, providerConnectionPoint, consumer, consumerConnectionPoint, connection));
     return connection;
 }
コード例 #51
0
 private bool EnsurePendingData()
 {
     if (this.WebPartToConnect == null)
     {
         this.ClearPendingConnection();
         this._mode = ConnectionsZoneMode.ExistingConnections;
         return false;
     }
     if ((this._pendingConsumer != null) && (((this._pendingConsumerConnectionPoint == null) || (this._pendingProvider == null)) || (this._pendingProviderConnectionPoint == null)))
     {
         this.DisplayConnectionError();
         return false;
     }
     if (this._pendingConnectionType == ConnectionType.Provider)
     {
         this._pendingProvider = this.WebPartToConnect;
         this._pendingProviderConnectionPoint = base.WebPartManager.GetProviderConnectionPoint(this.WebPartToConnect, this._pendingConnectionPointID);
         if (this._pendingProviderConnectionPoint == null)
         {
             this.DisplayConnectionError();
             return false;
         }
         IDictionary dictionary = (IDictionary) this._connectionPointInfo[this._pendingProviderConnectionPoint];
         ConsumerInfo info = null;
         if (dictionary != null)
         {
             info = (ConsumerInfo) dictionary[this._pendingSelectedValue];
         }
         if (info == null)
         {
             this.DisplayConnectionError();
             return false;
         }
         this._pendingConsumer = info.WebPart;
         this._pendingConsumerConnectionPoint = info.ConnectionPoint;
         return true;
     }
     string str = this._pendingConsumerID;
     if (this._pendingConnectionType == ConnectionType.Consumer)
     {
         if (!string.IsNullOrEmpty(this._pendingConnectionID))
         {
             WebPartConnection connection = base.WebPartManager.Connections[this._pendingConnectionID];
             if (connection != null)
             {
                 this._pendingConnectionPointID = connection.ConsumerConnectionPointID;
                 this._pendingConsumer = connection.Consumer;
                 this._pendingConsumerConnectionPoint = connection.ConsumerConnectionPoint;
                 this._pendingConsumerID = connection.Consumer.ID;
                 this._pendingProvider = connection.Provider;
                 this._pendingProviderConnectionPoint = connection.ProviderConnectionPoint;
                 this._pendingTransformer = connection.Transformer;
                 this._pendingSelectedValue = null;
                 this._pendingConnectionType = ConnectionType.Consumer;
                 return true;
             }
             this.DisplayConnectionError();
             return false;
         }
         if (string.IsNullOrEmpty(str))
         {
             this._pendingConsumer = this.WebPartToConnect;
         }
         else
         {
             this._pendingConsumer = base.WebPartManager.WebParts[str];
         }
         this._pendingConsumerConnectionPoint = base.WebPartManager.GetConsumerConnectionPoint(this._pendingConsumer, this._pendingConnectionPointID);
         if (this._pendingConsumerConnectionPoint == null)
         {
             this.DisplayConnectionError();
             return false;
         }
         if (!string.IsNullOrEmpty(this._pendingSelectedValue))
         {
             IDictionary dictionary2 = (IDictionary) this._connectionPointInfo[this._pendingConsumerConnectionPoint];
             ProviderInfo info2 = null;
             if (dictionary2 != null)
             {
                 info2 = (ProviderInfo) dictionary2[this._pendingSelectedValue];
             }
             if (info2 == null)
             {
                 this.DisplayConnectionError();
                 return false;
             }
             this._pendingProvider = info2.WebPart;
             this._pendingProviderConnectionPoint = info2.ConnectionPoint;
         }
         return true;
     }
     this.ClearPendingConnection();
     return false;
 }
コード例 #52
0
 private bool CanConnectWebPartsCore(WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer, bool throwOnError)
 {
     if (!this.Personalization.IsModifiable)
     {
         if (!throwOnError)
         {
             return false;
         }
         this.Personalization.EnsureEnabled(true);
     }
     if (provider == null)
     {
         throw new ArgumentNullException("provider");
     }
     if (!this.Controls.Contains(provider))
     {
         throw new ArgumentException(System.Web.SR.GetString("UnknownWebPart"), "provider");
     }
     if (consumer == null)
     {
         throw new ArgumentNullException("consumer");
     }
     if (!this.Controls.Contains(consumer))
     {
         throw new ArgumentException(System.Web.SR.GetString("UnknownWebPart"), "consumer");
     }
     if (providerConnectionPoint == null)
     {
         throw new ArgumentNullException("providerConnectionPoint");
     }
     if (consumerConnectionPoint == null)
     {
         throw new ArgumentNullException("consumerConnectionPoint");
     }
     Control control = provider.ToControl();
     Control control2 = consumer.ToControl();
     if (providerConnectionPoint.ControlType != control.GetType())
     {
         throw new ArgumentException(System.Web.SR.GetString("WebPartManager_InvalidConnectionPoint"), "providerConnectionPoint");
     }
     if (consumerConnectionPoint.ControlType != control2.GetType())
     {
         throw new ArgumentException(System.Web.SR.GetString("WebPartManager_InvalidConnectionPoint"), "consumerConnectionPoint");
     }
     if (provider == consumer)
     {
         if (throwOnError)
         {
             throw new InvalidOperationException(System.Web.SR.GetString("WebPartManager_CantConnectToSelf"));
         }
         return false;
     }
     if (provider.IsClosed)
     {
         if (throwOnError)
         {
             throw new InvalidOperationException(System.Web.SR.GetString("WebPartManager_CantConnectClosed", new object[] { provider.ID }));
         }
         return false;
     }
     if (consumer.IsClosed)
     {
         if (throwOnError)
         {
             throw new InvalidOperationException(System.Web.SR.GetString("WebPartManager_CantConnectClosed", new object[] { consumer.ID }));
         }
         return false;
     }
     if (!providerConnectionPoint.GetEnabled(control))
     {
         if (throwOnError)
         {
             throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_DisabledConnectionPoint", new object[] { providerConnectionPoint.ID, provider.ID }));
         }
         return false;
     }
     if (!consumerConnectionPoint.GetEnabled(control2))
     {
         if (throwOnError)
         {
             throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_DisabledConnectionPoint", new object[] { consumerConnectionPoint.ID, consumer.ID }));
         }
         return false;
     }
     if (!providerConnectionPoint.AllowsMultipleConnections)
     {
         foreach (WebPartConnection connection in this.Connections)
         {
             if ((connection.Provider == provider) && (connection.ProviderConnectionPoint == providerConnectionPoint))
             {
                 if (throwOnError)
                 {
                     throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_Duplicate", new object[] { providerConnectionPoint.ID, provider.ID }));
                 }
                 return false;
             }
         }
     }
     if (!consumerConnectionPoint.AllowsMultipleConnections)
     {
         foreach (WebPartConnection connection2 in this.Connections)
         {
             if ((connection2.Consumer == consumer) && (connection2.ConsumerConnectionPoint == consumerConnectionPoint))
             {
                 if (throwOnError)
                 {
                     throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_Duplicate", new object[] { consumerConnectionPoint.ID, consumer.ID }));
                 }
                 return false;
             }
         }
     }
     if (transformer == null)
     {
         if (providerConnectionPoint.InterfaceType != consumerConnectionPoint.InterfaceType)
         {
             if (throwOnError)
             {
                 throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_NoCommonInterface", new string[] { providerConnectionPoint.DisplayName, provider.ID, consumerConnectionPoint.DisplayName, consumer.ID }));
             }
             return false;
         }
         ConnectionInterfaceCollection secondaryInterfaces = providerConnectionPoint.GetSecondaryInterfaces(control);
         if (!consumerConnectionPoint.SupportsConnection(control2, secondaryInterfaces))
         {
             if (throwOnError)
             {
                 throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_IncompatibleSecondaryInterfaces", new string[] { consumerConnectionPoint.DisplayName, consumer.ID, providerConnectionPoint.DisplayName, provider.ID }));
             }
             return false;
         }
     }
     else
     {
         Type type = transformer.GetType();
         if (!this.AvailableTransformers.Contains(type))
         {
             throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_TransformerNotAvailable", new object[] { type.FullName }));
         }
         Type consumerType = WebPartTransformerAttribute.GetConsumerType(type);
         Type providerType = WebPartTransformerAttribute.GetProviderType(type);
         if (providerConnectionPoint.InterfaceType != consumerType)
         {
             if (throwOnError)
             {
                 throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_IncompatibleProviderTransformer", new object[] { providerConnectionPoint.DisplayName, provider.ID, type.FullName }));
             }
             return false;
         }
         if (providerType != consumerConnectionPoint.InterfaceType)
         {
             if (throwOnError)
             {
                 throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_IncompatibleConsumerTransformer", new object[] { type.FullName, consumerConnectionPoint.DisplayName, consumer.ID }));
             }
             return false;
         }
         if (!consumerConnectionPoint.SupportsConnection(control2, ConnectionInterfaceCollection.Empty))
         {
             if (throwOnError)
             {
                 throw new InvalidOperationException(System.Web.SR.GetString("WebPartConnection_ConsumerRequiresSecondaryInterfaces", new object[] { consumerConnectionPoint.DisplayName, consumer.ID }));
             }
             return false;
         }
     }
     return true;
 }
 public virtual new bool CanConnectWebParts(WebPart provider, ProviderConnectionPoint providerConnectionPoint, WebPart consumer, ConsumerConnectionPoint consumerConnectionPoint, WebPartTransformer transformer)
 {
     return(default(bool));
 }