Example usage for org.eclipse.jface.viewers TableViewer getControl

List of usage examples for org.eclipse.jface.viewers TableViewer getControl

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TableViewer getControl.

Prototype

@Override
    public Control getControl() 

Source Link

Usage

From source file:org.csstudio.auth.ui.internal.preferences.SystemPropertiesPreferencePage.java

License:Open Source License

/**
 * {@inheritDoc}/*from  w ww.  j  a va2  s  .co  m*/
 */
@Override
protected Control createContents(final Composite parent) {
    // We don't want Reset and Apply buttons on this preference page.
    // Apply does not work anyway (system properties are set during startup)
    // and Reset is not supported currently.
    noDefaultAndApplyButton();

    Composite contents = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout(2, false);
    layout.marginHeight = 0;
    layout.marginWidth = 0;
    contents.setLayout(layout);
    contents.setFont(parent.getFont());

    Label about = new Label(contents, SWT.WRAP);
    about.setText(Messages.SystemPropertiesPreferencePage_ABOUT_TEXT);
    GridData data = new GridData(SWT.FILL, SWT.BEGINNING, true, false, 2, 1);
    data.widthHint = 300;
    about.setLayoutData(data);

    final TableViewer viewer = new TableViewer(contents,
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    initializeTableViewer(viewer);
    viewer.setContentProvider(new PropertiesContentProvider());
    viewer.setLabelProvider(new PropertiesLabelProvider());

    Button addButton = new Button(contents, SWT.PUSH);
    addButton.setText(Messages.SystemPropertiesPreferencePage_ADD_BUTTON);
    data = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false);
    data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
    addButton.setLayoutData(data);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            Shell shell = e.widget.getDisplay().getActiveShell();
            SystemPropertyDialog dlg = new SystemPropertyDialog(shell);
            if (dlg.open() == Window.OK) {
                SystemPropertyPreferenceEntry entry = new SystemPropertyPreferenceEntry(dlg.getKey(),
                        dlg.getValue());
                _properties.add(entry);
            }
        }
    });

    final Button removeButton = new Button(contents, SWT.PUSH);
    removeButton.setText(Messages.SystemPropertiesPreferencePage_REMOVE_BUTTON);
    data = new GridData(SWT.BEGINNING, SWT.BEGINNING, false, false);
    data.widthHint = convertHorizontalDLUsToPixels(IDialogConstants.BUTTON_WIDTH);
    removeButton.setLayoutData(data);
    removeButton.setEnabled(false);
    removeButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
            for (Iterator<?> i = selection.iterator(); i.hasNext();) {
                SystemPropertyPreferenceEntry entry = (SystemPropertyPreferenceEntry) i.next();
                _properties.remove(entry);
            }
        }
    });

    // Add a selection listener to the viewer that will enable the
    // "Remove" button when at least one item is selected in the table.
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            removeButton.setEnabled(!event.getSelection().isEmpty());
        }
    });

    _properties = new PropertiesModel();
    _properties.loadFromPreferences();
    viewer.setInput(_properties);

    return contents;
}

From source file:org.csstudio.dal.ui.internal.connectionview.ConnectionStateView.java

License:Open Source License

private TableViewer createChannelTable(final Composite parent) {
    // define column names
    final String[] columnNames = new String[] { "PROP_DESCRIPTION", "PROP_NAME", "PROP_VALUE" }; //$NON-NLS-1$ //$NON-NLS-2$

    // create table
    final Table table = new Table(parent,
            SWT.FULL_SELECTION | SWT.MULTI | SWT.HIDE_SELECTION | SWT.DOUBLE_BUFFERED | SWT.SCROLL_PAGE);

    table.setLinesVisible(true);//from  w ww.java2  s  .  com
    table.setLayoutData(LayoutUtil.createGridDataForFillingCell());
    table.setHeaderVisible(true);

    // create viewer
    final TableViewer viewer = new TableViewer(table);

    TableViewerColumn tvColumn;
    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Channel");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(300);

    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Connection State");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(200);

    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Latest Value");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(200);

    viewer.setUseHashlookup(true);

    // define column properties
    viewer.setColumnProperties(columnNames);

    // DnD
    ProcessVariableExchangeUtil.addProcessVariableAdressDragSupport(viewer.getControl(),
            DND.DROP_MOVE | DND.DROP_COPY, new IProcessVariableAdressProvider() {
                @Override
                public List<IProcessVariableAddress> getProcessVariableAdresses() {
                    final List<IProcessVariableAddress> result = new ArrayList<IProcessVariableAddress>();

                    final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
                    final Iterator<IProcessVariableAdressProvider> it = sel.iterator();

                    while (it.hasNext()) {
                        result.add(it.next().getPVAdress());
                    }

                    return result;
                }

                @Override
                public IProcessVariableAddress getPVAdress() {
                    final IStructuredSelection sel = (IStructuredSelection) viewer.getSelection();
                    final IProcessVariableAdressProvider pvProvider = (IProcessVariableAdressProvider) sel
                            .getFirstElement();
                    return pvProvider != null ? pvProvider.getPVAdress() : null;
                }

            });

    return viewer;
}

From source file:org.csstudio.diag.pvfields.view.PVFieldsView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    if (model == null) {
        new Label(parent, 0).setText("Cannot initialize"); //$NON-NLS-1$
        return;/*from  w w w. j  a  v a2 s  . com*/
    }
    gui = new GUI(parent, model);
    cbo_name = gui.getPVViewer();
    field_value = gui.getFieldViewer();

    // Allow Eclipse to listen to PV selection changes
    final TableViewer fields_viewer = gui.getFieldsTable();
    getSite().setSelectionProvider(fields_viewer);

    pv_name_helper = new ComboHistoryHelper(Activator.getDefault().getDialogSettings(), PV_LIST_TAG,
            cbo_name.getCombo(), 10, true) {
        @Override
        public void newSelection(String pv_name) {
            setPVName(pv_name);
            pv_name_helper.addEntry(pv_name);
        }
    };

    field_value_helper = new ComboHistoryHelper(Activator.getDefault().getDialogSettings(), FIELD_LIST_TAG,
            field_value.getCombo(), 10, true) {
        @Override
        public void newSelection(String field_value) {
            field_value_helper.addEntry(field_value);
        }
    };

    if (memento != null) {
        String pv_name = memento.getString(PV_TAG);
        String field = memento.getString(FIELD_TAG);
        if (field != null && field.length() > 0)
            field_value.getCombo().setText(field);
        if (pv_name != null && pv_name.length() > 0)
            setPVName(pv_name);
    }

    // Stop the press when we're no more
    cbo_name.getCombo().addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            pv_name_helper.saveSettings();
            field_value_helper.saveSettings();
        }
    });

    final ComboViewer cbo_name = gui.getPVViewer();

    pv_name_helper.loadSettings();
    field_value_helper.loadSettings();

    // Enable 'Drop' on to combo box (entry box)
    new ControlSystemDropTarget(cbo_name.getCombo(), ProcessVariable.class, String.class) {
        @Override
        public void handleDrop(final Object item) {
            PVFieldsView.this.handleDrop(item);
        }
    };

    final Table fields_table = gui.getFieldsTable().getTable();

    // Enable 'Drop' on to table.
    new ControlSystemDropTarget(fields_table, ProcessVariable.class, String.class) {
        @Override
        public void handleDrop(final Object item) {
            PVFieldsView.this.handleDrop(item);
        }
    };

    // Add empty context menu so that other CSS apps can
    // add themselves to it
    final MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    Menu menu = menuMgr.createContextMenu(fields_viewer.getControl());
    fields_viewer.getControl().setMenu(menu);
    getSite().registerContextMenu(menuMgr, fields_viewer);
}

From source file:org.csstudio.diag.pvutil.view.PVUtilView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    if (model == null) {
        new Label(parent, 0).setText("Cannot initialize"); //$NON-NLS-1$
        return;//  w  w w  . j  a  v a  2s . c  o m
    }
    gui = new GUI(parent, model);

    // Allow Eclipse to listen to PV selection changes
    final TableViewer pv_table = gui.getPVTableViewer();
    getSite().setSelectionProvider(pv_table);

    // Allow dragging PV names
    new ControlSystemDragSource(pv_table.getTable()) {
        @Override
        public Object getSelection() {
            final IStructuredSelection selection = (IStructuredSelection) pv_table.getSelection();
            final Object[] objs = selection.toArray();
            final PV[] pvs = Arrays.copyOf(objs, objs.length, PV[].class);
            return pvs;
        }
    };

    // Enable 'Drop'
    final Text pv_filter = gui.getPVFilterText();
    new ControlSystemDropTarget(pv_filter, ProcessVariable.class, String.class) {
        @Override
        public void handleDrop(final Object item) {
            if (item instanceof ProcessVariable)
                setPVFilter(((ProcessVariable) item).getName());
            else if (item instanceof String)
                setPVFilter(item.toString().trim());
        }
    };

    // Add empty context menu so that other CSS apps can
    // add themselves to it
    MenuManager menuMgr = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    menuMgr.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    Menu menu = menuMgr.createContextMenu(pv_table.getControl());
    pv_table.getControl().setMenu(menu);
    getSite().registerContextMenu(menuMgr, pv_table);

    // Add context menu to the name table.
    // One reason: Get object contribs for the NameTableItems.
    IWorkbenchPartSite site = getSite();
    MenuManager manager = new MenuManager("#PopupMenu"); //$NON-NLS-1$
    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
    Menu contextMenu = manager.createContextMenu(pv_table.getControl());
    pv_table.getControl().setMenu(contextMenu);
    site.registerContextMenu(manager, pv_table);
}

From source file:org.csstudio.display.pvtable.ui.PVTable.java

License:Open Source License

/**
 * Helper for creating context menu. Be carefull if you modify to modify the
 * changeContextMenu method too./*  w  w  w. j a va 2  s.  com*/
 *
 * @param viewer
 * @param site
 */
private void createContextMenu(final TableViewer viewer, IWorkbenchPartSite site) {
    manager = new MenuManager();
    manager.add(new SnapshotAction(viewer)); // 0
    manager.add(new RestoreAction(viewer)); // 1
    manager.add(new SelectAllAction(viewer)); // 2
    manager.add(new DeSelectAllAction(viewer)); // 3
    manager.add(new ExportXLSAction(viewer));// 4
    manager.add(new Separator()); // 5
    manager.add(new SnapshotCurrentSelectionAction(viewer)); // 6
    manager.add(new RestoreCurrentSelectionAction(viewer)); // 7
    manager.add(new Separator()); // 8
    manager.add(new TimeoutAction(viewer)); // 9
    manager.add(new ToleranceAction(viewer)); // 10
    manager.add(new Separator()); // 11
    manager.add(new InsertAction(viewer)); // 12
    manager.add(new DeleteAction(viewer)); // 13
    manager.add(new DeleteMeasureAction(viewer)); // 14
    manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS)); // 15
    final Control control = viewer.getControl();
    menu = manager.createContextMenu(control);
    control.setMenu(menu);
    if (site != null) {
        site.registerContextMenu(manager, viewer);
    }
}

From source file:org.csstudio.opibuilder.visualparts.PVTupleTableEditor.java

License:Open Source License

/**
 * Creates and configures a {@link TableViewer}.
 *
 * @param parent/*from w w  w  .ja v  a 2  s . co m*/
 *            The parent for the table
 * @return The {@link TableViewer}
 */
private TableViewer createPVTupleListTableViewer(final Composite parent) {
    final TableViewer viewer = new TableViewer(parent,
            SWT.V_SCROLL | SWT.H_SCROLL | SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    viewer.getTable().setLinesVisible(true);
    viewer.getTable().setHeaderVisible(true);

    final TableViewerColumn numColumn = new TableViewerColumn(viewer, SWT.NONE);
    numColumn.getColumn().setText("#");
    numColumn.getColumn().setMoveable(false);
    numColumn.getColumn().setWidth(50);

    final TableViewerColumn pvColumn = new TableViewerColumn(viewer, SWT.NONE);
    pvColumn.getColumn().setText("PV Name");
    pvColumn.getColumn().setMoveable(false);
    pvColumn.getColumn().setWidth(220);
    pvColumn.setEditingSupport(new PVColumnEditingSupport(viewer, viewer.getTable()));

    final TableViewerColumn TrigColumn = new TableViewerColumn(viewer, SWT.NONE);
    TrigColumn.getColumn().setText("Trigger");
    TrigColumn.getColumn().setMoveable(false);
    TrigColumn.getColumn().pack();
    TrigColumn.setEditingSupport(new TriggerColumnEditingSupport(viewer, viewer.getTable()));

    viewer.setContentProvider(new ArrayContentProvider());
    viewer.setLabelProvider(new PVTupleLabelProvider(pvTupleList));

    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(final SelectionChangedEvent event) {
            refreshToolbarOnSelection();
        }
    });
    viewer.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    DropTarget target = new DropTarget(viewer.getControl(), DND.DROP_MOVE | DND.DROP_COPY);
    target.setTransfer(new Transfer[] { TextTransfer.getInstance() });
    target.addDropListener(new DropTargetListener() {
        @Override
        public void dragEnter(DropTargetEvent event) {
        }

        @Override
        public void dragLeave(DropTargetEvent event) {
        }

        @Override
        public void dragOperationChanged(DropTargetEvent event) {
        }

        @Override
        public void dragOver(DropTargetEvent event) {
        }

        @Override
        public void drop(DropTargetEvent event) {
            if (event == null || !(event.data instanceof String))
                return;

            String txt = (String) event.data;
            String[] names = txt.split("[\r\n]+");
            PVTuple[] tuples = new PVTuple[names.length];
            int i = 0;
            for (String name : names) {
                tuples[i] = new PVTuple(name, true);
                pvTupleList.add(tuples[i]);
                i++;
            }

            refreshTableViewerFromAction(tuples);
        }

        @Override
        public void dropAccept(DropTargetEvent event) {
        }
    });

    return viewer;
}

From source file:org.csstudio.sds.ui.internal.dynamicswizard.SimpleChannelPage.java

License:Open Source License

/**
 * Creates a table viewer, which enables the user to enter typed input
 * channels.//from w  w  w  .j  a v a  2 s. c o  m
 *
 * @param parent
 *            the parent composite
 *
 * @return the created viewer
 */
private TableViewer createInputChannelsTable(final Composite parent) {
    final Group group = new Group(parent, SWT.NONE);
    group.setLayout(LayoutUtil.createGridLayout(1, 0, 0, 0));
    group.setText("Input Channels");
    group.setLayoutData(LayoutUtil.createGridDataForHorizontalFillingCell(300));

    final TableViewer viewer = createChannelTable(group);

    // enable Tooltip support
    ColumnViewerToolTipSupport.enableFor(viewer, ToolTip.NO_RECREATE);

    // cell modifiers
    final ICellModifier cellModifier = new ChannelTableCellModifier() {
        @Override
        protected void setChannelHook(final ParameterDescriptor descriptor, final String channel) {
            if (_isLinkOutput) {
                if (_dynamicsDescriptor.getOutputChannel() != null
                        && _dynamicsDescriptor.getOutputChannel().equals(descriptor)) {
                    _dynamicsDescriptor.getOutputChannel().setChannel(channel);
                }
            }

            viewer.setSelection(null);
        }

    };

    viewer.setCellModifier(cellModifier);

    viewer.setContentProvider(new ChannelTableContentProvider());
    viewer.setLabelProvider(new ChannelTableLabelProvider());

    // Input aufbereiten
    _inputChannelTableModel = createChannelTableModel(_dynamicsDescriptor);
    viewer.setInput(_inputChannelTableModel);

    createPopupMenu(viewer.getControl());
    return viewer;
}

From source file:org.csstudio.sds.ui.internal.dynamicswizard.SimpleChannelPage.java

License:Open Source License

/**
 * Creates a table viewer for managing channels.
 *
 * @param parent//from  www . ja v  a2 s .c om
 *            The parent composite.
 *
 * @return The created viewer.
 */
private TableViewer createChannelTable(final Composite parent) {
    // define column names
    final String[] columnNames = new String[] { "PROP_DESCRIPTION", "PROP_NAME", "PROP_VALUE" }; //$NON-NLS-1$ //$NON-NLS-2$

    // create table
    final Table table = new Table(parent,
            SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.DOUBLE_BUFFERED | SWT.SCROLL_PAGE);
    table.setLinesVisible(true);
    table.setLayoutData(LayoutUtil.createGridDataForFillingCell());
    table.setHeaderVisible(true);

    // create viewer
    final TableViewer viewer = new TableViewer(table);

    TableViewerColumn tvColumn;
    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Description");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(200);
    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Channel");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(300);
    EditingSupport editingSupport = new CustomEditingSupport(viewer, table, true);
    tvColumn.setEditingSupport(editingSupport);
    tvColumn = new TableViewerColumn(viewer, SWT.NONE);
    tvColumn.getColumn().setText("Default Value");
    tvColumn.getColumn().setMoveable(false);
    tvColumn.getColumn().setWidth(200);
    editingSupport = new CustomEditingSupport(viewer, table, false);
    tvColumn.setEditingSupport(editingSupport);

    viewer.setUseHashlookup(true);

    // define column properties
    viewer.setColumnProperties(columnNames);

    // configure keyboard support
    final TableViewerFocusCellManager focusCellManager = new TableViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer));

    final ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(viewer) {
        @Override
        protected boolean isEditorActivationEvent(final ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || event.eventType == ColumnViewerEditorActivationEvent.MOUSE_DOUBLE_CLICK_SELECTION
                    || event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.F2
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;
        }
    };

    TableViewerEditor.create(viewer, focusCellManager, actSupport,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    // DnD
    ProcessVariableExchangeUtil.addProcessVariableAddressDropSupport(viewer.getControl(),
            DND.DROP_MOVE | DND.DROP_COPY, new IProcessVariableAdressReceiver() {
                public void receive(final IProcessVariableAddress[] pvs, final DropTargetEvent event) {
                    for (final IProcessVariableAddress pv : pvs) {
                        addInputChannel(pv.getFullName());
                    }
                }
            }, new IShowControlSystemDialogStrategy() {

                public boolean showControlSystem(final String rawName) {
                    // only popup the dialog if there are no aliases used
                    // within the raw string
                    final boolean show = ChannelReferenceValidationUtil.getRequiredAliasNames(rawName)
                            .isEmpty();
                    return show;
                }

            });

    ProcessVariableExchangeUtil.addProcessVariableAdressDragSupport(viewer.getControl(),
            DND.DROP_MOVE | DND.DROP_COPY, new IProcessVariableAdressProvider() {
                @Override
                public List<IProcessVariableAddress> getProcessVariableAdresses() {
                    final List<ParameterDescriptor> parameterDescriptors = SelectionUtil.getInstance()
                            .getObjectsFromSelection(viewer.getSelection());

                    final List<IProcessVariableAddress> result = new ArrayList<IProcessVariableAddress>();

                    for (final ParameterDescriptor d : parameterDescriptors) {
                        final IProcessVariableAddress pv = ProcessVariableAdressFactory.getInstance()
                                .createProcessVariableAdress(d.getChannel());
                        result.add(pv);
                    }
                    return result;
                }

                @Override
                public IProcessVariableAddress getPVAdress() {
                    final List<IProcessVariableAddress> all = getProcessVariableAdresses();
                    if (all.size() > 0) {
                        return all.get(0);
                    }
                    return null;
                }

            });

    return viewer;
}

From source file:org.csstudio.sds.ui.internal.statistics.PerformanceMeasuresView.java

License:Open Source License

/**
 * {@inheritDoc}//  w w  w  .j  a  va  2 s.co  m
 */
@Override
public void createPartControl(final Composite parent) {
    parent.setLayout(LayoutUtil.createGridLayout(1, 0, 10, 10));

    // create a table viewer, which displays the current measures
    final TableViewer measureResultsViewer = createMeasureResultsTable(parent);

    // create a button, which resets the statistics
    Button resetStatisticButton = new Button(parent, SWT.NONE);
    resetStatisticButton.setText("Reset");
    resetStatisticButton.addMouseListener(new MouseAdapter() {

        @Override
        public void mouseDown(final MouseEvent e) {
            StatisticUtil.getInstance().init();
            measureResultsViewer.refresh();
        }

    });

    final Display display = Display.getCurrent();
    final Job job = new Job("Long Running Job") {
        @Override
        protected IStatus run(final IProgressMonitor monitor) {
            try {
                display.asyncExec(new Runnable() {
                    public void run() {
                        if (!measureResultsViewer.getControl().isDisposed()) {
                            measureResultsViewer.refresh();
                        }
                    }

                });

                return Status.OK_STATUS;
            } finally {
                schedule(500);
            }
        }
    };

    // job.setSystem(true);
    job.schedule();

}

From source file:org.dawnsci.commandserver.ui.dialog.PropertiesDialog.java

License:Open Source License

protected Control createDialogArea(Composite parent) {

    // create a composite with standard margins and spacing
    Composite composite = (Composite) super.createDialogArea(parent);
    composite.setLayout(new GridLayout(1, false));

    final CLabel warning = new CLabel(composite, SWT.LEFT);
    warning.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    warning.setImage(Activator.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/error.png").createImage());
    warning.setText("Expert queue configuration parameters, please use with caution.");

    TableViewer viewer = new TableViewer(composite,
            SWT.FULL_SELECTION | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
    viewer.setUseHashlookup(true);/*  ww w.j av  a 2  s  .  co  m*/
    viewer.getTable().setHeaderVisible(true);
    viewer.getControl().setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    createColumns(viewer);
    viewer.setContentProvider(createContentProvider());

    viewer.setInput(props);

    final Button adv = new Button(composite, SWT.PUSH);
    adv.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
    adv.setText("Advanced...");

    adv.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            PreferenceDialog pref = PreferencesUtil.createPreferenceDialogOn(getShell(),
                    "org.dawnsci.commandserver.ui.activemqPage", null, null);
            if (pref != null)
                pref.open();
        }
    });

    return composite;
}