Brilliant! Thanks again, Alex, for your speedy reply and excellent insight!
Best, Mike --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > After you call addPopUp, set the popups .owner property to something in > the datagrid. Ideally, it would be the renderer that represents the > item being edited, but it's probably ok if it something else. > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of mcaplan_labnet > Sent: Friday, December 07, 2007 11:37 AM > To: [email protected] > Subject: [flexcoders] Re: Use a Popup as itemEditor in Datagrids > > > > Hi Alex, > > Thanks for the speedy reply. Sorry for being a newbie nob, but by > popup owner, do you mean the parent of the popup, as set in the > addPopUp() method? > > If so, I'm not using an item renderer, so I'm not sure how that would > work out. > > I'm sure this should be obvious. I'll try reading through the docs > again. > > Thanks! > > Mike > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > , "Alex Harui" <aharui@> wrote: > > > > Set the popup's .owner to one of the renderers > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> > ] On > > Behalf Of mcaplan_labnet > > Sent: Friday, December 07, 2007 11:11 AM > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Re: Use a Popup as itemEditor in Datagrids > > > > > > > > Sorry for dragging up an old thread, but I'm struggling with the same > > issue and haven't found a solution. > > > > I have created an item editor component for my datagrid. The > > component creates and passes the datagrid row data over to the popup. > > Code snippets below. > > > > However, clicking anything on the popup results in focus being removed > > from the datagrid cell. This fires the itemEditEnd event for the > > datagrid. After closing the popup, focus is returned to the datagrid > > cell, resulting in the column itemEditor regaining focus, and the > > popup returning -- a loop. > > > > I've tried changing focusEnabled to false for all elements in the > > popup (including the popup container), as suggested elsewhere in the > > list. However, this has no effect. > > > > Any ideas? I read that that other on this list have solved this issue. > > > > Thanks! > > > > Mike > > > > <mx:DataGrid editable="true" itemEditBegin="trace('begin')" > > itemEditEnd="trace('end');" itemEditBeginning="trace('begining')"> > > <mx:dataProvider> > > <mx:ArrayCollection> > > <mx:source> > > <mx:Object macro_id="D2456" teeth="11" /> > > </mx:source> > > </mx:ArrayCollection> > > </mx:dataProvider> > > <mx:columns> > > <mx:DataGridColumn dataField="macro_id" headerText="Code" > > width="75" editable="true" /> > > <mx:DataGridColumn dataField="teeth" headerText="Teeth" > > width="50" editable="true" itemEditor="modules.Case.TeethEditor" > > editorDataField="teeth" /> > > </mx:columns> > > </mx:DataGrid> > > > > <?xml version="1.0" encoding="utf-8"?> > > <!-- modules.Case.TeethEditor --> > > <mx:TextInput xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> > > <http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> > " > > creationComplete="_init()" text="{teeth}" editable="false"> > > <mx:Script> > > <![CDATA[ > > import mx.managers.PopUpManager; > > import modules.Case.TeethSelector; > > > > [Bindable] > > public var teeth:String; > > private var _popup:TeethSelector; > > > > private function _init():void > > { > > teeth = data.teeth; > > > > popTeethSelector(); > > } > > > > private function popTeethSelector():void > > { > > _popup = new TeethSelector(); > > _popup.teeth = teeth; > > _popup.addEventListener("updated", _updateTeeth); > > _popup.focusEnabled = false; > > > > PopUpManager.addPopUp(_popup, this); > > PopUpManager.centerPopUp(_popup); > > } > > > > private function _updateTeeth(e:Event):void > > { > > teeth = _popup.teeth; > > } > > > > ]]> > > </mx:Script> > > </mx:TextInput> > > > > <?xml version="1.0" encoding="utf-8"?> > > <!-- TeethSelector --> > > <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml > <http://www.adobe.com/2006/mxml> > > <http://www.adobe.com/2006/mxml <http://www.adobe.com/2006/mxml> > " > width="230" > > height="430" title="Tooth Selector" layout="absolute" > > creationComplete="_init()" showCloseButton="true" > > close="PopUpManager.removePopUp(this)" focusEnabled="false"> > > <mx:Metadata> > > [Event("updated")] > > </mx:Metadata> > > <mx:Script> > > <![CDATA[ > > import mx.managers.PopUpManager; > > import mx.utils.StringUtil; > > public var teeth:String; > > > > private function _init():void > > { > > // ... > > } > > > > private function _done():void > > { > > // ... > > > > PopUpManager.removePopUp(this); > > > > this.dispatchEvent( new Event("updated") ); > > } > > ]]> > > </mx:Script> > > <mx:Canvas id="selector" width="200" height="325" x="4" y="4" > > focusEnabled="false"> > > <!-- ... ---> > > <mx:CheckBox x="33" y="137" id="_28" focusEnabled="false"/> > > <mx:Button x="144" y="303" label="Done" click="_done()" > > focusEnabled="false"/> > > </mx:Canvas> > > </mx:TitleWindow> > > > > --- In [email protected] > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com> > > , "fritzdimmel" <fritz.dimmel@> wrote: > > > > > > Hi! > > > I was thinking similar to you, but I didn't get it out, how to > > > implement this. > > > How can I react on the itemEditBeginning event within the component. > > > E.g. I've a Canvas as itemEditor. I could open the window on > > > initialize. But: how can I then put some values to the popup? Within > > > the canvas I just have the "data" object, which only gives me the > > > values of the current row in the datagrid. for the popup this may be > > > enough (more or less) but when the popup is closed, how can I > dispatch > > > the itemEditEnd or something like that for the grid, without having > > > further information? > > > > > > Can anyone please show me some lines of code, how to implement this? > > > > > > Thanks, > > > Fritz > > > > > > --- In [email protected] > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> , "Michael Labriola" <labriola@> > > > wrote: > > > > > > > > > > > > My first thought: > > > > > > > > I would probably write a simple component that serves as an > > > > itemRenderer. From within that component I would be to launch a > > > > modal popup window from the itemEditBeginning event. Ensure that > you > > > > > > pass the row and the dataGridColumn (much like a labelFunction) to > > > > > the new popup. Have it do whatever it is that needs to be done. > > > > > > > > Then listen for the popup to close and manually handle the update > to > > > > > > the collection through the renderer by listening to itemEditEnd. > > > > > > > > This is just a high level thought. There are some other details, > but > > > > > > the concept would probably work with a bit of tweaking. > > > > > > > > --mike > > > > > > > > --- In [email protected] > <mailto:flexcoders%40yahoogroups.com> > > <mailto:flexcoders%40yahoogroups.com> , "fritzdimmel" <fritz.dimmel@> > > > > wrote: > > > > > > > > > > Hi! > > > > > I'm searching for a solution, to use e.g. a popup-window as > > > > itemEditor > > > > > in a flex datagrid. Using a Textinput, NumericStepper, > > > > Checkbox, ... > > > > > is quite easy, but I want to have a little "bigger" (in size) > > > > > component. Now I have the problem that, when I use a custom > Panel > > > > > component as itemEditor, that it will be trapped within the > > > > datagrid's > > > > > dimensions. > > > > > > > > > > Is there another way (which I haven't found by now) to use a > popup > > > > > > as > > > > > datagrid item editor? > > > > > > > > > > Thanks! > > > > > Fritz > > > > > > > > > > > > > > >

