Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / CompMod / System / ComponentModel / Design / PropertyTabAttribute.cs / 1305376 / PropertyTabAttribute.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
// SECREVIEW: Remove this attribute once bug#411903 is fixed.
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2113:SecureLateBindingMethods", Scope="member", Target="System.ComponentModel.PropertyTabAttribute.get_TabClasses():System.Type[]")]
namespace System.ComponentModel {
using System;
using System.ComponentModel;
using System.Reflection;
using System.Security.Permissions;
///
/// Identifies the property tab or tabs that should be displayed for the
/// specified class or classes.
///
[AttributeUsage(AttributeTargets.All)]
public class PropertyTabAttribute : Attribute {
private PropertyTabScope[] tabScopes;
private Type[] tabClasses;
private string[] tabClassNames;
///
///
/// Basic constructor that creates a PropertyTabAttribute. Use this ctor to derive from this
/// attribute and specify multiple tab types by calling InitializeArrays.
///
///
public PropertyTabAttribute() {
tabScopes = new PropertyTabScope[0];
tabClassNames = new string[0];
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(Type tabClass) : this(tabClass, PropertyTabScope.Component) {
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(string tabClassName) : this(tabClassName, PropertyTabScope.Component) {
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(Type tabClass, PropertyTabScope tabScope) {
this.tabClasses = new Type[]{ tabClass};
if (tabScope < PropertyTabScope.Document) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeBadPropertyTabScope), "tabScope");
}
this.tabScopes = new PropertyTabScope[]{tabScope};
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(string tabClassName, PropertyTabScope tabScope) {
this.tabClassNames = new string[]{ tabClassName};
if (tabScope < PropertyTabScope.Document) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeBadPropertyTabScope), "tabScope");
}
this.tabScopes = new PropertyTabScope[]{tabScope};
}
///
/// Gets the types of tab that this attribute specifies.
///
public Type[] TabClasses {
get {
if (tabClasses == null && tabClassNames != null) {
tabClasses = new Type[tabClassNames.Length];
for (int i=0; i
/// [To be supplied.]
///
protected string[] TabClassNames{
get {
if (tabClassNames != null) {
return (string[])tabClassNames.Clone();
}
else {
return null;
}
}
}
///
/// Gets the scopes of tabs for this System.ComponentModel.Design.PropertyTabAttribute, from System.ComponentModel.Design.PropertyTabScope.
///
public PropertyTabScope[] TabScopes {
get {
return tabScopes;
}
}
///
public override bool Equals(object other) {
if (other is PropertyTabAttribute) {
return Equals((PropertyTabAttribute)other);
}
return false;
}
///
public bool Equals(PropertyTabAttribute other) {
if (other == (object)this) {
return true;
}
if (other.TabClasses.Length != TabClasses.Length ||
other.TabScopes.Length != TabScopes.Length) {
return false;
}
for (int i = 0; i < TabClasses.Length; i++) {
if (TabClasses[i] != other.TabClasses[i] ||
TabScopes[i] != other.TabScopes[i]) {
return false;
}
}
return true;
}
///
///
/// Returns the hashcode for this object.
///
///
public override int GetHashCode() {
return base.GetHashCode();
}
///
///
/// Utiliity function to set the types of tab classes this PropertyTabAttribute specifies.
///
///
protected void InitializeArrays(string[] tabClassNames, PropertyTabScope[] tabScopes) {
InitializeArrays(tabClassNames, null, tabScopes);
}
///
///
/// Utiliity function to set the types of tab classes this PropertyTabAttribute specifies.
///
///
protected void InitializeArrays(Type[] tabClasses, PropertyTabScope[] tabScopes) {
InitializeArrays(null, tabClasses, tabScopes);
}
private void InitializeArrays(string[] tabClassNames, Type[] tabClasses, PropertyTabScope[] tabScopes) {
if (tabClasses != null) {
if (tabScopes != null && tabClasses.Length != tabScopes.Length) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeArrayLengthMismatch));
}
this.tabClasses = (Type[])tabClasses.Clone();
}
else if (tabClassNames != null) {
if (tabScopes != null && tabClasses.Length != tabScopes.Length) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeArrayLengthMismatch));
}
this.tabClassNames = (string[])tabClassNames.Clone();
this.tabClasses = null;
}
else if (this.tabClasses == null && this.tabClassNames == null) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeParamsBothNull));
}
if (tabScopes != null) {
for (int i = 0; i < tabScopes.Length; i++) {
if (tabScopes[i] < PropertyTabScope.Document) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeBadPropertyTabScope));
}
}
this.tabScopes = (PropertyTabScope[])tabScopes.Clone();
}
else {
this.tabScopes = new PropertyTabScope[tabClasses.Length];
for (int i = 0; i < TabScopes.Length; i++) {
this.tabScopes[i] = PropertyTabScope.Component;
}
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
// SECREVIEW: Remove this attribute once bug#411903 is fixed.
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2113:SecureLateBindingMethods", Scope="member", Target="System.ComponentModel.PropertyTabAttribute.get_TabClasses():System.Type[]")]
namespace System.ComponentModel {
using System;
using System.ComponentModel;
using System.Reflection;
using System.Security.Permissions;
///
/// Identifies the property tab or tabs that should be displayed for the
/// specified class or classes.
///
[AttributeUsage(AttributeTargets.All)]
public class PropertyTabAttribute : Attribute {
private PropertyTabScope[] tabScopes;
private Type[] tabClasses;
private string[] tabClassNames;
///
///
/// Basic constructor that creates a PropertyTabAttribute. Use this ctor to derive from this
/// attribute and specify multiple tab types by calling InitializeArrays.
///
///
public PropertyTabAttribute() {
tabScopes = new PropertyTabScope[0];
tabClassNames = new string[0];
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(Type tabClass) : this(tabClass, PropertyTabScope.Component) {
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(string tabClassName) : this(tabClassName, PropertyTabScope.Component) {
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(Type tabClass, PropertyTabScope tabScope) {
this.tabClasses = new Type[]{ tabClass};
if (tabScope < PropertyTabScope.Document) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeBadPropertyTabScope), "tabScope");
}
this.tabScopes = new PropertyTabScope[]{tabScope};
}
///
///
/// Basic constructor that creates a property tab attribute that will create a tab
/// of the specified type.
///
///
public PropertyTabAttribute(string tabClassName, PropertyTabScope tabScope) {
this.tabClassNames = new string[]{ tabClassName};
if (tabScope < PropertyTabScope.Document) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeBadPropertyTabScope), "tabScope");
}
this.tabScopes = new PropertyTabScope[]{tabScope};
}
///
/// Gets the types of tab that this attribute specifies.
///
public Type[] TabClasses {
get {
if (tabClasses == null && tabClassNames != null) {
tabClasses = new Type[tabClassNames.Length];
for (int i=0; i
/// [To be supplied.]
///
protected string[] TabClassNames{
get {
if (tabClassNames != null) {
return (string[])tabClassNames.Clone();
}
else {
return null;
}
}
}
///
/// Gets the scopes of tabs for this System.ComponentModel.Design.PropertyTabAttribute, from System.ComponentModel.Design.PropertyTabScope.
///
public PropertyTabScope[] TabScopes {
get {
return tabScopes;
}
}
///
public override bool Equals(object other) {
if (other is PropertyTabAttribute) {
return Equals((PropertyTabAttribute)other);
}
return false;
}
///
public bool Equals(PropertyTabAttribute other) {
if (other == (object)this) {
return true;
}
if (other.TabClasses.Length != TabClasses.Length ||
other.TabScopes.Length != TabScopes.Length) {
return false;
}
for (int i = 0; i < TabClasses.Length; i++) {
if (TabClasses[i] != other.TabClasses[i] ||
TabScopes[i] != other.TabScopes[i]) {
return false;
}
}
return true;
}
///
///
/// Returns the hashcode for this object.
///
///
public override int GetHashCode() {
return base.GetHashCode();
}
///
///
/// Utiliity function to set the types of tab classes this PropertyTabAttribute specifies.
///
///
protected void InitializeArrays(string[] tabClassNames, PropertyTabScope[] tabScopes) {
InitializeArrays(tabClassNames, null, tabScopes);
}
///
///
/// Utiliity function to set the types of tab classes this PropertyTabAttribute specifies.
///
///
protected void InitializeArrays(Type[] tabClasses, PropertyTabScope[] tabScopes) {
InitializeArrays(null, tabClasses, tabScopes);
}
private void InitializeArrays(string[] tabClassNames, Type[] tabClasses, PropertyTabScope[] tabScopes) {
if (tabClasses != null) {
if (tabScopes != null && tabClasses.Length != tabScopes.Length) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeArrayLengthMismatch));
}
this.tabClasses = (Type[])tabClasses.Clone();
}
else if (tabClassNames != null) {
if (tabScopes != null && tabClasses.Length != tabScopes.Length) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeArrayLengthMismatch));
}
this.tabClassNames = (string[])tabClassNames.Clone();
this.tabClasses = null;
}
else if (this.tabClasses == null && this.tabClassNames == null) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeParamsBothNull));
}
if (tabScopes != null) {
for (int i = 0; i < tabScopes.Length; i++) {
if (tabScopes[i] < PropertyTabScope.Document) {
throw new ArgumentException(SR.GetString(SR.PropertyTabAttributeBadPropertyTabScope));
}
}
this.tabScopes = (PropertyTabScope[])tabScopes.Clone();
}
else {
this.tabScopes = new PropertyTabScope[tabClasses.Length];
for (int i = 0; i < TabScopes.Length; i++) {
this.tabScopes[i] = PropertyTabScope.Component;
}
}
}
}
}
// 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
- GeneratedContractType.cs
- MailMessage.cs
- AsymmetricSecurityProtocolFactory.cs
- SymLanguageType.cs
- DbDataReader.cs
- GridLengthConverter.cs
- OleDbEnumerator.cs
- FontUnitConverter.cs
- TimeoutHelper.cs
- PtsPage.cs
- ServiceDescription.cs
- InternalConfigEventArgs.cs
- DataBoundLiteralControl.cs
- ReliableDuplexSessionChannel.cs
- SqlInternalConnection.cs
- MatrixConverter.cs
- ScrollPatternIdentifiers.cs
- StateMachineSubscriptionManager.cs
- SqlNotificationEventArgs.cs
- XmlCharacterData.cs
- DispatcherFrame.cs
- _HTTPDateParse.cs
- JapaneseLunisolarCalendar.cs
- DiscreteKeyFrames.cs
- SqlConnectionString.cs
- UIElementIsland.cs
- _TimerThread.cs
- ISessionStateStore.cs
- TreeViewImageKeyConverter.cs
- XsltContext.cs
- Profiler.cs
- CallId.cs
- GroupAggregateExpr.cs
- ArglessEventHandlerProxy.cs
- CodeTypeReferenceCollection.cs
- OracleBFile.cs
- COM2ExtendedTypeConverter.cs
- OperationBehaviorAttribute.cs
- LinqExpressionNormalizer.cs
- ProfileParameter.cs
- KeyValueSerializer.cs
- XmlCharCheckingWriter.cs
- Collection.cs
- Operator.cs
- BaseTemplateBuildProvider.cs
- WebServiceErrorEvent.cs
- ClientConfigurationSystem.cs
- RectValueSerializer.cs
- PageAdapter.cs
- ScriptingScriptResourceHandlerSection.cs
- MutableAssemblyCacheEntry.cs
- PropertyInfoSet.cs
- FormatException.cs
- Size.cs
- LogReserveAndAppendState.cs
- FormCollection.cs
- SoapIgnoreAttribute.cs
- LinearQuaternionKeyFrame.cs
- Int32CAMarshaler.cs
- SecurityTokenAuthenticator.cs
- recordstatescratchpad.cs
- AdCreatedEventArgs.cs
- CompressStream.cs
- DataGridViewLayoutData.cs
- DocumentOrderQuery.cs
- PointAnimationUsingKeyFrames.cs
- XmlEncodedRawTextWriter.cs
- IndicCharClassifier.cs
- Pkcs7Recipient.cs
- PriorityBinding.cs
- StrokeNodeOperations2.cs
- DrawingContext.cs
- ShapeTypeface.cs
- ListViewItemEventArgs.cs
- WizardStepBase.cs
- RoutingConfiguration.cs
- PagesSection.cs
- BamlRecordReader.cs
- objectresult_tresulttype.cs
- Predicate.cs
- Crc32Helper.cs
- FormatVersion.cs
- FloatUtil.cs
- ReadOnlyDictionary.cs
- ChangesetResponse.cs
- DynamicDocumentPaginator.cs
- RegistryPermission.cs
- GPPOINTF.cs
- LookupNode.cs
- IgnoreDataMemberAttribute.cs
- QilCloneVisitor.cs
- Codec.cs
- DataGridViewCheckBoxCell.cs
- WorkerRequest.cs
- WebPartCancelEventArgs.cs
- JumpList.cs
- mda.cs
- TargetConverter.cs
- ComponentChangedEvent.cs
- SQLInt32Storage.cs