tags:

views:

732

answers:

2

Hi,

Anyone can explain briefly about the [Inspectable] metadata tag. I read and could not understand in live docs.

Please help me when we are going to use the [Inspectable] metadata tag?

Thanks, ravi

+2  A: 

The tag is used with properties to provide code hints for that property and to specify the possible list of values that property can take while using it in mxml. Unlike [Bindable] metadata, this tag doesn't have much effect on the working of the code (other than specifying a default value) - this is used mainly to give directions to Flex Builder regarding how to deal with a particular property.

[Inspectable] metadata tag

Defines an attribute exposed to component users in the attribute hints and Tag inspector of Flex Builder. Also limits allowable values of the property.

For example, the verticalScrollPolicy property of the mx.core.Container class has the following [Inspectable] tag with it.

[Inspectable(category="General", enumeration="off,on,auto", defaultValue="auto")]
public function get verticalScrollPolicy():String
{
    return _verticalScrollPolicy;
}

This tells Flex Builder that this property should appear in the 'General' tab (it is 'Common' in my FB) of the Flex Builder's property inspector (open an mxml file, go to the Windows menu and select Flex Properties to open the property inspector - towards the upper side of inspector tab, near its title, you will find buttons to switch to standard view, category view, and alphabetical view). This property can take one of the three values off, on, auto and if none is specified it takes auto as its default value.

I've never used this tag and I believe you too won't be using it much unless you are writing a Flex API to be used by a bigger audience than your colleagues (or if you are a perfectionist).

Amarghosh
A: 

This tag is useful for when you write your own custom components. While it does not interact with the actual code you write (unlike the [Bindable] tag, mentioned above), it does give the Flexbuilder environment a way of allowing the user to set properties of your component using the UI Designer.

Therefore, the tag is useful if you want to:

  • Write components that are to be used by other people (make only the publicly accessible properties Inspect'able)
  • You've written a custom component that is used multiple times in your UI (maybe an extended slider). You then write some Inspect'able getter/setter methods as the public API to your component, and then implement these getter/setter methods to do data validation and implement the internal logic of your component.

You can find more information and examples here. Some good info on writing custom components (using the code behind methodology, which I prefer) can be found here.

Note: When creating exposed properties using [Inspectable], they don't seem to show up in the Flexbuilder Flex-Properties panel (not in Standard view anyway, use Category view or Alphabetical view, instead)

Note: You can find an alternative method of adding public properties to your custom components using MXLM, like this.