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
- ArrayTypeMismatchException.cs
- Object.cs
- ClientUriBehavior.cs
- ActiveXSite.cs
- TreeNodeEventArgs.cs
- ElementHostPropertyMap.cs
- EditorAttribute.cs
- WindowsFormsEditorServiceHelper.cs
- AssociationSet.cs
- OpenTypeCommon.cs
- Figure.cs
- ReadWriteSpinLock.cs
- CollectionViewProxy.cs
- COM2TypeInfoProcessor.cs
- XmlReaderDelegator.cs
- FormatSettings.cs
- ApplySecurityAndSendAsyncResult.cs
- SchemaDeclBase.cs
- securitycriticaldataformultiplegetandset.cs
- CheckBoxRenderer.cs
- WebUtil.cs
- CustomLineCap.cs
- ClientUrlResolverWrapper.cs
- TraceLog.cs
- PipeStream.cs
- DerivedKeySecurityToken.cs
- ApplicationActivator.cs
- GridViewCancelEditEventArgs.cs
- Point3DAnimationBase.cs
- Byte.cs
- HtmlForm.cs
- SQLString.cs
- RedBlackList.cs
- RecognizedAudio.cs
- DriveInfo.cs
- ProxyAttribute.cs
- EdmItemCollection.cs
- SolidBrush.cs
- MasterPageBuildProvider.cs
- BaseParaClient.cs
- TemplatePagerField.cs
- COM2ComponentEditor.cs
- RuleConditionDialog.cs
- FontResourceCache.cs
- EmissiveMaterial.cs
- XmlBaseReader.cs
- FontDriver.cs
- FlowDocumentReader.cs
- EntityTransaction.cs
- KerberosRequestorSecurityToken.cs
- ControlPaint.cs
- StreamReader.cs
- RegistrySecurity.cs
- WindowClosedEventArgs.cs
- EdmPropertyAttribute.cs
- HostingEnvironment.cs
- ExceptionValidationRule.cs
- ManipulationDelta.cs
- MimeTypeAttribute.cs
- XsltContext.cs
- DataMisalignedException.cs
- UnsafeNativeMethods.cs
- ColumnMap.cs
- FutureFactory.cs
- SemaphoreSlim.cs
- DetailsViewPagerRow.cs
- DbConnectionPoolCounters.cs
- DoubleLinkList.cs
- DeferredTextReference.cs
- BamlRecordHelper.cs
- ExpressionBinding.cs
- ImageMapEventArgs.cs
- GlyphInfoList.cs
- HybridDictionary.cs
- DesignerActionVerbList.cs
- AttributeQuery.cs
- CookieHandler.cs
- TextEmbeddedObject.cs
- MultiBinding.cs
- SystemEvents.cs
- XmlUtf8RawTextWriter.cs
- ColorConverter.cs
- SessionStateUtil.cs
- messageonlyhwndwrapper.cs
- AssemblyAssociatedContentFileAttribute.cs
- FileDetails.cs
- FontFamilyIdentifier.cs
- StrongNameMembershipCondition.cs
- Drawing.cs
- CodeThrowExceptionStatement.cs
- hwndwrapper.cs
- ResourceAssociationSet.cs
- ByteAnimationBase.cs
- WebHttpElement.cs
- SqlServer2KCompatibilityAnnotation.cs
- XMLDiffLoader.cs
- OleDbSchemaGuid.cs
- LinkArea.cs
- CodeLabeledStatement.cs
- NextPreviousPagerField.cs