Search in sources :

Example 1 with PrintCommand

use of org.eclipse.nebula.widgets.nattable.print.command.PrintCommand in project nebula.widgets.nattable by eclipse.

the class _761_PrintExample method createExampleControl.

@Override
public Control createExampleControl(Composite parent) {
    Composite panel = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    panel.setLayout(layout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(panel);
    Composite gridPanel = new Composite(panel, SWT.NONE);
    gridPanel.setLayout(layout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(gridPanel);
    Composite buttonPanel = new Composite(panel, SWT.NONE);
    buttonPanel.setLayout(new GridLayout());
    GridDataFactory.fillDefaults().grab(true, false).applyTo(buttonPanel);
    // property names of the Person class
    String[] propertyNames = { "firstName", "lastName", "gender", "married", "birthday" };
    // mapping from property to label, needed for column header labels
    Map<String, String> propertyToLabelMap = new HashMap<>();
    propertyToLabelMap.put("firstName", "Firstname");
    propertyToLabelMap.put("lastName", "Lastname");
    propertyToLabelMap.put("gender", "Gender");
    propertyToLabelMap.put("married", "Married");
    propertyToLabelMap.put("birthday", "Birthday");
    IDataProvider bodyDataProvider = new DefaultBodyDataProvider<>(PersonService.getPersons(100), propertyNames);
    DataLayer bodyDataLayer = new DataLayer(bodyDataProvider);
    SelectionLayer selectionLayer = new SelectionLayer(bodyDataLayer);
    ViewportLayer viewportLayer = new ViewportLayer(selectionLayer);
    // add the PrintCommandHandler to the ViewportLayer in order to make
    // printing work
    viewportLayer.registerCommandHandler(new PrintCommandHandler(viewportLayer));
    final NatTable natTable = new NatTable(gridPanel, viewportLayer, false);
    // adding this configuration adds the styles and the painters to use
    natTable.addConfiguration(new DefaultNatTableStyleConfiguration());
    natTable.addConfiguration(new DefaultPrintBindings());
    natTable.configure();
    GridDataFactory.fillDefaults().grab(true, true).applyTo(natTable);
    Button addColumnButton = new Button(buttonPanel, SWT.PUSH);
    addColumnButton.setText("Print");
    addColumnButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            natTable.doCommand(new PrintCommand(natTable.getConfigRegistry(), natTable.getShell()));
        }
    });
    return panel;
}
Also used : PrintCommandHandler(org.eclipse.nebula.widgets.nattable.print.command.PrintCommandHandler) Composite(org.eclipse.swt.widgets.Composite) HashMap(java.util.HashMap) DefaultPrintBindings(org.eclipse.nebula.widgets.nattable.print.config.DefaultPrintBindings) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) IDataProvider(org.eclipse.nebula.widgets.nattable.data.IDataProvider) ViewportLayer(org.eclipse.nebula.widgets.nattable.viewport.ViewportLayer) DefaultBodyDataProvider(org.eclipse.nebula.widgets.nattable.grid.data.DefaultBodyDataProvider) GridLayout(org.eclipse.swt.layout.GridLayout) DataLayer(org.eclipse.nebula.widgets.nattable.layer.DataLayer) SelectionLayer(org.eclipse.nebula.widgets.nattable.selection.SelectionLayer) Button(org.eclipse.swt.widgets.Button) DefaultNatTableStyleConfiguration(org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration) PrintCommand(org.eclipse.nebula.widgets.nattable.print.command.PrintCommand) SelectionEvent(org.eclipse.swt.events.SelectionEvent) NatTable(org.eclipse.nebula.widgets.nattable.NatTable)

Example 2 with PrintCommand

use of org.eclipse.nebula.widgets.nattable.print.command.PrintCommand in project nebula.widgets.nattable by eclipse.

the class _762_MultiPrintExample method createExampleControl.

@Override
public Control createExampleControl(Composite parent) {
    Composite panel = new Composite(parent, SWT.NONE);
    GridLayout layout = new GridLayout();
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    panel.setLayout(layout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(panel);
    Composite gridPanel = new Composite(panel, SWT.NONE);
    gridPanel.setLayout(layout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(gridPanel);
    Composite buttonPanel = new Composite(panel, SWT.NONE);
    buttonPanel.setLayout(new GridLayout(4, false));
    GridDataFactory.fillDefaults().grab(true, false).applyTo(buttonPanel);
    NatTable headerTable = createSmallTable(gridPanel);
    NatTable bodyTable = createGrid(gridPanel);
    // create a custom command handler for printing of multiple NatTable
    // instances
    PrintCommandHandler handler = new PrintCommandHandler(headerTable.getLayer()) {

        @Override
        public boolean doCommand(PrintCommand command) {
            LayerPrinter printer = new LayerPrinter(headerTable, headerTable.getConfigRegistry(), _762_MultiPrintExample.this.repeatHeaderTableButton.getSelection());
            printer.joinPrintTargets(_762_MultiPrintExample.this.joinTablesButton.getSelection());
            if (_762_MultiPrintExample.this.repeatColumnHeaderButton.getSelection()) {
                printer.addPrintTarget(bodyTable, ((GridLayer) bodyTable.getLayer()).getColumnHeaderLayer(), bodyTable.getConfigRegistry());
            } else {
                printer.addPrintTarget(bodyTable, bodyTable.getConfigRegistry());
            }
            printer.print(headerTable.getShell());
            return true;
        }
    };
    // register the handler to both NatTable instances
    headerTable.getLayer().registerCommandHandler(handler);
    bodyTable.getLayer().registerCommandHandler(handler);
    Composite multiTableConfigPanel = new Composite(buttonPanel, SWT.NONE);
    multiTableConfigPanel.setLayout(new RowLayout(SWT.VERTICAL));
    this.joinTablesButton = new Button(multiTableConfigPanel, SWT.CHECK);
    this.joinTablesButton.setText("Join Tables");
    this.repeatHeaderTableButton = new Button(multiTableConfigPanel, SWT.CHECK);
    this.repeatHeaderTableButton.setText("Repeat Header Table");
    this.repeatColumnHeaderButton = new Button(multiTableConfigPanel, SWT.CHECK);
    this.repeatColumnHeaderButton.setText("Repeat Column Header");
    Composite fittingConfigPanel = new Composite(buttonPanel, SWT.NONE);
    fittingConfigPanel.setLayout(new RowLayout(SWT.VERTICAL));
    Button fitHorizontalButton = new Button(fittingConfigPanel, SWT.CHECK);
    fitHorizontalButton.setText("Fit Horizontally");
    Button fitVerticalButton = new Button(fittingConfigPanel, SWT.CHECK);
    fitVerticalButton.setText("Fit Vertically");
    Button stretchButton = new Button(fittingConfigPanel, SWT.CHECK);
    stretchButton.setText("Stretch");
    stretchButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            headerTable.getConfigRegistry().registerConfigAttribute(PrintConfigAttributes.STRETCH, stretchButton.getSelection());
        }
    });
    fitHorizontalButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            updateFittingConfig(headerTable.getConfigRegistry(), fitHorizontalButton.getSelection(), fitVerticalButton.getSelection());
        }
    });
    fitVerticalButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            updateFittingConfig(headerTable.getConfigRegistry(), fitHorizontalButton.getSelection(), fitVerticalButton.getSelection());
        }
    });
    Button addColumnButton = new Button(buttonPanel, SWT.PUSH);
    addColumnButton.setText("Print");
    addColumnButton.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            headerTable.doCommand(new PrintCommand(headerTable.getConfigRegistry(), headerTable.getShell()));
        }
    });
    return panel;
}
Also used : GridLayout(org.eclipse.swt.layout.GridLayout) PrintCommandHandler(org.eclipse.nebula.widgets.nattable.print.command.PrintCommandHandler) Composite(org.eclipse.swt.widgets.Composite) Button(org.eclipse.swt.widgets.Button) PrintCommand(org.eclipse.nebula.widgets.nattable.print.command.PrintCommand) RowLayout(org.eclipse.swt.layout.RowLayout) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) SelectionEvent(org.eclipse.swt.events.SelectionEvent) NatTable(org.eclipse.nebula.widgets.nattable.NatTable) LayerPrinter(org.eclipse.nebula.widgets.nattable.print.LayerPrinter)

Aggregations

NatTable (org.eclipse.nebula.widgets.nattable.NatTable)2 PrintCommand (org.eclipse.nebula.widgets.nattable.print.command.PrintCommand)2 PrintCommandHandler (org.eclipse.nebula.widgets.nattable.print.command.PrintCommandHandler)2 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)2 SelectionEvent (org.eclipse.swt.events.SelectionEvent)2 GridLayout (org.eclipse.swt.layout.GridLayout)2 Button (org.eclipse.swt.widgets.Button)2 Composite (org.eclipse.swt.widgets.Composite)2 HashMap (java.util.HashMap)1 DefaultNatTableStyleConfiguration (org.eclipse.nebula.widgets.nattable.config.DefaultNatTableStyleConfiguration)1 IDataProvider (org.eclipse.nebula.widgets.nattable.data.IDataProvider)1 DefaultBodyDataProvider (org.eclipse.nebula.widgets.nattable.grid.data.DefaultBodyDataProvider)1 DataLayer (org.eclipse.nebula.widgets.nattable.layer.DataLayer)1 LayerPrinter (org.eclipse.nebula.widgets.nattable.print.LayerPrinter)1 DefaultPrintBindings (org.eclipse.nebula.widgets.nattable.print.config.DefaultPrintBindings)1 SelectionLayer (org.eclipse.nebula.widgets.nattable.selection.SelectionLayer)1 ViewportLayer (org.eclipse.nebula.widgets.nattable.viewport.ViewportLayer)1 RowLayout (org.eclipse.swt.layout.RowLayout)1