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
- EventLogStatus.cs
- UdpChannelFactory.cs
- ComponentEditorPage.cs
- RayHitTestParameters.cs
- CompModSwitches.cs
- ContextMenuStripGroupCollection.cs
- AuthenticationModuleElement.cs
- AssemblyBuilder.cs
- StringUtil.cs
- TextUtf8RawTextWriter.cs
- prefixendpointaddressmessagefiltertable.cs
- COM2TypeInfoProcessor.cs
- ToolStripSettings.cs
- BooleanProjectedSlot.cs
- validation.cs
- DataTableTypeConverter.cs
- StylusShape.cs
- WebEncodingValidator.cs
- EnumCodeDomSerializer.cs
- StoreAnnotationsMap.cs
- EdmPropertyAttribute.cs
- EdmItemCollection.OcAssemblyCache.cs
- TagPrefixAttribute.cs
- CapabilitiesPattern.cs
- GeometryHitTestParameters.cs
- Context.cs
- UdpReplyToBehavior.cs
- BrowserTree.cs
- wmiprovider.cs
- DebugView.cs
- BasicExpressionVisitor.cs
- XmlMemberMapping.cs
- WizardPanelChangingEventArgs.cs
- RuleElement.cs
- RotationValidation.cs
- SqlExpander.cs
- IndentedWriter.cs
- ClassDataContract.cs
- MailMessageEventArgs.cs
- MailMessageEventArgs.cs
- WorkflowMarkupSerializationProvider.cs
- RootProfilePropertySettingsCollection.cs
- TreeViewImageIndexConverter.cs
- KeyboardNavigation.cs
- FontSizeConverter.cs
- Part.cs
- NotImplementedException.cs
- NullRuntimeConfig.cs
- PageSettings.cs
- ApplicationDirectory.cs
- SoundPlayer.cs
- FileSecurity.cs
- HuffmanTree.cs
- EditorPart.cs
- BrowserCapabilitiesCompiler.cs
- BufferAllocator.cs
- ACE.cs
- VerificationAttribute.cs
- InfoCardSymmetricCrypto.cs
- HMACSHA1.cs
- SafeEventLogReadHandle.cs
- XmlTextEncoder.cs
- DataRelationCollection.cs
- ByteAnimationBase.cs
- DocumentApplicationDocumentViewer.cs
- Context.cs
- BrowserDefinitionCollection.cs
- DataServiceBehavior.cs
- TriggerCollection.cs
- SqlTriggerContext.cs
- NavigationPropertySingletonExpression.cs
- QilGeneratorEnv.cs
- QuaternionValueSerializer.cs
- ViewManager.cs
- PaintEvent.cs
- ServiceContractGenerator.cs
- MultiViewDesigner.cs
- StrokeNode.cs
- ListViewPagedDataSource.cs
- GridViewUpdatedEventArgs.cs
- NetworkCredential.cs
- ToolStripPanelRenderEventArgs.cs
- StylusOverProperty.cs
- ReachBasicContext.cs
- BitSet.cs
- ObjectConverter.cs
- SpoolingTaskBase.cs
- Profiler.cs
- SqlParameterizer.cs
- IndentedTextWriter.cs
- DictationGrammar.cs
- ListSortDescriptionCollection.cs
- CompletedAsyncResult.cs
- SuppressIldasmAttribute.cs
- WaitForChangedResult.cs
- SourceFilter.cs
- Cursors.cs
- CursorEditor.cs
- SmtpSection.cs
- ScriptBehaviorDescriptor.cs