Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Base / Core / PropertyEditing / newitemfactory.cs / 1305376 / newitemfactory.cs
namespace System.Activities.Presentation.PropertyEditing {
using System;
using System.Windows;
using System.Reflection;
using System.IO;
using System.Windows.Markup;
using System.Windows.Media.Imaging;
using System.Windows.Controls;
using System.Activities.Presentation.Internal;
using System.Diagnostics.CodeAnalysis;
using System.Activities.Presentation;
///
/// Base class that represents a factory for creating new items for a collection or
/// for a property value. 3rd party control developers may choose to derive from this class
/// to override the default behavior of specifying names and images that are used by
/// collection editor and sub-property editor when creating instances of custom controls.
///
class NewItemFactory {
private Type[] NoTypes = new Type[0];
///
/// Default constructor
///
public NewItemFactory() { }
///
/// Returns an object that can be set as the Content of a ContentControl
/// and that will be used an icon for the requested type by the property editing host.
/// The default implementation of this method uses naming convention, searching for
/// the embedded resources in the same assembly as the control, that are named the
/// same as the control (including namespace), followed by ".Icon", followed by
/// the extension for the file type itself. Currently, only ".png", ".bmp", ".gif",
/// ".jpg", and ".jpeg" extensions are recognized.
///
/// Type of the object to look up
/// The desired size of the image to retrieve. If multiple
/// images are available this method retrieves the image that most closely
/// resembles the requested size. However, it is not guaranteed to return an image
/// that matches the desired size exactly.
/// An image for the specified type.
/// If type is null
public virtual object GetImage(Type type, Size desiredSize) {
if (type == null)
throw FxTrace.Exception.ArgumentNull("type");
return ManifestImages.GetImage(type, desiredSize);
}
///
/// Returns the name for the item this factory adds for the passed in type. This is
/// the name that will be used in the "Add Item" drop down to identify the type being added.
/// The default implementation returns the short type name.
///
/// Type to retrieve the display name for.
/// The display name for the specified type
/// If type is null
[SuppressMessage("Microsoft.Design", "CA1011:ConsiderPassingBaseTypesAsParameters", Justification = "The intended usage in the larger scope of the class is the stronger type")]
public virtual string GetDisplayName(Type type)
{
if (type == null)
throw FxTrace.Exception.ArgumentNull("type");
return type.Name;
}
///
/// Returns an instance of an item that is added to the collection for the passed in Type.
/// The default implementation looks for public constructors that take no arguments.
/// If no such constructors are found, null is returned.
///
/// Type of the object to create
/// Instance of the specified type, or null if no appropriate constructor was found
///
/// If type is null
public virtual object CreateInstance(Type type) {
if (type == null)
throw FxTrace.Exception.ArgumentNull("type");
ConstructorInfo ctor = type.GetConstructor(
BindingFlags.Public | BindingFlags.Instance,
null,
NoTypes,
null);
return ctor == null ? null : ctor.Invoke(null);
}
}
}
// 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
- Clipboard.cs
- WinCategoryAttribute.cs
- TypefaceMap.cs
- ObjectListGeneralPage.cs
- ColorMatrix.cs
- Typeface.cs
- UxThemeWrapper.cs
- MergePropertyDescriptor.cs
- C14NUtil.cs
- EncoderFallback.cs
- Directory.cs
- _CommandStream.cs
- ObjectAnimationBase.cs
- Executor.cs
- HttpListenerRequest.cs
- QualifierSet.cs
- DocumentOrderQuery.cs
- RemoteCryptoTokenProvider.cs
- EditorPart.cs
- ServiceContractAttribute.cs
- CommandConverter.cs
- RepeatButtonAutomationPeer.cs
- FloaterBaseParaClient.cs
- SqlProviderUtilities.cs
- SerialPinChanges.cs
- ZipIOModeEnforcingStream.cs
- ChooseAction.cs
- TemplateComponentConnector.cs
- SecurityDocument.cs
- _RequestCacheProtocol.cs
- TextLineBreak.cs
- SafeLibraryHandle.cs
- TextEditorSpelling.cs
- HtmlHistory.cs
- WebRequest.cs
- ModelItemKeyValuePair.cs
- WebPartHelpVerb.cs
- ReturnValue.cs
- TableCellCollection.cs
- UrlPropertyAttribute.cs
- PageStatePersister.cs
- DrawingCollection.cs
- HtmlEncodedRawTextWriter.cs
- panel.cs
- HeaderedItemsControl.cs
- SiteMapNodeItem.cs
- XmlSerializerImportOptions.cs
- RecognizedPhrase.cs
- Perspective.cs
- Buffer.cs
- RulePatternOps.cs
- RemoteX509Token.cs
- MetabaseServerConfig.cs
- TCPClient.cs
- ListViewDataItem.cs
- PropertyGeneratedEventArgs.cs
- ListParagraph.cs
- Timer.cs
- FrameworkElement.cs
- SqlNotificationEventArgs.cs
- PreservationFileWriter.cs
- ClosableStream.cs
- ItemsControl.cs
- ViewCellRelation.cs
- DataRelation.cs
- SQLDoubleStorage.cs
- ResizeBehavior.cs
- XmlSchemaAttributeGroupRef.cs
- MediaSystem.cs
- CodeCastExpression.cs
- XmlLinkedNode.cs
- __ComObject.cs
- KeyValueConfigurationCollection.cs
- RangeValuePatternIdentifiers.cs
- UnsignedPublishLicense.cs
- EditorZoneBase.cs
- CodeBlockBuilder.cs
- DBDataPermissionAttribute.cs
- NetworkInformationPermission.cs
- FolderBrowserDialog.cs
- ClientRuntimeConfig.cs
- HtmlInputReset.cs
- ProfileSettingsCollection.cs
- Adorner.cs
- QueryableDataSourceHelper.cs
- ColorAnimationBase.cs
- IdentityHolder.cs
- DoubleAverageAggregationOperator.cs
- DownloadProgressEventArgs.cs
- datacache.cs
- TextSearch.cs
- SingleObjectCollection.cs
- NoneExcludedImageIndexConverter.cs
- EditorZone.cs
- StateChangeEvent.cs
- AuthorizationRule.cs
- CodeSubDirectory.cs
- ObjectDataSourceView.cs
- MenuItemStyle.cs
- OracleDataReader.cs