GWT CellTable中的键盘导航

时间:2011-01-20 15:41:55

标签: gwt input keyboard spreadsheet

我们正在尝试使用CellTable创建可编辑的网格。使用 对于习惯的会计师来说,案例是相当高的数据量输入 10键输入电子表格。我们正在尝试复制电子表格 - 风格键盘导航尽可能接近。

  1. 有没有办法避免必须按Enter才能进入编辑模式 对于TextInputCell?我试过压倒一切 {J} TextInputCell.onBrowserEvent()在焦点时调用onEnterKeyDown() 收到了活动,但这没有用。

  2. 有没有办法使用 Tab Shift - Tab 进行导航 列而不是LEFT-ARROW和RIGHT-ARROW? CellTable似乎是 硬编码使用左右箭头并且难以延伸。

1 个答案:

答案 0 :(得分:6)

经过相当多的工作尝试后,我们确定CellTable不够可扩展,无法满足我们的需要。我们最终扩展了GWT的Grid类,从CellTable中获取设计线索,使其能够很好地满足我们的需求。

在我们的用例中,80%的页面视图将显示少于10行,并且我们永远不会有超过600行乘10列(<0.5%的情况下行超过500行)。我们使用延迟加载模式而不是完整的flyweight模式。最初填充网格时,仅显示小部件用于显示基础值对象的数据。 FocusHandler附加到每个仅显示窗口小部件。当用户点击或标记显示小部件时,FocusHander会使用可编辑的小部件交换该行的仅显示小部件。

仅限显示的小部件仅限于轻量级小部件,如TextBox和CheckBox,因此可以接受渲染时间。 100行x 5列在不到2秒的时间内渲染。 SuggestBoxes,DateBoxes和其他复合材料仅限于用作可编辑的小部件。

优点

  1. 灵活使用任何一种 标准小部件
  2. 可扩展性 - 我们不受限制 做出的实施选择 CellTable
  3. 易于开发 - 原型 不到3天的发展
  4. 表现得非常适合我们的 需要
  5. 标签按照您的预期开箱即用
  6. 缺点

    • 不像CellTable那样可扩展。这个 实现不会呈现 成千上万行
    • 我们必须自己维护它 Class Model