Eclipse rcp 树在NatTable中不展开
我试着从中找出一些例子 我评论了rowHeaderLayer、ColumnHeaderLayer、CornerLayer、GridLayer,并直接将viewPortLayer设置为nattable。树出现了,但我不能扩展和折叠树,尽管我有rowHideShowLayer 下面是代码片段: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
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);
谢谢你的正确链接,德里克。我现在将用我的代码测试您的建议:)