问题标签 [nattable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - NatTable 的 JUnit 测试
我想对 NatTable 内容进行简单的 UI 测试(即,不使用 SWTBot 或其他 UI 测试框架)。
我的方法是创建一个外壳,添加我的自定义NatTable
,然后访问单元格并检查其内容(数据值、配置标签等):
要测试我的其他组件,只需创建外壳和父组合就足够了;我的测试不需要打包和设置可见。然而,使用 NatTable,如果单元格不可见,则getCellByPosition()
返回null
- 所以我添加了代码来打包并将 shell 设置为可见。这适用于小表(有 2 行和几列)。
可悲的是,它不适用于大桌子。我怀疑这是因为视口层不会创建不在可见区域中的单元格(我知道,这就是 NatTable 的优势——它只根据需要创建所需的结构)。当然,这是正常运行时行为所需要的。
但是有没有(另一种)方法可以保证以保证的方式获取单元格(换句话说,我可以让 NatTable/ViewportLayer 相信单元格是可见的,所以null
只要单元格在内容方面存在,我就不会得到? )
当然,我可以直接测试我的标签累加器、数据提供者等,但我想在这里更多地从黑盒的角度来解决这个问题。
java - NatTable 单元格中的图标
我正在用 NatTable 替换 JFace TableViewer。在我使用 TableViewer 的实现中,我在单元格中有图像,并且我的实现ILabelProvider
知道如何在运行时获取对象的具体状态的图像。所以我ILabelProvider.getImage(element)
从ColumnLabelProvider
.
在 NatTable 中,我知道通过针对 configLabel 注册 configAttribute 来添加图像的方法。对于 configAttribute 我应该明确地告诉使用什么图像。当然,我可以为每个状态创建标签,为每个标签注册图像并使用 ConfigLabelAccumulator 将它们捆绑在一起。但是图像的数量非常庞大,而且我不想重复这个逻辑。那么对于这种情况有更合适的方法吗?只是委托给现有的ILabelProvider
?
java - 使用 NatTable 实现树
我尝试从 JFace TreeViewer 切换到 NatTable。不幸的是,我没有找到很多关于使用 NatTable 实现树的文档。所以我有一些问题
我曾经使用 TreeViewer
setInput()
提供新的输入。我怎样才能用 NatTable 达到同样的效果?这是调用底层数据源的正确clear()
方法addAll()
吗List
?(我使用 GlazedLists)我在查询数据库后使用描述
clear()
/addAll()
方式传递新数据。并且在树的展开状态丢失后,所有节点都折叠起来。使用 JFace TreeViewer,我使用getExpandedElements()
/setExpandedElements()
来保持展开状态。NatTable 中有类似的东西吗?是否可以仅在单击父节点时加载子树节点?我无法预先构建所有树数据,因为我可以在其中包含循环(严格来说,我的数据并不是真正的树,但像树一样显示它很方便)
UPD:不知道我应该在这里问还是创建单独的问题
- 我有排序问题。我在这里找到了类似的讨论https://www.eclipse.org/forums/index.php?t=msg&th=489524但我仍然没有深入的了解。
我的问题:在对“树”列之外的任何列进行排序后,子节点可以移动到无效的父节点。尽管元素的顺序在所有层次结构上都是正确的。我使用SortableTreeComparator
和treeComparator
使用我的自定义比较器(不像GlazedLists.beanPropertyComparator
示例中那样)。这里有什么问题?
swt - 用 NatTable 实现的树排序
我正在尝试实现用 NatTable 实现的树排序,但我无法真正理解它是如何工作的。我的问题是,在对“树”列之外的任何列进行排序后,子节点可以移动到无效的父节点。尽管元素的顺序在所有层次结构上都是正确的。所以基本上我不明白它的目的TreeList.Format.getComparator()
以及它与为列注册的比较器的关系,我不明白节点何时以及为什么可以更改其父级。
我从示例 TreeGridExample开始,并且设法创建了遇到相同问题的测试数据
如果我对 column 进行排序bar
,则bb1
节点从b
to跳转,n
并且在删除排序时,它又是b
java - 从 NatCombo 中删除项目
我正在开发一个 Eclipse 插件,NatCombo
其中NatTable
. 我需要动态更改组合框过滤器下拉菜单。我可以使用方法将项目设置为我的组合框natCombo.setItems()
(我可以在其中添加过滤的过滤器列表)。
但是,我找不到删除项目的方法,或者在添加新项目之前清空组合框中的先前项目。我只能无限期地将项目添加到我的组合框下拉菜单中。
有什么方法可以删除物品吗?我可以实施一个吗?如果是这样,我该怎么办?
java - nattable 多行选择
我正在使用 NatTable,我想在我的表中选择一些行。另外我想在此之后选择其他一些行(CTRL +鼠标左键单击)。
第一个选择没有问题,但是当我尝试选择一些额外的行时,我的第一个选择丢失了。仅当我在拖动模式中进行第二次选择时才会发生这种情况。当我通过单击选择每一行时,一切正常。
我将 RowSelectionModel 与 DefaultRowSelectionLayerConfiguration 一起使用:
也许我只是犯了一个愚蠢的错误,你们可以帮助我。
nattable - 编辑 Nat 表中的单元格
我有一个 Nat 表,其中包含一些数据。我想在所选单元格之后添加一个新行。我能够做到。现在我必须选择新添加的单元格(0,new rowPosition) 并对其进行编辑。使用 selectCellCommand 我能够选择单元格,但问题在于编辑单元格。当我尝试使用 api getCellByPoition 从 Nat 表中获取单元格时,我得到空值。现在,当我有一个滚动条并且顶部隐藏了几行时会发生这种情况。选择层工作正常并选择新添加行的第一个单元格,但 Nat 表没有给我相同行位置的单元格。我该怎么做让单元格编辑它?我正在为指定的行位置触发 EditCellCommand,并使用 getActiveCellEditor 方法从 nat 表中获取单元格编辑器。
java - NatTable:表格对过滤没有反应
我尝试用 glazedlists 实现一个简单的过滤器行。过滤器行出现,我可以将过滤器字符串放入文本字段。在那之前一切正常,但按下回车键,什么也没有发生。没有过滤。
我还阅读了以下文章:[2] http://www.eclipse.org/nattable/resources/NatTable_Advanced.pdf
现在到我的实现:
如 [1] 中所述,我在将数据列表传递给 DataProvider 之前将其打包到 filterList 中。之后,我使用 GlazedListsEventLayer 构建了我的 bodyLayerStack。
使用的类“LogListDataProvider”只是 ListDataProvider 的扩展,我只添加了一个 setter 方法“setList(List list)”,因为我在使用其内容创建表后刷新了表。
}
对于 FilterRowHeader,我还按照示例 [1] 构建了一个 FilterRowHeaderComposite。
对我来说,我似乎正确地遵循了 [1] 和 [2],但尽管它不起作用。
nattable - 自动 - 动态调整 NatTable 的大小
我想根据行数动态调整 NatTable 的大小。换句话说,我有一个高度为“x”的 10 行的 nattable。如果行数少于 10,则 nattable 的高度应该减小,这样就看不到空白空间。如果行数超过 10,则应该出现垂直滚动条。
nattable - 使用 NatTable 的 ShowRowInViewportCommand
我正在尝试使用 NatTableExamples-1.4.0 并尝试ShowRowInViewportCommand
使用_900_test\viewportSelection\ViewportSelectionHideShowDataLayerExample
.
我把method和methodnattable
得到的对象存储如下:createExampleControl
overloaded onStart()
在这里SelectRowsCommand
工作。我看到第 36 行由于索引位置转换而被选中,.
但是我没有看到ShowRowInViewportCommand
在 UI 中的效果。我期待应该自动看到第 36 行。
ShowRowInViewportCommandHandler
到位。在调试过程中,我验证了控件到达了 ShowRowInViewportCommandHandler.doCommand 方法。
我应该怎么做才能看到自动滚动?