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

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

Introduction

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

Prototype

public void add(Object[] elements) 

Source Link

Document

Adds the given elements to this table viewer.

Usage

From source file:com.tencent.wstt.apt.ui.views.DevicesView.java

License:Open Source License

public boolean addDataItem(TableViewer viewer, PkgInfo item) {
    if (viewer == null || item == null) {
        APTConsoleFactory.getInstance().APTPrint("viewer == null || item == null");
        return false;
    }/*from   w  ww. j  a  v a  2 s .  c  om*/

    else {
        int sourcesLen = viewer.getTable().getItemCount();
        TableItem[] tableItems = viewer.getTable().getItems();

        if (sourcesLen == Constant.MAX_PKG_NUMBER) {
            APTConsoleFactory.getInstance()
                    .APTPrint("?APT?" + Constant.MAX_PKG_NUMBER + "");
            return false;
        }
        for (int i = 0; i < sourcesLen; i++) {
            if (((PkgInfo) tableItems[i].getData()).contents[PkgInfo.NAME_INDEX]
                    .equalsIgnoreCase(item.contents[PkgInfo.NAME_INDEX])) {
                APTConsoleFactory.getInstance().APTPrint("????");
                return false;
            }
        }
        viewer.add(item);
        viewer.getTable().getItem(getIndexByPkgName(item.contents[PkgInfo.NAME_INDEX], targetPkgTableViewer))
                .setChecked(true);
        APTConsoleFactory.getInstance().APTPrint("6");
        return true;
    }
}

From source file:de.marw.cdt.cmake.core.ui.DefinesViewer.java

License:Open Source License

private void handleDefineAddButton(TableViewer tableViewer) {
    final Shell shell = tableViewer.getControl().getShell();
    AddCmakeDefineDialog dlg = new AddCmakeDefineDialog(shell, null);
    if (dlg.open() == Dialog.OK) {
        CmakeDefine cmakeDefine = dlg.getCmakeDefine();
        @SuppressWarnings("unchecked")
        ArrayList<CmakeDefine> defines = (ArrayList<CmakeDefine>) tableViewer.getInput();
        defines.add(cmakeDefine);// w  w w .  j av  a  2 s . c o  m
        tableViewer.add(cmakeDefine); // updates the display
    }
}

From source file:de.marw.cdt.cmake.core.ui.UnDefinesViewer.java

License:Open Source License

private void handleUnDefineAddButton(TableViewer tableViewer) {
    final Shell shell = tableViewer.getControl().getShell();
    AddCmakeUndefineDialog dlg = new AddCmakeUndefineDialog(shell, null);
    if (dlg.open() == Dialog.OK) {
        CmakeUnDefine cmakeDefine = dlg.getCmakeUndefine();
        @SuppressWarnings("unchecked")
        ArrayList<CmakeUnDefine> undefines = (ArrayList<CmakeUnDefine>) tableViewer.getInput();
        undefines.add(cmakeDefine);//w w w .j  a  v a2  s.  c  om
        tableViewer.add(cmakeDefine); // updates the display
    }
}

From source file:de.quamoco.qm.guideline.docbook.GeneratorSelectionWizardPage.java

License:Apache License

/**
 * Creates the table viewer displaying the choices of generators in
 * alphabetical order./*from  w  ww . j a v  a 2s.  c  o m*/
 */
private void createTableViewer(Table table) {
    TableViewer viewer = new TableViewer(table);
    viewer.setLabelProvider(new LabelProvider() {

        /** {@inheritDoc} */
        @Override
        public String getText(Object object) {
            if (object instanceof GeneratorExtension) {
                return ((GeneratorExtension) object).getLabel();
            }
            return null;
        }

    });
    Object[] extensions = GeneratorExtensionUtil.getExtensions().toArray();
    Arrays.sort(extensions);
    viewer.add(extensions);
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {

        public void selectionChanged(SelectionChangedEvent event) {
            GeneratorExtension extension = SelectionUtils.checkAndPickFirst(event.getSelection(),
                    GeneratorExtension.class);
            IGenerator generator = extension.getGenerator();
            ((GuidelineWizard) getWizard()).setGenerator(generator);
            setPageComplete(true);
        }

    });
}

From source file:de.walware.ecommons.workbench.search.ui.TextSearchResultMatchTableContentProvider.java

License:Open Source License

@Override
public void elementsChanged(final Object[] elements) {
    if (!this.active) {
        return;//from w  w w  . j  ava 2s  .  c  o m
    }
    final ExtTextSearchResult<E, M> result = getInput();
    final int limit = getElementLimit();

    final TableViewer viewer = getViewer();

    final List<M> toAdd = new ArrayList<M>();
    final List<M> toUpdate = new ArrayList<M>();
    final List<M> toRemove = new ArrayList<M>();
    for (int i = 0; i < elements.length; i++) {
        final E element = (E) elements[i];
        final M[] matches = result.getPickedMatches(element);
        final SortedListSet<M> currentElementMatches = this.currentMatches.subList(element);
        for (int j = 0; j < matches.length; j++) {
            final M match = matches[j];
            int k;
            if ((this.currentMatches.size() < limit)) {
                k = currentElementMatches.addE(match);
                if (k >= 0) {
                    toAdd.add(match);
                } else {
                    toUpdate.add(match);
                    k = -(k + 1);
                }
            } else {
                k = currentElementMatches.indexOf(match);
                if (k >= 0) {
                    toUpdate.add(match);
                } else {
                    k = -(k + 1);
                }
            }
            while (k > j) {
                toRemove.add(currentElementMatches.remove(j));
                k--;
            }
        }
        while (currentElementMatches.size() > matches.length) {
            currentElementMatches.remove(matches.length);
        }
    }

    viewer.getTable().setRedraw(false);
    try {
        viewer.remove(toRemove.toArray());
        viewer.refresh(toUpdate.toArray(), true);
        viewer.add(toAdd.toArray());
    } finally {
        viewer.getTable().setRedraw(true);
    }
}

From source file:eu.numberfour.n4js.ui.workingsets.WorkingSetManualAssociationWizard.java

License:Open Source License

@Override
public void addPages() {
    addPage(new WizardPage("") {

        private Text nameText;
        private final Collection<IProject> workspaceProjects = newTreeSet(PROJECT_NAME_COMPARATOR);
        private final Collection<IProject> workingSetProjects = newTreeSet(PROJECT_NAME_COMPARATOR);

        @Override/*from  w w  w  .  j a v  a 2 s.co m*/
        public void createControl(Composite parent) {

            final Composite composite = new Composite(parent, NONE);
            composite.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).equalWidth(false).create());
            composite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            new Label(composite, NONE).setText("Working set name:");
            nameText = new Text(composite, BORDER);
            nameText.setLayoutData(fillDefaults().align(FILL, CENTER).grab(true, false).create());

            Composite tableComposite = new Composite(composite, NONE);
            tableComposite.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).equalWidth(false).create());
            tableComposite.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).span(2, 1).create());

            Group workspaceGroup = new Group(tableComposite, SHADOW_IN);
            workspaceGroup.setText("Available workspace projects");
            workspaceGroup.setLayout(GridLayoutFactory.fillDefaults().create());
            workspaceGroup.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            final TableViewer allProjectsViewer = new TableViewerBuilder(singletonList("")).setHasBorder(true)
                    .setHeaderVisible(false).setLinesVisible(false).setMultipleSelection(true)
                    .setColumnWidthsInPixel(Ints.asList(350)).setLabelProvider(labelProvider)
                    .build(workspaceGroup);

            Composite buttonComposite = new Composite(tableComposite, NONE);
            buttonComposite.setLayout(GridLayoutFactory.fillDefaults().create());
            // buttonComposite.setLayoutData(fillDefaults().align(CENTER, CENTER).grab(false, false).create());

            final Button addButton = new Button(buttonComposite, PUSH);
            addButton.setImage(ImageRef.RIGHT_ARROW.asImage().orNull());
            addButton.setToolTipText("Add all selected workspace projects");
            addButton.setEnabled(false);

            final Button removeButton = new Button(buttonComposite, PUSH);
            removeButton.setImage(ImageRef.LEFT_ARROW.asImage().orNull());
            removeButton.setToolTipText("Remove all selected working set element projects");
            removeButton.setEnabled(false);

            Group workingSetGroup = new Group(tableComposite, SHADOW_IN);
            workingSetGroup.setText("Associated working set projects");
            workingSetGroup.setLayout(GridLayoutFactory.fillDefaults().create());
            workingSetGroup.setLayoutData(fillDefaults().align(FILL, FILL).grab(true, true).create());

            final TableViewer associatedProjectsViewer = new TableViewerBuilder(singletonList(""))
                    .setHasBorder(true).setHeaderVisible(false).setLinesVisible(false)
                    .setMultipleSelection(true).setColumnWidthsInPixel(Ints.asList(350))
                    .setLabelProvider(labelProvider).build(workingSetGroup);

            addButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    IStructuredSelection selection = allProjectsViewer.getStructuredSelection();
                    if (selection != null && !selection.isEmpty()) {
                        final IProject[] projects = Arrays2.filter(selection.toArray(), IProject.class);
                        allProjectsViewer.remove(projects);
                        associatedProjectsViewer.add(projects);
                        workspaceProjects.removeAll(Arrays.asList(projects));
                        workingSetProjects.addAll(Arrays.asList(projects));
                        setPageComplete(validatePage());
                    }
                }
            });

            removeButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    IStructuredSelection selection = associatedProjectsViewer.getStructuredSelection();
                    if (selection != null && !selection.isEmpty()) {
                        final IProject[] projects = Arrays2.filter(selection.toArray(), IProject.class);
                        associatedProjectsViewer.remove(projects);
                        allProjectsViewer.add(projects);
                        workingSetProjects.removeAll(Arrays.asList(projects));
                        workspaceProjects.addAll(Arrays.asList(projects));
                        setPageComplete(validatePage());
                    }
                }
            });

            associatedProjectsViewer.addSelectionChangedListener(event -> {
                final IStructuredSelection selection = associatedProjectsViewer.getStructuredSelection();
                removeButton.setEnabled(null != selection && !selection.isEmpty());
            });

            allProjectsViewer.addSelectionChangedListener(event -> {
                final IStructuredSelection selection = allProjectsViewer.getStructuredSelection();
                addButton.setEnabled(null != selection && !selection.isEmpty());
            });

            setPageComplete(false);
            setControl(composite);

            final Optional<WorkingSet> editedWorkingSet = getEditedWorkingSet();
            workspaceProjects.addAll(Arrays.asList(ResourcesPlugin.getWorkspace().getRoot().getProjects()));
            if (editedWorkingSet.isPresent()) {
                final ManualAssociationWorkingSet workingSet = (ManualAssociationWorkingSet) editedWorkingSet
                        .get();
                workingSetRef.set(workingSet);
                nameText.setText(workingSet.getName());
                nameText.selectAll();
                workingSetProjects.addAll(workingSet.getAssociatedProjects());
                workspaceProjects.removeAll(workingSetProjects);
                originalName.set(workingSet.getName());
            }

            composite.getDisplay().asyncExec(() -> {
                setTitle(TITLE);
                setDescription(DESCRIPTION);
                allProjectsViewer.setInput(workspaceProjects);
                associatedProjectsViewer.setInput(workingSetProjects);
            });

            nameText.addModifyListener(e -> setPageComplete(validatePage()));

        }

        @Override
        public void setVisible(boolean visible) {
            if (visible) {
                Rectangle location = UIUtils.getConstrainedShellBounds(getShell(), SHELL_SIZE);
                getShell().setBounds(location);
            }
            super.setVisible(visible);
        }

        @SuppressWarnings("null")
        private boolean validatePage() {

            String errorMessage = null;

            final String name = nameText.getText();
            final WorkingSetManager manager = getManager();

            if (manager == null) {
                errorMessage = "No active working set manager is available.";
            }

            if (errorMessage == null) {
                if (name == null || name.trim().length() == 0) {
                    errorMessage = "Working set name should be specified.";
                }
            }

            if (errorMessage == null) {
                if (!name.equals(originalName.get())
                        // This case ID and name are equal. Intentionally name.
                        && Arrays2.transform(manager.getAllWorkingSets(), ws -> ws.getName()).contains(name)) {
                    errorMessage = "A working set already exists with name '" + name + "'.";
                }
            }

            if (errorMessage != null) {
                workingSetRef.set(null);
            } else {
                final Iterable<String> projectNames = from(workingSetProjects).transform(p -> p.getName());
                workingSetRef.set(new ManualAssociationWorkingSet(projectNames, name, manager));
            }

            setMessage(errorMessage, ERROR);
            return errorMessage == null;
        }

    });
}

From source file:ext.org.eclipse.jdt.internal.ui.search.JavaSearchTableContentProvider.java

License:Open Source License

@Override
public void elementsChanged(Object[] updatedElements) {
    if (getSearchResult() == null)
        return;//from  w  w  w.  j  ava2s .c o  m

    int addLimit = getAddLimit();

    TableViewer viewer = (TableViewer) getPage().getViewer();
    Set<Object> updated = new HashSet<Object>();
    Set<Object> added = new HashSet<Object>();
    Set<Object> removed = new HashSet<Object>();
    for (int i = 0; i < updatedElements.length; i++) {
        if (getPage().getDisplayedMatchCount(updatedElements[i]) > 0) {
            if (viewer.testFindItem(updatedElements[i]) != null)
                updated.add(updatedElements[i]);
            else {
                if (addLimit > 0) {
                    added.add(updatedElements[i]);
                    addLimit--;
                }
            }
        } else {
            removed.add(updatedElements[i]);
        }
    }

    viewer.add(added.toArray());
    viewer.update(updated.toArray(), new String[] { SearchLabelProvider.PROPERTY_MATCH_COUNT });
    viewer.remove(removed.toArray());
}

From source file:net.rim.ejde.internal.ui.editors.model.BlackBerryProjectPropertiesPage.java

License:Open Source License

/**
 * Adds the given object item to the given table if and only if the object does not already exist. Also updates button
 * controls.// w  w  w .  j  a v  a2  s .c  o  m
 *
 * @param viewer
 * @param item
 * @param actionButtons
 */
public boolean addTableItem(TableViewer viewer, Object item, Map<Action, Button> actionButtons,
        boolean updateUIOnly) {
    if (updateUIOnly) {
        if (actionButtons.containsKey(Action.EDIT)) {
            actionButtons.get(Action.EDIT).setEnabled(true);
        }

        if (actionButtons.containsKey(Action.REMOVE)) {
            actionButtons.get(Action.REMOVE).setEnabled(true);
        }

        return true;
    } else {
        if (getObjectIndexInViewer(viewer, item) == -1) {
            if (item != null) {
                viewer.add(item);
                Table table = viewer.getTable();
                table.select(table.getItemCount() - 1);

                // Used to fire any selection events
                viewer.setSelection(viewer.getSelection());
            }
            if (actionButtons.containsKey(Action.EDIT)) {
                actionButtons.get(Action.EDIT).setEnabled(true);
            }

            if (actionButtons.containsKey(Action.REMOVE)) {
                actionButtons.get(Action.REMOVE).setEnabled(true);
            }

            return true;
        }

        return false;
    }
}

From source file:org.drools.eclipse.flow.common.editor.editpart.work.EmailCustomEditor.java

License:Apache License

public void createHeadersTab(TabFolder tabFolder) {
    final TabItem headersTabItem = new TabItem(tabFolder, SWT.NONE);
    headersTabItem.setText("Header");
    final Composite container = new Composite(tabFolder, SWT.NONE);
    final GridLayout gridLayout = new GridLayout();
    gridLayout.numColumns = 2;//from  w  ww . j  a v a  2s .  com
    gridLayout.horizontalSpacing = 2;
    container.setLayout(gridLayout);
    headersTabItem.setControl(container);

    final Label recipientsLabel = new Label(container, SWT.NONE);
    final GridData gd_recipientsLabel = new GridData();
    recipientsLabel.setLayoutData(gd_recipientsLabel);
    recipientsLabel.setText("Recipients");
    new Label(container, SWT.NONE);

    // create main table
    final TableViewer tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);

    //        // Type column
    //        TableViewerColumn column = new TableViewerColumn(tableViewer, SWT.NONE);
    //        column.setLabelProvider(new TypeLabelProvider());
    //        column.setEditingSupport(new TypeEditing(tableViewer));
    //        column.getColumn().setWidth(70);
    //        column.getColumn().setText("Type");
    //        column.getColumn().setMoveable(true);
    //
    //        // Display Name column
    //        column = new TableViewerColumn(tableViewer, SWT.NONE);
    //        column.setLabelProvider(new DisplayNameLabelProvider());
    //        column.setEditingSupport(new DisplayNameEditing(tableViewer));
    //        column.getColumn().setWidth(200);
    //        column.getColumn().setText("Display Name");
    //        column.getColumn().setMoveable(true);

    // Email column
    TableViewerColumn column = new TableViewerColumn(tableViewer, SWT.NONE);
    column.setLabelProvider(new EmailLabelProvider());
    column.setEditingSupport(new EmailEditing(tableViewer));
    column.getColumn().setText("Email Address");
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(true);

    final Table table = tableViewer.getTable();
    final GridData gd_table = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    gd_table.heightHint = 128;
    table.setLayoutData(gd_table);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    tableViewer.setContentProvider(new RecipientsContentProvider());
    tableViewer.setInput(recipients);

    // add/delete buttons
    final Composite composite = new Composite(container, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    composite.setLayout(new RowLayout());
    final Button addButton = new Button(composite, SWT.NONE);
    addButton.setText("Add");
    addButton.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
            Recipient recipient = new Recipient();
            recipients.add(recipient);
            tableViewer.add(recipient);
            tableViewer.refresh();
        }

        public void widgetSelected(SelectionEvent e) {
            Recipient recipient = new Recipient();
            recipients.add(recipient);
            tableViewer.add(recipient);
            tableViewer.refresh();
        }
    });
    final Button deleteButton = new Button(composite, SWT.NONE);
    deleteButton.setText("Remove");
    deleteButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent event) {
            TableItem[] items = table.getSelection();
            if (items != null && items.length > 0) {
                recipients.remove((Recipient) items[0].getData());
                tableViewer.remove(items[0]);
                tableViewer.refresh();
            }
        }

        public void widgetDefaultSelected(SelectionEvent event) {
            TableItem[] items = table.getSelection();
            if (items != null && items.length > 0) {
                recipients.remove((Recipient) items[0].getData());
                tableViewer.remove(items[0]);
                tableViewer.refresh();
            }
        }
    });

    // from label and text field
    final Label fromLabel = new Label(container, SWT.NONE);
    fromLabel.setLayoutData(new GridData());
    fromLabel.setText("From");
    fromText = new Text(container, SWT.BORDER);
    fromText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false));
}

From source file:org.drools.eclipse.flow.common.editor.editpart.work.HumanTaskCustomEditor.java

License:Apache License

private void createReassignmentTab(TabFolder tabFolder) {
    Work work = (Work) getValue();/*  w w w  . jav  a 2 s  .  c o m*/

    String notStartedReassign = (String) work.getParameter("NotStartedReassign");
    String notCompletedReassign = (String) work.getParameter("NotCompletedReassign");

    if (notStartedReassign != null) {
        String[] reassigns = notStartedReassign.split(COMPONENT_SEPARATOR_ESCAPED);

        for (String reassign : reassigns) {
            if (reassign != null && reassign.length() > 0) {
                reassignments.add(new Reassignment(reassign, "not-started"));
            }
        }
    }

    if (notCompletedReassign != null) {
        String[] reassigns = notCompletedReassign.split(COMPONENT_SEPARATOR_ESCAPED);

        for (String reassign : reassigns) {
            if (reassign != null && reassign.length() > 0) {
                reassignments.add(new Reassignment(reassign, "not-completed"));
            }
        }
    }

    final TabItem headersTabItem = new TabItem(tabFolder, SWT.NONE);
    headersTabItem.setText("Reassignment");

    final Composite container = new Composite(tabFolder, SWT.NONE);
    final GridLayout gridLayout = new GridLayout();
    gridLayout.horizontalSpacing = 2;
    container.setLayout(gridLayout);
    headersTabItem.setControl(container);

    final TableViewer tableViewer = new TableViewer(container, SWT.BORDER | SWT.FULL_SELECTION);

    TableViewerColumn column = new TableViewerColumn(tableViewer, SWT.NONE);
    column.setLabelProvider(new ReassignmentUsersLabelProvider());
    column.setEditingSupport(new ReassignmentUsersEditing(tableViewer));
    column.getColumn().setText("Users");
    column.getColumn().setWidth(100);
    column.getColumn().setMoveable(true);

    TableViewerColumn column2 = new TableViewerColumn(tableViewer, SWT.NONE);
    column2.setLabelProvider(new ReassignmentGroupsLabelProvider());
    column2.setEditingSupport(new ReassignmentGroupsEditing(tableViewer));
    column2.getColumn().setText("Groups");
    column2.getColumn().setWidth(100);
    column2.getColumn().setMoveable(true);

    TableViewerColumn column3 = new TableViewerColumn(tableViewer, SWT.NONE);
    column3.setLabelProvider(new ReassignmentExpiresAtLabelProvider());
    column3.setEditingSupport(new ReassignmentExpiresAtEditing(tableViewer));
    column3.getColumn().setText("Expires At");
    column3.getColumn().setWidth(100);
    column3.getColumn().setMoveable(true);

    TableViewerColumn column4 = new TableViewerColumn(tableViewer, SWT.NONE);
    column4.setLabelProvider(new ReassignmentTypeLabelProvider());
    column4.setEditingSupport(new ReassignmentTypeEditing(tableViewer));
    column4.getColumn().setText("Type");
    column4.getColumn().setWidth(100);
    column4.getColumn().setMoveable(true);

    final Table table = tableViewer.getTable();
    final GridData gd_table = new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1);
    gd_table.heightHint = 128;
    table.setLayoutData(gd_table);
    table.setLinesVisible(true);
    table.setHeaderVisible(true);

    tableViewer.setContentProvider(new ReassignmentContentProvider());
    tableViewer.setInput(reassignments);

    // add/delete buttons
    final Composite composite = new Composite(container, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    composite.setLayout(new RowLayout());
    final Button addButton = new Button(composite, SWT.NONE);
    addButton.setText("Add");
    addButton.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
            Reassignment reassignment = new Reassignment();
            reassignments.add(reassignment);
            tableViewer.add(reassignment);
            tableViewer.refresh();
        }

        public void widgetSelected(SelectionEvent e) {
            Reassignment reassignment = new Reassignment();
            reassignments.add(reassignment);
            tableViewer.add(reassignment);
            tableViewer.refresh();
        }
    });
    final Button deleteButton = new Button(composite, SWT.NONE);
    deleteButton.setText("Remove");
    deleteButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent event) {
            TableItem[] items = table.getSelection();
            if (items != null && items.length > 0) {
                reassignments.remove((Reassignment) items[0].getData());
                tableViewer.remove(items[0]);
                tableViewer.refresh();
            }
        }

        public void widgetDefaultSelected(SelectionEvent event) {
            TableItem[] items = table.getSelection();
            if (items != null && items.length > 0) {
                reassignments.remove((Reassignment) items[0].getData());
                tableViewer.remove(items[0]);
                tableViewer.refresh();
            }
        }
    });
}