我的窗體上有一些依賴關係層次結構,所以我在偵察服務器端實施了層次結構檢查。如果一個字段被更改,它會觸發檢查是否需要更改其他字段。這是通過導出/導入表單數據完成的。Eclipse Scout Neon導入數據後內部行集中
MyFormData input = new MyFormData();
FormDataUtility.exportFormData(this, input);
input = BEANS.get(IMYService.class).validate(input, field);
FormDataUtility.importFormFieldData(this, input, false, null, null);
驗證功能更改所有其他需要更改的字段。
我的問題是編輯可編輯表格中的單元格。
如果我改變單元格中的值,並且這個鏈驗證被觸發,導入表單數據後,我失去了單元格中的焦點。相反,tab會將我移動到另一個單元格,tab觸發器導入和單元格中的焦點丟失。這是一個非常糟糕的用戶體驗。
如何解決這一問題? 如何在導入後保持焦點(下一個單元格)?
馬爾科
由於您最近的評論,這對我來說並不好。 execCompleteEdit始終在觸發單元格時觸發。在這種情況下,我無法在表單中選擇另一個字段,因爲焦點將返回到下一個單元格。是否有可能記住當前的焦點。如果我理解super.execCompleteEdit(row,editingField);應該將焦點移至下一個單元格或另一個字段,因此導入後,此字段應該重新聚焦。 –
您可以將當前聚焦的單元格保存到成員變量中。例如,您可以在表上註冊監聽器(org.eclipse.scout.rt.client.ui.basic.table.TableListener),監聽TableEvent.TYPE_REQUEST_FOCUS_IN_CELL事件並保存當前的焦點單元格。 – mlu
這可能是好的,但我不知道如何設置TableEvent.TYPE_REQUEST_FOCUS_IN_CELL的偵聽器。現在在fireTableEventInternal中TYPE_ROWS_SELECTED被觸發。 –