【问题标题】:How to configure indentation for non decorated items in a Nebula NatTable如何为 Nebula NatTable 中的非装饰项目配置缩进
【发布时间】:2019-10-16 12:12:49
【问题描述】:

我正在尝试设置 NatTable 树的样式,以便非装饰项目的缩进与装饰项目的缩进相匹配。所以没有子项和有子项的项目基本上具有相同的缩进。

我使用以下配置的示例:

public class PerfLogTreeConfiguration extends AbstractRegistryConfiguration {

private static final int fTreeIndent = 10;
private static final int fIconSpacing = 2;

private TreeImagePainter fTreeImagePainter = new TreeImagePainter(false,
        GUIHelper.getImage("right"), //$NON-NLS-1$
        GUIHelper.getImage("right_down"), null); //$NON-NLS-1$

private IndentedTreeImagePainter indentedTreeImagePainter = new IndentedTreeImagePainter(
        fTreeIndent,
        null,
        CellEdgeEnum.LEFT,
        fTreeImagePainter, 
        false,
        fIconSpacing,
        true);
private PaddingDecorator paddingDecorator = new PaddingDecorator(
        indentedTreeImagePainter,
        0,
        5,
        0,
        5, 
        true);
private ICellPainter fTreeStructurePainter = new BackgroundPainter(paddingDecorator);

@Override
public void configureRegistry(IConfigRegistry configRegistry) {
    configRegistry.registerConfigAttribute(TreeConfigAttributes.TREE_STRUCTURE_PAINTER, fTreeStructurePainter,
            DisplayMode.NORMAL);

}

A is the intended layour and B is what I am currently getting.

【问题讨论】:

    标签: java swt nattable nebula


    【解决方案1】:

    要实现这一点,您需要将叶子图像传递给TreeImagePainter

    TreeImagePainter fTreeImagePainter = new TreeImagePainter(false,
            GUIHelper.getImage("right"), //$NON-NLS-1$
            GUIHelper.getImage("right_down"), //$NON-NLS-1$
            GUIHelper.getImage("leaf")); //$NON-NLS-1$
    

    提供的叶子图像实际上是一个用作间隔的空图像。使用它,扩展节点的子节点也将获得额外的间距。但这对于区分扩展节点的子节点和没有子节点的节点是必要的。

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 2018-03-09
      • 2018-02-07
      • 2018-05-02
      • 1970-01-01
      • 2015-07-18
      • 2015-07-21
      • 1970-01-01
      • 2018-03-11
      相关资源
      最近更新 更多