问题标签 [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 投票
1 回答
152 浏览

java - 图像未显示在导出的 Excel 工作表中

我正在使用 NatTable (Eclipse Nebula) 导出 Excel 工作表。它包含标题层中的图像以及标题和正文中的一些文本。以下是配置代码:

此外,我使用ExcelExporter将数据导出到 Excel 工作簿。

我不知道错误可能出在哪里,因为所有其他列中的文本都显示得很好。如果您需要查看任何其他代码片段,我将对其进行更新。

0 投票
1 回答
259 浏览

java - 删除 NatTable 中的列

是否可以从NatTable中删除列(不仅仅是隐藏)?

NatTable示例中有DynamicColumnExample,但我似乎无法弄清楚删除列是如何工作的。如果有人可以解释我需要经历的步骤以及它的外观,将不胜感激。

谢谢!

0 投票
1 回答
1412 浏览

java - How to set custom style to some columns in a nattable?

I need to set a custom style not for all, but some columns in a nattable. I can't set the configuration like this:

because this sets the configuration to the whole table. I have to override the configuration only to specific columns. In my case the columns should have the horizontal align set like this:

How can I achieve this? Thanks!

0 投票
1 回答
913 浏览

java - 如何使用 Nebula NatTable 的 PreserveSelectionModel?

我正在开发一个 RCP 应用程序,并为此使用 Nebula 的 NatTable。说到选择,我不明白我应该如何使用它。

我想要的是:

  • 我想选择整行。我可以使用RowOnlySelectionConfiguration和来做到这一点RowOnlySelectionBindings
  • 如果我选择一行,我希望选择保留在那里,并且当该行中的某些数据更新时不会被清除。我怎么做?
  • 如果选择了一行,并且该行中元素的位置发生了变化(例如,删除了先前的元素之一,并且位置更改为 index - 1),我希望选择与元素一起更改位置,以便更改后选择相同的元素。我怎么做?

我已经看到文档讨论了一个PreserveSelectionModel可以用于的:

如果您使用PreserveSelectionStructuralChangeEventHandler以前版本中的解决方法不清除对结构更改的选择,您会注意到此解决方法将不再有效。如果您仍然需要该行为,您现在可以通过配置和设置这样的SelectionModel实例来实现相同的目的:

如果您希望选择应该随着结构变化(例如排序)而更新和移动,请尝试使用PreserveSelectionModel.

https://www.eclipse.org/nattable/nandn/nandn_120.php

所以我想我必须使用PreserveSelectionModel? 但那里我不能打电话setClearSelectionOnChange(false)。默认情况下会这样做吗?

我该如何使用PreserveSelectionModel?我在构造函数中传递了什么?

我在一个名为 的类中实现了我自己的 BodyLayerStack,TableBodyLayerStack我在构造函数中尝试了这个:

然后,在我的实现的构造器中GridLayer,我这样做:

但这给了我 NullPointerExceptions 在PreserveSelectionModel.

我猜这是因为我在我的构造函数中传递了空值PreserveSelectionModel。但是我该如何使用它呢?我必须传递什么作为构造函数的参数?我从哪里获得价值?

任何帮助表示赞赏。

0 投票
1 回答
504 浏览

java - Nebula Nattable - 动态更改列

我在 eclipse 中使用 Nattable ViewPart。我的 RCP 应用程序是这样的,每次打开视图时,表都可以根据我希望显示的数据模型(由不同的 POJO 表示)具有不同的列。简而言之,我可以执行以下操作吗?:`

`

0 投票
1 回答
950 浏览

eclipse - Nebula Nattable 过滤的详细信息

看起来在 Nebula Nattable 中实现过滤功能很困难。即使给出的例子也很难理解。有人会指出实现过滤器功能时使用的各种类的解释吗?

0 投票
1 回答
333 浏览

java - 删除 NatTable 中的多个列

我使用NatTable来显示表格数据,表格可以排序和过滤。由于表很大,我也使用了 GlazedList。我需要能够在排序和过滤后删除列。正如我所尝试的,我只能删除表格的内容,但标题仍然存在。列标题嵌套在许多层中,我不知道我会影响或触发它的刷新。

我的代码主要来自稍作修改的示例:

设置图层:

以及删除列的命令处理程序

如前所述,这会删除列内容但保留标题。谁能告诉我如何删除列标题?

0 投票
1 回答
606 浏览

nattable - 当鼠标左键单击可编辑单元格时,阻止 NatTable 进入编辑模式

当鼠标左键单击可编辑单元格时,NatTable 的默认行为是立即启动单元格的编辑器。

用户有时只需单击左键将焦点扔到表格中,然后使用箭头键在表格内部导航。鉴于表格的默认行为,他们首先需要通过 ENTER、ESCAPE 等关闭编辑操作,然后才能移动单元格选择。

我想更改此行为,以便鼠标左键单击选择被单击的单元格,但不会发起编辑。

0 投票
1 回答
445 浏览

java - NatTable IColumnAccessor.setDataValue 被调用两次

语境

我已经实现了一个 NatTable (v1.1.0.201405012245) - 请考虑这个简化的例子:

当然,这不是真正的代码,但我的问题也可以用这段代码来演示。

重要的是,在我的实际项目中,当用户修改一个值时,我需要更新一个模型(包括复杂的依赖树),如果失败(例如在数值计算中,更改会导致除以零) ,我需要显示一个错误(并恢复到以前的值)。

为了显示我的核心问题,在此处显示的代码中,我检查了一个简单的条件IColumnAccessor#setDataValue(输入包含“x”)并相应地显示错误。

问题

我的实际问题是,如果您在 TextCellEditor 中输入一个 x,则会弹出两次错误对话框(按顺序 - 这意味着只要我为第一个单击“确定”,就会显示第二个)。

分析

我的分析表明,原因是 setDataValue 被调用了两次:

  1. 因为按下了 ENTER 键 - Stacktrace

    • TextCellEditor(AbstractCellEditor).commit(SelectionLayer$MoveDirectionEnum, boolean) line: 331
    • TextCellEditor(AbstractCellEditor).commit(SelectionLayer$MoveDirectionEnum) line: 326
    • TextCellEditor$1.keyPressed(KeyEvent) line: 246
  2. 因为 TextCellEditor 失去焦点 - Stacktrace

    • TextCellEditor(AbstractCellEditor).commit(SelectionLayer$MoveDirectionEnum, boolean, boolean) line: 341
    • TextCellEditor(AbstractCellEditor).commit(SelectionLayer$MoveDirectionEnum, boolean) line: 331
    • AbstractCellEditor$InlineFocusListener.focusLost(FocusEvent) line: 462

所以,我的主要问题是:我怎样才能防止(或至少检测)第二个事件?

0 投票
2 回答
1114 浏览

swt - 从 Nattable 中删除行

我想在 Nebula Nattable 中实现行删除逻辑。这是我打算做的:

  1. 将上下文菜单添加到http://blog.vogella.com/2015/02/03/nattable-context-menus-with-eclipse-menus/中描述的 Nattable
  2. 向菜单添加一个 SWT 操作,该操作将实现删除

我的问题是,这是实现这一目标的最佳方法:

  • 我应该从我的数据模型中删除相应的值并在执行时刷新表视图this.natview.refresh();吗? 或者
  • 我应该从中获取行SelectionLayer并删除它们(如果是这样,我该怎么做?)? 或者
  • 是否有此功能的默认支持IConfiguration