Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / Workflow / Activities / Design / ServiceOperationUIEditor.cs / 1305376 / ServiceOperationUIEditor.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Workflow.Activities.Design { using System; using System.Collections.Generic; using System.Text; using System.Drawing.Design; using System.ComponentModel; using System.ComponentModel.Design; using System.Windows.Forms.Design; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Diagnostics; using System.ServiceModel; using System.Windows.Forms; internal class ServiceOperationUIEditor : UITypeEditor { public static bool TryPickOperation(IServiceProvider serviceProvider, Activity activity, OperationInfoBase currentOperation, out OperationInfoBase selectedOperation) { selectedOperation = null; bool isReceiveActivity = activity is ReceiveActivity; try { using (OperationPickerDialog operationPicker = new OperationPickerDialog(serviceProvider, isReceiveActivity)) { Walker activityTreeWalker = new Walker(); Type allowedActivityType = null; if (isReceiveActivity) { allowedActivityType = typeof(ReceiveActivity); } else { allowedActivityType = typeof(SendActivity); } activityTreeWalker.FoundActivity += delegate(Walker walker, WalkerEventArgs eventArgs) { Activity foundActivity = eventArgs.CurrentActivity; if (!(allowedActivityType.IsAssignableFrom(foundActivity.GetType()))) { return; } if (!foundActivity.Enabled) { return; } if (foundActivity is ReceiveActivity) { ReceiveActivity reciveActivity = foundActivity as ReceiveActivity; if (reciveActivity.ServiceOperationInfo != null) { operationPicker.AddServiceOperation(reciveActivity.ServiceOperationInfo, reciveActivity); } } if (foundActivity is SendActivity) { SendActivity sendActivity = foundActivity as SendActivity; if (sendActivity.ServiceOperationInfo != null) { operationPicker.AddServiceOperation(sendActivity.ServiceOperationInfo, sendActivity); } } }; activityTreeWalker.Walk(activity.RootActivity); OperationInfoBase currentServiceOperationInfo = currentOperation as OperationInfoBase; if (currentServiceOperationInfo != null) { operationPicker.SelectedOperation = currentServiceOperationInfo; } DialogResult dialogResult = operationPicker.ShowDialog(); if ((operationPicker.SelectedOperation != null) && (dialogResult == DialogResult.OK) && !operationPicker.SelectedOperation.Equals(currentServiceOperationInfo)) { selectedOperation = operationPicker.SelectedOperation.Clone(); return true; } } } catch (Exception e) { DesignerHelpers.ShowMessage(serviceProvider, e.Message, DR.GetString(DR.WorkflowDesignerTitle), MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); throw; } return false; } public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (context == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("context"); } if (provider == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("provider"); } OperationInfoBase pickedServiceOperation = null; if (TryPickOperation(provider, (Activity) context.Instance, (OperationInfoBase) value, out pickedServiceOperation)) { return pickedServiceOperation; } else { return base.EditValue(context, provider, value); } } public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) { return UITypeEditorEditStyle.Modal; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ComboBoxHelper.cs
- ListViewUpdatedEventArgs.cs
- ConfigurationManagerHelper.cs
- HtmlShimManager.cs
- MouseDevice.cs
- HttpGetProtocolReflector.cs
- OdbcDataReader.cs
- ApplicationInterop.cs
- ArrayEditor.cs
- AccessibleObject.cs
- Grant.cs
- MailAddressCollection.cs
- Ref.cs
- VisualTreeUtils.cs
- MembershipUser.cs
- TypeGeneratedEventArgs.cs
- GroupBoxAutomationPeer.cs
- TraceLog.cs
- WSSecureConversationDec2005.cs
- ClosureBinding.cs
- NavigationProgressEventArgs.cs
- ToolboxItemCollection.cs
- WebPartConnectionsConnectVerb.cs
- BuildProvider.cs
- WebRequest.cs
- SerializationStore.cs
- SizeF.cs
- WebUtil.cs
- DeploymentSectionCache.cs
- ConnectionInterfaceCollection.cs
- XamlGridLengthSerializer.cs
- DbConvert.cs
- ExclusiveTcpListener.cs
- OdbcParameterCollection.cs
- PageRequestManager.cs
- safesecurityhelperavalon.cs
- XPathNodeList.cs
- AssociationSetMetadata.cs
- DrawingCollection.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- ExpressionVisitor.cs
- ErrorFormatter.cs
- PreviewKeyDownEventArgs.cs
- ColorKeyFrameCollection.cs
- DbProviderManifest.cs
- SqlDataReader.cs
- QueryGenerator.cs
- StaticFileHandler.cs
- CalendarAutoFormat.cs
- CodeAccessPermission.cs
- InkSerializer.cs
- StringBuilder.cs
- ValidationHelper.cs
- DrawTreeNodeEventArgs.cs
- PolicyDesigner.cs
- PeerNameRecordCollection.cs
- RightsManagementPermission.cs
- DbConnectionPoolGroup.cs
- GroupStyle.cs
- ExpressionConverter.cs
- DataObjectSettingDataEventArgs.cs
- Stack.cs
- AppendHelper.cs
- TypedColumnHandler.cs
- SiteMapNodeItemEventArgs.cs
- BooleanConverter.cs
- ContentDisposition.cs
- TypedElement.cs
- MimeMultiPart.cs
- Lease.cs
- Application.cs
- Filter.cs
- XmlSchemaComplexContentExtension.cs
- ContextDataSourceView.cs
- BehaviorEditorPart.cs
- ObfuscationAttribute.cs
- DataTableExtensions.cs
- GenericRootAutomationPeer.cs
- TemplateParser.cs
- PersonalizationDictionary.cs
- Permission.cs
- LicenseProviderAttribute.cs
- PropertyEmitterBase.cs
- ToolStripDropDownItem.cs
- SqlProfileProvider.cs
- BitmapCache.cs
- SafeSystemMetrics.cs
- safelink.cs
- XmlWrappingReader.cs
- DataListItemEventArgs.cs
- PathFigureCollection.cs
- WorkflowServiceHostFactory.cs
- TdsEnums.cs
- KeyedQueue.cs
- ProtocolsConfigurationEntry.cs
- SynchronizedDispatch.cs
- DefaultTraceListener.cs
- FilteredAttributeCollection.cs
- ToolStripContainer.cs
- BufferedResponseStream.cs