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
- Variant.cs
- SmuggledIUnknown.cs
- CodeValidator.cs
- TargetControlTypeCache.cs
- CodeMemberEvent.cs
- GradientStop.cs
- MarginsConverter.cs
- CalendarDateChangedEventArgs.cs
- ContentTextAutomationPeer.cs
- LoginDesigner.cs
- PostBackOptions.cs
- DecimalAnimationUsingKeyFrames.cs
- TableFieldsEditor.cs
- CriticalHandle.cs
- OleDbStruct.cs
- BitmapEffectGroup.cs
- PerformanceCounterPermissionEntry.cs
- PropertyAccessVisitor.cs
- ConfigurationUtility.cs
- ChangePassword.cs
- CookielessHelper.cs
- SqlExpressionNullability.cs
- GeneralTransformCollection.cs
- KeyedHashAlgorithm.cs
- DrawingContextDrawingContextWalker.cs
- Run.cs
- PixelFormat.cs
- PasswordBoxAutomationPeer.cs
- NegatedCellConstant.cs
- CmsUtils.cs
- SystemWebSectionGroup.cs
- MimeMapping.cs
- SizeF.cs
- ViewSimplifier.cs
- VariableModifiersHelper.cs
- HwndProxyElementProvider.cs
- CachedPathData.cs
- TextTabProperties.cs
- MetadataCollection.cs
- XmlRawWriter.cs
- XslAst.cs
- _HeaderInfoTable.cs
- SqlParameter.cs
- CustomGrammar.cs
- InputLanguage.cs
- ClassHandlersStore.cs
- UrlAuthFailedErrorFormatter.cs
- categoryentry.cs
- DataSourceXmlSerializer.cs
- CalendarAutoFormat.cs
- SocketElement.cs
- TraceHandler.cs
- RangeValidator.cs
- ReflectTypeDescriptionProvider.cs
- PropertyFilterAttribute.cs
- RenderDataDrawingContext.cs
- DocumentPage.cs
- SoapAttributes.cs
- ClientTarget.cs
- ScrollChrome.cs
- ServiceOperationParameter.cs
- NameObjectCollectionBase.cs
- FixedPage.cs
- XmlChildEnumerator.cs
- RoutedPropertyChangedEventArgs.cs
- DependentList.cs
- JsonWriter.cs
- Vector3D.cs
- WebBrowserBase.cs
- JsonReader.cs
- IisTraceWebEventProvider.cs
- DateTimeConverter.cs
- UncommonField.cs
- CommandManager.cs
- ArgumentException.cs
- EntityContainerEntitySetDefiningQuery.cs
- TraceXPathNavigator.cs
- GeneralTransformGroup.cs
- safePerfProviderHandle.cs
- BrowserCapabilitiesCodeGenerator.cs
- securitycriticaldataformultiplegetandset.cs
- SrgsNameValueTag.cs
- OracleParameterBinding.cs
- EntryIndex.cs
- CellIdBoolean.cs
- WsdlWriter.cs
- DataGridCellAutomationPeer.cs
- ProfileGroupSettings.cs
- StrokeSerializer.cs
- SafeIUnknown.cs
- Win32.cs
- OSFeature.cs
- Typography.cs
- DocComment.cs
- DataGridState.cs
- HostVisual.cs
- RemoteHelper.cs
- SiteMapHierarchicalDataSourceView.cs
- HashHelper.cs
- HttpCachePolicyBase.cs