Home » Eclipse Projects » NatTable » Not able to select Row Header when only one column is present
| | | |
Re: Not able to select Row Header when only one column is present [message #1769370 is a reply to message #1769283] |
Mon, 31 July 2017 06:24 |
Gaurav Tripathi Messages: 43 Registered: September 2015 |
Member |
|
|
Providing all relevant information:
IColumnPropertyAccessor<EObject> columnPropertyAccessor = new ContainerColumnPropertyAccessor(propNames,propertyToLabelMap);
bodyDataProvider = new ListDataProvider<EObject>(eventList, columnPropertyAccessor);
final DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);
ColumnReorderLayer columnReorderLayer = new ColumnReorderLayer(bodyDataLayer);
ColumnHideShowLayer columnHideShowLayer = new ColumnHideShowLayer(columnReorderLayer);
selectionLayer = new SelectionLayer(columnHideShowLayer);
final ViewportLayer viewportLayer = new ViewportLayer(selectionLayer);
final FreezeLayer freezeLayer = new FreezeLayer(selectionLayer);
final CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(freezeLayer, viewportLayer,
selectionLayer);
// build the column header layer
IDataProvider columnHeaderDataProvider = new CustomColumnHeaderDataProvider(propNames, propertyToLabelMap);
DataLayer columnHeaderDataLayer = new DefaultColumnHeaderDataLayer(columnHeaderDataProvider);
ColumnHeaderLayer columnHeaderLayer = new ColumnHeaderLayer(columnHeaderDataLayer, compositeFreezeLayer,
selectionLayer);
// build the row header layer
IDataProvider rowHeaderDataProvider = new CustomRowHeaderDataProvider(bodyDataProvider);
DataLayer rowHeaderDataLayer = new DefaultRowHeaderDataLayer(rowHeaderDataProvider);
ILayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer, compositeFreezeLayer, selectionLayer);
// build the corner layer
IDataProvider cornerDataProvider = new DefaultCornerDataProvider(columnHeaderDataProvider,
rowHeaderDataProvider);
DataLayer cornerDataLayer = new DataLayer(cornerDataProvider);
ILayer cornerLayer = new CornerLayer(cornerDataLayer, rowHeaderLayer, columnHeaderLayer);
// build the grid layer
GridLayer gridLayer = new GridLayer(compositeFreezeLayer, columnHeaderLayer, rowHeaderLayer, cornerLayer);
final ColumnOverrideLabelAccumulator columnLabelAccumulator = new ColumnOverrideLabelAccumulator(bodyDataLayer);
bodyDataLayer.registerCommandHandler(new DeleteRowCommandHandler<EObject>(((ListDataProvider<EObject>)bodyDataProvider).getList(), getSelectionLayer()));
private NatTable generateNatTable(Composite parent, ScrolledForm body, Set<EObject> propertyNamesObject,
final SelectionLayer selectionLayer, final ViewportLayer viewportLayer, final FreezeLayer freezeLayer,
final CompositeFreezeLayer compositeFreezeLayer, GridLayer gridLayer,
DefaultRowStyleConfiguration rowStyleConfiguration, LinkedHashMap<String, EObject> propertyToLabelMap) {
final NatTable natTable = new NatTable(parent, gridLayer, false);
TableWrapData td = new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.FILL_GRAB,
(body.getBounds().height / 11)-3, 1);
natTable.setLayoutData(td);
natTable.addConfiguration(new DefaultNatTableStyleConfiguration() {
{
cellPainter = new LineBorderDecorator(new TextPainter(false, true, 3, true));
}
});
natTable.addConfiguration(new DefaultFreezeGridBindings());
natTable.addConfiguration(rowStyleConfiguration);
natTable.addConfiguration(new ColumnHeaderRightClickConfig(natTable, compositeFreezeLayer, freezeLayer,
viewportLayer, selectionLayer));
natTable.addConfiguration(new EditorConfiguration(propertyNamesObject));
natTable.addConfiguration(new DefaultColumnHeaderStyleConfiguration(){
{
font = GUIHelper.getFont(new FontData[] { new FontData("Calibri", 10, SWT.BOLD) });
cellPainter = new BeveledBorderDecorator(new TextPainter(false, true, true , true));
}
});
Menu menu = createRightClickMenu(natTable, selectionLayer);
natTable.addConfiguration(new AbstractUiBindingConfiguration() {
@Override
public void configureUiBindings(UiBindingRegistry uiBindingRegistry) {
uiBindingRegistry.registerMouseDownBinding(
new MouseEventMatcher(SWT.NONE, GridRegion.BODY, MouseEventMatcher.RIGHT_BUTTON),
new CellPopupMenuAction(menu, selectionLayer, propertyToLabelMap));
}
});
natTable.configure();
natTable.doCommand(new FreezeColumnCommand(compositeFreezeLayer, 0, false, false));
natTableBodyChangeListener(body, natTable);
new NatTableContentTooltip(natTable, GridRegion.BODY,GridRegion.COLUMN_HEADER);
return natTable;
|
|
|
Goto Forum:
Current Time: Mon Sep 23 16:05:12 GMT 2024
Powered by FUDForum. Page generated in 0.04302 seconds
|