Eclipse rcp 树在NatTable中不展开

Eclipse rcp 树在NatTable中不展开,eclipse-rcp,nattable,Eclipse Rcp,Nattable,我试着从中找出一些例子 我评论了rowHeaderLayer、ColumnHeaderLayer、CornerLayer、GridLayer,并直接将viewPortLayer设置为nattable。树出现了,但我不能扩展和折叠树,尽管我有rowHideShowLayer 下面是代码片段: EventList<Datum> eventList = GlazedLists.eventList(datums.values()); SortedList<Datum&g

我试着从中找出一些例子

我评论了rowHeaderLayer、ColumnHeaderLayer、CornerLayer、GridLayer,并直接将viewPortLayer设置为nattable。树出现了,但我不能扩展和折叠树,尽管我有rowHideShowLayer

下面是代码片段:

    EventList<Datum> eventList = GlazedLists.eventList(datums.values());
    SortedList<Datum> sortedList = new SortedList<Datum>(eventList, null);

    String[] propertyNames = new String[] { "self", "bar" };
    IColumnPropertyAccessor<Datum> columnPropertyAccessor = new ReflectiveColumnPropertyAccessor<Datum>(propertyNames);

    // Column header layer
    IDataProvider columnHeaderDataProvider = new DefaultColumnHeaderDataProvider(propertyNames);
    DataLayer columnHeaderDataLayer = new DefaultColumnHeaderDataLayer(columnHeaderDataProvider);

    ISortModel sortModel = new GlazedListsSortModel<Datum>(
            sortedList,
            columnPropertyAccessor,
            configRegistry, 
            columnHeaderDataLayer);

    final TreeList <Datum> treeList = new TreeList<Datum>(sortedList, new DatumTreeFormat(sortModel), new DatumExpansionModel());
    GlazedListTreeData <Datum> treeData = new DatumTreeData(treeList);

    GlazedListsDataProvider<Datum> bodyDataProvider = new GlazedListsDataProvider<Datum>(treeList, columnPropertyAccessor);
    final DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);

    // Body layer
    ColumnReorderLayer columnReorderLayer = new ColumnReorderLayer(bodyDataLayer);
    ColumnHideShowLayer columnHideShowLayer = new ColumnHideShowLayer(columnReorderLayer);
    SelectionLayer selectionLayer = new SelectionLayer(columnHideShowLayer);

    RowHideShowLayer rowHideShowLayer = new RowHideShowLayer(selectionLayer);

    final TreeLayer treeLayer = new TreeLayer(rowHideShowLayer, new GlazedListTreeRowModel<Datum>(treeData));

    ViewportLayer viewportLayer = new ViewportLayer(treeLayer);

    NatTable natTable = new NatTable(parent, viewportLayer, false);`
EventList EventList=glazedlist.EventList(datums.values());
SortedList SortedList=新的SortedList(事件列表,空);
字符串[]propertyNames=新字符串[]{“self”,“bar”};
IColumnPropertyAccessor columnPropertyAccessor=新的ReflectiveColumnPropertyAccessor(propertyNames);
//列标题层
IDataProvider columnHeaderDataProvider=新的默认columnHeaderDataProvider(propertyNames);
数据层columnHeaderDataLayer=新的默认columnHeaderDataLayer(columnHeaderDataProvider);
ISortModel sortModel=新的GlazedListsortModel(
分类列表,
columnPropertyAccessor,
配置注册表,
柱头催化剂层);
最终树列表树列表=新树列表(sortedList、新DatumTreeFormat(sortModel)、新DatumExpansionModel());
GlazedListTreeData treeData=新数据treeData(树列表);
GlazedListsDataProvider bodyDataProvider=新的GlazedListsDataProvider(树状列表、列属性附件);
最终数据层bodyDataLayer=新数据层(bodyDataProvider);
//身体层
ColumnReorderLayer ColumnReorderLayer=新的ColumnReorderLayer(bodyDataLayer);
ColumnHideShowLayer ColumnHideShowLayer=新的ColumnHideShowLayer(columnReorderLayer);
SelectionLayer SelectionLayer=新建SelectionLayer(columnHideShowLayer);
RowHideShowLayer RowHideShowLayer=新的RowHideShowLayer(selectionLayer);
最终TreeLayer TreeLayer=新TreeLayer(rowHideShowLayer,新GlazedListTreeRowModel(treeData));
ViewportLayer ViewportLayer=新的ViewportLayer(treeLayer);
NatTable NatTable=新NatTable(父级,viewportLayer,false)`

呸,我们的代码能在什么地方找到真的很奇怪

我不会研究googlesource,而是将我们的源代码托管在Eclipse基础设施中,IIRC将在GitHub复制这些源代码。因此,更好的例子是

关于你的问题,你不需要RowHideShowLayer,我建议删除它。由于不使用网格组合,因此需要为ViewportLayer设置必要的区域标签以启用配置的UI绑定。因此,您需要在创建ViewportLayer之后添加以下代码行

viewportLayer.setRegionName(GridRegion.BODY);

谢谢你的正确链接,德里克。我现在将用我的代码测试您的建议:)