【问题标题】:How to show complete header label name in Select Columns header menu dialog(Column Chooser),when header column labels contain new line character?当标题列标签包含换行符时,如何在选择列标题菜单对话框(列选择器)中显示完整的标题标签名称?
【发布时间】:2021-06-17 14:47:53
【问题描述】:

我在我的 nat 表中添加了如下标题菜单配置,其中我还包括了“选择列”菜单:

// Popup menu

this.natTable.addConfiguration(new HeaderMenuConfiguration(this.natTable) {

@Override

protected PopupMenuBuilder createColumnHeaderMenu(NatTable natTable) {

  return super.createColumnHeaderMenu(natTable) .withColumnChooserMenuItem(); }

});

// Column chooser

DisplayColumnChooserCommandHandler columnChooserCommandHandler = new DisplayColumnChooserCommandHandler( bodyLayer.getSelectionLayer(), bodyLayer.getColumnHideShowLayer(), columnHeaderLayer.getColumnHeaderLayer(), columnHeaderLayer.getColumnHeaderDataLayer(), columnHeaderLayer.getColumnGroupHeaderLayer(), columnGroupModel);

//如果标题名称由多个单词组成,那么我使用 ("\n") 作为单词之间的分隔符 //标题列名,这样可以节省一些空间

// 在这种情况下,打开“选择列”上下文菜单对话框时,只有列的第一个单词可见

是否可以通过将所有“\n”和空格字符替换为单个空格(“”)字符来修复 在 org.eclipse.nebula.widgets.nattable.columnChooser.gui.ColumnChooserDialog //用单个空格替换列标签中多余的空格或换行符的代码,以便 //header 名称在填充树方法中完全可见 treeItem.setText(columnEntry.getLabel()); 在这种情况下,可以提供修复以用列标题名称中的单个空格替换额外的空格,或者是否有任何其他替代方法来修复它? Image with header names having multiple words For eg:"Issue Date",if header name is dispalyed as "Issue\nDate",only Issue is visible in "Select Columns" context menu dialog

【问题讨论】:

    标签: eclipse nattable nebula


    【解决方案1】:

    IIRC 您添加换行符以节省一些空间。出于任何语义原因不需要它们。我建议配置TextPainter,如果没有足够的可用空间,它会使列标题单元格内容自动换行。例如,这可能如下所示:

    configRegistry.registerConfigAttribute(
        CellConfigAttributes.CELL_PAINTER,
        new BeveledBorderDecorator(new TextPainter(true, false, false, true)),
        DisplayMode.NORMAL,
        GridRegion.COLUMN_HEADER);
    

    【讨论】:

    • 添加 TextPainter 是首选,但在这种情况下,完整的标题名称不可见。
    • 例如在“Issue Date”的情况下,只有“Issue...”可见。这就是为什么我添加新行以在可用空间中查看完整的标题名称。因此请求删除额外的空间或来自 ColumnChooserDialog 的 populateTree() 中 treeItem.setText(columnEntry.getLabel()) 的换行符。因此,即使在列标题标签中添加换行符,完整的标题名称也会在标题菜单的“选择列”对话框中可见
    • 或者,当标题标签有换行符时,是否有任何替代方法可以在标题上下文菜单“选择列”对话框中显示完整的标题名称?
    • 如果你注册了TextPainter,如图sn -p word wrapping 行高计算是启用的。所以你应该看到整个列标题,没有三个点。而且没有办法在该对话框中处理换行符。但是你当然可以继承并创建你自己的对话框。
    • 非常感谢 Dirk Fauth。Text Painter 在这里解决了这个问题。Text Painter 配置被覆盖。因此它之前没有生效。正确放置配置后 Text Painter 在这种情况下工作。谢谢,这很有帮助
    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2021-09-14
    • 2019-06-23
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    相关资源
    最近更新 更多