Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.WorkflowServices / System / Workflow / ComponentModel / Design / DesignerPainter.cs / 1305376 / DesignerPainter.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- namespace System.Workflow.ComponentModel.Design { using System; using System.Collections.Generic; using System.Text; using System.Workflow.ComponentModel.Design; using System.Windows.Forms; using System.Reflection; using System.Drawing; using System.Diagnostics; using System.ServiceModel; //// This is a helper class with static methods that dont fit anywhere but are useful in general // internal static class DesignerPainter { public static CompositeActivityDesigner GetRootDesigner(ActivityDesigner designer) { if (designer == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("designer"); } CompositeActivityDesigner rootDesigner = designer.ParentDesigner; while (!rootDesigner.IsRootDesigner && rootDesigner.ParentDesigner != null) { rootDesigner = rootDesigner.ParentDesigner; } return rootDesigner; } public static void PaintDesigner(ActivityDesigner activityDesigner, ActivityDesignerPaintEventArgs eventArgs) { if (activityDesigner == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("activityDesigner"); } if (eventArgs == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("eventArgs"); } ActivityDesigner parentDesigner = activityDesigner.ParentDesigner; if (parentDesigner == null) { // This designer is no more on the design surface , dont paint this. return; } if (!IsBranchVisible(activityDesigner)) { return; } // special case designers contained inside activity preview designers ( only one of the contained designers is shown) bool visible = false; if (IsInsidePreviewDesignerBranch(activityDesigner, out visible)) { if (visible) { PaintDesignerInternal(activityDesigner, eventArgs); } } else { PaintDesignerInternal(activityDesigner, eventArgs); } } private static bool IsBranchVisible(ActivityDesigner activityDesigner) { ActivityDesigner currentDesigner = activityDesigner; ActivityDesigner parentDesigner = activityDesigner.ParentDesigner; while (!currentDesigner.IsRootDesigner) { if (!((CompositeActivityDesigner) parentDesigner).ContainedDesigners.Contains(currentDesigner)) { return false; } else { currentDesigner = parentDesigner; parentDesigner = parentDesigner.ParentDesigner; } } return true; } [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] // The above suppression is required because, the parentDesigner object is changeing inside the loop and it is // not possible to cache the result of the cast as suggested by FxCop private static bool IsInsidePreviewDesignerBranch(ActivityDesigner activityDesigner, out bool visible) { visible = false; ActivityDesigner currentDesigner = activityDesigner; ActivityDesigner parentDesigner = activityDesigner.ParentDesigner; while (!currentDesigner.IsRootDesigner) { if (parentDesigner is ActivityPreviewDesigner) { break; } else { currentDesigner = parentDesigner; parentDesigner = parentDesigner.ParentDesigner; } } if (parentDesigner is ActivityPreviewDesigner) { if (((ActivityPreviewDesigner) parentDesigner).IsContainedDesignerVisible(currentDesigner)) { visible = true; } return true; } return false; } private static void PaintDesignerInternal(ActivityDesigner activityDesigner, ActivityDesignerPaintEventArgs eventArgs) { IWorkflowDesignerMessageSink sink = (IWorkflowDesignerMessageSink) activityDesigner; sink.OnPaint(new PaintEventArgs(eventArgs.Graphics, eventArgs.ClipRectangle), eventArgs.ClipRectangle); } } } // 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
- ListControl.cs
- Inline.cs
- XappLauncher.cs
- NameNode.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- DocumentPageTextView.cs
- FormParameter.cs
- CodeTypeReferenceExpression.cs
- PeerNodeAddress.cs
- MachineSettingsSection.cs
- ChineseLunisolarCalendar.cs
- ApplicationInterop.cs
- InvokeMethodActivityDesigner.cs
- CollectionExtensions.cs
- TemplatePartAttribute.cs
- RefreshPropertiesAttribute.cs
- BindingSource.cs
- PrintingPermissionAttribute.cs
- OdbcRowUpdatingEvent.cs
- Polygon.cs
- XmlSchemaChoice.cs
- ObjectTag.cs
- UnaryNode.cs
- OptimisticConcurrencyException.cs
- StrongName.cs
- RequestTimeoutManager.cs
- WebPartPersonalization.cs
- WarningException.cs
- InvalidCommandTreeException.cs
- BitmapMetadata.cs
- PrimitiveList.cs
- IpcPort.cs
- httpstaticobjectscollection.cs
- WebServiceHandler.cs
- HtmlProps.cs
- ResourceSet.cs
- CommonGetThemePartSize.cs
- PointLightBase.cs
- InputLanguageProfileNotifySink.cs
- BevelBitmapEffect.cs
- ReadOnlyAttribute.cs
- WindowsGraphicsWrapper.cs
- WindowsListViewGroupHelper.cs
- PackageRelationshipCollection.cs
- WorkflowEnvironment.cs
- MatrixUtil.cs
- _HelperAsyncResults.cs
- LogAppendAsyncResult.cs
- PathFigureCollection.cs
- XmlUnspecifiedAttribute.cs
- DataSourceDesigner.cs
- CodeGeneratorAttribute.cs
- AdPostCacheSubstitution.cs
- ClientType.cs
- DeviceContext.cs
- EntitySetBase.cs
- iisPickupDirectory.cs
- MethodRental.cs
- NativeMethods.cs
- CollectionChangedEventManager.cs
- mansign.cs
- XmlObjectSerializerWriteContextComplex.cs
- ControlBindingsCollection.cs
- FixedSchema.cs
- QuadraticBezierSegment.cs
- XmlSchemaAttributeGroup.cs
- EdmRelationshipRoleAttribute.cs
- TemplateKey.cs
- SymmetricAlgorithm.cs
- SiteMapNodeCollection.cs
- HMAC.cs
- MethodImplAttribute.cs
- TemplateControlParser.cs
- FrameworkContextData.cs
- PolicyException.cs
- XmlSchemaChoice.cs
- ListDictionaryInternal.cs
- WinFormsComponentEditor.cs
- FixedStringLookup.cs
- ResXBuildProvider.cs
- InputChannelBinder.cs
- ClientScriptManager.cs
- XmlBaseWriter.cs
- AsnEncodedData.cs
- CustomGrammar.cs
- DataTableNewRowEvent.cs
- TreeNodeSelectionProcessor.cs
- ResourceProperty.cs
- GridLength.cs
- ThreadSafeList.cs
- ToolStripPanelRenderEventArgs.cs
- StrongNameUtility.cs
- SqlCacheDependency.cs
- XmlSchemaIdentityConstraint.cs
- VirtualizedItemPattern.cs
- GeneralTransform.cs
- MetadataPropertyAttribute.cs
- followingsibling.cs
- Filter.cs
- Track.cs