问题标签 [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.

0 投票
2 回答
308 浏览

java - NatTable 的 JUnit 测试

我想对 NatTable 内容进行简单的 UI 测试(即,不使用 SWTBot 或其他 UI 测试框架)。

我的方法是创建一个外壳,添加我的自定义NatTable,然后访问单元格并检查其内容(数据值、配置标签等):

要测试我的其他组件,只需创建外壳和父组合就足够了;我的测试不需要打包和设置可见。然而,使用 NatTable,如果单元格不可见,则getCellByPosition()返回null- 所以我添加了代码来打包并将 shell 设置为可见。这适用于小表(有 2 行和几列)。

可悲的是,它不适用于大桌子。我怀疑这是因为视口层不会创建不在可见区域中的单元格(我知道,这就是 NatTable 的优势——它只根据需要创建所需的结构)。当然,这是正常运行时行为所需要的。

但是有没有(另一种)方法可以保证以保证的方式获取单元格(换句话说,我可以让 NatTable/ViewportLayer 相信单元格是可见的,所以null只要单元格在内容方面存在,我就不会得到? )

当然,我可以直接测试我的标签累加器、数据提供者等,但我想在这里更多地从黑盒的角度来解决这个问题。

0 投票
1 回答
280 浏览

java - NatTable 单元格中的图标

我正在用 NatTable 替换 JFace TableViewer。在我使用 TableViewer 的实现中,我在单元格中有图像,并且我的实现ILabelProvider知道如何在运行时获取对象的具体状态的图像。所以我ILabelProvider.getImage(element)ColumnLabelProvider.

在 NatTable 中,我知道通过针对 configLabel 注册 configAttribute 来添加图像的方法。对于 configAttribute 我应该明确地告诉使用什么图像。当然,我可以为每个状态创建标签,为每个标签注册图像并使用 ConfigLabelAccumulator 将它们捆绑在一起。但是图像的数量非常庞大,而且我不想重复这个逻辑。那么对于这种情况有更合适的方法吗?只是委托给现有的ILabelProvider

0 投票
2 回答
1009 浏览

java - 使用 NatTable 实现树

我尝试从 JFace TreeViewer 切换到 NatTable。不幸的是,我没有找到很多关于使用 NatTable 实现树的文档。所以我有一些问题

  1. 我曾经使用 TreeViewersetInput()提供新的输入。我怎样才能用 NatTable 达到同样的效果?这是调用底层数据源的正确clear()方法addAll()List?(我使用 GlazedLists)

  2. 我在查询数据库后使用描述clear()/addAll()方式传递新数据。并且在树的展开状态丢失后,所有节点都折叠起来。使用 JFace TreeViewer,我使用 getExpandedElements()/setExpandedElements()来保持展开状态。NatTable 中有类似的东西吗?

  3. 是否可以仅在单击父节点时加载子树节点?我无法预先构建所有树数据,因为我可以在其中包含循环(严格来说,我的数据并不是真正的树,但像树一样显示它很方便)

UPD:不知道我应该在这里问还是创建单独的问题

  1. 我有排序问题。我在这里找到了类似的讨论https://www.eclipse.org/forums/index.php?t=msg&th=489524但我仍然没有深入的了解。

我的问题:在对“树”列之外的任何列进行排序后,子节点可以移动到无效的父节点。尽管元素的顺序在所有层次结构上都是正确的。我使用SortableTreeComparatortreeComparator使用我的自定义比较器(不像GlazedLists.beanPropertyComparator示例中那样)。这里有什么问题?

0 投票
2 回答
418 浏览

swt - 用 NatTable 实现的树排序

我正在尝试实现用 NatTable 实现的树排序,但我无法真正理解它是如何工作的。我的问题是,在对“树”列之外的任何列进行排序后,子节点可以移动到无效的父节点。尽管元素的顺序在所有层次结构上都是正确的。所以基本上我不明白它的目的TreeList.Format.getComparator()以及它与为列注册的比较器的关系,我不明白节点何时以及为什么可以更改其父级。

我从示例 TreeGridExample开始,并且设法创建了遇到相同问题的测试数据

如果我对 column 进行排序bar,则bb1节点从bto跳转,n并且在删除排序时,它又是b

0 投票
1 回答
170 浏览

java - 从 NatCombo 中删除项目

我正在开发一个 Eclipse 插件,NatCombo其中NatTable. 我需要动态更改组合框过滤器下拉菜单。我可以使用方法将项目设置为我的组合框natCombo.setItems()(我可以在其中添加过滤的过滤器列表)。

但是,我找不到删除项目的方法,或者在添加新项目之前清空组合框中的先前项目。我只能无限期地将项目添加到我的组合框下拉菜单中。

有什么方法可以删除物品吗?我可以实施一个吗?如果是这样,我该怎么办?

0 投票
1 回答
587 浏览

java - nattable 多行选择

我正在使用 NatTable,我想在我的表中选择一些行。另外我想在此之后选择其他一些行(CTRL +鼠标左键单击)。

第一个选择没有问题,但是当我尝试选择一些额外的行时,我的第一个选择丢失了。仅当我在拖动模式中进行第二次选择时才会发生这种情况。当我通过单击选择每一行时,一切正常。

我将 RowSelectionModel 与 DefaultRowSelectionLayerConfiguration 一起使用:

也许我只是犯了一个愚蠢的错误,你们可以帮助我。

0 投票
1 回答
435 浏览

nattable - 编辑 Nat 表中的单元格

我有一个 Nat 表,其中包含一些数据。我想在所选单元格之后添加一个新行。我能够做到。现在我必须选择新添加的单元格(0,new rowPosition) 并对其进行编辑。使用 selectCellCommand 我能够选择单元格,但问题在于编辑单元格。当我尝试使用 api getCellByPoition 从 Nat 表中获取单元格时,我得到空值。现在,当我有一个滚动条并且顶部隐藏了几行时会发生这种情况。选择层工作正常并选择新添加行的第一个单元格,但 Nat 表没有给我相同行位置的单元格。我该怎么做让单元格编辑它?我正在为指定的行位置触发 EditCellCommand,并使用 getActiveCellEditor 方法从 nat 表中获取单元格编辑器。

0 投票
1 回答
355 浏览

java - NatTable:表格对过滤没有反应

我尝试用 glazedlists 实现一个简单的过滤器行。过滤器行出现,我可以将过滤器字符串放入文本字​​段。在那之前一切正常,但按下回车键,什么也没有发生。没有过滤。

大多数情况下,我遵循以下示例:[1] https://github.com/eclipse/nebula.widgets.nattable/blob/master/org.eclipse.nebula.widgets.nattable.examples/src/org/eclipse/nebula/小部件/nattable/examples/_600_GlazedLists/_603_Filter/_6031_GlazedListsFilterExample.java

我还阅读了以下文章:[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],但尽管它不起作用。

0 投票
1 回答
310 浏览

nattable - 自动 - 动态调整 NatTable 的大小

我想根据行数动态调整 NatTable 的大小。换句话说,我有一个高度为“x”的 10 行的 nattable。如果行数少于 10,则 nattable 的高度应该减小,这样就看不到空白空间。如果行数超过 10,则应该出现垂直滚动条。

0 投票
1 回答
140 浏览

nattable - 使用 NatTable 的 ShowRowInViewportCommand

我正在尝试使用 NatTableExamples-1.4.0 并尝试ShowRowInViewportCommand使用_900_test\viewportSelection\ViewportSelectionHideShowDataLayerExample.

我把method和methodnattable得到的对象存储如下:createExampleControloverloaded onStart()

在这里SelectRowsCommand工作。我看到第 36 行由于索引位置转换而被选中,.

但是我没有看到ShowRowInViewportCommand在 UI 中的效果。我期待应该自动看到第 36 行。

ShowRowInViewportCommandHandler到位。在调试过程中,我验证了控件到达了 ShowRowInViewportCommandHandler.doCommand 方法。

我应该怎么做才能看到自动滚动?