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
- CodeGotoStatement.cs
- DynamicResourceExtension.cs
- EventlogProvider.cs
- COM2Properties.cs
- DataStreamFromComStream.cs
- MailAddress.cs
- Config.cs
- EnvelopeVersion.cs
- Point.cs
- DurableInstanceProvider.cs
- StrongNameSignatureInformation.cs
- ControlPaint.cs
- SecurityPolicySection.cs
- AsymmetricKeyExchangeDeformatter.cs
- SoapHeaderAttribute.cs
- IISMapPath.cs
- DataSourceControlBuilder.cs
- ContextBase.cs
- Site.cs
- MenuDesigner.cs
- AnnotationHighlightLayer.cs
- DocumentViewer.cs
- GeometryDrawing.cs
- ListComponentEditorPage.cs
- ComUdtElement.cs
- SymLanguageType.cs
- CompareValidator.cs
- PostBackOptions.cs
- OutputCacheProfileCollection.cs
- XmlBinaryWriter.cs
- UIElementIsland.cs
- WindowsFormsHostAutomationPeer.cs
- MessageQueue.cs
- HttpValueCollection.cs
- ConnectivityStatus.cs
- DataViewManager.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- MetadataArtifactLoaderResource.cs
- HostSecurityManager.cs
- GlyphElement.cs
- BreakRecordTable.cs
- ComponentRenameEvent.cs
- XmlSchemaNotation.cs
- CompositeFontInfo.cs
- Point.cs
- BehaviorEditorPart.cs
- CompareInfo.cs
- DependencyStoreSurrogate.cs
- TdsParserSafeHandles.cs
- ImageField.cs
- UidManager.cs
- BindingGroup.cs
- ParagraphVisual.cs
- UpdateEventArgs.cs
- CodePrimitiveExpression.cs
- OdbcException.cs
- BufferedReadStream.cs
- KeyConstraint.cs
- CursorEditor.cs
- PathBox.cs
- Sql8ExpressionRewriter.cs
- StandardBindingElementCollection.cs
- CqlBlock.cs
- HostedElements.cs
- CatalogPartChrome.cs
- SessionIDManager.cs
- RpcResponse.cs
- DelimitedListTraceListener.cs
- ActionNotSupportedException.cs
- PriorityChain.cs
- XmlHierarchyData.cs
- DSACryptoServiceProvider.cs
- odbcmetadatafactory.cs
- Scanner.cs
- DropDownList.cs
- DeviceOverridableAttribute.cs
- MetadataArtifactLoaderFile.cs
- Setter.cs
- PasswordDeriveBytes.cs
- TemplateXamlParser.cs
- ObjectDataSourceStatusEventArgs.cs
- CallbackException.cs
- AssociatedControlConverter.cs
- AppSettingsExpressionBuilder.cs
- WebControlsSection.cs
- MethodImplAttribute.cs
- FirstQueryOperator.cs
- HostingEnvironmentException.cs
- ViewBox.cs
- FontDialog.cs
- RemotingException.cs
- MeasureItemEvent.cs
- ObjectStateEntryOriginalDbUpdatableDataRecord.cs
- RelationHandler.cs
- DbDataAdapter.cs
- FileClassifier.cs
- DocobjHost.cs
- VisualStyleTypesAndProperties.cs
- AdapterDictionary.cs
- MsmqInputChannelBase.cs