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

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

Introduction

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

Prototype

public Table getTable() 

Source Link

Document

Returns this table viewer's table control.

Usage

From source file:cn.dockerfoundry.ide.eclipse.server.ui.internal.CloudRoutePart.java

License:Open Source License

public void addColumns(final TableViewer tableViewer) {

    final Table table = tableViewer.getTable();
    table.setHeaderVisible(true);/*from w w  w  . j  av  a  2s .  c  o m*/

    int columnIndex = 0;

    List<String> columnProperties = new ArrayList<String>();
    TableColumn sortColumn = null;
    for (RouteColumn clm : RouteColumn.values()) {
        TableColumn tableColumn = new TableColumn(table, SWT.NONE, columnIndex++);
        tableColumn.setText(clm.getName());
        tableColumn.setWidth(clm.getWidth());
        tableColumn.setData(clm);
        columnProperties.add(clm.getName());
        tableColumn.addSelectionListener(new ColumnSortListener(tableViewer) {

            protected void refresh() {
                refreshAll();
            }

        });

        if (sortColumn == null) {
            sortColumn = tableColumn;
        }
    }

    if (sortColumn != null) {
        table.setSortColumn(sortColumn);
        table.setSortDirection(SWT.UP);
    }
    tableViewer.setColumnProperties(columnProperties.toArray(new String[0]));

}

From source file:cn.dockerfoundry.ide.eclipse.server.ui.internal.editor.ApplicationDetailsPart.java

License:Open Source License

protected void resizeTableColumns() {
    if (initialTableResized) {
        return;//w w  w .  ja  v  a 2s. com
    }

    List<TableViewer> tableViewers = new ArrayList<TableViewer>();

    if (servicesViewer != null) {
        tableViewers.add(servicesViewer);
    }

    if (instancesViewer != null) {
        tableViewers.add(instancesViewer);
    }

    for (TableViewer tableViewer : tableViewers) {
        Table table = tableViewer.getTable();
        Composite tableComposite = table.getParent();
        Rectangle tableCompositeArea = tableComposite.getClientArea();
        int tableWidth = tableCompositeArea.width;
        TableColumn[] tableColumns = table.getColumns();

        if (tableColumns.length == 0) {
            continue;
        }

        int totalColumnWidths = 0;

        // resize only if there is empty space at the end of the table
        for (TableColumn column : tableColumns) {
            totalColumnWidths += column.getWidth();
        }

        if (totalColumnWidths < tableWidth) {

            // If a successful resize, do not attempt to resize on
            // subsequent
            // refreshes.
            initialTableResized = true;

            // resize the last one column such that the last column width
            // takes up all the empty space
            TableColumn lastColumn = tableColumns[tableColumns.length - 1];
            int newWidth = (tableWidth - totalColumnWidths) + lastColumn.getWidth();
            lastColumn.setWidth(newWidth);
        }
    }
}

From source file:cn.dockerfoundry.ide.eclipse.server.ui.internal.editor.ServiceViewerConfigurator.java

License:Open Source License

/**
 * This must be called before setting the viewer input
 * @param tableViewer//w  w w. j  a  v  a 2  s  .  co  m
 */
public void configureViewer(final TableViewer tableViewer) {

    final Table table = tableViewer.getTable();
    table.setHeaderVisible(true);

    int columnIndex = 0;
    ServiceViewColumnDescriptor descriptor = ServiceViewColumn.getServiceViewColumnDescriptor();

    ServiceViewColumn[] columns = descriptor != null ? descriptor.getServiceViewColumn() : null;

    if (columns == null) {
        return;
    }

    String[] columnProperties = new String[columns.length];
    TableColumn sortColumn = null;
    for (ServiceViewColumn column : columns) {
        columnProperties[columnIndex] = column.name();
        TableColumn tableColumn = new TableColumn(table, SWT.NONE, columnIndex++);
        tableColumn.setData(column);
        tableColumn.setText(column.name());
        tableColumn.setWidth(column.getWidth());
        tableColumn.addSelectionListener(new ColumnSortListener(tableViewer));

        if (column == ServiceViewColumn.Alias) {
            sortColumn = tableColumn;
        }

    }

    // Add a control listener to resize the columns such that there is no
    // empty space
    // after the last column
    if (addAutomaticViewerResizing) {
        table.getParent().addControlListener(new ControlAdapter() {
            public void controlResized(ControlEvent e) {
                Composite tableComposite = tableViewer.getTable().getParent();
                Rectangle tableCompositeArea = tableComposite.getClientArea();
                int width = tableCompositeArea.width;
                resizeTableColumns(width, table);
            }
        });
    }

    tableViewer.setColumnProperties(columnProperties);

    if (sortColumn != null) {
        table.setSortColumn(sortColumn);
        table.setSortDirection(SWT.UP);
    }
}

From source file:com.agynamix.simidude.clipboard.ClipboardTable.java

License:Open Source License

private TableViewer createTableViewer(final Composite parent) {
    tableParent = parent;/*  ww  w  .  j a  v a  2 s.  com*/
    final TableViewer tableViewer = new TableViewer(tableParent,
            SWT.SINGLE | SWT.FULL_SELECTION | SWT.HIDE_SELECTION | SWT.FLAT | SWT.BORDER | SWT.V_SCROLL);

    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(false);

    ColumnViewerToolTipSupport.enableFor(tableViewer, ToolTip.NO_RECREATE);

    final OptimizedIndexSearcher searcher = new OptimizedIndexSearcher();

    itemColumn = new TableViewerColumn(tableViewer, SWT.LEFT, NAME_COL);
    itemColumn.getColumn().setText("Item");
    itemColumn.setLabelProvider(new ColumnLabelProvider() {
        boolean even = true;
        Color oddColor = null;

        @Override
        public String getText(Object element) {
            String text = "";
            IClipboardItem item = (IClipboardItem) element;
            text = item.getShortDescription();
            return text;
        }

        @Override
        /**
         * Display an icon depending of the type of clipboard entry.
         */
        public Image getImage(Object element) {
            return ((IClipboardItem) element).getImage();
        }

        public Color getBackground(Object element) {
            if (even) {
                return null;
            } else {
                if (oddColor == null) {
                    oddColor = PlatformColors.get(PlatformColors.TRANSFER_TABLE_ALT_COLOR);
                }
                return oddColor;
            }
        }

        public String getToolTipText(Object element) {
            IClipboardItem item = (IClipboardItem) element;
            return item.getTooltip();
        }

        public Point getToolTipShift(Object object) {
            return new Point(5, 5);
        }

        public int getToolTipDisplayDelayTime(Object object) {
            return 200;
        }

        public int getToolTipTimeDisplayed(Object object) {
            return 10000;
        }

        public void update(ViewerCell cell) {
            even = searcher.isEven((TableItem) cell.getItem());
            super.update(cell);
        }
    });

    tableViewer.setContentProvider(new ClipboardTableContentProvider());
    //    tableViewer.setLabelProvider(new ClipboardTableLabelProvider());

    tableParent.addControlListener(new ControlAdapter() {
        public void controlResized(ControlEvent e) {
            adjustTableSize();
        }
    });

    tableViewer.getTable().setMenu(createPopupMenu(tableViewer));
    hookListeners(tableViewer);

    return tableViewer;
}

From source file:com.agynamix.simidude.clipboard.ClipboardTable.java

License:Open Source License

private Menu createPopupMenu(final TableViewer tableViewer) {
    final Menu pop = new Menu(tableViewer.getTable().getShell(), SWT.POP_UP);
    final MenuItem activateItem = new MenuItem(pop, SWT.PUSH);
    activateItem.setText("Copy Item to Clipboard");
    activateItem.setImage(PlatformIcons.get(PlatformIcons.ACTIVATE_TABLE_ENTRY));
    activateItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    IClipboardItem item = (IClipboardItem) selection[0].getData();
                    //              System.out.println("Selected: "+ti[0].getText()+", Index: "+tableViewer.getTable().getSelectionIndex());
                    sourceDataManager.activateItem(item);
                }/*from   www. j  a  v a  2s .co  m*/
            }
        }
    });

    new MenuItem(pop, SWT.SEPARATOR);

    final MenuItem openWithItem = new MenuItem(pop, SWT.PUSH);
    openWithItem.setText("Open With Standard Application");
    openWithItem.setImage(PlatformIcons.get(PlatformIcons.OPEN_TABLE_ENTRY));
    openWithItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    IClipboardItem item = (IClipboardItem) selection[0].getData();
                    openSelectedEntry(item);
                }
            }
        }
    });

    final MenuItem downloadContentsItem = new MenuItem(pop, SWT.PUSH);
    downloadContentsItem.setText("Download Contents");
    downloadContentsItem.setImage(PlatformIcons.get(PlatformIcons.DOWNLOAD_CONTENTS_TABLE_ENTRY));
    downloadContentsItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    IClipboardItem item = (IClipboardItem) selection[0].getData();
                    if ((sourceDataManager.isRetrieveContentsNeeded(item))
                            && (!sourceDataManager.isDownloadInProgress(item.getSourceData()))) {
                        ModelProvider mp = ((SimidudeApplicationContext) ApplicationBase.getContext())
                                .getModelProvider();
                        mp.retrieveContentsForProxyObject(item.getSourceData());
                    }
                }
            }
        }
    });

    final MenuItem saveEntryAsItem = new MenuItem(pop, SWT.PUSH);
    saveEntryAsItem.setText("Save As...");
    saveEntryAsItem.setImage(PlatformIcons.get(PlatformIcons.SAVE_CONTENTS_AS_TABLE_ENTRY));
    saveEntryAsItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    final IClipboardItem item = (IClipboardItem) selection[0].getData();
                    if (item != null) {
                        sourceDataManager.saveClipboardItemAs(item, false);
                    }
                }
            }
        }
    });

    final MenuItem saveEntryAsCompressedItem = new MenuItem(pop, SWT.PUSH);
    saveEntryAsCompressedItem.setText("Save Compressed...");
    saveEntryAsCompressedItem.setImage(PlatformIcons.get(PlatformIcons.SAVE_CONTENTS_AS_TABLE_ENTRY));
    saveEntryAsCompressedItem.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    final IClipboardItem item = (IClipboardItem) selection[0].getData();
                    if (item != null) {
                        sourceDataManager.saveClipboardItemAs(item, true);
                    }
                }
            }
        }
    });

    new MenuItem(pop, SWT.SEPARATOR);
    final MenuItem removeSelectedEntry = new MenuItem(pop, SWT.PUSH);
    removeSelectedEntry.setText("Remove Selected Item");
    removeSelectedEntry.setImage(PlatformIcons.get(PlatformIcons.REMOVE_SELECTED_CLIPBOARD_ENTRY));
    removeSelectedEntry.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    IClipboardItem item = (IClipboardItem) selection[0].getData();
                    sourceDataManager.removeItem(item);
                }
            }
        }
    });

    new MenuItem(pop, SWT.SEPARATOR);
    final MenuItem debugSelectedEntry = new MenuItem(pop, SWT.PUSH);
    debugSelectedEntry.setText("Output Debug Info for Entry");
    debugSelectedEntry.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            if (e.getSource() instanceof MenuItem) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    IClipboardItem item = (IClipboardItem) selection[0].getData();
                    SimpleInformationViewerDialog d = new SimpleInformationViewerDialog(tableParent.getShell(),
                            "Clipboard Entry Debug Info",
                            "Output debug information for this clipboard entry that helps diagnosing potential problems.",
                            new ClipboardItemDebugInfo(item).toString());
                    d.open();
                }
            }
        }
    });

    pop.addListener(SWT.Show, new Listener() {
        public void handleEvent(Event event) {
            downloadContentsItem.setEnabled(false);
            activateItem.setEnabled(false);
            int idx = tableViewer.getTable().getSelectionIndex();
            if (idx > -1) {
                IClipboardItem item = sourceDataManager.getClipboardItem(idx);
                if ((sourceDataManager.isRetrieveContentsNeeded(item))
                        && (!sourceDataManager.isDownloadInProgress(item.getSourceData()))) {
                    // Prfen, ob fr dieses Item ein Download in Progress ist. Nur falls nicht auf true setzen.
                    downloadContentsItem.setEnabled(true);
                }
                activateItem.setEnabled(true);
            }
        }
    });

    return pop;
}

From source file:com.agynamix.simidude.clipboard.ClipboardTable.java

License:Open Source License

private void hookListeners(final TableViewer tableViewer) {
    //    tableViewer.addDoubleClickListener(new IDoubleClickListener(){
    //      public void doubleClick(DoubleClickEvent event)
    //      {//from www. j a  v  a 2 s.  co m
    //        TableItem[] tableItems = tableViewer.getTable().getSelection();
    //        if ((tableItems != null) && (tableItems.length > 0))
    //        {
    //          IClipboardItem item = (IClipboardItem) tableItems[0].getData();
    //          sourceDataManager.activateItem(item); 
    //        }
    //      }
    //    });

    tableViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            if (event.getSelection() instanceof StructuredSelection) {
                StructuredSelection sel = (StructuredSelection) event.getSelection();
                IClipboardItem item = (IClipboardItem) sel.getFirstElement();
                if (SimidudeUtils.isModifierKeyPressed()) {
                    sourceDataManager.activateItem(item);
                } else {
                    openSelectedEntry(item);
                }
            }
        }
    });

    tableViewer.getTable().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if ((e.keyCode == SWT.DEL) || (e.keyCode == KEY_BACKSPACE)) {
                TableItem[] selection = tableViewer.getTable().getSelection();
                if ((selection != null) && (selection.length > 0)) {
                    int currentSelectionIndex = sourceDataManager.getSelectionIndex();
                    IClipboardItem item = (IClipboardItem) selection[0].getData();
                    boolean isNetworkRemove = SimidudeUtils.isModifierKeyPressed();
                    sourceDataManager.removeItem(item);
                    if ((isNetworkRemove) && (item != null)) {
                        ((SimidudeApplicationContext) ApplicationBase.getContext()).getModelProvider()
                                .networkRemoveItem(item.getSourceData().getStub());
                    }
                    if (e.keyCode == KEY_BACKSPACE) {
                        sourceDataManager.selectPreviousEntry(currentSelectionIndex);
                    } else {
                        sourceDataManager.saveSelectEntry(currentSelectionIndex);
                    }
                }
            }
        }
    });
}

From source file:com.android.traceview.PropertiesDialog.java

License:Apache License

@Override
protected Control createDialogArea(Composite parent) {
    Composite container = (Composite) super.createDialogArea(parent);
    GridLayout gridLayout = new GridLayout(1, false);
    gridLayout.marginWidth = 0;/*from  w  ww .j a  v a2 s .c  o  m*/
    gridLayout.marginHeight = 0;
    gridLayout.horizontalSpacing = 0;
    gridLayout.verticalSpacing = 0;
    container.setLayout(gridLayout);

    TableViewer tableViewer = new TableViewer(container, SWT.HIDE_SELECTION | SWT.V_SCROLL | SWT.BORDER);
    tableViewer.getTable().setLinesVisible(true);
    tableViewer.getTable().setHeaderVisible(true);

    TableViewerColumn propertyColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    propertyColumn.getColumn().setText("Property");
    propertyColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        @SuppressWarnings("unchecked")
        public String getText(Object element) {
            Entry<String, String> entry = (Entry<String, String>) element;
            return entry.getKey();
        }
    });
    propertyColumn.getColumn().setWidth(400);

    TableViewerColumn valueColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    valueColumn.getColumn().setText("Value");
    valueColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        @SuppressWarnings("unchecked")
        public String getText(Object element) {
            Entry<String, String> entry = (Entry<String, String>) element;
            return entry.getValue();
        }
    });
    valueColumn.getColumn().setWidth(200);

    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setInput(mProperties.entrySet().toArray());

    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.FILL;
    gridData.horizontalAlignment = GridData.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    tableViewer.getControl().setLayoutData(gridData);

    return container;
}

From source file:com.apicloud.navigator.dialogs.AddFeatureDialog.java

License:Open Source License

private TableViewer createTable(TabFolder tabFolder, TabItem systemItem) {
    TableViewer tableViewer = new TableViewer(tabFolder, SWT.BORDER | SWT.FULL_SELECTION);
    final Table table = tableViewer.getTable();
    table.addListener(SWT.MeasureItem, new Listener() {
        @Override/*from  w ww. ja v a2 s  .  com*/
        public void handleEvent(Event event) {
            event.height = 30;

        }
    });
    table.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {

            TableItem[] ti = table.getSelection();
            Feature f = (Feature) ti[0].getData();
            selectFeature = f;
            lblParamkey.setText("       urlScheme");
            lblParamvalue.setText("     apiKey");
            if (f.getName().equals("weiXin") || f.getName().equals("sinaWeiBo") || f.getName().equals("qq")) {
                lblParamkey.setVisible(true);
                text_urlScheme.setVisible(true);
                lblParamvalue.setVisible(true);
                text_apiKey.setVisible(true);
            } else if (f.getName().equals("baiduLocation")) {
                lblParamkey.setVisible(false);
                text_urlScheme.setVisible(false);
                lblParamvalue.setVisible(true);
                text_apiKey.setVisible(true);
            } else if (f.getName().equals("aliPay")) {
                lblParamkey.setVisible(true);
                text_urlScheme.setVisible(true);
                lblParamvalue.setVisible(false);
                text_apiKey.setVisible(false);
            } else if (f.getName().equals("baiduMap")) {
                lblParamkey.setText("androidAPIKey");
                lblParamvalue.setText("iosAPIKey");
                lblParamkey.setVisible(true);
                text_urlScheme.setVisible(true);
                lblParamvalue.setVisible(true);
                text_apiKey.setVisible(true);
            } else {
                lblParamkey.setVisible(false);
                text_urlScheme.setVisible(false);
                lblParamvalue.setVisible(false);
                text_apiKey.setVisible(false);
            }

        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {

        }
    });
    systemItem.setControl(tableViewer.getTable());
    TableViewerColumn tableViewerColumn_name = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tableColumn_name = tableViewerColumn_name.getColumn();
    tableColumn_name.setWidth(150);
    tableViewerColumn_name.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Feature) element).getName();
        }

    });

    TableViewerColumn tableViewerColumn_desc = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tableColumn_desc = tableViewerColumn_desc.getColumn();
    tableColumn_desc.setWidth(310);
    tableViewerColumn_desc.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Feature) element).getDesc();
        }

    });
    TableViewerColumn tableViewerColumn_ios = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tableColumn_ios = tableViewerColumn_ios.getColumn();
    tableColumn_ios.setWidth(20);
    tableViewerColumn_ios.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return null;
        }

        @Override
        public Image getImage(Object element) {
            return ((Feature) element).isIos() ? AuthenticActivator.getImage("icons/ios.png")
                    : super.getImage(element);
        }
    });

    TableViewerColumn tableViewerColumn_android = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tableColumn_android = tableViewerColumn_android.getColumn();
    tableColumn_android.setWidth(20);
    tableViewerColumn_android.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            return null;
        }

        @Override
        public Image getImage(Object element) {
            return ((Feature) element).isAndroid() ? AuthenticActivator.getImage("icons/android.png")
                    : super.getImage(element);
        }
    });

    tableViewer.setContentProvider(new ArrayContentProvider());
    return tableViewer;
}

From source file:com.apicloud.navigator.ui.wizards.TempleteFarmeWizardPage.java

License:Open Source License

private TableViewer createTable(Composite tabFolder) {
    TableViewer tableViewer = new TableViewer(tabFolder, SWT.BORDER | SWT.FULL_SELECTION);
    final Table table = tableViewer.getTable();
    table.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    table.addListener(SWT.MeasureItem, new Listener() {
        @Override//from   ww w .ja v a 2 s  .  com
        public void handleEvent(Event event) {
            event.height = 30;

        }
    });
    table.addSelectionListener(new SelectionListener() {

        @Override
        public void widgetSelected(SelectionEvent e) {

            TableItem[] ti = table.getSelection();
            page = (APICloudPage) ti[0].getData();
            lblNewLabel_3.setImage(AuthenticActivator.getImage(page.getReViewImage()));
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {

        }
    });
    TableViewerColumn tableViewerColumn_name = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn tableColumn_name = tableViewerColumn_name.getColumn();
    tableColumn_name.setWidth(300);
    tableViewerColumn_name.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((APICloudPage) element).getName();
        }

    });

    tableViewer.setContentProvider(new ArrayContentProvider());
    return tableViewer;
}

From source file:com.application.areca.launcher.gui.AboutWindow.java

License:Open Source License

private void initPluginsContent(Composite composite) {
    Link lnk0 = new Link(composite, SWT.NONE);
    lnk0.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            try {
                ViewerHandlerHelper.getViewerHandler().browse(new URL(event.text));
            } catch (Exception e) {
                Logger.defaultLogger().error(e);
            }/* ww  w  .ja v a  2 s. com*/
        }
    });
    lnk0.setText("<A HREF=\"" + ArecaURLs.PLUGINS_URL + "\">" + RM.getLabel("plugins.getmore.label") + "</A>");
    lnk0.setLayoutData(new GridData(SWT.CENTER, SWT.BOTTOM, false, false));

    TableViewer viewer = new TableViewer(composite, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    Table tblProc = viewer.getTable();

    GridLayout layout = new GridLayout();
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    composite.setLayout(layout);

    GridData dt = new GridData();
    dt.grabExcessHorizontalSpace = true;
    dt.grabExcessVerticalSpace = true;
    dt.verticalAlignment = SWT.FILL;
    dt.horizontalAlignment = SWT.FILL;
    dt.heightHint = heightHint;
    dt.widthHint = widthHint;

    tblProc.setLayoutData(dt);

    TableColumn col1 = new TableColumn(tblProc, SWT.NONE);
    col1.setText(RM.getLabel("plugins.name.label"));
    col1.setWidth(AbstractWindow.computeWidth(130));
    col1.setMoveable(true);

    TableColumn col2 = new TableColumn(tblProc, SWT.NONE);
    col2.setText(RM.getLabel("plugins.version.label"));
    col2.setWidth(AbstractWindow.computeWidth(70));
    col2.setMoveable(true);

    TableColumn col3 = new TableColumn(tblProc, SWT.NONE);
    col3.setText(RM.getLabel("plugins.location.label"));
    col3.setWidth(AbstractWindow.computeWidth(140));
    col3.setMoveable(true);

    TableColumn col4 = new TableColumn(tblProc, SWT.NONE);
    col4.setText(RM.getLabel("plugins.description.label"));
    col4.setWidth(AbstractWindow.computeWidth(200));
    col4.setMoveable(true);

    tblProc.setHeaderVisible(true);
    tblProc.setLinesVisible(AbstractWindow.getTableLinesVisible());

    Iterator iter = PluginRegistry.getInstance().getAll(Plugin.class, true).iterator();
    while (iter.hasNext()) {
        Plugin plg = (Plugin) iter.next();

        TableItem item = new TableItem(tblProc, SWT.NONE);
        item.setText(0, plg.getFullName());
        item.setText(1, plg.getVersionData().getVersionId());

        String path = plg.getPath() != null ? plg.getPath() : RM.getLabel("plugins.internal.label");
        item.setText(2, path);
        item.setText(3, plg.getDescription() == null ? plg.getFullName() : plg.getDescription());
    }

    Link lnk = DonationLink.build(composite);
    lnk.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
}