Java 如何为Nebula表格中的非装饰项目配置缩进

Java 如何为Nebula表格中的非装饰项目配置缩进,java,swt,nattable,nebula,Java,Swt,Nattable,Nebula,我正在尝试设计一个可NatTable树的样式,以便非装饰项目的缩进与装饰项目的缩进匹配。因此,基本上,没有子项的项目和有子项的项目具有相同的缩进 下面的示例使用以下配置: public class PerfLogTreeConfiguration extends AbstractRegistryConfiguration { private static final int fTreeIndent = 10; private static final int fIconSpacing = 2;

我正在尝试设计一个可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);

}

要实现这一点,您需要将叶子图像传递给
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$
提供的叶图像实际上是用作间隔的空图像。使用此选项,扩展节点的子节点将获得额外的间距。但需要这样才能区分扩展节点的子节点和没有子节点的节点