Search in sources :

Example 1 with FullFeaturedBodyLayerStack

use of org.eclipse.nebula.widgets.nattable.examples.fixtures.FullFeaturedBodyLayerStack in project nebula.widgets.nattable by eclipse.

the class _900_Everything_but_the_kitchen_sink method createExampleControl.

@Override
public Control createExampleControl(Composite parent) {
    final String[] propertyNames = RowDataListFixture.getPropertyNames();
    final Map<String, String> propertyToLabelMap = RowDataListFixture.getPropertyToLabelMap();
    ConfigRegistry configRegistry = new ConfigRegistry();
    ColumnGroupModel columnGroupModel = new ColumnGroupModel();
    // Body
    LinkedList<BlinkingRowDataFixture> rowData = new LinkedList<>();
    this.baseEventList = GlazedLists.threadSafeList(GlazedLists.eventList(rowData));
    ObservableElementList<BlinkingRowDataFixture> observableElementList = new ObservableElementList<>(this.baseEventList, GlazedLists.beanConnector(BlinkingRowDataFixture.class));
    FilterList<BlinkingRowDataFixture> filterList = new FilterList<>(observableElementList);
    SortedList<BlinkingRowDataFixture> sortedList = new SortedList<>(filterList, null);
    FullFeaturedBodyLayerStack<BlinkingRowDataFixture> bodyLayer = new FullFeaturedBodyLayerStack<>(sortedList, new IRowIdAccessor<BlinkingRowDataFixture>() {

        @Override
        public Serializable getRowId(BlinkingRowDataFixture rowObject) {
            return rowObject.getSecurity_description();
        }
    }, propertyNames, configRegistry, columnGroupModel);
    this.bodyDataProvider = bodyLayer.getBodyDataProvider();
    this.propertyChangeListener = bodyLayer.getGlazedListEventsLayer();
    // blinking
    registerBlinkingConfigCells(configRegistry);
    // Column header
    FullFeaturedColumnHeaderLayerStack<BlinkingRowDataFixture> columnHeaderLayer = new FullFeaturedColumnHeaderLayerStack<>(sortedList, filterList, propertyNames, propertyToLabelMap, bodyLayer, bodyLayer.getSelectionLayer(), columnGroupModel, configRegistry);
    // column groups
    setUpColumnGroups(columnHeaderLayer);
    // Row header
    final DefaultRowHeaderDataProvider rowHeaderDataProvider = new DefaultSummaryRowHeaderDataProvider(this.bodyDataProvider);
    DefaultRowHeaderDataLayer rowHeaderDataLayer = new DefaultRowHeaderDataLayer(rowHeaderDataProvider);
    rowHeaderDataLayer.setDefaultColumnWidth(50);
    ILayer rowHeaderLayer = new RowHeaderLayer(rowHeaderDataLayer, bodyLayer, bodyLayer.getSelectionLayer());
    // Corner
    final DefaultCornerDataProvider cornerDataProvider = new DefaultCornerDataProvider(columnHeaderLayer.getColumnHeaderDataProvider(), rowHeaderDataProvider);
    DataLayer cornerDataLayer = new DataLayer(cornerDataProvider);
    ILayer cornerLayer = new CornerLayer(cornerDataLayer, rowHeaderLayer, columnHeaderLayer);
    // Grid
    GridLayer gridLayer = new GridLayer(bodyLayer, columnHeaderLayer, rowHeaderLayer, cornerLayer);
    this.natTable = new NatTable(parent, gridLayer, false);
    this.natTable.setConfigRegistry(configRegistry);
    this.natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
    // Popup menu
    this.natTable.addConfiguration(new HeaderMenuConfiguration(this.natTable) {

        @Override
        protected PopupMenuBuilder createColumnHeaderMenu(NatTable natTable) {
            return super.createColumnHeaderMenu(natTable).withColumnChooserMenuItem();
        }
    });
    this.natTable.addConfiguration(new SingleClickSortConfiguration());
    // Editing
    ColumnOverrideLabelAccumulator columnLabelAccumulator = new ColumnOverrideLabelAccumulator(bodyLayer.getBodyDataLayer());
    bodyLayer.getBodyDataLayer().setConfigLabelAccumulator(columnLabelAccumulator);
    this.natTable.addConfiguration(EditableGridExample.editableGridConfiguration(columnLabelAccumulator, this.bodyDataProvider));
    this.natTable.addConfiguration(new FilterRowGridExample.FilterRowCustomConfiguration());
    // Column chooser
    DisplayColumnChooserCommandHandler columnChooserCommandHandler = new DisplayColumnChooserCommandHandler(bodyLayer.getSelectionLayer(), bodyLayer.getColumnHideShowLayer(), columnHeaderLayer.getColumnHeaderLayer(), columnHeaderLayer.getColumnHeaderDataLayer(), columnHeaderLayer.getColumnGroupHeaderLayer(), columnGroupModel);
    bodyLayer.registerCommandHandler(columnChooserCommandHandler);
    // Summary row configuration
    this.natTable.addConfiguration(new MySummaryRow<>(this.bodyDataProvider));
    this.natTable.configure();
    return this.natTable;
}
Also used : Serializable(java.io.Serializable) DefaultSummaryRowHeaderDataProvider(org.eclipse.nebula.widgets.nattable.grid.data.DefaultSummaryRowHeaderDataProvider) FullFeaturedColumnHeaderLayerStack(org.eclipse.nebula.widgets.nattable.examples.fixtures.FullFeaturedColumnHeaderLayerStack) HeaderMenuConfiguration(org.eclipse.nebula.widgets.nattable.ui.menu.HeaderMenuConfiguration) SortedList(ca.odell.glazedlists.SortedList) DefaultCornerDataProvider(org.eclipse.nebula.widgets.nattable.grid.data.DefaultCornerDataProvider) ObservableElementList(ca.odell.glazedlists.ObservableElementList) ConfigRegistry(org.eclipse.nebula.widgets.nattable.config.ConfigRegistry) IConfigRegistry(org.eclipse.nebula.widgets.nattable.config.IConfigRegistry) DataLayer(org.eclipse.nebula.widgets.nattable.layer.DataLayer) DefaultRowHeaderDataLayer(org.eclipse.nebula.widgets.nattable.grid.layer.DefaultRowHeaderDataLayer) DefaultNatTableStyleConfiguration(org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration) DefaultRowHeaderDataLayer(org.eclipse.nebula.widgets.nattable.grid.layer.DefaultRowHeaderDataLayer) NatTable(org.eclipse.nebula.widgets.nattable.NatTable) ColumnOverrideLabelAccumulator(org.eclipse.nebula.widgets.nattable.layer.cell.ColumnOverrideLabelAccumulator) FilterRowGridExample(org.eclipse.nebula.widgets.nattable.examples.examples._131_Filtering.FilterRowGridExample) DisplayColumnChooserCommandHandler(org.eclipse.nebula.widgets.nattable.columnChooser.command.DisplayColumnChooserCommandHandler) ILayer(org.eclipse.nebula.widgets.nattable.layer.ILayer) FilterList(ca.odell.glazedlists.FilterList) DefaultRowHeaderDataProvider(org.eclipse.nebula.widgets.nattable.grid.data.DefaultRowHeaderDataProvider) ColumnGroupModel(org.eclipse.nebula.widgets.nattable.group.ColumnGroupModel) LinkedList(java.util.LinkedList) BlinkingRowDataFixture(org.eclipse.nebula.widgets.nattable.dataset.fixture.data.BlinkingRowDataFixture) RowHeaderLayer(org.eclipse.nebula.widgets.nattable.grid.layer.RowHeaderLayer) FullFeaturedBodyLayerStack(org.eclipse.nebula.widgets.nattable.examples.fixtures.FullFeaturedBodyLayerStack) CornerLayer(org.eclipse.nebula.widgets.nattable.grid.layer.CornerLayer) SingleClickSortConfiguration(org.eclipse.nebula.widgets.nattable.sort.config.SingleClickSortConfiguration) GridLayer(org.eclipse.nebula.widgets.nattable.grid.layer.GridLayer) PopupMenuBuilder(org.eclipse.nebula.widgets.nattable.ui.menu.PopupMenuBuilder)

Aggregations

FilterList (ca.odell.glazedlists.FilterList)1 ObservableElementList (ca.odell.glazedlists.ObservableElementList)1 SortedList (ca.odell.glazedlists.SortedList)1 Serializable (java.io.Serializable)1 LinkedList (java.util.LinkedList)1 NatTable (org.eclipse.nebula.widgets.nattable.NatTable)1 DisplayColumnChooserCommandHandler (org.eclipse.nebula.widgets.nattable.columnChooser.command.DisplayColumnChooserCommandHandler)1 ConfigRegistry (org.eclipse.nebula.widgets.nattable.config.ConfigRegistry)1 DefaultNatTableStyleConfiguration (org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration)1 IConfigRegistry (org.eclipse.nebula.widgets.nattable.config.IConfigRegistry)1 BlinkingRowDataFixture (org.eclipse.nebula.widgets.nattable.dataset.fixture.data.BlinkingRowDataFixture)1 FilterRowGridExample (org.eclipse.nebula.widgets.nattable.examples.examples._131_Filtering.FilterRowGridExample)1 FullFeaturedBodyLayerStack (org.eclipse.nebula.widgets.nattable.examples.fixtures.FullFeaturedBodyLayerStack)1 FullFeaturedColumnHeaderLayerStack (org.eclipse.nebula.widgets.nattable.examples.fixtures.FullFeaturedColumnHeaderLayerStack)1 DefaultCornerDataProvider (org.eclipse.nebula.widgets.nattable.grid.data.DefaultCornerDataProvider)1 DefaultRowHeaderDataProvider (org.eclipse.nebula.widgets.nattable.grid.data.DefaultRowHeaderDataProvider)1 DefaultSummaryRowHeaderDataProvider (org.eclipse.nebula.widgets.nattable.grid.data.DefaultSummaryRowHeaderDataProvider)1 CornerLayer (org.eclipse.nebula.widgets.nattable.grid.layer.CornerLayer)1 DefaultRowHeaderDataLayer (org.eclipse.nebula.widgets.nattable.grid.layer.DefaultRowHeaderDataLayer)1 GridLayer (org.eclipse.nebula.widgets.nattable.grid.layer.GridLayer)1