Looks like we cannot reproduce this. Please provide another test case to reproduce this issue.
  1. #1
    Sencha Premium Member
    Join Date
    Mar 2013
    Location
    Japan
    Posts
    8
    Vote Rating
    2
    kdewa is on a distinguished road

      1  

    Default GridInlineEditing fires blur event immediately after cliking

    GridInlineEditing fires blur event immediately after cliking


    Required Information

    Version(s) of Ext GWT
    3.0.5

    Browser versions and OS (and desktop environment, if applicable)
    • Google Chrome 27.0.1453.116, Mac OS X 10.8.4
    • Firefox 21.0, Mac OS X 10.8.4
    • Google Chrome 27.0.1453.116, WindowsXP
    (This problem does not occur on IE8.)

    Virtual Machine
    No

    Description
    When clicking to edit a column text, cancelled edit mode immediately.

    Run mode
    both
    Code:
    package com.example.client;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.google.gwt.core.client.GWT;
    import com.google.gwt.editor.client.Editor.Path;
    import com.google.gwt.user.client.ui.RootPanel;
    import com.sencha.gxt.core.client.ValueProvider;
    import com.sencha.gxt.data.shared.ListStore;
    import com.sencha.gxt.data.shared.ModelKeyProvider;
    import com.sencha.gxt.data.shared.PropertyAccess;
    import com.sencha.gxt.widget.core.client.form.TextField;
    import com.sencha.gxt.widget.core.client.grid.ColumnConfig;
    import com.sencha.gxt.widget.core.client.grid.ColumnModel;
    import com.sencha.gxt.widget.core.client.grid.Grid;
    import com.sencha.gxt.widget.core.client.grid.editing.GridInlineEditing;
    
    public class Gxt305GridEditing implements EntryPoint {
    
        private static final MyDataPropertyAccess PROPS = GWT
                .create(MyDataPropertyAccess.class);
    
        public void onModuleLoad() {
            ListStore<MyData> store = new ListStore<Gxt305GridEditing.MyData>(
                    PROPS.key());
            store.add(new MyData("1", "name1"));
            store.add(new MyData("2", ""));
            
    
            ColumnConfig<MyData, String> colId = new ColumnConfig<Gxt305GridEditing.MyData, String>(
                    PROPS.id());
            ColumnConfig<MyData, String> colName = new ColumnConfig<MyData, String>(
                    PROPS.name());
    
            List<ColumnConfig<MyData, ?>> list = new ArrayList<ColumnConfig<MyData, ?>>();
            list.add(colId);
            list.add(colName);
            ColumnModel<MyData> cm = new ColumnModel<Gxt305GridEditing.MyData>(list);
    
            Grid<MyData> grid = new Grid<MyData>(store, cm);
            
            GridInlineEditing<MyData> editing = new GridInlineEditing<MyData>(grid);
            
            editing.addEditor(colName, new TextField());
            
            RootPanel.get().add(grid);
        }
    
        public static class MyData {
            private String id;
            private String name;
    
            public MyData(String id, String name) {
                super();
                this.id = id;
                this.name = name;
            }
    
            public String getId() {
                return id;
            }
    
            public void setId(String id) {
                this.id = id;
            }
    
            public String getName() {
                return name;
            }
    
            public void setName(String name) {
                this.name = name;
            }
        }
    
        public interface MyDataPropertyAccess extends PropertyAccess<MyData> {
            @Path("id")
            ModelKeyProvider<MyData> key();
    
            ValueProvider<MyData, String> id();
    
            ValueProvider<MyData, String> name();
        }
    }

  2. #2
    Sencha - GXT Dev Team
    Join Date
    Feb 2009
    Location
    Minnesota
    Posts
    2,731
    Vote Rating
    90
    Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light

      0  

    Default


    The textfield (the name column) in this 3.0.5 sample seems to work correctly in Chrome/Mac, your first tested browser: http://qa.sencha.com:8080/examples-3...needitablegrid

    Your entrypoint seems to work correctly for me in that browser/os as well - I can click on the cell and have it be editable, type characters, and click out to blur and see the new characters. My steps to reproduce:
    * Load the page
    * Click on the cell with the text "name1"
    * Confirm that the textbox is visible and editable
    * Enter new text in the field
    * Click outside of the text field (but inside the webapp) to blur out, or hit the tab key
    * Confirm that the text in the now edited cell has changed, and that there is a edited marker next to it.

    However, your example does have at least one setup issue that could cause problems in other browsers (again, only tested the first one on your list), or in other situations - you are never setting the size of the grid. The Grid widget must be sized to correctly allocate space for its header and scrolling body - either invoke setPixelSize on it, or add it to a parent that will size it - in this case, you might wrap it in a Viewport and add *that* to the rootpanel.

    Can you confirm that these steps are working, and perhaps clarify what else you might be doing to reproduce this issue? Or, if the bug is still present under those steps, try the link at the top and confirm that this also has the bug.

  3. #3
    Sencha Premium Member
    Join Date
    Mar 2013
    Location
    Japan
    Posts
    8
    Vote Rating
    2
    kdewa is on a distinguished road

      1  

    Default


    Thank you for your reply.

    On my environment, This problem is
    * not reproduced on gxt3.0.4 or earlier.
    * not always reproduced in Firefox. (With stepwise execution in Eclipse, often successfully...?)
    * always reproduced in Chrome.
    * not reproduced with following patch, in both browsers.

    Code:
    diff --git a/gxt3/src/main/java/com/sencha/gxt/widget/core/client/grid/GridSelectionModel.java b/gxt3/src/main/java/com/sencha/gxt/widget/core/client/grid/GridSelectionModel.java
    index 2ef280e..da3dab2 100644
    --- a/gxt3/src/main/java/com/sencha/gxt/widget/core/client/grid/GridSelectionModel.java
    +++ b/gxt3/src/main/java/com/sencha/gxt/widget/core/client/grid/GridSelectionModel.java
    @@ -251,7 +251,7 @@ public class GridSelectionModel<M> extends AbstractStoreSelectionModel<M> {
         boolean isShift = event.getEvent().getShiftKey();
         
         if (selectionMode == SelectionMode.MULTI) {
    -      grid.getView().focusCell(rowIndex, colIndex, false);
    +//      grid.getView().focusCell(rowIndex, colIndex, false);
           if (isSelected && isControl) {
             doDeselect(Collections.singletonList(sel), false);
           } else if (isControl) {
    @@ -260,7 +260,7 @@ public class GridSelectionModel<M> extends AbstractStoreSelectionModel<M> {
             doSelect(Collections.singletonList(sel), false, false);
           } else if (isSelected(sel)) { 
             // Focus for key events
    -        grid.getView().focusCell(rowIndex, colIndex, false);
    +//        grid.getView().focusCell(rowIndex, colIndex, false);
           }
         } else if (isSelected(sel)) {
             // Focus for key events
    It seems that GridView#focus() raises blur event.

    Quote Originally Posted by Colin Alworth View Post
    * Load the page
    * Click on the cell with the text "name1"
    * Confirm that the textbox is visible and editable
    Yes, but edit mode is cancelled immediately after above steps.

    Quote Originally Posted by Colin Alworth View Post
    This grid runs successfully on my environment, too.
    However, I think that it has a different SelectionModel.

  4. #4
    Sencha User
    Join Date
    Feb 2011
    Posts
    1
    Vote Rating
    0
    mitchness is on a distinguished road

      0  

    Default Me too

    Me too


    We are seeing the same. Just as described.
    • 3.0.5 not 3.0.4
    • Firefox or Chrome, not IE.
    • Will not always see the bug when running stepwise execution in Eclipse.
    • GridInlineEditing.cancelEditing() is invoked via GridView.execute(). (It also gets called from startEditing() but that is just fine.)
    • We have many grids, but we only see this behavior on this particular grid.
    The only other thing to add is the stack trace.

    MyGridInlineEditing(GridInlineEditing<M>).cancelEditing() line:81
    GridInlineEditing$1$2.onBlur(BlurEvent) line: 354
    BlurEvent.dispatch(BlurEvent$BlurHandler) line: 74
    BlurEvent.dispatch(EventHandler) line: 1
    BlurEvent(GwtEvent<H>).dispatch(Object) line: 1
    EventBus.dispatchEvent(Event<H>, H) line: 40
    HandlerManager$Bus(SimpleEventBus).doFire(Event<H>, Object) line: 193
    HandlerManager$Bus(SimpleEventBus).fireEvent(Event<?>) line: 88
    HandlerManager.fireEvent(GwtEvent<?>) line: 127
    TextInputCell(AbstractEventInputCell<T,V>).fireEvent(Context, GwtEvent<?>) line: 89
    TextInputCell(FieldCell<T>).onBlur(Context, XElement, T, NativeEvent, ValueUpdater<T>) line: 411
    TextInputCell(ValueBaseInputCell<T>).onBlur(Context, XElement, T, NativeEvent, ValueUpdater<T>) line: 357
    TextInputCell(FieldCell<T>).onBrowserEvent(Context, Element, T, NativeEvent, ValueUpdater<T>) line: 299
    TextInputCell.onBrowserEvent(Context, Element, String, NativeEvent, ValueUpdater<String>) line: 87
    TextInputCell.onBrowserEvent(Cell$Context, Element, Object, NativeEvent, ValueUpdater) line: 1
    TextField(CellComponent<C>).onBrowserEvent(Event) line: 221
    TextField(Field<T>).onBrowserEvent(Event) line: 328
    DOM.dispatchEventImpl(Event, Element, EventListener) line: 1351
    DOM.dispatchEvent(Event, Element, EventListener) line: 1307
    NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
    NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
    Method.invoke(Object, Object...) line: 597
    MethodAdaptor.invoke(Object, Object...) line: 103
    MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
    OophmSessionHandler.invoke(BrowserChannelServer, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 172
    BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer$SessionHandlerServer) line: 338
    BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 219
    ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 136
    ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 571
    ModuleSpaceOOPHM(ModuleSpace).invokeNativeVoid(String, Object, Class<?>[], Object[]) line: 299
    JavaScriptHost.invokeNativeVoid(String, Object, Class<?>[], Object[]) line: 107
    CellBasedWidgetImplStandard.dispatchEvent(Event, Element, EventListener) line: not available
    CellBasedWidgetImplStandard.handleNonBubblingEvent(Event) line: 74
    NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
    NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
    Method.invoke(Object, Object...) line: 597
    MethodAdaptor.invoke(Object, Object...) line: 103
    MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
    OophmSessionHandler.invoke(BrowserChannelServer, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 172
    BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer$SessionHandlerServer) line: 338
    BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 219
    ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 136
    ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 571
    ModuleSpaceOOPHM(ModuleSpace).invokeNativeObject(String, Object, Class<?>[], Object[]) line: 279
    JavaScriptHost.invokeNativeObject(String, Object, Class<?>[], Object[]) line: 91
    Impl.apply(Object, Object, Object) line: not available
    Impl.entry0(Object, Object, Object) line: 242
    GeneratedMethodAccessor38.invoke(Object, Object[]) line: not available
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
    Method.invoke(Object, Object...) line: 597
    MethodAdaptor.invoke(Object, Object...) line: 103
    MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
    OophmSessionHandler.invoke(BrowserChannelServer, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 172
    BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer$SessionHandlerServer) line: 338
    BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 219
    ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 136
    ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 571
    ModuleSpaceOOPHM(ModuleSpace).invokeNativeVoid(String, Object, Class<?>[], Object[]) line: 299
    JavaScriptHost.invokeNativeVoid(String, Object, Class<?>[], Object[]) line: 107
    Element$.focus$(Element) line: not available
    FocusImplStandard(FocusImpl).focus(Element) line: 75
    GridView$3.execute() line: 532
    SchedulerImpl$Task$.executeScheduled$(SchedulerImpl$Task) line: 50
    SchedulerImpl.runScheduledTasks(JsArray<Task>, JsArray<Task>) line: 180
    SchedulerImpl.flushPostEventPumpCommands() line: 347
    SchedulerImpl$Flusher.execute() line: 78
    SchedulerImpl.execute(Scheduler$RepeatingCommand) line: 138
    NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
    NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
    Method.invoke(Object, Object...) line: 597
    MethodAdaptor.invoke(Object, Object...) line: 103
    MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
    OophmSessionHandler.invoke(BrowserChannelServer, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 172
    BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer$SessionHandlerServer) line: 338
    BrowserChannelServer.invokeJavascript(CompilingClassLoader, JsValueOOPHM, String, JsValueOOPHM[], JsValueOOPHM) line: 219
    ModuleSpaceOOPHM.doInvoke(String, Object, Class<?>[], Object[]) line: 136
    ModuleSpaceOOPHM(ModuleSpace).invokeNative(String, Object, Class<?>[], Object[]) line: 571
    ModuleSpaceOOPHM(ModuleSpace).invokeNativeObject(String, Object, Class<?>[], Object[]) line: 279
    JavaScriptHost.invokeNativeObject(String, Object, Class<?>[], Object[]) line: 91
    Impl.apply(Object, Object, Object) line: not available
    Impl.entry0(Object, Object, Object) line: 242
    GeneratedMethodAccessor38.invoke(Object, Object[]) line: not available
    DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
    Method.invoke(Object, Object...) line: 597
    MethodAdaptor.invoke(Object, Object...) line: 103
    MethodDispatch.invoke(JsValue, JsValue[], JsValue) line: 71
    OophmSessionHandler.invoke(BrowserChannelServer, BrowserChannel$Value, int, BrowserChannel$Value[]) line: 172
    BrowserChannelServer.reactToMessages(BrowserChannelServer$SessionHandlerServer) line: 293
    BrowserChannelServer.processConnection() line: 547
    BrowserChannelServer.run() line: 364
    Thread.run() line: 680

  5. #5
    Sencha - GXT Dev Team
    Join Date
    Feb 2009
    Location
    Minnesota
    Posts
    2,731
    Vote Rating
    90
    Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light

      0  

    Default


    As mentioned in my post, your entrypoint does *not* cause the issue for me. If we can't reproduce it, we can't test it, so we can't make sure that we've actually fixed it now, and avoided reintroducing it later. Without a way to get this bug, we cannot proceed to a fix.

    That said, some changes have been made in SVN that modify the inline editing behavior to make them work with more selection models. This may make your use case work better, but without a way to verify this, I'm mostly shooting blind. We cannot accept changes to GXT code without a unit case or test sample that does not work without the fix, and then works correctly with the fix - and even with such a test case, we need to verify that the bug is valid, and that there isn't a better way to solve the problem.

  6. #6
    Sencha Premium Member
    Join Date
    Mar 2013
    Location
    Japan
    Posts
    8
    Vote Rating
    2
    kdewa is on a distinguished road

      0  

    Default


    Reproducing Steps:
    1. Click "name1" column, then start editing mode.
    2. Click out of grid, then cancel editing mode and keep row selected.
    3. Click "name1" column again.

    I think that this problem is similar to following:
    http://www.sencha.com/forum/showthread.php?271017

  7. #7
    Sencha Premium Member
    Join Date
    Jul 2008
    Posts
    17
    Vote Rating
    0
    winter is on a distinguished road

      0  

    Default


    Have the same problem. Tested with nightly build 3.0.7 of 15 september

    If you set CellSelectionModel on the grid everything works ok.
    If you don't set any selectionmodel the problem occurs.

  8. #8
    Ext GWT Premium Member
    Join Date
    Jun 2010
    Location
    Kyrksæterøra, Norway
    Posts
    66
    Vote Rating
    2
    stigrv is on a distinguished road

      0  

    Default


    I'm seeing the exact same thing using the code sample in the first post. The problem occurs if you click in the cells in this order:
    • Top left cell with text "1"
    • Top right cell with text "name1"
    I've seen this problem in the application I'm working on, and this problem always happen if you click cells positioned horizontally of each-other. The first one you can edit, but the second one quickly shows its editor, then immediately blurs it, and returns to view mode. If you click in a cell in an another row, you are able to edit it.

    As mentioned earlier, this seems to be related to the selection mode you're using. CellSelectionModel seems to work as expected, while other selection models does not.

  9. #9
    Ext GWT Premium Member
    Join Date
    Jun 2010
    Location
    Kyrksæterøra, Norway
    Posts
    66
    Vote Rating
    2
    stigrv is on a distinguished road

      0  

    Default


    Probably because of the same problem, tab do not jump between cells. Edit mode gets cancelled upon tab press.

  10. #10
    Sencha - GXT Dev Team
    Join Date
    Feb 2009
    Location
    Minnesota
    Posts
    2,731
    Vote Rating
    90
    Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light Colin Alworth is a glorious beacon of light

      0  

    Default


    Has anyone verified this issue with a recent GXT 3.0 or 3.1 build? A number of fixes have gone in recently around focus and editing in the grid, and this may have been addressed in a related bug.

Turkiyenin en sevilen filmlerinin yer aldigi xnxx internet sitemiz olan ve porn sex tarzi bir site olan mobil porno izle sitemiz gercekten dillere destan bir durumda herkesin sevdigi bir site olarak tarihe gececege benziyor. Sitenin en belirgin ozelliklerinden birisi de Turkiyede gercekten kaliteli ve muntazam, duzenli porno izle siteleri olmamasidir. Bu yuzden iste. Ayrica en net goruntu kalitesine sahip adresinde yayinlanmaktadir. Mesela diğer sitelerimizden bahsedecek olursak, en iyi hd porno video arşivine sahip bir siteyiz. "The Best anal porn videos and slut anus, big asses movies set..." hd porno faketaxi