I am needing to use spreadsheet data in my Xcelsius project and also use Flex to create custom components. I was able to successfully build and deploy a Flex custom component into Xcelsius, however, this component used hard-coded data inside the Flex source to compile the charts. This is not a workable solution for us as we need to be able to use the inherent data in Xcelsius spreadsheets to bind to the custom components we bring into Xcelsius.
So...how can I bind the spreadsheet data from Xcelsius to the custom Flex component charts/graphs to create a visualization or population of the graph? Xcelsius graphs are able to use the properties panel to create "titles" and create the data connection, however, my new custom component from Flex does not have this properties panel available. This panel is empty. Is there a way to either create properties to use or enable Xcelsius to bind inherent properties to my custom components? I found in the book "Xcelsis 2008: Dashboard Best Practices", written by Loren Abdulezer who is also connected with Xcelsius Journal, that is states to modify a line of code from a previous example in the book. The instructions don't directly fix the problem because they only address the example used in the book and not a generic, custom application. Here is the abridged code from the previous sample BasicHorizontalSlider.as: package com.anl.book.basicslider { import mx.controls.HSlider; import mx.controls.Label; [CxInspectableList ("title", "showTitle")] [Inspectable(defaultValue="showTitle", type="String")] [Inspectable(defaultValue="Title", type="String")] . . . There is also a get/set function for each "title" and "showTitle" public function get title():String{...} public function set title(value:String):void):String{...} public function get showTitle():String{...} public function set showTitle(value:String):void):String{...} . . . The steps for the fix are as follows: 1. Change the line of code in the BasicHorizontalSlider.as file from [CxInspectableList("title","showTitle")] to [CxInspectableList("title","showTitle","value")] 2. Save file 3. Re-compile the SWF 4. Rebuld the .xlx file for Xcelsius 5. Load the new component I suppose my question would be how does this solution get modified to my example or for any other example in the future? The previous sample referenced by BasicHorizontalSlider.as is a app which displays a sliding bar displaying the x-value in a tooltip as you drag the control left and right. So, then is the element CxInspectableList the variable which needs to be changed per usage? Support from SAP, on a separate discussion thread I am having, has stated the following in a separate discussion thread on their boards: When the Xcelsius 2008 Default Property Sheet loads for your add-on this is what is does: * Looks for the [CxInspectableList(+propertyName+,propertyName2,+...+)] meta data in your add-on class * So you must have a property in your add-on class for each name in CxInspectableList. * The property sheet will have an entry for each name in CxInspectableList -- the data type is picked up from the Inspectable meta-data for each property. * You can define a property in Flex as a public var (and Flex generates a getter and setter for you) or you create your own getter and setter as we do for the majority of our properties. * The reason you see us you our own getter and setter (for example with the title) is so we can detect when the title has been changed (so the setter has been called) and do something to update our add-on display. So for each property that you want to see in the Xcelsius 2008 Default Property Sheet you need to: * Create the property in your add-on, add the http://Inspectable <http://inspectable/> (...+) meta data for your property. * Add the property name to CxInspectableList * Re-compile your SWF. * Re-package your XLX * Re-import the XLX into Xcelsius Then if you have done things correctly you should see your new property in the add-on property sheet. My code snippet for the attempted fix, as instructed by SAP's support, is as follows: public var scores:String; public var names:String; public var scoreValues:Number; [Inspectable(defaultValue="true")] [CxInspectable("scores","names","scoreValues")] Somewhere I am doing something wrong, however, I cant determine where my errors are located...hmmmmmm. Does the fact that I am wanting to databind to a BarChart have an effect of the coding syntax? If in my first example the code was straightforward for using only one linear value of data to populate a sliding control bar, I would presume the syntax for a bar chart would be contain more variables and be slightly more complex? Any suggestions? Thanks in advance. Alex Dove