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
- TransportContext.cs
- ExtensionQuery.cs
- TimerElapsedEvenArgs.cs
- RijndaelManagedTransform.cs
- FixedSOMLineCollection.cs
- objectquery_tresulttype.cs
- XmlSchemaSimpleContentExtension.cs
- EmptyStringExpandableObjectConverter.cs
- COAUTHIDENTITY.cs
- StylusPoint.cs
- ZoneLinkButton.cs
- Journaling.cs
- DataSourceXmlClassAttribute.cs
- InputScope.cs
- ReadOnlyDictionary.cs
- DelimitedListTraceListener.cs
- ListBindingHelper.cs
- AnnotationHelper.cs
- SecurityPermission.cs
- NamedPermissionSet.cs
- Geometry3D.cs
- NegationPusher.cs
- AdvancedBindingPropertyDescriptor.cs
- ReachSerializerAsync.cs
- OleDbCommandBuilder.cs
- RoleService.cs
- ConstructorBuilder.cs
- TypeViewSchema.cs
- DataTableMappingCollection.cs
- DataControlReferenceCollection.cs
- PtsHelper.cs
- ToolStripContainer.cs
- GeometryValueSerializer.cs
- ThreadPool.cs
- TraceShell.cs
- TracePayload.cs
- XmlNodeChangedEventArgs.cs
- RecordManager.cs
- QuarticEase.cs
- GroupedContextMenuStrip.cs
- PixelFormat.cs
- ServiceMemoryGates.cs
- OutputCacheSection.cs
- EndOfStreamException.cs
- ByteStreamGeometryContext.cs
- GenericRootAutomationPeer.cs
- PrintEvent.cs
- VisualStyleInformation.cs
- TreeViewEvent.cs
- UnsafeNativeMethodsMilCoreApi.cs
- ToolStripRendererSwitcher.cs
- CodeIndexerExpression.cs
- IItemContainerGenerator.cs
- webeventbuffer.cs
- ResourceDictionaryCollection.cs
- ClipboardProcessor.cs
- DataGridItem.cs
- SpeechSeg.cs
- X509Chain.cs
- CorrelationTokenTypeConvertor.cs
- TemplatePagerField.cs
- ChildrenQuery.cs
- ListBindableAttribute.cs
- AxWrapperGen.cs
- CursorInteropHelper.cs
- MetabaseServerConfig.cs
- TraceLog.cs
- SqlWorkflowInstanceStore.cs
- XmlAttributeAttribute.cs
- XmlBindingWorker.cs
- TableLayout.cs
- Stacktrace.cs
- TextSelectionHighlightLayer.cs
- PermissionListSet.cs
- BlurBitmapEffect.cs
- InputBindingCollection.cs
- ReferencedCollectionType.cs
- ValueUnavailableException.cs
- GeneralEndpointIdentity.cs
- HttpAsyncResult.cs
- Parameter.cs
- TableHeaderCell.cs
- SqlVisitor.cs
- WindowsUserNameSecurityTokenAuthenticator.cs
- EventLog.cs
- TextRunCache.cs
- XdrBuilder.cs
- SqlCacheDependencySection.cs
- WCFModelStrings.Designer.cs
- HelpKeywordAttribute.cs
- ClassValidator.cs
- TrackingProfile.cs
- PointValueSerializer.cs
- Gdiplus.cs
- SqlProcedureAttribute.cs
- DocumentPage.cs
- Collection.cs
- StrongNameMembershipCondition.cs
- EncryptedType.cs
- BufferModeSettings.cs