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
- ScrollChrome.cs
- LicenseManager.cs
- OciLobLocator.cs
- LingerOption.cs
- TextCharacters.cs
- ExternalCalls.cs
- SqlXml.cs
- GradientStop.cs
- InvalidComObjectException.cs
- EntityDataReader.cs
- MatrixTransform.cs
- DateTimeFormat.cs
- UnaryExpressionHelper.cs
- AnalyzedTree.cs
- VerificationException.cs
- ImageSource.cs
- isolationinterop.cs
- MimePart.cs
- RawKeyboardInputReport.cs
- GroupBoxAutomationPeer.cs
- WebServicesInteroperability.cs
- TextTreeExtractElementUndoUnit.cs
- BuildManager.cs
- SimplePropertyEntry.cs
- Control.cs
- PageWrapper.cs
- TextSpan.cs
- UrlMapping.cs
- AssemblyCollection.cs
- SafeNativeHandle.cs
- DataGridViewRowCancelEventArgs.cs
- ConfigurationProperty.cs
- TimeSpanSecondsConverter.cs
- XmlNodeChangedEventManager.cs
- TextRenderingModeValidation.cs
- DataService.cs
- LexicalChunk.cs
- CultureInfo.cs
- RelationshipConstraintValidator.cs
- CipherData.cs
- Char.cs
- BrowserDefinitionCollection.cs
- SectionInput.cs
- BitmapEffectGeneralTransform.cs
- TextContainerChangeEventArgs.cs
- TimeoutException.cs
- ResourceDefaultValueAttribute.cs
- Animatable.cs
- CacheForPrimitiveTypes.cs
- DefaultPropertyAttribute.cs
- BaseValidator.cs
- RTLAwareMessageBox.cs
- path.cs
- XmlNotation.cs
- ObjectDataProvider.cs
- StorageFunctionMapping.cs
- RoleService.cs
- COM2Enum.cs
- MeasurementDCInfo.cs
- webproxy.cs
- OleStrCAMarshaler.cs
- ListBindingHelper.cs
- ObjectConverter.cs
- ClientUrlResolverWrapper.cs
- HttpStaticObjectsCollectionWrapper.cs
- AttachedPropertyMethodSelector.cs
- VectorAnimationBase.cs
- Visual3DCollection.cs
- PaintValueEventArgs.cs
- WindowsImpersonationContext.cs
- BitStack.cs
- MenuEventArgs.cs
- ReliableMessagingVersionConverter.cs
- XmlStreamNodeWriter.cs
- CurrentChangingEventArgs.cs
- DelegateSerializationHolder.cs
- HelpInfo.cs
- WorkflowServiceBehavior.cs
- URLMembershipCondition.cs
- XmlIlTypeHelper.cs
- XamlStream.cs
- XmlSchemaComplexType.cs
- MarkupExtensionSerializer.cs
- ComponentConverter.cs
- bindurihelper.cs
- ConfigurationManagerInternal.cs
- StreamUpdate.cs
- CssClassPropertyAttribute.cs
- InputReportEventArgs.cs
- SpeakInfo.cs
- VerificationException.cs
- ColorInterpolationModeValidation.cs
- SecureEnvironment.cs
- Visual3DCollection.cs
- TreeViewImageKeyConverter.cs
- TaskFormBase.cs
- PerfCounterSection.cs
- FileCodeGroup.cs
- RuntimeTransactionHandle.cs
- ArgumentFixer.cs