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
- BaseParagraph.cs
- SizeValueSerializer.cs
- PageAdapter.cs
- EntityDataSourceStatementEditorForm.cs
- EntityCommandExecutionException.cs
- DBBindings.cs
- WebConfigurationFileMap.cs
- RC2CryptoServiceProvider.cs
- QilChoice.cs
- nulltextcontainer.cs
- HtmlInputFile.cs
- QueryParameter.cs
- BasicKeyConstraint.cs
- FormViewUpdateEventArgs.cs
- DrawingContextWalker.cs
- InternalDuplexChannelFactory.cs
- PropertyEmitterBase.cs
- FindCriteriaElement.cs
- MetabaseReader.cs
- Compiler.cs
- StringFreezingAttribute.cs
- DataSourceControl.cs
- ModelItemCollectionImpl.cs
- WebPartConnectionsDisconnectVerb.cs
- RightNameExpirationInfoPair.cs
- UniqueEventHelper.cs
- TextRenderer.cs
- RoutedEvent.cs
- Encoder.cs
- SrgsDocument.cs
- FormatterConverter.cs
- MsmqDecodeHelper.cs
- DefaultBindingPropertyAttribute.cs
- HotSpotCollection.cs
- PageRanges.cs
- PeerCollaboration.cs
- Cell.cs
- BidOverLoads.cs
- LiteralTextContainerControlBuilder.cs
- TablePatternIdentifiers.cs
- LayoutEngine.cs
- Span.cs
- LostFocusEventManager.cs
- XmlSchemaAttributeGroupRef.cs
- ImmComposition.cs
- PreviewPageInfo.cs
- DirectoryNotFoundException.cs
- TableLayout.cs
- ConsoleTraceListener.cs
- ResolveNameEventArgs.cs
- IntSecurity.cs
- PropertyEmitterBase.cs
- compensatingcollection.cs
- PageAdapter.cs
- EventHandlerList.cs
- Binding.cs
- HandlerWithFactory.cs
- StrokeCollectionConverter.cs
- PermissionSetEnumerator.cs
- SettingsPropertyValueCollection.cs
- ImageListUtils.cs
- AddingNewEventArgs.cs
- PersonalizationAdministration.cs
- DataRecordObjectView.cs
- ContainerFilterService.cs
- DataBoundControlHelper.cs
- SecurityElement.cs
- UriScheme.cs
- AutomationPatternInfo.cs
- NumericPagerField.cs
- NativeMethodsOther.cs
- HostedHttpContext.cs
- Mapping.cs
- _ServiceNameStore.cs
- EntityDataSourceSelectingEventArgs.cs
- XmlObjectSerializerReadContext.cs
- CombinedGeometry.cs
- FieldBuilder.cs
- TypeDescriptor.cs
- DataGridPagerStyle.cs
- NamespaceEmitter.cs
- RowUpdatedEventArgs.cs
- Int32Animation.cs
- DrawingState.cs
- DataGridAddNewRow.cs
- RadioButtonList.cs
- ADMembershipUser.cs
- ListManagerBindingsCollection.cs
- ExpressionList.cs
- TreeNodeBindingCollection.cs
- ServiceKnownTypeAttribute.cs
- AttributedMetaModel.cs
- CaseStatementSlot.cs
- ScriptRegistrationManager.cs
- DataGridViewLinkColumn.cs
- PrimitiveXmlSerializers.cs
- InputProcessorProfilesLoader.cs
- querybuilder.cs
- ArrangedElementCollection.cs
- infer.cs