Re: SelectionMove[] busted with InputField and DockedCells?
- To: mathgroup at smc.vnet.net
- Subject: [mg114334] Re: SelectionMove[] busted with InputField and DockedCells?
- From: Jason Ledbetter <jasonbrent at gmail.com>
- Date: Wed, 1 Dec 2010 02:12:41 -0500 (EST)
For posterity.... This particular issue/example seems to be resolved in M8. I'm happy to find that code I wrote over a year ago now works as I expected it to in M8. :-) -jbl On Wed, Nov 4, 2009 at 1:38 AM, Jason Ledbetter <jasonbrent at gmail.com>wrote: > Folk, > > The following example produces a docked panel with an input field, a button > and popup menu. The intended workflow is for the user to enter some > content > in the field, select the button and then choose an action from the popup > menu which should produce output in the notebook based on the input > content. > However, the output is going into the input field and I've not been able to > figure out how to move to the rest of the notebook. > > In the 'write' function, I'm trying to use SelectionMove[] to move past the > docked cell and generate the output. However, this doesn't work with > "After,Notebook" (or Cell, CellGroup, etc..). > > In this example, I've purposefully exposed nb and write outside of the > module.... > > --snip-- > > Remove[write, nb]; > Module[{x, stuff, list}, > stuff = Null; > list = {Null}; > nb = CreateDocument[]; > > dockConfig = Cell[ > BoxData[ToBoxes@DynamicModule[{}, > Panel@ > Row[{InputField[Dynamic@stuff], Button["fill list", list = > Range[10]], > Dynamic@ > PopupMenu[ > Dynamic[x, (x = #; write["written", x]) &], # -> # & /@ > list]}]]]]; > > SetOptions[nb, DockedCells -> dockConfig]; > > write[stuff_String, times_] := > Module[{}, SelectionMove[nb, After, Notebook]; > Table[NotebookWrite[nb, {Cell[stuff]}], {times}]]; > ] > > --snip-- > > > > Once the new window is open, place the cursor in the inputfield, then click > "fill list", then select any option in the pulldown and you can see the > output going into the inputfield. > > If you don't place the cursor in the input field, select "fill list" then > select any option in the pulldown, I get the expect results. > > How can I "SelectionMove" past this input field or is that the wrong > approach? > > Thanks, > > -jbl > >