/// <summary> /// Gets information about specified property. /// </summary> public SProperty GetProperty( string propName ) { if( !m_Class.Properties.Contains( propName ) ) throw new NoMemberInformationException( propName ); SProperty prop = new SProperty( m_Class.Properties[ propName ] ); if( !String.IsNullOrEmpty( m_StateName ) ) { XmlNode propertyNode = m_Class.StatesMap[ m_StateMask ].SelectSingleNode( @"ws:properties/ws:property[@ws:name='" + propName + "']", MetaData.Instance.XMLNsMgr ); if( propertyNode != null ) { XmlNode node; // caption string cap = Tools.GetLocalizedString( propertyNode, "caption" ); if( cap != null ) prop.Caption = cap; // description string descr = Tools.GetLocalizedString( propertyNode, "description" ); if( descr != null ) prop.Description = descr; // default value node = propertyNode.SelectSingleNode( "ws:defaultValue", MetaData.Instance.XMLNsMgr ); if( node != null ) prop.SetDefaultValue( node.InnerText ); // display order node = propertyNode.SelectSingleNode( "ws:displayOrder", MetaData.Instance.XMLNsMgr ); if( node != null ) prop.DisplayOrder = int.Parse( node.InnerText ); // required flag node = propertyNode.SelectSingleNode( "ws:isRequired", MetaData.Instance.XMLNsMgr ); if( node != null ) prop.IsRequired = bool.Parse( node.InnerText ); // read only flag node = propertyNode.SelectSingleNode( "ws:isReadOnly", MetaData.Instance.XMLNsMgr ); if( node != null ) prop.IsReadOnly = bool.Parse( node.InnerText ); } } return prop; }
/// <summary> /// Internal copy ctor. /// </summary> public SProperty( SProperty prop ) : base( prop ) { Type = prop.Type; IsReadOnly = prop.IsReadOnly; IsRequired = prop.IsRequired; DefaultValue = prop.DefaultValue; }