Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.Activities / System / Activities / Statements / FlowSwitch.cs / 1305376 / FlowSwitch.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Activities.Statements { using System.Activities; using System.Collections.Generic; using System.ComponentModel; using System.Runtime; using System.Windows.Markup; [ContentProperty("Cases")] public sealed class FlowSwitch: FlowNode, IFlowSwitch { internal IDictionary cases; CompletionCallback onSwitchCompleted; public FlowSwitch() { this.cases = new CasesDictionary (); } [DefaultValue(null)] public Activity Expression { get; set; } [DefaultValue(null)] public FlowNode Default { get; set; } [Fx.Tag.KnownXamlExternal] public IDictionary Cases { get { return this.cases; } } internal override void OnOpen(Flowchart owner, NativeActivityMetadata metadata) { if (this.Expression == null) { metadata.AddValidationError(SR.FlowSwitchRequiresExpression(owner.DisplayName)); } } internal override void GetConnectedNodes(IList connections) { foreach (KeyValuePair item in this.Cases) { connections.Add(item.Value); } if (this.Default != null) { connections.Add(this.Default); } } internal override void GetChildActivities(ICollection children) { if (Expression != null) { children.Add(Expression); } } bool IFlowSwitch.Execute(NativeActivityContext context, Flowchart parent) { context.ScheduleActivity(Expression, this.GetSwitchCompletedCallback(parent)); return false; } FlowNode IFlowSwitch.GetNextNode(object value) { FlowNode result; T newValue = (T)value; if (Cases.TryGetValue(newValue, out result)) { if (TD.FlowchartSwitchCaseIsEnabled()) { TD.FlowchartSwitchCase(this.Owner.DisplayName, newValue.ToString()); } return result; } else { if (this.Default != null) { if (TD.FlowchartSwitchDefaultIsEnabled()) { TD.FlowchartSwitchDefault(this.Owner.DisplayName); } } else { if (TD.FlowchartSwitchCaseNotFoundIsEnabled()) { TD.FlowchartSwitchCaseNotFound(this.Owner.DisplayName); } } return this.Default; } } CompletionCallback GetSwitchCompletedCallback(Flowchart parent) { if (onSwitchCompleted == null) { onSwitchCompleted = new CompletionCallback (parent.OnSwitchCompleted ); } return onSwitchCompleted; } } } // 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
- XmlUtil.cs
- SponsorHelper.cs
- FatalException.cs
- SqlMetaData.cs
- ISFTagAndGuidCache.cs
- Msmq3PoisonHandler.cs
- ScriptRef.cs
- ServiceDiscoveryBehavior.cs
- HMACRIPEMD160.cs
- ObjectListDesigner.cs
- RuntimeCompatibilityAttribute.cs
- EncryptedXml.cs
- OracleCommandSet.cs
- MailDefinition.cs
- ScopelessEnumAttribute.cs
- ToolStripPanelRow.cs
- Font.cs
- Stopwatch.cs
- ParagraphVisual.cs
- DocumentEventArgs.cs
- ToolStripProfessionalLowResolutionRenderer.cs
- GridViewAutomationPeer.cs
- TextProperties.cs
- EntityContainerEntitySet.cs
- RegexRunnerFactory.cs
- PropertyTabChangedEvent.cs
- DiscoveryClientDocuments.cs
- BitmapEffect.cs
- XXXInfos.cs
- SystemInfo.cs
- Int32RectValueSerializer.cs
- SafeNativeMethods.cs
- WorkflowPrinting.cs
- SqlClientFactory.cs
- ReadOnlyTernaryTree.cs
- ToolStripArrowRenderEventArgs.cs
- BoundConstants.cs
- JsonUriDataContract.cs
- IIS7WorkerRequest.cs
- HtmlWindow.cs
- ComboBoxRenderer.cs
- ScriptRegistrationManager.cs
- NavigationPropertyEmitter.cs
- ObjectQuery_EntitySqlExtensions.cs
- TabletDevice.cs
- ComponentResourceManager.cs
- PeerCollaborationPermission.cs
- SubMenuStyle.cs
- ExpressionBuilderCollection.cs
- PipelineModuleStepContainer.cs
- OracleColumn.cs
- XmlAttributeAttribute.cs
- FileDetails.cs
- WebRequestModulesSection.cs
- ItemsPresenter.cs
- ChildChangedEventArgs.cs
- XmlILIndex.cs
- FontFamilyValueSerializer.cs
- BitmapEffectDrawing.cs
- InputQueue.cs
- XmlnsPrefixAttribute.cs
- UserControlBuildProvider.cs
- SessionParameter.cs
- SecurityManager.cs
- ResolveRequestResponseAsyncResult.cs
- WindowsIdentity.cs
- DispatchProxy.cs
- WebGetAttribute.cs
- InstanceDataCollection.cs
- TreeViewBindingsEditor.cs
- CustomCredentialPolicy.cs
- ChannelManager.cs
- XmlSchemaSubstitutionGroup.cs
- Emitter.cs
- UniqueConstraint.cs
- TextDecorationCollection.cs
- COAUTHINFO.cs
- SizeAnimationUsingKeyFrames.cs
- HashAlgorithm.cs
- FragmentQueryKB.cs
- SponsorHelper.cs
- TextParagraphCache.cs
- SymmetricSecurityProtocol.cs
- DispatcherProcessingDisabled.cs
- ToolStripPanelCell.cs
- MobileComponentEditorPage.cs
- SqlRowUpdatingEvent.cs
- AsymmetricKeyExchangeDeformatter.cs
- Win32.cs
- Suspend.cs
- ColorAnimationUsingKeyFrames.cs
- DocumentViewerBaseAutomationPeer.cs
- WebPartConnectionsCancelEventArgs.cs
- ZipFileInfo.cs
- ConfigXmlText.cs
- ColorIndependentAnimationStorage.cs
- AudioLevelUpdatedEventArgs.cs
- GraphicsContainer.cs
- X509Utils.cs
- ToolStripProfessionalLowResolutionRenderer.cs