Thanks, Have one runtime exception. ReferenceError: Error #1069: Property http://www.adobe.com/2006/flex/mx/internal::gridDimensions not found on spark.components.Grid and there is no default value.
in the code const dimensions:GridDimensions = grid.mx_internal::gridDimensions; On Sat, Jun 7, 2014 at 8:34 PM, Frédéric THOMAS <webdoubl...@hotmail.com> wrote: > or even better: > > private function separatorMouseDragHandler(event:GridEvent):void { > const headerGroup:GridColumnHeaderGroup = event.currentTarget > as GridColumnHeaderGroup; > if (headerGroup.dataGrid.columnsLength > 1 && > event.columnIndex < event.grid.columns.length -1) { > dragging = true; > } > } > > private static const BOUND_LIMIT:int = 5; > > private function separatorMouseUpHandler(event:GridEvent):void { > if (dragging) { > dragging = false; > const columnIndex:int = event.columnIndex; > const headerGroup:GridColumnHeaderGroup = > event.currentTarget as GridColumnHeaderGroup; > const grid:Grid = event.grid; > const visibleColumnIndices:Vector.<int> = > grid.getVisibleColumnIndices(); > const isVisible:Boolean = > visibleColumnIndices.indexOf(columnIndex) > -1; > if (visibleColumnIndices.length >= columnIndex + 1 && > isVisible) { > const dimensions:GridDimensions = > grid.mx_internal::gridDimensions; > const visibleColumnsWidthBeforeOur:Number = > dimensions.getContentWidth(columnIndex); > const visibleColumnsWidthUpToOur:Number = > dimensions.getContentWidth(columnIndex + 1); > if (visibleColumnsWidthUpToOur + BOUND_LIMIT > > grid.width) { > const newWidth:Number = grid.width - > visibleColumnsWidthBeforeOur - BOUND_LIMIT; > event.column.width = newWidth; > } > } > } > } > > Note: I used const instead of var because I was doing java today but > there's no differences in AS3, they are compiled in the same bytecode. > > Frédéric THOMAS > > > From: webdoubl...@hotmail.com > > To: dev@flex.apache.org > > Subject: RE: Spark datagrid Issue. > > Date: Sat, 7 Jun 2014 15:02:19 +0100 > > > > Hi Saju, > > > > I guess this topic would fit better in the user mailing list, hower, not > sure I understood your question, anyway I assumed you meant drag (instead > of scroll) the header because in a Spark DataGrid, the header is not > drag-able, so, to restrict the size of the header to make at least one > other column header to stay visible, I would do something like this: > > > > <?xml version="1.0" encoding="utf-8"?> > > <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" > > xmlns:s="library://ns.adobe.com/flex/spark" > > xmlns:mx="library://ns.adobe.com/flex/mx" > > initialize="initData()"> > > <fx:Script> > > <![CDATA[ > > import mx.collections.*; > > import mx.events.FlexEvent; > > > > import spark.components.Grid; > > > > import spark.components.GridColumnHeaderGroup; > > import spark.components.gridClasses.GridDimensions; > > > > import spark.events.GridEvent; > > > > import mx.core.mx_internal; > > > > private var dgArray:Array = [ > > {Artist: 'Pavement', Album: 'Slanted and Enchanted', Price: > 11.99}, > > {Artist: 'Pavement', Album: 'Brighten the Corners', Price: > 11.99} > > ]; > > [Bindable] > > public var initDG:ArrayCollection; > > private var dragging:Boolean; > > // Initialize initDG variable from the Array. > > public function initData():void { > > initDG = new ArrayCollection(dgArray); > > } > > > > private function > myGrid_creationCompleteHandler(event:FlexEvent):void { > > var dg:DataGrid = event.currentTarget as DataGrid; > > dg.removeEventListener(FlexEvent.CREATION_COMPLETE, > myGrid_creationCompleteHandler); > > > > > dg.columnHeaderGroup.addEventListener(GridEvent.SEPARATOR_MOUSE_DRAG, > separatorMouseDragHandler); > > > dg.columnHeaderGroup.addEventListener(GridEvent.SEPARATOR_MOUSE_UP, > separatorMouseUpHandler); > > } > > > > private function separatorMouseDragHandler(event:GridEvent):void > { > > const headerGroup:GridColumnHeaderGroup = > event.currentTarget as GridColumnHeaderGroup; > > if (headerGroup.dataGrid.columnsLength > 1) { > > dragging = true; > > } > > } > > > > private static const BOUND_SPACE:int = 5; > > > > private function separatorMouseUpHandler(event:GridEvent):void { > > if (dragging) { > > dragging = false; > > const columnIndex:int = event.columnIndex; > > const headerGroup:GridColumnHeaderGroup = > event.currentTarget as GridColumnHeaderGroup; > > const grid:Grid = event.grid; > > const visibleColumnIndices:Vector.<int> = > grid.getVisibleColumnIndices(); > > const isVisible:Boolean = > visibleColumnIndices.indexOf(columnIndex) > -1; > > if (visibleColumnIndices.length >= columnIndex + 1 && > isVisible) { > > const visibleColumnsWidthBeforeOur:Number = > grid.mx_internal::gridDimensions.getContentWidth(columnIndex); > > const visibleColumnsWidthUpToOur:Number = > grid.mx_internal::gridDimensions.getContentWidth(columnIndex + 1); > > if (visibleColumnsWidthUpToOur + BOUND_SPACE > > grid.width) { > > const newWidth:Number = > visibleColumnsWidthUpToOur - visibleColumnsWidthBeforeOur - BOUND_SPACE; > > event.column.width = newWidth; > > } > > } > > } > > } > > ]]> > > </fx:Script> > > <s:DataGrid id="myGrid" > > width="350" height="200" > > dataProvider="{initDG}" > > horizontalScrollPolicy="off" > > > creationComplete="myGrid_creationCompleteHandler(event)"/> > > </s:WindowedApplication> > > > > HTH, > > Frédéric THOMAS > > > > > Date: Sat, 7 Jun 2014 16:23:16 +0530 > > > Subject: Fwd: Spark datagrid Issue. > > > From: sathikeshj...@gmail.com > > > To: dev@flex.apache.org > > > > > > Any help in this regard.. > > > > > > -- > > > Saju Thankathurai > > > > > > Sent from my Samsung Galaxy Ace. > > > ---------- Forwarded message ---------- > > > From: "Saju Thankathurai" <sathikeshj...@gmail.com> > > > Date: 7 Jun 2014 08:06 > > > Subject: Spark datagrid Issue. > > > To: "us...@flex.apache.org" <us...@flex.apache.org> > > > > > > Hi, > > > > > > I have a spark flex datagrid. I have set its horizontalscrollpolicy to > off. > > > When i scroll the header towards right completely, the header is moved > and > > > is not visible. This makes an impression that there are no more > columns in > > > the grid. > > > > > > Is there a way to restrict the columns to a certain limit towards right > > > when scrolling > > > > > > Grid has 3 columns > > > [1]. > > > > https://drive.google.com/file/d/0ByEkeIgKzyCaOXlVaDJ0ckhHLWM/edit?usp=sharing > > > > > > > > > After scrolling the 2nd column towards right, It makes an impression > that > > > there is only one column available. > > > [2] > > > > https://drive.google.com/file/d/0ByEkeIgKzyCaUkR4WV91cDE1Y0E/edit?usp=sharing > > > > > > Code: > > > > > > <?xml version="1.0" encoding="utf-8"?> > > > <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" > > > xmlns:s="library://ns.adobe.com/flex/spark" > > > xmlns:mx="library://ns.adobe.com/flex/mx" > > > initialize="initData()"> > > > <fx:Script> > > > <![CDATA[ > > > import mx.collections.*; > > > private var dgArray:Array = [ > > > {Artist:'Pavement', Album:'Slanted and Enchanted', Price:11.99}, > > > {Artist:'Pavement', Album:'Brighten the Corners', Price:11.99}]; > > > [Bindable] > > > public var initDG:ArrayCollection; > > > // Initialize initDG variable from the Array. > > > public function initData():void { > > > initDG = new ArrayCollection(dgArray); > > > } > > > ]]> > > > </fx:Script> > > > <s:DataGrid id="myGrid" > > > width="350" height="200" > > > dataProvider="{initDG}" > > > horizontalScrollPolicy="off"/> > > > </s:WindowedApplication> > > > > > > > > > > > > -- > > > > > > Regards > > > Saju Thankathurai, > > > > -- Regards Saju Thankathurai,