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
- HMACSHA1.cs
- HideDisabledControlAdapter.cs
- DbResourceAllocator.cs
- WsdlWriter.cs
- MessageQueueException.cs
- CookieProtection.cs
- UnauthorizedAccessException.cs
- WebColorConverter.cs
- FormViewCommandEventArgs.cs
- MetadataArtifactLoaderCompositeFile.cs
- Range.cs
- CategoryNameCollection.cs
- TypefaceMap.cs
- lengthconverter.cs
- SymDocumentType.cs
- CommandSet.cs
- DataGridViewUtilities.cs
- VectorKeyFrameCollection.cs
- MSAAWinEventWrap.cs
- cookiecollection.cs
- IntegerFacetDescriptionElement.cs
- ConfigXmlWhitespace.cs
- ContentFileHelper.cs
- UIElementHelper.cs
- FlatButtonAppearance.cs
- ServiceChannelProxy.cs
- TextServicesDisplayAttribute.cs
- ApplicationId.cs
- HtmlControlPersistable.cs
- ParentUndoUnit.cs
- externdll.cs
- QuinticEase.cs
- ProfileProvider.cs
- DeviceContext.cs
- WebPart.cs
- ToolBarPanel.cs
- IPHostEntry.cs
- Keywords.cs
- printdlgexmarshaler.cs
- WindowsRegion.cs
- serverconfig.cs
- ResourceDictionary.cs
- ExtensionFile.cs
- SolidBrush.cs
- ACE.cs
- TriggerBase.cs
- BaseDataListComponentEditor.cs
- ExpressionLink.cs
- GridItemPatternIdentifiers.cs
- RelationshipConstraintValidator.cs
- Mapping.cs
- PageWrapper.cs
- RandomNumberGenerator.cs
- SortQuery.cs
- MasterPageCodeDomTreeGenerator.cs
- GridView.cs
- FillBehavior.cs
- QueryResponse.cs
- ImmutableAssemblyCacheEntry.cs
- GetReadStreamResult.cs
- FontNameEditor.cs
- XmlSchemaSet.cs
- StrokeNode.cs
- CustomErrorCollection.cs
- SQLRoleProvider.cs
- TransformGroup.cs
- ListViewUpdatedEventArgs.cs
- CompilerGlobalScopeAttribute.cs
- mediaeventshelper.cs
- METAHEADER.cs
- WebPartMenu.cs
- AsyncPostBackErrorEventArgs.cs
- ModulesEntry.cs
- TypeResolvingOptionsAttribute.cs
- ToolStripItemRenderEventArgs.cs
- SetStoryboardSpeedRatio.cs
- BmpBitmapDecoder.cs
- SymmetricKeyWrap.cs
- GridLengthConverter.cs
- TraceListeners.cs
- SelectedGridItemChangedEvent.cs
- TextContainerChangeEventArgs.cs
- TextEditorTables.cs
- TransformGroup.cs
- RawStylusInput.cs
- SiteMapNode.cs
- ScriptResourceMapping.cs
- EntityDesignerBuildProvider.cs
- ScriptDescriptor.cs
- PeerTransportListenAddressConverter.cs
- SHA384Managed.cs
- CallSiteBinder.cs
- RegexStringValidatorAttribute.cs
- MetadataPropertyCollection.cs
- ConsoleCancelEventArgs.cs
- ScrollEventArgs.cs
- DupHandleConnectionReader.cs
- XmlNamespaceManager.cs
- OdbcConnectionFactory.cs
- ConfigurationPermission.cs