Пример #1
0
		/// <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;
		}
Пример #2
0
		/// <summary>
		/// Internal copy ctor.
		/// </summary>
		public SProperty( SProperty prop )
			: base( prop )
		{
			Type = prop.Type;
			IsReadOnly = prop.IsReadOnly;
			IsRequired = prop.IsRequired;
			DefaultValue = prop.DefaultValue;
		}