Make custom ItemRenderer Bindable?
If I do not use my custom ItemRenderer then the tiles in my
TileList change when the dataProvider changes, however when I use
my custom ItemRenderer they do not change when the dataProvider
changes.
I am not sure how to fix this???
Here is the code for my ItemRenderer component.
THANKS!!
quote:
Originally posted by:
Newsgroup User
"john isaacks" <[email protected]> wrote in
message
news:gigrvl$a6h$[email protected]..
> If I do not use my custom ItemRenderer then the tiles in
my TileList
> change
> when the dataProvider changes, however when I use my
custom ItemRenderer
> they
> do not change when the dataProvider changes.
>
> I am not sure how to fix this???
>
> Here is the code for my ItemRenderer component.
http://www.magnoliamultimedia.com/flex_examples/Amys_Flex_FAQ.pdf
Q2
Maybe you ought to read all of it this time, since you've
been sent to it
before on a different issue :-)
You might also find the example item renderer here helpful:
http://flexdiary.blogspot.com/2008/09/groupingcollection-example-featuring.html
Thanks, I read your whole FAQ, I didn't follow all the links
it referenced though.
Similar Messages
-
Custom ItemRenderer makes the column non editable
Hi Folks,
I have a DataGrid which s editable, I've created a custom ItemRenderer to deal with special format needed for Date variables, for that I extended the mx:Text class in order to get access to the listData.dataField variable.
The problem is that this makes the column non-editable, the other column in the table are editabe.
When I used a VBox container the column was editable however I didn't get access to the listData, which I need for the dataField variable.
Any help will be appreciated.
Thanks,
MR.
Here is the my DateItemRenderer code:
<?xml version="1.0" encoding="utf-8"?>
<mx:Text xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import aslib.common.Constants;
import aslib.common.Utils;
import aslib.connection.JSONConnector;
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.ListData;
import mx.formatters.DateFormatter;
[Bindable]
private var _dispValue:String;
public function dateStr(val:Object):String {
var innerDt:Date;
if(!(val is Date))
innerDt = Utils.convertDateStr(val as String);
else
innerDt = val as Date;
if(innerDt){
var df:DateFormatter = new DateFormatter();
df.formatString = "DD/MM/YYYY";
var formatedDate:String = df.format(innerDt);
return formatedDate;
}else{
return "";
public override function set data(value:Object):void {
var date:Object = value[(listData as DataGridListData).dataField];
if(date){
_dispValue = dateStr(date);
]]>
</fx:Script>
<mx:text>{_dispValue}</mx:text>
</mx:Text>OK, found the issue, forgot to add 'super.data = value' in the set data method...
-
How do I make a Custom DataTip with Custom ItemRenderer
I can't seem to find any documentation or examples of
displaying a dataTip (similar to those used with charting) with my
custom itemRenderer (mxml component). This is for use in a
dataGridColumn. I Could someone give me an example? The closest
I've been able to find is
http://www.mail-archive.com/[email protected]/msg61624.html,
which doesn't say how to do it.
Thanks!http://blog.bigfatstogie.com/?p=42
run the example towards the end of the page -
Items in Tree control move around when data is submitted using custom ItemRenderer
I'm working on a Tree control with an XMLListCollection as
its dataProvider.
The dataProvider has information looking like this :
quote:
<?xml version='1.0' encoding='utf-8'?>
<INFO>
<FIELD label="STR_USER_NAME"
type="text"
value=""
>
</FIELD>
<FIELD label="STR_USER_EMAIL"
type="text"
value=""
>
</FIELD>
<FIELD label="STR_OPTIONAL"
type="branch"
value="0"
>
<FIELD label="STR_USER_ADDRESS"
type="text"
value=""
>
</FIELD>
<FIELD label="STR_USER_POSTAL_CODE"
type="text"
value=""
>
</FIELD>
</FIELD>
</INFO>
So in the Tree control I'd like the information to show up
with a label and
an
editable textbox for each item :
[Label] [textbox]
To do this I made a tree like this :
quote:
<mx:Tree id="userTree"
editable="true"
rendererIsEditor="true"
editorDataField="curVal"
itemRenderer="{new ClassFactory(ItemRendererUser)}"
itemEditEnd="e_ProcessData(event);"
dataDescriptor="{new DataDescriptorUsers()}"
showRoot="false"
verticalScrollPolicy="{ScrollPolicy.AUTO}"
/>
where the e_ProcessData() function looks like this (I used
http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/js/html/wwhelp.htm?href=c
elleditor_073_16.html#202105 as a guide) :
quote:
public function e_ProcessData(event:ListEvent):void
event.preventDefault();
userTree.editedItemRenderer.data.@value =
ItemRendererUsers(event.currentTarget.itemEditorInstance).curVal;
userTree.destroyItemEditor();
userTree.dataProvider.notifyItemUpdate(userTree.editedItemRenderer);
} // END OF e_ProcessData()
I attached the rest of the files because they're a little
bit longer.
When I run the program, the data shows up fine when it is
initialized the
very
first time, and I made a test button that just dumps the
contents of the
dataProvider in a trace statement to verify that the data has
been set
properly.
The problem I've run into is whenever the textfield is
edited, the item
that
I've selected jumps around the list.
For example, if I edit the item "STR_USER_NAME" after I
finish the edit, it
will move from the very first position in the Tree to the
bottom of the
Tree.
I traced the contents of the dataProvider and the
dataProvider structure
stays
the same, with the "STR_USER_NAME" at the top, but if I look
at the flex app
in
the web browser, its position is at the bottom of the Tree.
This happens for every other item I try to edit... I read in
the
documentation
that the ItemRenderers are recycled, so it means I should be
checking to
make
sure the initial states are covered, but I'm not sure how
this affects my
application.
Can anyone help me out with this ? Its very confusing - I've
tried making
an
ItemRenderer using pure actionscript, mxml and the
combination you see in
this
example and I always end up with the same behaviour - So I
must be missing
something critical...
// ItemRendererUsers.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="
http://www.adobe.com/2006/mxml"
verticalScrollPolicy="{ScrollPolicy.OFF}"
horizontalScrollPolicy="{ScrollPolicy.OFF}"
creationComplete="initItemRendererUsers();"
>
From my FAQ:
Q: I've created a custom itemRenderer component to use in a
List
based component (Datagrid, TileList, HorizontalList, etc.).
When my List
first displays, everything looks fine, but when I scroll it
or change the
dataProvider, some of the itemRenderers show values or
formatting that
aren't right. How do I fix this?
A: List-based components don't draw a renderer for every item
in the
dataProvider. Instead, they create enough to display what is
on screen now,
plus one or two more waiting in the wings. This means they
recycle the
renderers rather than creating new ones when you change
dataProvider or
scroll up and down. When you use a creationComplete event to
set up the
itemRenderer, that event doesn't happen again when the
renderer is used for
a different set of data. The solution to this is to override
the set data
protected function that most components have.
For more information, check out the following resources:
http://www.adobe.com/devnet/flex/articles/itemrenderers_pt1.html?devcon=f1
http://blogs.adobe.com/aharui/2007/03/thinking_about_item_renderers_1.html
Please note, I post this FAQ weekly, and you can find a
permanent copy of it
here
http://www.magnoliamultimedia.com/flex_examples/Amys_Flex_FAQ.pdf"peterh8234" <[email protected]> wrote in
message
news:gaqttd$kft$[email protected]..
> Yes - the set and get functions are listed down below.
But the quirky
> behaviour
> is the same regardless of whether I override the set and
get functions or
> not.
>
> I noticed there was another variable called listData -
should I be using
> that
> one or the data variable to read and write to the
dataProvider ?
>
> // _data
> [Bindable] public var _data:Object;
> [Bindable("dataChange")]
> //
> override public function get data():Object
> {
> trace('[ItemRendererDefault.GET data()] called for {' +
> _data.attribute("label") + '}.');
> return _data;
> } // END OF get data()
>
> //
> override public function set data(value:Object):void
> {
> _data.@value = inputText.text;
> trace('[ItemRendererDefault.SET data()] called for {' +
> _data.attribute("label") + '}.');
>
> invalidateProperties();
> } // END OF set data()
Your set data needs to set a flag that gets picked up in
commitProperties()
and does your thing that you were doing before in
creationComplete. You
should see examples of this in the links I posted. Instead of
this:
_data.@value = inputText.text;
you should look at implementing IDropInListItemRenderer,
which will allow
you to dynamically determine which field to look at, instead
of hardcoding
it. You also might wind up overwriting the stored value with
a null value
when the List passes the stored value in. I'd encourage you
to really go
through those links I posted and make sure you understand
what they're
saying. The itemRenderer life cycle is one of the hardest
things to
understand, but once you understand it, it makes many things
in Flex much
easier. It's worth investing the time. -
Can't focus on custom itemRenderer?
I have made a custom itemRenderer doubling as an itemEditor
following the guidelines in the documentation.
However, even though I have set the rendererIsEditor="true",
when tabbing amongst other editable fields, the controls inside the
itemRenderer do not receive focus. I can't help but think this is
an oversight/bug but is there any way to jury-rig the itemRenderer
to focus properly? At the moment my component is simply a CheckBox
inside an HBox.
Anyway, here is my code so you can see for yourself (I have
included a CheckBox as itemRenderer so you can see the *desired*
effect.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="
http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.Alert;
[Bindable]
public var dp:Array = [{num:2, bool:true}, {num:3,
bool:false}];
]]>
</mx:Script>
<mx:DataGrid id="test" editable="true"
dataProvider="{dp}">
<mx:columns>
<mx:DataGridColumn dataField="num" headerText="num" />
<mx:DataGridColumn dataField="bool"
headerText="Sent"
itemRenderer="mx.controls.CheckBox"
rendererIsEditor="true" editorDataField="selected" />
<mx:DataGridColumn dataField="num" headerText="num"
editable="true" />
<mx:DataGridColumn dataField="bool" headerText="Sent"
rendererIsEditor="true" editorDataField="blorch">
<mx:itemRenderer>
<mx:Component>
<mx:HBox horizontalAlign="center">
<mx:Boolean id="blorch" />
<mx:CheckBox id="check" selected="{data.bool}"
change="blorch=check.selected" />
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="num" headerText="num"
editable="true" />
</mx:columns>
</mx:DataGrid>
</mx:Application>nevermind... I found the answer a few pages later in the
docs...
you have to implement the IFocusManagerComponent interface
and then override drawFocus as below to set the focus on the
checkBox... hope it works for multiple controls...
<mx:HBox horizontalAlign="center"
backgroundColor="#9933EE"
implements="mx.managers.IFocusManagerComponent">
<mx:Script>
<![CDATA[
override public function drawFocus(focused:Boolean):void {
check.setFocus();
]]>
</mx:Script>
<mx:Boolean id="blorch" />
<mx:CheckBox id="check" selected="{data.bool}"
change="blorch=check.selected"
updateComplete="blorch=check.selected" />
</mx:HBox> -
ComboBox with custom ItemRenderer
This is my combobox where I am trying to have a custom renderer:
<?xml version="1.0" encoding="utf-8"?>
<mx:ComboBox xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.collections.ArrayCollection;
import mx.controls.CheckBox;
public var datas:XML;
[Bindable]
var ItemRenderer:ClassFactory;
override public function set data(value:Object):void
dataProvider = datas["sku" + value.sku];
ItemRenderer = new ClassFactory(comboBoxCheckBoxItemRenderer);
itemRenderer = ItemRenderer;
public function saveCheckState(evt:Event):void
var dataProviderItem:Object = dataProvider.getItemAt(dataProvider.getItemIndex(selectedItem));
dataProviderItem.selected = CheckBox(evt.currentTarget).selected;
dataProvider.setItemAt(dataProviderItem, dataProvider.getItemIndex(selectedItem));
]]>
</fx:Script>
</mx:ComboBox>
This combobox is used as a custom itemrenderer in datagrid.
Here is code for comboBoxCheckBoxItemRenderer:
package modulecode
import mx.containers.HBox;
import mx.controls.CheckBox;
import mx.controls.Label;
import mx.controls.Spacer;
public class comboBoxCheckBoxItemRenderer extends HBox
private var action:Label;
private var spacer:Spacer;
private var checkBox:CheckBox;
public function comboBoxCheckBoxItemRenderer()
super();
override protected function createChildren():void {
// Call the createChildren() method of the superclass.
super.createChildren();
action = new Label();
// Add the child component to the custom component.
addChild(action);
spacer = new Spacer();
spacer.percentWidth = 100;
// Add the child component to the custom component.
addChild(spacer);
checkBox = new CheckBox();
// Add the child component to the custom component.
addChild(checkBox);
override public function set data(value:Object):void
action.text = value.action;
checkBox.selected = value.selected;
What's happening is that nothing is happening untill I drop combobox down in the grids. As the result checkboxes are not selected properly.
Any help?How would I set up a custom itemrenderer to use data binding but properly have selected property in the following code:
<<mx:itemRenderer>
<fx:Component>
<mx:HBox width="100%">
<mx:Label text="{XML(data).action}"/>
<mx:Spacer width="100%"/>
<mx:CheckBox id="check" selected="{XML(data).selected}"
change="outerDocument.saveCheckState(event);"/>
</mx:HBox>
</fx:Component>
</mx:itemRenderer> -
Hello,
I have a requirement to display an image in some rows in the
datagrid based on a flag obtained from the database. To achieve
this, I am using a custom itemrenderer for that particular column
and on a simple check if the value obtained for that particular row
is 1 then I show the image, else I leave it blank (i.e set the
image visibility to false).
Here is a snippet of the code:
Custom ItemRenderer
<mx:HBox .... creationComplete="init();">
<mx:Script>
<![CDATA[
public function init( ):void {
// Check if the flag is 0 or 1 to determine whether to show
or hide the image
if(data.@FLAG == 0) {
img.visible = false;
]]>
</mx:Script>
<mx:Image id="img" source="something.gif" />
</mx:HBox>
Main Application
<mx:Application .........>
<mx:DataGrid dataProvider="{myXML.item}" ... >
<mx:columns>
<mx:DataGridColumn dataField="@FLAG" headerText="Image"
itemRenderer="CustomItemRenderer" />
......... // Other columns
</mx:columns>
<mx:DataGrid>
</mx:Application>
This code seems to work to a certain level. However, here are
some problems that i'm facing and would like to know if this is the
right approach:
1. The check to determine whether to show the image doesn't
function well. It shows the image when the flag is 0 and sometimes
doesn't show the image when the flag is 1.
2. Upon scrolling or sorting of the datagrid the results of
the column randomly get messed up losing the images for the ones it
had before scrolling or sorting and sometimes placing the image in
another row it does not belong to.
Can anyone please guide me if they have worked on a similar
requirement and how it can be achieved. My feeling is that I am
performing the check in the wrong method. I tried doing it by
overriding the set data method but that has the scroll problem and
eventually makes all the images visible initially disappear after
scrolling or sorting.
Any help will be much appreciated.
Thank you.Override the set data property and move the code written in
init() method there:
override public function set data(value:Object):void {
super.data = value;
// Check if the flag is 0 or 1 to determine whether to show
or hide the image
if(data.@FLAG == 0) {
img.visible = false;
once it works, and there is no reason why it shouldn't, read
up more on life cycle of renderers in the docs.
ATTA -
Custom itemRenderer - Bug?
Hi, I have an example of some code that I can't figure out.
What I'm doing may not be the best way to do what I want, but I
believe is should work, and can't figure out why it doesn't. I have
a datagrid with two columns, and the second column uses a custom
itemRenderer to draw multiple circles depending on nested XML data
for that row. In the
set data function of my itemRenderer, I'm trying to get the
width of the column, and use that to calculate where to put my
circle, as a value of 1 to 10.
- The first time, the
set data is called four times where there are three rows
- The first time it's called, this.width is zero
- When resizing column widths, set data is called again - the
first time only for the 2nd and 3rd rows, but with the correct
width
- Subsequent times it's called for all three rows, but the
first row uses the LAST width, not the new width
Any ideas? Here's my code:
Project name is FlexSample, first file is FlexSample.mxml,
then other two files are MyComponents/MyItemRenderer.as and
MyComponents/PointComponent.as
FlexSample.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="
http://www.adobe.com/2006/mxml"
xmlns="*"
width="100%" height="100%"
initialize="init()" horizontalGap="0" verticalGap="0" >
<mx:Script>
<![CDATA[
import mx.events.ResizeEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
import mx.rpc.events.FaultEvent;
import mx.rpc.http.HTTPService;
import mx.events.*;
[Bindable]
public var myXML:XML=
<ROWSET>
<ROW>
<POINTS>
<POINT>
<POINT_ID>90686</POINT_ID>
<X_VALUE>2</X_VALUE>
</POINT>
<POINT>
<POINT_ID>90806</POINT_ID>
<X_VALUE>8</X_VALUE>
</POINT>
</POINTS>
<NOTE_TX>Points are 2 and 8</NOTE_TX>
</ROW>
<ROW>
<POINTS>
<POINT>
<POINT_ID>90111</POINT_ID>
<X_VALUE>4</X_VALUE>
</POINT>
<POINT>
<POINT_ID>90222</POINT_ID>
<X_VALUE>6</X_VALUE>
</POINT>
</POINTS>
<NOTE_TX>Points are 4 and 6</NOTE_TX>
</ROW>
<ROW>
<POINTS>
<POINT>
<POINT_ID>90333</POINT_ID>
<X_VALUE>1</X_VALUE>
</POINT>
<POINT>
<POINT_ID>90444</POINT_ID>
<X_VALUE>10</X_VALUE>
</POINT>
</POINTS>
<NOTE_TX>Points are 1 and 10</NOTE_TX>
</ROW>
</ROWSET>;
]]>
</mx:Script>
<mx:DataGrid width="100%" height="100%" id="dgMain"
dataProvider="{myXML.ROW}"
fontFamily="Verdana" fontSize="10" color="#000066">
<mx:columns>
<mx:DataGridColumn headerText="Note"
dataField="NOTE_TX"/>
<mx:DataGridColumn headerText="Points" dataField="POINT"
id="dgcPoints"
itemRenderer="MyComponents.MyItemRenderer"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
MyItemRenderer.as
// ActionScript file
package MyComponents {
import mx.controls.*;
import mx.core.*;
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.*;
import flash.display.*;
import mx.core.*;
import mx.controls.*;
import flash.events.*;
import mx.managers.PopUpManager;
import mx.events.*;
public class MyItemRenderer extends mx.core.Container
implements IListItemRenderer{
public function MyItemRenderer() {
super();
override public function set data(oValue:Object):void {
this.removeAllChildren();
//oValue contains whole ROW in XML format...
var n:int = 0;
if(this.width==0){
trace("set data:width 0!");
if (oValue != null && this.width>0) {
var m:int = this.getChildren().length;
var nWidth:int = this.width;
var xXML:XML = new XML(oValue);
for(var s:String in xXML.POINTS.children()){
var nXValue:int = xXML.POINTS.children()[s].X_VALUE;
//Total width is from 0-9, padding of 5 on left and right to
account for circle width
var n:int = (((nXValue -1)/10) * (this.width-10)) + 5;
trace("set data: Width:" + this.width + " XValue:" + nXValue
+ " X:" + n);
var u:PointComponent = new PointComponent(0x0000EE, n);
this.addChild(u);
PointComponent.as
package MyComponents
import mx.core.UIComponent;
import mx.controls.Alert;
public class PointComponent extends UIComponent
public function PointComponent(pnColor:uint, pnX:int){
super();
graphics.clear();
graphics.beginFill(pnColor);
graphics.drawCircle(pnX, 10, 7);
}A complete runnable example, that's great, I will give it a
try.
In the meantime, for "...set data is called four times where
there are three rows...", I have noticed this as well but have no
explanation. The first time, the "value" object is "null", so I
always wrap the code in if (value != null) {}
I'll post when I get a chance to look at your sample.
Tracy -
A DataGrid with a Custom ItemRenderer
Hi all,
I have a DataGrid whose DataProvider is bound to a simple Array. I have a custom ItemRenderer that includes a button that can remove the item itself (I don't want two separate columns with a remove button in one of them). However, I don't understand the behaviour - clicking the button rearranges the data in the DataGrid and sometimes duplicate the entries! See the example attached. Any idea what's happening?
Martin.
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete();" xmlns:local="*">
<mx:Script>
<![CDATA[
[Bindable]
public var _data : Array;
protected function onCreationComplete() : void {
_data = new Array();
_data.push(1, 2, 3, 4, 5);
]]>
</mx:Script>
<mx:VBox>
<mx:DataGrid dataProvider="{_data}">
<mx:columns>
<mx:DataGridColumn>
<mx:itemRenderer>
<mx:Component>
<mx:HBox implements="mx.controls.listClasses.IDropInListItemRenderer" creationComplete="dataLabel.text = String(data);">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import mx.controls.DataGrid;
import mx.controls.listClasses.BaseListData;
protected var _listData : BaseListData;
public function get listData() : BaseListData {
return _listData;
public function set listData(d : BaseListData) : void {
_listData = d;
protected function onClick(e : Event) : void {
var dp : ArrayCollection = (owner as DataGrid).dataProvider as ArrayCollection;
dp.removeItemAt(listData.rowIndex);
]]>
</mx:Script>
<mx:Label id="dataLabel" width="100%" />
<mx:Button click="onClick(event);"/>
</mx:HBox>
</mx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
</mx:Application>creationComplete is rarely used in renderers. See the itemrenderer posts on my blog
Alex Harui
Flex SDK Developer
Adobe Systems Inc.
Blog: http://blogs.adobe.com/aharui -
Mobile custom itemRenderer adivce: grouping of elements
Hello,
I am building a custom itemRenderer for a Flex Mobile app.
It will be like 3 columns, first 2 with 2 StyleableTextField stacked vertically and the 3rd with just one StyleableTextField.
I've uploaded a symbolic image of what I mean. (symbolic = fields depicted in image are imaginary - so you know if it doesn't make sense)
I have all in place and was wondering if I should:
A) Position all elements based on X and Y with setElementPosition()
B) Create 2 VGroups for the first 4 StyleableTextFields and position them.
Worried about speed.
Thank you.Yes A is faster because it has less DisplayObjects, but also Group uses the spark layout system which is a very general layout system capable of handling many use cases. When you layout elements using setElementSize()/setElementPosition() you are laying things out specific to only your renderer's use case which means less code needs to run and the renderer will be faster.
You could start with B if you find it easier to code. Just be sure to test the performance of your application. If your scenario feels good on your target devices then you probably don't need to optimize any further. If it's not fast enough then you might want to try A and see how it compares. -
TileList bulk image display / custom itemRenderer problem
I create a tilelist with a custom itemRenderer which will display image loaded with some text description, the source is from XML.
the image displayed correctly from 1 - 10 itemrenderer.
The problem happens on the itemrenderer 10+, the image is mismatch with the text description.
The worse thing is when I scroll the tilelist, the image change row by row that does not match with the text.
Why ? Any solution for thisDear Alex
Many thanks for your hint. It did solve the problem
My orginal code make a dirty flag at commitProperties() that image load only once at first time. After your hint, I remove the loading code out and the problem has been solved. Thanks
However performance wise, the image blind and reload whenever I scoll the tilelist, how can I
a/ make the scrolling process more smoothly
b/ the image still in the screen ( no blind and off ) whenever I scroll the tilelist
Thanks and hope to hear your hint again -
Making Components Invisible inside Custom ItemRenderer of DataGridColumn
Hi ,
Inside a MXML File i have :
<mx:TabBar id="viewTab" >
<mx:dataProvider>{VIEW_ARRAY}</mx:dataProvider>
</mx:TabBar>
<mx:DataGrid>
<mx:DataGridColumn id="Testing2" itemRenderer="navigation.ViewElement">
</mx:DataGrid>
The ItemRenderer Component defined above for the above DataGridColumn consists of :
ViewElement.mxml
<mx:VBox id="peopleimages" >
<mx:Label id="viewname" text="Some Text"/>
<mx:Image id="delImage" source="{getImageforPeople()}" visible="true" height="100%" width="100%"/>
</mx:VBox>
Now depending upon TabBar Click if its value is "One" then only i need to show this VBOX Component to true
Other wise if the TabBar click value is "Two" then i should make this VBox visible to false .
Please tell me .appriciate your patience sir .
This makes you more clear .
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="100%" width="100%">
<mx:TabBar>
<mx:dataProvider>
<mx:String>Alabama</mx:String>
<mx:String>Alaska</mx:String>
</mx:dataProvider>
</mx:TabBar>
<mx:DataGrid id="dataGrid" height="2741" y="142" width="336">
<mx:columns>
<mx:DataGridColumn textAlign="right" itemRenderer="comps.Dam" />
</mx:columns>
</mx:DataGrid>
</mx:Application>
============
Dam.MXMXL
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
<mx:Text text="MyData"/>
<mx:VBox id="myvbox">
<mx:Image source="images/canvas.png" />
</mx:VBox>
</mx:Canvas>
Hi this is my code above.
As you can see i am using Custom ItemRenderer inside DataGridColumn .
If the Tab Alabama is clicked on TabBar , i want to show the DataGrid ItemRenderer as it is .
But if it has been selected as Alaska , i dont want to display the VBox .
Please help me , i am strugling on this almost for hours now -
How to make custom ringtones in iOS 5.1
How to make custom ringtones in iOS 5.1.
I was on iOS 4.3 before and i used to create the AAC version and then change the file extension & that file would come up in the Rimtones in iTunes, After the iOS 5.1 i m unable to add the custom ringtones to my iPhone from iTunes.Was having this problem too. Discoverd that that there is a "tones" top menu next to "music" under your iphone settings. I'm not sure if this is new or not (I am a new iphone owner), but if you check on sync tones they will download.
-
_Is there a way to make custom keyboard mapping a default?
_Is there a way to make custom keyboard mapping a default?
What I mean is, for example, I want to disable <command> S for saving (so I don't accidentally hit it).
Thanks!
HughEdit>Keyboard Shortcuts Make the changes you want to the shortcuts and save with a new name. In the dropdown at the top choose your new set and close. Quit and restart to seal the deal.
-
Need details on how to make custom ABAP report archive enabled
Hi All,
We are working in our project to make custom reports as archive enabled so that they can read archived data.
Need some information on the below queries.
1.Is there any function module to read selected data from archive file? For example i don't want to read the whole BKPF table data from archive file instead want to get belnr and bukrs only.
2. What are the perfromance measure which can be taken while making an existing program archive enabled
3. Important archiving tables which can help for the above.
4. When i use the function module "Archive_open_for_read' then system displays a pop up to select the archive files based on the archive object.
Considering that all the reports are run in background how do i make sure that in background run all the archive files are selected and processed.
Thanks in advance for your valuable suggestions...
Regards/AjayHi Ajay,
1. You have to create a separate field catelogus and AIS according to your requirement with the required fields you want . Because the standard structures and field catelogues contains many fields from all tables. So before doing the read operation you have to deactivate the standard AIS and activate your newly created AIS .
2. Can you give some more details for this question to be answered.
3. The important archiving tables used are ARCH_IDX,ARCH_RPRG,ARCH_DEF.
4. While scheduling the Read process in batch mode , it will give you three criterias to be entered.
. Spool Parameters
(ii). Start date
(iii). Archive selection of files.
Unless you enter values for any one of these options , You cannot execute the batch job.
Hope this would help you.
Regards - Swarna.
Maybe you are looking for
-
Can members in a pool be on different subnets using CSM
Hello. We have recently been investigating load balancing devices, and were almost set on F5. We then overhauled our core network, including replacing one 4507R with 2 6500's, outfitted with Sup720's and FWSM modules. Now, we are seriously thinking a
-
USING A PASSING PARAMETERS IN A REPORT
I don't know how to use a passing parameter in Reports. I have a form in which i have a button with the following trigger WHEN-BUTTON-PRESSED : DECLARE p1_id ParamList ; BEGIN p1_id:=Create_Parameter_List('tmpdata'); Add_Parameter(p1_id,'LOCATIA',TEX
-
For all entries on custom tables
i have created 2 custom tables::zhospital_info n zpatient_info.. zhospitalinfo tab fields:::_ doc_name::prim key patient_name:::prim key place::prim key zpatientinfo tab fields::_ ZDATE ::prim key JOINING MEDICINE
-
Hey everyone I need to know if it's possible to install Excel program into my Palm V? and if it is possible that how would I go about doing that? Any information will be greatly appreciated! Thank You. Post relates to: Palm V
-
Connect LabWindows/CVI to Opto22
I would like to connect the hardware of Opto22 to the software of LabWindows/CVI. I thought of using OPC but I don't understand really how to setup an OPC server. Is there another way to connect these 2 items using a driver of maybe DDE? I quite new