Flex :: ItemRenderer For TreeColumn On AdvancedDataGrid?
Apr 14, 2010
Is it possible to use a renderer for for a treecolumn in an advanceddatagrid and still keep the hierarchal functionality? If I use a renderer provider I lose the the arrow for the tree dropdown. I want to keep the tree functionality and change the display of the column.(and not just the folder image)
I am using an AdvancedDataGrid with some hierarchical data. In the first column, I want to indicate whether or not the "name" field is editable by graying out the text for the "name" property of my objects. It's very odd, but when I set the AdvancedDataGridColumn's dataField property to "name", and have it in the first column, it seems to completely ignore my inline ItemRenderer. If I change the dataField property to something else, or change the column ordering so the Name column isn't first, everything suddenly works.
Let me know if any more code would help, but here is the simple ItemRenderer I'm trying to use in the first column:
When not editing the cell, it shows a centered date as plain text. When editing, it shows a DateField editor. The second example is exactly the same as far as I can tell, other than the fact that it is an AdvancedDataGridColumn. Using that code with an AdvancedDataGrid, when I go into edit mode I can see the text from the normal item renderer behind the DateField editor (between the text input and calendar icon).
In my AdvancedDataGrid, I am adding dynamic values to cells by dragging a cell value to other cells. While copying, I am setting the value to listData and setting the Red color to the value in ItemRenderer. Everything is working fine, but when I scroll down/up, the values remains in the cells where thay are supposed to be(as I am setting to listData) but the coloring behaves wierd(as I am trying to set the color in ItemRenderer).
I don't want to store the color of the value, but I should be able to see the dynamically created values in Red color. Is there a way, I can do this? Do I need to set the color to actual dataprovider object and then check in ItemRenderer?
I have an AdvancedDataGrid with variable row height set to true.I have written a cutsom item renderer based on the DataGroup spark component. Each row in the grid has multiple entities to display, the x position and width of the entites are based on the data of the entity itself.I have a custom layout written for the DataGroup that measures and posistions each entity based on its data. Each entity in each row can either truncate or not truncate its label. When the labels are not truncated, I calculate the actual width of the object and validate its size manualy (to force the label to have the correct width and layout all its text lines and remeasure itself) within the DataGroup's Layout's measure method to accurately measure the datagroup itself.The layouts, measuring, sizing, display, etc all work correctly. The entitys report the correct height they need when not truncating the labels, the datagroup reports the correct size it needs to draw all of its row's worth of entities (all from measure methods like they need to under the UIComponent lifecycle).When inside the AdvancedDataGrid itself, rows are not sized correctly. The majority of the rows do not require multiple lines and display just fine. Those that require multiple lines have larger row heights, but not large enough to accomodate the entire text in most cases. The DataGroup for that row (and its itemRenderers) are clipped. Furthermore, When scrolling the grid, every row scrolled onscreen is the default 1 text line height, irregardless of data.In any case, resizing the AdvancedDataGrid (not resizing its columns, but the grid itself) forces all rows to snap to the correct desired height.Scrolling again produces incorreclty sized rows.
Additionally, the layout of each entity in the row is determined by several external factors - most commonly being visible range (along the horizontal). Changing this visible range will trigger all item renderers to resize themselves (through the custom layout class) to their new sizes and remeasuring the new DataGroup layout. This actually triggers a custom hierarchy parser which rebuilds all the ArrayCollections used inside the AdvandedDataGrid data provider, so ArrayCollections are dispatching change events that each row's DataGroup reacts to, so the DataGroup itself is invalidating its size and layout.These resizes do not trigger the AdvancedDataGrid to remeasure its row heights, and I must rezise the ADG itself again to snap the rows to the correct height.Anyone have any experience with dynamically sized rows in an AdvancedDataGrid or ItemRenderers which must forcibly make the AdvandedDataGrid re-layout its rows?
Unfortunately, I cannot provide source code as there are a huge number of classes going into this, hierarchial data, rolling up closed nodes into multiple rows, custom hierarchy parsers, a multitude of item renderers - that and its a Government contract.I have run into a similar issue with a much simpler item renderer, basically a label that will respect a max height, resize itself upto that height as its wordwrapping data will require, and then create scrollbars for itself. Again, the data sizes almost correclty when the grid is created, then changing the column width within the grid does not resize the row height as the item renderer adjusts to its new width. Only in resizing the grid itself do the item renderers resize correctly, create scroll bars, and the grids row heights are correct.The source for that item renderer:[code]Very wide column, no scroll bars, the labels measured height is shown in the row height.Smaller width column, some renderers have hit max height and are creating scroll bars, the last renderer is still using the measured height of the label.Smaller still column, all max heights are hit and scrollers are present for all labels, scrollers will select the row when used but allow scrolling so all text is viewable.
I have implemented drag and drop between 2 AdvancedDataGrid, but the default behaviour from Flex displays the row data during the drag using the grid item renderer showing all 5 columns.
Instead, I would like to display an icon / image or my own custom item renderer during the drag and drop.
I have a problem with my AdvancedDataGrid which has inside it colums of radiobuttons.The problem is when I click on a cell in the Grid, the Radiobuttons selection become instable, some of the radio buttons of other colums become selected.The behavior I want is that when the selects the RadioButtons(the circle or its label), it become selected and not all the Cell in which the radioButton is.Here my code:
for (var idxStudio : int = 0; idxStudio < p_studios.length; idxStudio++) { innerColumn = new AdvancedDataGridColumn();[code]....
I'm using Flex 4 and I need to render the data that resembles HTML Table with row span in a Flex component.My inclination was to use a DataGrid but I believe that rowSpan is not supported for that component. I looked at the AdvancedDataGrid but the user does not want to have a tree-structure in any of the columns. Looking to see if there are any hints/tips for modifying the DataGrid or AdvancedDataGrid to produce an "HTML Table with rowspan" look.
Is there any way to detect if AdvancedDataGrid itemClick event is actually caused by the user dragging? I'd like to take action on click, but ignore drag.
I have an AdvancedDatagrid, whose dataProvider is an ArrayCollection that contains 1 row of displayable stuff.Flex continues to display about 6 rows, the top one filled, the rest blank.I've set the rowCount="1", with no luck.
after multiple Selection in a advanced datagrid, I want to check if the clicked row, was already selected. Anyway my idea below (in the nested if clause I want to check if the newly clicked item's processing data is already in the added Array Collection) is not working, but I assume there must be a better way to differiante if an click was made on a already selected row.
model.processingData = out; if (model.selectedIndices.length > 1){ //check if item already added
I would like to add new row on the fly (runtime) to my AdvancedDataGrid.I can add it to the data model, but couldn't find a way to make the table render and show the new row.What i am seeking for is to create an effect of expandable item, where clicking on row will show "additional information" (like a drawer) and clicking on row expand button will reveal it's children.I saw examples of this for dataGrid (http:url...), but not for AdavancedDataGrid.Only way I found to do this is to add a new child and use openItem, but this cause the other children to be visible as well.
I've got a subclass of AdvancedDataGrid showing a tree-like data structure. How can I, given the index returned by calculateDropIndex, get the item at that index? After reading through reams of code, it seems like the least terrible way is:
var oldSelectedIndex:int = this.selectedIndex; var mouseOverIndex:int = this.calculateDropIndex(event); this.selectedItem = mouseOverIndex; var item:* = this.selectedItem; this.selectedIndex = oldSelectedIndex;
The other option seems to be tinkering around with the iterator property... But, judging by the way I've seen it used, that will get pretty harry pretty quickly too. So, how can I get the item at a particular index in an advanced datagrid without going insane?
I've a problem, I'm using an AdvancedDataGrid. It loads about 3000 records with about 20 columns. I constantly get Flex execution timeout because the grid executes a lot inside LayoutManager. How can I make it asyncronousely or faster at all?
how to query an ADG (or its rows) to figure out how many rows are currently visible (i.e. not collapsed) when displaying different levels of a hierarchical collection?In other words I'd like a function that tells me that 7 lines are visible in this view and 1 line is available in this one.
I'm making an application where I display an AdvanvedDataGrid with one column with dates(in format DD/MM/YYYY) and another with datetimes (in format HH:MM). I'd like to sort dates according with the datetimes as well(just clicking in the header of the column), there is an examplen of the expected behaviour:
I am using in-built sort functionality provided by AdvancedDatagrid.I have multiple columns and suppose I have 10 rows. All 10 rows have the same data in one column.If I sort on that column, then it sorts and the data in other columns which is different is also being sorted (reshuffled).My requirement is if I am sorting on a column with same data, it should not sort the data in other columns.To understand it better, check the link menioned below URL...In the above link mentioned, if you click on region column, other columns like territory or actual will change the values i.e. the rows gets reshuffled.This should not happen as we are sorting on a column which has same values. Does anybody know how this can be handled in Flex 3 for AdvancedDataGrid.
i have a problem using the itemRenderer functionality. When using an ArrayCollection the visible Data in the DataGrid using the itemRenderer will be rendered just fine. But if i start scrolling the entries are repeating in the cells using the renderer. The cells are not filled with date according to the id. What mistake i'm doing here.
I read a lot of the explainations like:
[URL]
here is the code for the set data function (itemRenderer is extending HBox):
override public function set data(value:Object):void { _data = value; if(data!=null)
I'd like to implement a custom drag on an AdvancedDataGrid tree structure, which only allows the drag on the branches (not leaves).I'm having much difficultly with this, trying to use the MouseDown event, but not having luck! I think I've got the mousedown able to figure out if the item is a branch of leaf. Any help on how to perform the custom drag with an advanceddatagrid?? [code]
How do I determine which Flex AdvancedDataGrid cell - row and column index - I've just dropped onto? calculateDropIndex seems to give me the row, but how do I get the column?
I have an AdvancedDataGrid that I allow the user to drag/drog the rows to reorder them and also allow them to sort on columns. I want to save the row ordering so that the next time I load up the data, the row ordering is preserved.
I have a bindable array collection to the data grid. The array is a collection of a custom AS object. I tried just using the bindabled array collection I give to the datagrid but the order always stays the same.
I have a advancedDatagrid with column headers having input text boxes for filtering.The column is filtered according to input text when I use characters as data inside that column.But when I use numbers in the column field,filtering does not happen.Can anyone tell me what went wrong.
I want to extend AdvancedDataGrid to show a Waterfall Chart in one of its columns.
To do that I already created custom cell render that shows bars as I need.
Now I have a little challenge: I have to pre-process data to show my Waterfall Chart properly. I have to do it before my grid is show. So, I assume that I have to extends AdvancedDataGrid and overwrite some methods.