Example usage for org.eclipse.jface.viewers TableViewerColumn TableViewerColumn

List of usage examples for org.eclipse.jface.viewers TableViewerColumn TableViewerColumn

Introduction

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

Prototype

public TableViewerColumn(TableViewer viewer, TableColumn column) 

Source Link

Document

Creates a new viewer column for the given TableViewer on the given TableColumn .

Usage

From source file:au.gov.ga.earthsci.retrieve.part.RetrievePart.java

License:Apache License

private void createColumns() {
    TableViewerColumn column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("URL");
    column.getColumn().setWidth(300);//from   w w w  . j a v a 2s.c o  m
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            return retrieval.getURL().toString();
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Caller(s)");
    column.getColumn().setWidth(200);
    column.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            IRetrieval retrieval = (IRetrieval) element;
            StringBuilder sb = new StringBuilder();
            for (Object caller : retrieval.getCallers()) {
                sb.append(", " + caller.toString()); //$NON-NLS-1$
            }
            if (sb.length() == 0) {
                return sb.toString();
            }
            return sb.substring(2);
        }
    });

    column = new TableViewerColumn(viewer, SWT.NONE);
    column.getColumn().setText("Progress");
    column.getColumn().setWidth(150);
    column.setLabelProvider(new OwnerDrawLabelProvider() {
        @Override
        protected void paint(Event event, Object element) {
            GC gc = event.gc;
            Color foreground = gc.getForeground();
            Color background = gc.getBackground();

            IRetrieval retrieval = (IRetrieval) element;
            float percentage = Math.max(0, retrieval.getPercentage());
            String text = positionString(retrieval);

            Rectangle bounds = ((TableItem) event.item).getBounds(event.index);
            int width = (int) ((bounds.width - 1) * percentage);
            gc.setBackground(DOWNLOAD_BACKGROUND_COLOR);
            gc.fillRectangle(event.x, event.y, width, event.height);

            Point size = event.gc.textExtent(text);
            int offset = Math.max(0, (event.height - size.y) / 2);
            gc.setForeground(Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND));
            gc.drawText(text, event.x + 2, event.y + offset, true);

            gc.setForeground(background);
            gc.setBackground(foreground);
        }

        @Override
        protected void measure(Event event, Object element) {
        }
    });
}

From source file:bndtools.release.ui.ProjectListControl.java

License:Open Source License

private void createTableLayout(Composite parent) {

    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));

    // Add TableColumnLayout
    TableColumnLayout layout = new TableColumnLayout();
    composite.setLayout(layout);/*w  w  w . j  av a  2s .co m*/

    // Instantiate TableViewer
    projects = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
    projects.setHeaderVisible(true);
    projects.setLinesVisible(true);
    projects.addSelectionListener(new SelectionListener() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            selectionListener.widgetSelected(e);
        }

        @Override
        public void widgetDefaultSelected(SelectionEvent e) {
            selectionListener.widgetDefaultSelected(e);
        }
    });
    tableViewer = new CheckboxTableViewer(projects);
    tableViewer.setUseHashlookup(true);

    // Project
    TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.LEFT);
    TableColumn tableCol = tableViewerColumn.getColumn();
    layout.setColumnData(tableCol, new ColumnWeightData(60, 100, true));
    tableCol.setText(Messages.project1);

    // Repository
    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.LEFT);
    tableCol = tableViewerColumn.getColumn();
    layout.setColumnData(tableCol, new ColumnWeightData(26, 80, true));
    tableCol.setText(Messages.repository);
    tableViewerColumn.setEditingSupport(new InlineComboEditingSupport(tableViewer));

    // Bundles
    tableViewerColumn = new TableViewerColumn(tableViewer, SWT.CENTER);
    tableCol = tableViewerColumn.getColumn();
    layout.setColumnData(tableCol, new ColumnWeightData(14, 35, true));
    tableCol.setText(Messages.bundles);

    contentProvider = new ContentProvider();
    tableViewer.setContentProvider(contentProvider);
    tableViewer.setLabelProvider(new TableLabelProvider());
    tableViewer.setColumnProperties(columnNames);
    tableViewer.setCheckStateProvider(new ICheckStateProvider() {

        @Override
        public boolean isGrayed(Object element) {
            return false;
        }

        @Override
        public boolean isChecked(Object element) {
            ProjectDiff diff = (ProjectDiff) element;
            return diff.isRelease();
        }
    });

    projects.pack();

    TableSortingEnabler.applyTableColumnSorting(tableViewer);
}

From source file:br.ufes.inf.nemo.oled.validator.antipattern.AntiPatternResultDialog.java

License:Open Source License

private TableViewerColumn createTableViewerColumn(String title, int bound, final int colNumber) {
    final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.NONE);
    final TableColumn column = viewerColumn.getColumn();
    column.setText(title);/*from  ww  w  .  j av  a2s. c o  m*/
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    return viewerColumn;
}

From source file:ca.uvic.chisel.javasketch.persistence.ui.internal.FiltersComposite.java

License:Open Source License

/**
 * @param group/*  w  w  w .  j  a v  a  2s .c o  m*/
 * @return
 */
private TableViewer createTableArea(Group group) {
    group.setLayout(new GridLayout(3, false));
    final Text addText = new Text(group, SWT.SINGLE | SWT.BORDER);
    addText.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
    final Button addButton = new Button(group, SWT.PUSH);
    addButton.setText("Add");
    addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
    Button removeButton = new Button(group, SWT.PUSH);
    removeButton.setText("Remove");
    addButton.setLayoutData(new GridData(GridData.FILL, GridData.FILL, false, false));
    TableViewer tableViewer = new TableViewer(group);
    tableViewer.getTable().setLinesVisible(true);
    GridData tableData = new GridData(GridData.FILL, GridData.FILL, true, true);
    tableData.horizontalSpan = 3;
    tableViewer.getTable().setLayoutData(tableData);
    //      TableLayout tl = new TableLayout();
    //      tableViewer.getTable().setLayout(tl);
    final TableViewerColumn labelColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    labelColumn.setLabelProvider(new SimpleCellLabelProvider());
    tableViewer.setLabelProvider(new SimpleCellLabelProvider());
    tableViewer.setContentProvider(new ArrayContentProvider());
    tableViewer.setInput(new String[0]);
    addText.addModifyListener(
            new AddFilterAssistListener(addButton, new ControlDecoration(addText, SWT.TOP | SWT.LEFT)));
    AddFilterListener addInclusionListener = new AddFilterListener(addText, tableViewer);
    addButton.addSelectionListener(addInclusionListener);
    addButton.addKeyListener(addInclusionListener);
    addText.addFocusListener(new FocusAdapter() {
        @Override
        public void focusGained(FocusEvent e) {
            getShell().setDefaultButton(addButton);
        }
    });
    removeButton.addSelectionListener(new RemoveItemListener(tableViewer));
    try {
        new ContentProposalAdapter(addText, new TextContentAdapter(), new SimpleJavaContentProposalProvider(),
                KeyStroke.getInstance("Ctrl+Space"), new char[] { '.' });
    } catch (ParseException e1) {
    }
    tableViewer.getTable().addControlListener(new ControlAdapter() {
        /* (non-Javadoc)
         * @see org.eclipse.swt.events.ControlAdapter#controlResized(org.eclipse.swt.events.ControlEvent)
         */
        @Override
        public void controlResized(ControlEvent e) {
            labelColumn.getColumn().setWidth(((Table) e.widget).getClientArea().width);
        }
    });
    return tableViewer;
}

From source file:cc.warlock.rcp.prefs.VariablesPreferencePage.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    createProfileDropDown(parent);//from w w  w . ja  v  a  2 s .co  m

    Composite main = new Composite(parent, SWT.NONE);
    main.setLayout(new GridLayout(2, false));

    Composite filterComposite = new Composite(main, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = layout.marginHeight = 0;
    filterComposite.setLayout(layout);
    filterComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    new Label(filterComposite, SWT.NONE).setText("Filter: ");
    filterText = new Text(filterComposite, SWT.BORDER);
    filterText.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            variableTable.refresh();
        }
    });
    filterText.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    new Label(main, SWT.NONE);

    variableTable = new TableViewer(main, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);

    TableViewerColumn varName = new TableViewerColumn(variableTable, SWT.NONE);
    varName.getColumn().setWidth(200);
    varName.getColumn().setText("Variable Name");
    varName.setEditingSupport(new TextEditingSupport(variableTable) {
        protected Object getValue(Object element) {
            return ((Variable) element).getIdentifier();
        }

        protected void setValue(Object element, Object value) {
            ((Variable) element).setIdentifier(value.toString());
            variableTable.refresh(element);
        }
    });

    TableViewerColumn value = new TableViewerColumn(variableTable, SWT.NONE);
    value.getColumn().setWidth(150);
    value.getColumn().setText("Value");
    value.setEditingSupport(new TextEditingSupport(variableTable) {
        protected Object getValue(Object element) {
            return ((Variable) element).getValue();
        }

        protected void setValue(Object element, Object value) {
            ((Variable) element).setValue(value.toString());
            variableTable.refresh(element);
        }
    });
    variableTable.getTable().setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true));
    variableTable.getTable().setHeaderVisible(true);
    variableTable.setUseHashlookup(true);
    variableTable.setContentProvider(ArrayContentProvider.getInstance());
    variableTable.setLabelProvider(new VariableLabelProvider());
    variableTable.addFilter(new ViewerFilter() {
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            Variable var = (Variable) element;

            if (filterText.getText().equals(""))
                return true;

            return (var.getIdentifier().toLowerCase().contains(filterText.getText().toLowerCase())
                    || var.getValue().toLowerCase().contains(filterText.getText().toLowerCase()));
        }
    });
    variableTable.setComparator(new ViewerComparator() {
        public int compare(Viewer viewer, Object e1, Object e2) {
            Variable v1 = (Variable) e1;
            Variable v2 = (Variable) e2;
            return v1.getIdentifier().compareTo(v2.getIdentifier());
        }
    });

    variableTable.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            if (variableTable.getSelection().isEmpty()) {
                currentVariable = null;
                removeButton.setEnabled(false);
            } else {
                currentVariable = (Variable) ((IStructuredSelection) variableTable.getSelection())
                        .getFirstElement();
                removeButton.setEnabled(true);
            }
        }
    });

    int listHeight = variableTable.getTable().getItemHeight() * 8;
    Rectangle trim = variableTable.getTable().computeTrim(0, 0, 0, listHeight);
    GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
    data.heightHint = trim.height;

    variableTable.getTable().setLayoutData(data);

    Composite buttonsComposite = new Composite(main, SWT.NONE);
    buttonsComposite.setLayout(new GridLayout(1, true));
    buttonsComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, true));

    Button addButton = new Button(buttonsComposite, SWT.PUSH);
    addButton.setText("Add Variable");
    addButton.setImage(WarlockSharedImages.getImage(WarlockSharedImages.IMG_ADD));
    addButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            addVariableSelected();
        }
    });
    addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    removeButton = new Button(buttonsComposite, SWT.PUSH);
    removeButton.setText("Remove Variable");
    removeButton.setImage(WarlockSharedImages.getImage(WarlockSharedImages.IMG_REMOVE));
    removeButton.setEnabled(false);
    removeButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            removeVariableSelected();
        }
    });
    removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));

    /*for (IVariable var : settings.getAllVariables())
    {
       if (var instanceof Variable) {
    variables.add(new Variable((Variable)var));
       }
    }*/

    updateData();

    return main;
}

From source file:cc.xuloo.rcputils.tables.ColumnBuilder.java

License:Open Source License

/**
 * Builds the column and returns the TableViewerColumn
 *//*from  www.  j a va2 s.c om*/
public TableViewerColumn build() {
    // create column
    TableViewerColumn viewerColumn = new TableViewerColumn(builder.getTableViewer(), align);
    TableColumn column = viewerColumn.getColumn();
    column.setText(columnHeaderText);

    // set label provider
    if (customLabelProvider != null) {
        if (cellFormatter != null) {
            throw new RuntimeException("If you specify a custom label provider, it is not allowed "
                    + "to specify a cell formatter. You need to do the formatting in your labelprovider!");
        }
        viewerColumn.setLabelProvider(customLabelProvider);
    } else {
        viewerColumn
                .setLabelProvider(new PropertyCellLabelProvider(valueHandler, valueFormatter, cellFormatter));
    }

    // activate column sorting
    if (sortBy == null) {
        sortBy = valueHandler;
    }
    if (sortBy != null) {
        column.setData(SortColumnComparator.SORT_BY, sortBy);
        column.addSelectionListener(builder.getSortSelectionListener());
        if (defaultSort) {
            builder.getTable().setSortColumn(column);
            builder.getTable().setSortDirection(SWT.DOWN);
        }
    }

    // set column layout data
    if (widthPixel != null && widthPercent != null) {
        throw new RuntimeException("You can specify a width in pixel OR in percent, but not both!");
    }
    if (widthPercent == null) {
        // default width of 100px if nothing specified
        builder.getTableLayout().setColumnData(column,
                new ColumnPixelData(widthPixel == null ? 100 : widthPixel));
    } else {
        builder.getTableLayout().setColumnData(column, new ColumnWeightData(widthPercent));
    }

    // set editing support
    if (editor != null) {
        if (valueHandler == null) {
            throw new RuntimeException(
                    "makeEditable() requires that the column is bound to some value using bindTo...()");
        }

        viewerColumn.setEditingSupport(
                new PropertyEditingSupport(builder.getTableViewer(), valueHandler, editorFormat, editor));
    }

    return viewerColumn;
}

From source file:ccw.preferences.HoverPreferencePage.java

License:Open Source License

/**
 * Creates page for hover preferences.//from   ww  w  .  ja  v  a 2  s  .  c om
 *
 * @param parent
 *            the parent composite
 * @return the control for the preference page
 */
public Control createContents(Composite parent) {

    ScrolledPageContent scrolled = new ScrolledPageContent(parent, SWT.H_SCROLL | SWT.V_SCROLL);
    scrolled.setExpandHorizontal(true);
    scrolled.setExpandVertical(true);

    Composite cointainerComposite = new Composite(scrolled, SWT.NONE);
    FillLayout fillLayout = new FillLayout(SWT.VERTICAL);
    cointainerComposite.setLayout(fillLayout);

    // Hover Table
    Composite hoverComposite = new Composite(cointainerComposite, SWT.NONE);

    fHoverTableViewer = CheckboxTableViewer.newCheckList(hoverComposite,
            SWT.H_SCROLL | SWT.V_SCROLL | SWT.SINGLE | SWT.BORDER | SWT.FULL_SELECTION | SWT.CHECK);
    ColumnViewerToolTipSupport.enableFor(fHoverTableViewer, ToolTip.NO_RECREATE);

    // Cell Editor
    fHoverModifierStringTextCellEditor = new TextCellEditor(fHoverTableViewer.getTable());

    // Setup
    fHoverTableViewer.setUseHashlookup(true);
    fHoverTableViewer.getTable().setHeaderVisible(true);
    fHoverTableViewer.getTable().setLinesVisible(true);

    TableColumnLayout layout = new TableColumnLayout();
    hoverComposite.setLayout(layout);

    TableViewerColumn viewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE);
    TableColumn column = viewerColumn.getColumn();
    column.setText(Messages.HoverPreferencePage_labelColumnTitle);
    column.setResizable(true);
    column.setMoveable(true);
    column.setResizable(true);
    layout.setColumnData(column, new ColumnWeightData(35, true));

    fModifierTableViewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE);
    column = fModifierTableViewerColumn.getColumn();
    column.setText(Messages.HoverPreferencePage_modifierColumnTitle);
    column.setResizable(true);
    column.setMoveable(true);
    layout.setColumnData(column, new ColumnWeightData(25, true));

    viewerColumn = new TableViewerColumn(fHoverTableViewer, SWT.NONE);
    column = viewerColumn.getColumn();
    column.setText(Messages.HoverPreferencePage_descriptionColumnTitle);
    column.setResizable(true);
    column.setMoveable(true);
    layout.setColumnData(column, new ColumnWeightData(40, true));

    // Summary
    Composite summaryComposite = new Composite(cointainerComposite, SWT.NONE);
    summaryComposite.setLayout(new FillLayout(SWT.HORIZONTAL));

    fGrpSummary = new Group(summaryComposite, SWT.NONE);
    GridLayout gridLayout = new GridLayout(2, false);
    gridLayout.marginLeft = 4;
    gridLayout.marginRight = 4;
    gridLayout.horizontalSpacing = 8;
    gridLayout.verticalSpacing = 8;
    gridLayout.marginTop = 4;
    gridLayout.marginHeight = 0;
    gridLayout.marginWidth = 0;
    fGrpSummary.setLayout(gridLayout);

    // Summary Label
    fSummaryHoverNameLabel = new Label(fGrpSummary, SWT.HORIZONTAL);
    GridData fieldLayoutData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    fieldLayoutData.widthHint = 120;
    fSummaryHoverNameLabel.setLayoutData(fieldLayoutData);

    // Summary Modifier String
    fSummaryHoverModifierStringText = new Text(fGrpSummary, SWT.BORDER);
    fieldLayoutData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
    fieldLayoutData.widthHint = 120;
    fSummaryHoverModifierStringText.setLayoutData(fieldLayoutData);

    // Summary Description
    fSummaryHoverDescriptionLabel = new Label(fGrpSummary, SWT.BORDER | SWT.WRAP);
    fieldLayoutData = new GridData(SWT.FILL, SWT.BEGINNING, true, false);
    fieldLayoutData.heightHint = 100;
    fieldLayoutData.horizontalSpan = 2;
    fSummaryHoverDescriptionLabel.setLayoutData(fieldLayoutData);

    summaryComposite.pack();

    // End Summary

    scrolled.setContent(cointainerComposite);
    final Point size = cointainerComposite.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    scrolled.setMinSize(size.x, size.y);

    Dialog.applyDialogFont(scrolled);

    initDataBindings();

    return scrolled;
}

From source file:ch.acanda.eclipse.pmd.properties.RuleSetConfigurationTable.java

License:Open Source License

public RuleSetConfigurationTable(final Composite parent, final PMDPropertyPageViewModel model) {
    super(parent, SWT.NONE);
    this.model = model;

    setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 2));
    final TableColumnLayout tableColumnLayout = new TableColumnLayout();
    setLayout(tableColumnLayout);/* w w w .  ja  va2s. c  o m*/

    tableViewer = CheckboxTableViewer.newCheckList(this, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    table = tableViewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    ColumnViewerToolTipSupport.enableFor(tableViewer, ToolTip.NO_RECREATE);
    SWTBotID.set(table, SWTBotID.RULESETS);

    final TableViewerColumn nameViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    final TableColumn nameColumn = nameViewerColumn.getColumn();
    tableColumnLayout.setColumnData(nameColumn, new ColumnWeightData(1, 50, true));
    nameColumn.setText("Name");
    nameViewerColumn.setLabelProvider(new NameLabelProvider(model));

    final TableViewerColumn typeViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    final TableColumn typeColumn = typeViewerColumn.getColumn();
    tableColumnLayout.setColumnData(typeColumn, new ColumnPixelData(75, true, true));
    typeColumn.setText("Type");
    typeViewerColumn.setLabelProvider(new TypeLabelProvider(model));

    final TableViewerColumn locationViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    final TableColumn locationColumn = locationViewerColumn.getColumn();
    tableColumnLayout.setColumnData(locationColumn, new ColumnWeightData(2, 50, true));
    locationColumn.setText("Location");
    locationViewerColumn.setLabelProvider(new LocationLabelProvider(model));

    initDataBindings();
    initListeners();
}

From source file:ch.acanda.eclipse.pmd.wizard.AddRuleSetConfigurationWizardPage.java

License:Open Source License

@Override
public void createControl(final Composite parent) {
    final Composite container = new Composite(parent, SWT.NULL);
    setControl(container);/*from  w  w  w  .j a  va 2s.co  m*/
    container.setLayout(new GridLayout(3, false));

    final Label lblLocation = new Label(container, SWT.NONE);
    lblLocation.setText("Location:");

    location = new Text(container, SWT.BORDER);
    location.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    SWTBotID.set(location, SWTBotID.LOCATION);

    browse = new Button(container, SWT.NONE);
    browse.setText("Browse...");
    SWTBotID.set(browse, SWTBotID.BROWSE);
    browse.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(final SelectionEvent e) {
            controller.browse(((Control) e.widget).getShell());
        }
    });

    final Label lblName = new Label(container, SWT.NONE);
    lblName.setText("Name:");

    name = new Text(container, SWT.BORDER);
    name.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
    SWTBotID.set(name, SWTBotID.NAME);

    // This button is only here to make this row the same height as the previous row.
    // Without this button the distance between the text of this row and the text of
    // the previous row is much larger than the distance between the text of this row
    // and the table of the next row.
    final Button button = new Button(container, SWT.NONE);
    button.setEnabled(false);
    button.setVisible(false);

    final Label lblRules = new Label(container, SWT.NONE);
    final GridData lblRulesGridData = new GridData(SWT.LEFT, SWT.TOP, false, false);
    lblRulesGridData.verticalIndent = 3;
    lblRules.setLayoutData(lblRulesGridData);
    lblRules.setText("Rules:");

    final Composite tableComposite = new Composite(container, SWT.NONE);
    tableComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    final TableColumnLayout tableCompositeTableColumnLayout = new TableColumnLayout();
    tableComposite.setLayout(tableCompositeTableColumnLayout);

    tableViewer = new TableViewer(tableComposite, SWT.BORDER | SWT.FULL_SELECTION | SWT.HIDE_SELECTION);
    final Table table = tableViewer.getTable();
    table.setLinesVisible(true);
    SWTBotID.set(table, SWTBotID.RULES);

    final TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer, SWT.NONE);
    final TableColumn tblclmnName = tableViewerColumn.getColumn();
    tableCompositeTableColumnLayout.setColumnData(tblclmnName, new ColumnWeightData(1, 200, false));
    tblclmnName.setText("Name");
    new Label(container, SWT.NONE);
    new Label(container, SWT.NONE);
    new Label(container, SWT.NONE);
    new Label(container, SWT.NONE);

    initDataBindings();
}

From source file:ch.elexis.core.ui.contacts.preferences.BezugsKontaktSettings.java

License:Open Source License

@Override
protected Control createContents(Composite parent) {
    updateExistingEntriesIds.clear();/*from   www.j  ava 2  s. com*/
    Composite container = new Composite(parent, SWT.NULL);
    container.setLayout(new GridLayout(1, false));

    Group group = new Group(container, SWT.NONE);
    group.setLayout(new GridLayout(1, false));
    group.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    group.setText(Messages.Bezugskontakt_Definition);

    Composite composite = new Composite(group, SWT.NONE);
    GridData gd_composite = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    gd_composite.heightHint = 300;
    composite.setLayoutData(gd_composite);
    TableColumnLayout tcl_composite = new TableColumnLayout();
    composite.setLayout(tcl_composite);

    tableViewer = new TableViewer(composite, SWT.BORDER | SWT.FULL_SELECTION);
    tableViewer.setContentProvider(ArrayContentProvider.getInstance());

    tableBezugsKontaktRelations = tableViewer.getTable();
    tableBezugsKontaktRelations.setHeaderVisible(true);
    tableBezugsKontaktRelations.setLinesVisible(true);

    if (allowEditing) {
        Menu menu = new Menu(tableBezugsKontaktRelations);
        tableBezugsKontaktRelations.setMenu(menu);

        MenuItem mntmAddBezugsKontaktRelation = new MenuItem(menu, SWT.NONE);
        mntmAddBezugsKontaktRelation.setText(Messages.Bezugskontakt_Add);
        mntmAddBezugsKontaktRelation.setImage(Images.IMG_NEW.getImage());
        mntmAddBezugsKontaktRelation.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                BezugsKontaktRelation bezugsKontaktRelation = new BezugsKontaktRelation("",
                        RelationshipType.AGENERIC, RelationshipType.AGENERIC);
                tableViewer.add(bezugsKontaktRelation);
                tableViewer.setSelection(new StructuredSelection(bezugsKontaktRelation));
            }
        });

        MenuItem mntmRemoveBezugsKontaktRelation = new MenuItem(menu, SWT.NONE);
        mntmRemoveBezugsKontaktRelation.setText(Messages.Bezugskontakt_Delete);
        mntmRemoveBezugsKontaktRelation.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                int selectionsIdx = tableViewer.getTable().getSelectionIndex();
                if (selectionsIdx != -1) {
                    boolean ret = MessageDialog.openQuestion(UiDesk.getTopShell(),
                            Messages.Bezugskontakt_ConfirmDelete, Messages.Bezugskontakt_ConfirmDeleteText);
                    if (ret) {
                        tableViewer.getTable().remove(selectionsIdx);
                    }
                }
            }
        });
    }

    TableViewerColumn viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    TableColumn col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(1, 140));
    col.setText(Messages.BezugsKonktat_Reference);
    col.setToolTipText(Messages.Bezugskontakt_ReferenceTooltip);
    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(s.getName());
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation) {
                String newName = String.valueOf(value);
                BezugsKontaktRelation tableData = null;
                for (TableItem tableItem : tableViewer.getTable().getItems()) {
                    tableData = (BezugsKontaktRelation) tableItem.getData();
                    if (tableData != null && !tableData.equals(element) && !tableData.getName().isEmpty()
                            && newName.equalsIgnoreCase(tableData.getName())) {
                        MessageDialog.openError(UiDesk.getTopShell(), "",
                                Messages.Bezugskontakt_NameMustBeUnique);
                        return;
                    }
                }
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                if (!bezugsKontaktRelation.getName().equals(newName)) {
                    bezugsKontaktRelation.setName(newName);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }

        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                return ((BezugsKontaktRelation) element).getName();
            }
            return null;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new TextCellEditor(tableViewer.getTable());
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });

    viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(0, 140));
    col.setText(Messages.Bezugskontakt_RelationFrom);
    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(LocalizeUtil.getLocaleText(s.getDestRelationType()));
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation && value instanceof Integer) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType[] allRelationshipTypes = RelationshipType.values();
                if ((int) value != -1 && !bezugsKontaktRelation.getDestRelationType()
                        .equals(allRelationshipTypes[(int) value])) {
                    bezugsKontaktRelation.setDestRelationType(allRelationshipTypes[(int) value]);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }

        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType relationshipType = bezugsKontaktRelation.getDestRelationType();
                if (relationshipType != null) {
                    return relationshipType.getValue();
                }
            }

            return 0;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(tableViewer.getTable(), BezugsKontaktAuswahl.getBezugKontaktTypes(),
                    SWT.NONE);
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });

    viewCol = new TableViewerColumn(tableViewer, SWT.NONE);
    col = viewCol.getColumn();
    tcl_composite.setColumnData(col, new ColumnWeightData(0, 140));
    col.setText(Messages.Bezugskontakt_RelationTo);

    viewCol.setLabelProvider(new CellLabelProvider() {

        @Override
        public void update(ViewerCell cell) {
            BezugsKontaktRelation s = (BezugsKontaktRelation) cell.getElement();
            if (s == null)
                return;
            cell.setText(LocalizeUtil.getLocaleText(s.getSrcRelationType()));
        }
    });
    viewCol.setEditingSupport(new EditingSupport(tableViewer) {

        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof BezugsKontaktRelation && value instanceof Integer) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType[] allRelationshipTypes = RelationshipType.values();
                if ((int) value != -1 && !bezugsKontaktRelation.getSrcRelationType()
                        .equals(allRelationshipTypes[(int) value])) {
                    bezugsKontaktRelation.setSrcRelationType(allRelationshipTypes[(int) value]);
                    getViewer().update(bezugsKontaktRelation, null);
                    openConfirmUpdateExistingData(bezugsKontaktRelation);
                }
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof BezugsKontaktRelation) {
                BezugsKontaktRelation bezugsKontaktRelation = (BezugsKontaktRelation) element;
                RelationshipType relationshipType = bezugsKontaktRelation.getSrcRelationType();
                if (relationshipType != null) {
                    return relationshipType.getValue();
                }
            }

            return 0;
        }

        @Override
        protected CellEditor getCellEditor(Object element) {
            return new ComboBoxCellEditor(tableViewer.getTable(), BezugsKontaktAuswahl.getBezugKontaktTypes(),
                    SWT.NONE);
        }

        @Override
        protected boolean canEdit(Object element) {
            return allowEditing;
        }
    });
    ;
    tableViewer
            .setInput(loadBezugKonkaktTypes(CoreHub.globalCfg.get(Patientenblatt2.CFG_BEZUGSKONTAKTTYPEN, "")));
    return container;
}