我只是以NatTable为例来理解我的需求。我们在我的NatTable中有一个多列标题,我需要它来对标题列的组进行排序。 请参考图片 ? 如何对多列标题的行进行排序。假设如果列表头的某一行包含数值,那么也应该正确排序 例如: Address Person
1 | 10 | 2 1| 12 | 13
Then it should sort in this way..
Address Person
1 | 2 | 10 1| 12 | 13
我现在让列/行冻结工作到可以右键单击列/行标题,然后单击“冻结”,它将冻结我单击的列和左边的所有列。问题是,如果我向右滚动,然后单击如列索引20 (实际上是任何隐藏了左侧索引的索引),它将冻结该索引以下的所有列,这将导致表恢复到索引0,而不允许我滚动(因为冻结的列比显示的列多)。如何只冻结我单击的列左边的可见列?我偶然发现了IFreezeCoordinatesProvider,并试图用它做一些厚颜无耻的事情,但没有结果。下面是我创建右键菜单的自定义配置,其中包含冻结命令。任何帮助都是非常感谢的!
public class ColumnHeaderRightClickConfiguration
我的列标题有一个VerticalTextPainter。
我希望将列标题高度设置为所有列高度的最大值。
如果我设置了setCalculateByTextHeight(true)和setCalculateByTextLength(true),它将在滚动到当前显示的最大值时调整列的大小。相反,我希望它调整到所有列的最大大小,并允许用户在之后更改宽度/高度。
是否有可能获得所有列标题的最大高度?
更新我尝试删除使用文本高度/长度计算和添加InitializeAutoResizeColumnsCommand。这使得列标题高度非常小,并且只显示“.”。
this是NatTable。
for (int i
我有列标题的VerticalTextPainter和行标题的TextPainter。
有些列/行有新行,因此我想调整列宽和行高以适应内容。当第一次显示列/行时,这种情况应该只发生一次,这样用户就可以在之后更改宽度/高度。
当滚动速度相当快时,有时不会调整列/行的大小。
nattable.addOverlayPainter(new IOverlayPainter() {
@Override
public void paintOverlay(final GC gc, final ILayer layer) {
for (int i = 0; i < nat
我编辑了一个星云示例(_301_CustomDataProviderExample),以测试按tab键上的单元格编辑功能(在按选项卡键上启用下一个单元格编辑)。使用GridLayer时出现了问题:单元格编辑器显示不正确。我认为这是因为行和列标题,但我不知道如何调试或修复。你能帮我还是给我点提示?这是我编辑或添加的代码:
@Override
public Control createExampleControl(Composite parent) {
String[][] testData = new String[3][3];
for (int i = 0; i <
背景:
我已经介绍了将排序和过滤以及列分组功能集成到一个表中的NatTable示例。它没有像预期的那样起作用。如果我尝试单独添加排序和过滤功能,它的工作原理就像一种魅力,但两者与列分组的集成是行不通的。基于的建议,我尝试将所需的配置添加到可移植的配置中,但仍然无法工作。
代码片段:
/**
* Sorting Layer
*/
GridLayer gridLayer = new GridLayer(viewportLayer,columnGroupHeaderLayer, rowHeaderLayer, cornerLayer);
/**
* Since I am
我正在学习如何在Nebula NatTable中启用细胞编辑。我编辑了_301_CustomDataProviderExample::createExampleControl以显示以下特性:
@Override
public Control createExampleControl(Composite parent) {
//...
final NatTable natTable = new NatTable(parent, SWT.NO_BACKGROUND
| SWT.NO_REDRAW_RESIZE | SWT.DOUBLE_BUFFERE
我希望将NatTable的列动态展开为
显示单元格中的整个值。
完全填充父组合
看来我能做到其中一项,但两者都不能。换句话说,如果我有一个大的父组合,而NatTable只有几个极短值的列,那么我将有大量的空白(也就是NatTable与父组合宽度相比有一个小的宽度)。
我尝试了以下代码片段:
// This sets the full width of the Composite, but all columns are equal
// width. If a column has a long value, the value will be truncated.
glaz
当某些行(S)被复制到剪贴板中时,我希望每次也复制行标题。我已经找到了一个处理程序类,用于将SelectionLayer中选定的数据复制到剪贴板。默认情况下,此处理程序将在SelectionLayer中注册,而不引用标头区域。您可以通过将此处理程序的实例注册到SelectionLayer之上的一个层来覆盖复制数据行为。这样,注册的自定义实例将使用一个CopyDataToClipboardCommand,并且注册的默认处理程序将不会被调用。
但我不太明白。我在跑步:
public class CopyDataAction implements IKeyAction {
public void r
我使用下面的代码来创建一个natable并通过配置注册编辑函数。为什么此表的单元格不可编辑?
public class NattableFactory {
public static Control createExampleControl(Composite parent) {
ColumnGroupModel columnGroupModel = new ColumnGroupModel();
ColumnHeaderLayer columnHeaderLayer;
parent.setLayout(new GridLayout());
// pro
如何在Eclipse中访问Sirius Model Explorer的元素?实际上,我在另一个视图中有一个NatTable,这个NatTable在它的单元格中有模型的对象。我想要实现的是,每当我单击nattable的单元格时,我都可以获得与其关联的对象。但是,如何将其传递到模型资源管理器,以便NatTable中的选择与NatTable同步?我考虑的是从NatTable获取选定的对象,并以编程方式将其解析到模型资源管理器。有可能吗? 这里有一些包资源管理器的东西,但是如何让它在模型资源管理器中工作? 代码示例: final IWorkbenchPart activePart = getActi
以下SSCCE:
创建了一个1x1 NatTable,标签为“NatTable”,标签为“NatTable”应用于单个包含的单元格添加了一个ButtonCellPainter,该ButtonCellPainter工作(单元格看起来像一个按钮)尝试添加一个无法工作的单击侦听器(否则我会在stderr中看到“您在这里”)
我感到困惑的地方是START OF CONFUSION & END OF CONFUSION注释行之间--其余的部分都是用来设置示例的。我试着按照提供的Rendering_cells_as_a_link_and_button示例进行学习,但是很明显,这里有一些东西让我搞砸
我正在使用eclipse ViewPart内部的Nattable。我的RCP应用程序是这样的,每次打开视图时,表都可以基于数据模型(由不同的POJO表示)有不同的列(我希望display.In短),我可以这样做吗?
IWorkBenchPage page = .....;
MyView view = page.openView(MyViewID,"myview",VIEW_ACTIVATE);
IDataProvider dp = ....;
// the following statement will set the dataprovider, the necessary
我是NatTable的新手。我已经深入研究了NatTable示例及其源代码,但没有找到解决问题的方法。在NatTable中,我有一个列,根据另一个列的值,它应该为选择提供一个复选框。我使用过Checkboxpainter,checkboxcelleditor,defaultbooleanconverter转换器和IEditableRule。这将呈现一个复选框,而不管单元格是否可编辑,尽管它只允许我在启用时标记复选框。
但是,按照我们的要求,如果行不可选,用户就不应该看到复选框。或者,在最坏的情况下,对于不可选择的行,应该呈现一个Disabled复选框。
有人能帮帮我吗?
感谢并致以问候
Pra
当前我的导出工作正常,因为我注册了导出命令处理程序,如下所示 compositeLayer.registerCommandHandler(new ExportCommandHandler(compositeLayer));
natTable.addConfiguration(new DefaultExportBinding()); 在我的导出按钮中,我调用此命令 @Override
public void widgetSelected(SelectionEvent e) {
natTable.doCommand(
new E