Adding Labels to specific cells [message #1385094] |
Wed, 04 June 2014 06:05  |
Eclipse User |
|
|
|
I have to add labels to specific cells to make them a dropdown field, checkbox etc. This is what I came up with, reading the examples.
public Control createExampleControl(Composite parent) {
setPropertyColumns();
bodyDataProvider = new CustomDataProvider();
DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);
final DefaultBodyLayerStack bodyLayer = new DefaultBodyLayerStack(bodyDataLayer);
SelectionLayer selectionLayer = bodyLayer.getSelectionLayer();
FreezeLayer freezeLayer = new FreezeLayer(selectionLayer);
CompositeFreezeLayer compositeFreezeLayer = new CompositeFreezeLayer(freezeLayer, bodyLayer.getViewportLayer(), selectionLayer);
// Column header
IDataProvider columnHeaderDataProvider = new DefaultColumnHeaderDataProvider(propertyColumns);
ILayer columnHeaderLayer = new ColumnHeaderLayer(new DefaultColumnHeaderDataLayer(columnHeaderDataProvider), compositeFreezeLayer, selectionLayer);
// Row header
IDataProvider rowHeaderDataProvider = new DefaultRowHeaderDataProvider(bodyDataProvider);
ILayer rowHeaderLayer = new RowHeaderLayer(new DefaultRowHeaderDataLayer(rowHeaderDataProvider), compositeFreezeLayer, selectionLayer);
// Corner
DefaultCornerDataProvider cornerDataProvider = new DefaultCornerDataProvider(columnHeaderDataProvider, rowHeaderDataProvider);
CornerLayer cornerLayer = new CornerLayer(new DataLayer(cornerDataProvider), rowHeaderLayer, columnHeaderLayer);
// Grid
GridLayer gridLayer = new GridLayer(compositeFreezeLayer, columnHeaderLayer, rowHeaderLayer, cornerLayer);
// I assign the labels here
IConfigLabelAccumulator cellLabelAccumulator = new IConfigLabelAccumulator() {
@Override
public void accumulateConfigLabels(LabelStack configLabels, int columnPosition, int rowPosition) {
// Some logic to add a label
configLabels.addLabel(Editable.DROPDOWN_EDIT);
}
};
bodyLayer.setConfigLabelAccumulator(cellLabelAccumulator);
bodyLayer.addConfiguration(new EditorConfiguration());
NatTable natTable = new NatTable(parent, gridLayer, false);
// Configuration
natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
natTable.addConfiguration(new HeaderMenuConfiguration(natTable));
natTable.addConfiguration(new DefaultFreezeGridBindings());
// natTable.addConfiguration(new EditorConfiguration());
natTable.configure();
return natTable;
}
EditorConfiguration inherits AbstractRegistryConfiguration and adds a dropdown to the label Editable.DROPDOWN_EDIT.
However, this doesn't work. The accumulateConfigLabels isn't even called. What am I doing wrong?
Thanks,
Appreciate the help
|
|
|
|
Powered by
FUDForum. Page generated in 0.08646 seconds