Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Activities / Designers / PolicyDesigner.cs / 1305376 / PolicyDesigner.cs
using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Drawing.Drawing2D; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Activities.Rules; using System.Globalization; using System.Windows.Forms.Design; using System.Workflow.Activities.Rules.Design; using System.Windows.Forms; using System.Workflow.Activities.Common; namespace System.Workflow.Activities { [ActivityDesignerTheme(typeof(PolicyDesignerTheme))] internal sealed class PolicyDesigner: ActivityDesigner, IServiceProvider { new public object GetService(Type type) { return base.GetService(type); } protected override void DoDefaultAction() { base.DoDefaultAction(); // Do not allow editing if in debug mode. WorkflowDesignerLoader workflowDesignerLoader = this.GetService(typeof(WorkflowDesignerLoader)) as WorkflowDesignerLoader; if (workflowDesignerLoader != null && workflowDesignerLoader.InDebugMode) throw new InvalidOperationException(Messages.DebugModeEditsDisallowed); // Do not allow editing if locked PolicyActivity activity = (PolicyActivity)this.Activity; if (Helpers.IsActivityLocked(activity)) return; RuleDefinitions rules = ConditionHelper.Load_Rules_DT(this, Helpers.GetRootActivity(activity)); if (rules != null) { RuleSetCollection ruleSetCollection = rules.RuleSets; RuleSetReference ruleSetReference = activity.RuleSetReference; RuleSet ruleSet = null; string ruleSetName = null; if (ruleSetReference != null && !string.IsNullOrEmpty(ruleSetReference.RuleSetName)) { ruleSetName = ruleSetReference.RuleSetName; if (ruleSetCollection.Contains(ruleSetName)) { ruleSet = ruleSetCollection[ruleSetName]; } } else { ruleSetName = ruleSetCollection.GenerateRuleSetName(); } using (RuleSetDialog dlg = new RuleSetDialog(activity, ruleSet)) { if (DialogResult.OK == dlg.ShowDialog()) { if (ruleSet != null) // modifying { ruleSetCollection.Remove(ruleSetName); } else // creating { dlg.RuleSet.Name = ruleSetName; activity.RuleSetReference = new RuleSetReference(ruleSetName); } ruleSetCollection.Add(dlg.RuleSet); ConditionHelper.Flush_Rules_DT(this, Helpers.GetRootActivity(activity)); } } } // force revalidation by setting a property TypeDescriptor.GetProperties(activity)["RuleSetReference"].SetValue(activity, activity.RuleSetReference); } } internal sealed class PolicyDesignerTheme : ActivityDesignerTheme { public PolicyDesignerTheme(WorkflowTheme theme) : base(theme) { this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); this.BorderColor = Color.FromArgb(0xFF, 0x80, 0x80, 0x80); this.BorderStyle = DashStyle.Solid; this.BackColorStart = Color.FromArgb(0xFF, 0xF4, 0xF4, 0xF4); this.BackColorEnd = Color.FromArgb(0xFF, 0xC0, 0xC0, 0xC0); this.BackgroundStyle = LinearGradientMode.Horizontal; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. using System; using System.Text; using System.Reflection; using System.Collections; using System.CodeDom; using System.ComponentModel; using System.ComponentModel.Design; using System.Drawing; using System.Drawing.Drawing2D; using System.Workflow.ComponentModel; using System.Workflow.ComponentModel.Design; using System.Workflow.ComponentModel.Compiler; using System.Workflow.Activities.Rules; using System.Globalization; using System.Windows.Forms.Design; using System.Workflow.Activities.Rules.Design; using System.Windows.Forms; using System.Workflow.Activities.Common; namespace System.Workflow.Activities { [ActivityDesignerTheme(typeof(PolicyDesignerTheme))] internal sealed class PolicyDesigner: ActivityDesigner, IServiceProvider { new public object GetService(Type type) { return base.GetService(type); } protected override void DoDefaultAction() { base.DoDefaultAction(); // Do not allow editing if in debug mode. WorkflowDesignerLoader workflowDesignerLoader = this.GetService(typeof(WorkflowDesignerLoader)) as WorkflowDesignerLoader; if (workflowDesignerLoader != null && workflowDesignerLoader.InDebugMode) throw new InvalidOperationException(Messages.DebugModeEditsDisallowed); // Do not allow editing if locked PolicyActivity activity = (PolicyActivity)this.Activity; if (Helpers.IsActivityLocked(activity)) return; RuleDefinitions rules = ConditionHelper.Load_Rules_DT(this, Helpers.GetRootActivity(activity)); if (rules != null) { RuleSetCollection ruleSetCollection = rules.RuleSets; RuleSetReference ruleSetReference = activity.RuleSetReference; RuleSet ruleSet = null; string ruleSetName = null; if (ruleSetReference != null && !string.IsNullOrEmpty(ruleSetReference.RuleSetName)) { ruleSetName = ruleSetReference.RuleSetName; if (ruleSetCollection.Contains(ruleSetName)) { ruleSet = ruleSetCollection[ruleSetName]; } } else { ruleSetName = ruleSetCollection.GenerateRuleSetName(); } using (RuleSetDialog dlg = new RuleSetDialog(activity, ruleSet)) { if (DialogResult.OK == dlg.ShowDialog()) { if (ruleSet != null) // modifying { ruleSetCollection.Remove(ruleSetName); } else // creating { dlg.RuleSet.Name = ruleSetName; activity.RuleSetReference = new RuleSetReference(ruleSetName); } ruleSetCollection.Add(dlg.RuleSet); ConditionHelper.Flush_Rules_DT(this, Helpers.GetRootActivity(activity)); } } } // force revalidation by setting a property TypeDescriptor.GetProperties(activity)["RuleSetReference"].SetValue(activity, activity.RuleSetReference); } } internal sealed class PolicyDesignerTheme : ActivityDesignerTheme { public PolicyDesignerTheme(WorkflowTheme theme) : base(theme) { this.ForeColor = Color.FromArgb(0xFF, 0x00, 0x00, 0x00); this.BorderColor = Color.FromArgb(0xFF, 0x80, 0x80, 0x80); this.BorderStyle = DashStyle.Solid; this.BackColorStart = Color.FromArgb(0xFF, 0xF4, 0xF4, 0xF4); this.BackColorEnd = Color.FromArgb(0xFF, 0xC0, 0xC0, 0xC0); this.BackgroundStyle = LinearGradientMode.Horizontal; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ReadOnlyTernaryTree.cs
- DataControlButton.cs
- HttpHandlerActionCollection.cs
- RequestCacheValidator.cs
- RightNameExpirationInfoPair.cs
- SQLByteStorage.cs
- XmlNamespaceDeclarationsAttribute.cs
- Int64KeyFrameCollection.cs
- PostBackOptions.cs
- XmlFormatExtensionAttribute.cs
- WizardSideBarListControlItem.cs
- GenericTypeParameterBuilder.cs
- MemberInitExpression.cs
- FormViewUpdateEventArgs.cs
- SecurityPermission.cs
- ConnectionConsumerAttribute.cs
- RolePrincipal.cs
- WinFormsSecurity.cs
- SqlResolver.cs
- XmlQueryStaticData.cs
- FastEncoder.cs
- BufferedStream2.cs
- QilReplaceVisitor.cs
- UriScheme.cs
- CapabilitiesUse.cs
- AccessDataSourceWizardForm.cs
- ClonableStack.cs
- ValidationError.cs
- SchemaType.cs
- XmlQualifiedNameTest.cs
- ToolStripItem.cs
- PackagePartCollection.cs
- PageEventArgs.cs
- TraceEventCache.cs
- DragStartedEventArgs.cs
- NonVisualControlAttribute.cs
- ClientProtocol.cs
- ImageListUtils.cs
- TdsParserSafeHandles.cs
- DocobjHost.cs
- GradientStop.cs
- ObjectDataSourceFilteringEventArgs.cs
- FormatException.cs
- HtmlWindow.cs
- XsltContext.cs
- AssemblyHash.cs
- StorageEntityTypeMapping.cs
- iisPickupDirectory.cs
- IssuedTokenServiceElement.cs
- XmlSchemaExporter.cs
- WebPartZoneCollection.cs
- ManagedWndProcTracker.cs
- Timeline.cs
- StreamingContext.cs
- SemanticAnalyzer.cs
- CompilerWrapper.cs
- DataServiceHostFactory.cs
- ClientUriBehavior.cs
- CompModSwitches.cs
- CorrelationTokenTypeConvertor.cs
- Options.cs
- ThreadStaticAttribute.cs
- FontStyles.cs
- RegexNode.cs
- Math.cs
- FormViewModeEventArgs.cs
- WmpBitmapEncoder.cs
- Stack.cs
- CodeCompiler.cs
- StatusCommandUI.cs
- EventMap.cs
- DefaultPropertyAttribute.cs
- ContentElementAutomationPeer.cs
- _SslState.cs
- MDIControlStrip.cs
- ToolStripContentPanelRenderEventArgs.cs
- FaultImportOptions.cs
- ConsoleKeyInfo.cs
- CachedPathData.cs
- SessionEndedEventArgs.cs
- ContainerControlDesigner.cs
- DataGrid.cs
- SingleAnimationBase.cs
- MsmqIntegrationSecurity.cs
- BamlVersionHeader.cs
- CursorConverter.cs
- FacetDescriptionElement.cs
- BuildDependencySet.cs
- PenThreadPool.cs
- prefixendpointaddressmessagefiltertable.cs
- OdbcDataReader.cs
- ObjectViewFactory.cs
- ImageCreator.cs
- CryptoHandle.cs
- CompleteWizardStep.cs
- FaultHandlingFilter.cs
- BeginStoryboard.cs
- CqlQuery.cs
- DesignerDataStoredProcedure.cs
- HttpModuleActionCollection.cs