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
- CharStorage.cs
- MailDefinition.cs
- ColorInterpolationModeValidation.cs
- ButtonDesigner.cs
- DetailsViewUpdateEventArgs.cs
- EventSchemaTraceListener.cs
- EntityDataSourceQueryBuilder.cs
- InputScopeConverter.cs
- SoundPlayer.cs
- EnterpriseServicesHelper.cs
- TdsParserStaticMethods.cs
- DWriteFactory.cs
- ToolboxComponentsCreatingEventArgs.cs
- NavigateEvent.cs
- InternalCache.cs
- DynamicMethod.cs
- FixedDocumentPaginator.cs
- BaseUriHelper.cs
- ProtocolViolationException.cs
- BindingList.cs
- MemberMaps.cs
- OracleCommandBuilder.cs
- AppDomainFactory.cs
- Rotation3DAnimation.cs
- ModelItemDictionary.cs
- WindowsGraphicsWrapper.cs
- ByeMessage11.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TextEndOfParagraph.cs
- CalendarItem.cs
- DataKey.cs
- SemanticBasicElement.cs
- TypeUnloadedException.cs
- AssemblyUtil.cs
- RuntimeConfigLKG.cs
- DataFormats.cs
- ZoomingMessageFilter.cs
- FontFamilyConverter.cs
- EventMappingSettings.cs
- CodeVariableDeclarationStatement.cs
- ObjectListCommandsPage.cs
- ColorInterpolationModeValidation.cs
- HttpRuntimeSection.cs
- Pkcs7Signer.cs
- SerialPinChanges.cs
- PersonalizableAttribute.cs
- CharUnicodeInfo.cs
- Timer.cs
- QueryCacheManager.cs
- Preprocessor.cs
- FloaterBaseParagraph.cs
- WebExceptionStatus.cs
- DynamicMetaObjectBinder.cs
- SettingsContext.cs
- MetadataArtifactLoaderFile.cs
- PeerCollaboration.cs
- CachedRequestParams.cs
- SplitterCancelEvent.cs
- HashAlgorithm.cs
- HtmlEmptyTagControlBuilder.cs
- ArithmeticLiteral.cs
- EntityProviderServices.cs
- KeyboardDevice.cs
- SqlDelegatedTransaction.cs
- DrawingServices.cs
- Wizard.cs
- SolidBrush.cs
- XmlSchemaValidationException.cs
- AppDomainProtocolHandler.cs
- ObjectListDataBindEventArgs.cs
- SelfIssuedSamlTokenFactory.cs
- LogReservationCollection.cs
- NumericPagerField.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- TeredoHelper.cs
- CodeTypeMember.cs
- Configuration.cs
- HttpCacheVary.cs
- FacetEnabledSchemaElement.cs
- BamlWriter.cs
- SolidBrush.cs
- EnumerableValidator.cs
- TdsRecordBufferSetter.cs
- ClientSideProviderDescription.cs
- AsyncParams.cs
- PageParser.cs
- _UncName.cs
- DataGridViewCellStyleConverter.cs
- WindowsTokenRoleProvider.cs
- RC2CryptoServiceProvider.cs
- DataTableCollection.cs
- Relationship.cs
- ScaleTransform.cs
- CollectionConverter.cs
- VisualBasicValue.cs
- ExtendedPropertiesHandler.cs
- WSTrust.cs
- WinInetCache.cs
- MailHeaderInfo.cs
- ExpressionDumper.cs