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:com.application.areca.launcher.gui.ArchiveWindow.java

License:Open Source License

private void initDataPanel(Composite parent) {
    parent.setLayout(new FillLayout());
    Composite composite = new Composite(parent, SWT.NONE);
    composite.setLayout(new GridLayout(1, false));

    // TITLE/*w  w  w . j  ava 2 s .  c om*/
    Text txtTitle = null;
    if (manifest != null && manifest.getTitle() != null && !manifest.getTitle().equals("")) {
        Group grpTitle = new Group(composite, SWT.NONE);
        grpTitle.setText(RM.removeDots(RM.getLabel("archivedetail.titlefield.label")));
        grpTitle.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
        grpTitle.setLayout(new GridLayout());

        txtTitle = new Text(grpTitle, SWT.BORDER);
        txtTitle.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
        txtTitle.setEditable(false);
    }

    // DATE
    Group grpDate = new Group(composite, SWT.NONE);
    grpDate.setText(RM.removeDots(RM.getLabel("archivedetail.datefield.label")));
    grpDate.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
    grpDate.setLayout(new GridLayout());

    Text txtDate = new Text(grpDate, SWT.BORDER);
    txtDate.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    txtDate.setEditable(false);

    // DESCRIPTION
    Text txtDescription = null;
    if (manifest != null && manifest.getDescription() != null && !manifest.getDescription().equals("")) {
        Group grpDescription = new Group(composite, SWT.NONE);
        grpDescription.setText(RM.removeDots(RM.getLabel("archivedetail.descriptionfield.label")));
        grpDescription.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
        grpDescription.setLayout(new GridLayout());

        txtDescription = new Text(grpDescription, SWT.BORDER | SWT.MULTI | SWT.WRAP | SWT.V_SCROLL);
        GridData ldDescription = new GridData(SWT.FILL, SWT.FILL, true, true);
        ldDescription.heightHint = computeHeight(50);
        ldDescription.minimumHeight = computeHeight(50);
        txtDescription.setLayoutData(ldDescription);
        txtDescription.setEditable(false);
    }

    // PROPERTIES
    Group grpProperties = new Group(composite, SWT.NONE);
    grpProperties.setText(RM.removeDots(RM.getLabel("archivedetail.propertiesfield.label")));
    grpProperties.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    grpProperties.setLayout(new GridLayout());

    TableViewer viewer = new TableViewer(grpProperties,
            SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);
    Table table = viewer.getTable();
    table.setLinesVisible(AbstractWindow.getTableLinesVisible());
    table.setHeaderVisible(true);
    GridData ldProperties = new GridData(SWT.FILL, SWT.FILL, true, true);
    ldProperties.minimumHeight = computeHeight(100);
    table.setLayoutData(ldProperties);
    TableColumn col1 = new TableColumn(table, SWT.NONE);
    col1.setWidth(AbstractWindow.computeWidth(300));
    col1.setText(RM.getLabel("archivedetail.propertycolumn.label"));
    col1.setMoveable(true);
    TableColumn col2 = new TableColumn(table, SWT.NONE);
    col2.setWidth(AbstractWindow.computeWidth(150));
    col2.setText(RM.getLabel("archivedetail.valuecolumn.label"));
    col2.setMoveable(true);

    // INIT DATA
    if (manifest != null) {
        if (txtTitle != null) {
            txtTitle.setText(manifest.getTitle() == null ? "" : manifest.getTitle());
        }
        txtDate.setText(manifest.getDate() == null ? "" : Utils.formatDisplayDate(manifest.getDate()));
        if (txtDescription != null) {
            txtDescription.setText(manifest.getDescription() == null ? "" : manifest.getDescription());
        }

        TableItem item0 = new TableItem(table, SWT.NONE);
        item0.setText(0, " ** Type ** ");
        item0.setText(1, manifest.getType() == Manifest.TYPE_BACKUP ? "Backup" : "Merge");

        Iterator iter = this.manifest.propertyIterator();
        while (iter.hasNext()) {
            String key = (String) iter.next();
            if (!key.equals("Source")) { // Hide old properties
                TableItem item = new TableItem(table, SWT.NONE);
                item.setText(0, key + " : ");
                item.setText(1, manifest.getStringProperty(key));
            }
        }
    }

    if (txtTitle != null) {
        txtTitle.forceFocus();
    } else {
        txtDate.forceFocus();
    }

    composite.pack();
}

From source file:com.application.areca.launcher.gui.composites.ProcessorsTable.java

License:Open Source License

public ProcessorsTable(Composite parent, TargetEditionWindow tge, boolean preprocess) {

    parent.setLayout(initLayout(5));/* ww w  .jav a 2s  .co  m*/
    this.main = tge;
    this.preprocess = preprocess;

    TableViewer viewer = new TableViewer(parent, SWT.BORDER | SWT.SINGLE);
    tblProc = viewer.getTable();
    GridData dt = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 2);
    dt.heightHint = AbstractWindow.computeHeight(50);
    tblProc.setLayoutData(dt);

    TableColumn col1 = new TableColumn(tblProc, SWT.NONE);
    col1.setText(RM.getLabel("targetedition.proctable.type.label"));
    col1.setWidth(AbstractWindow.computeWidth(200));
    col1.setMoveable(true);

    TableColumn col2 = new TableColumn(tblProc, SWT.NONE);
    col2.setText(RM.getLabel("targetedition.proctable.parameters.label"));
    col2.setWidth(AbstractWindow.computeWidth(200));
    col2.setMoveable(true);

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

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            editCurrentProcessor();
        }
    });

    btnUp = new Button(parent, SWT.PUSH);
    btnUp.setText(RM.getLabel("common.up.label"));
    btnUp.setLayoutData(new GridData(SWT.FILL, SWT.BOTTOM, false, false));
    btnUp.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            up();
        }
    });

    btnDown = new Button(parent, SWT.PUSH);
    btnDown.setText(RM.getLabel("common.down.label"));
    btnDown.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
    btnDown.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            down();
        }
    });

    btnAddProc = new Button(parent, SWT.PUSH);
    btnAddProc.setText(RM.getLabel("targetedition.addprocaction.label"));
    btnAddProc.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            Processor newproc = showProcEditionFrame(null);
            if (newproc != null) {
                addProcessor(newproc);
                main.publicRegisterUpdate();
            }
        }
    });

    btnModifyProc = new Button(parent, SWT.PUSH);
    btnModifyProc.setText(RM.getLabel("targetedition.editprocaction.label"));
    btnModifyProc.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            editCurrentProcessor();
        }
    });

    btnRemoveProc = new Button(parent, SWT.PUSH);
    btnRemoveProc.setText(RM.getLabel("targetedition.removeprocaction.label"));
    btnRemoveProc.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            removeCurrentProcessor();
        }
    });

    tblProc.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            updateProcListState();
        }
    });

    tblProc.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent evt) {
            if (evt.character == SWT.DEL) {
                removeCurrentProcessor();
            }
        }

        public void keyReleased(KeyEvent evt) {
        }
    });

    if (preprocess) {
        chkForwardErrors = new Button(parent, SWT.CHECK);
        chkForwardErrors.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false));
        chkForwardErrors.setText(RM.getLabel("targetedition.fwderrors.label"));
        chkForwardErrors.setSelection(true);
    }
}

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

License:Open Source License

private void initSourcesTab(Composite composite) {
    composite.setLayout(initLayout(4));/*www .j  av a2  s  .  co m*/

    TableViewer viewer = new TableViewer(composite, SWT.BORDER | SWT.MULTI);
    tblSources = viewer.getTable();
    GridData dt = new GridData(SWT.FILL, SWT.FILL, true, true, 4, 1);
    dt.heightHint = computeHeight(100);
    tblSources.setLayoutData(dt);

    TableColumn col1 = new TableColumn(tblSources, SWT.NONE);
    col1.setText(RM.getLabel("targetedition.sourcedirfield.label"));
    col1.setWidth(AbstractWindow.computeWidth(400));
    col1.setMoveable(true);

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

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            editCurrentSource();
        }
    });

    tblSources.addKeyListener(new KeyListener() {
        public void keyPressed(KeyEvent evt) {
            if (evt.character == SWT.DEL) {
                deleteCurrentSource();
            }
        }

        public void keyReleased(KeyEvent evt) {
        }
    });

    Label lblRoot = new Label(composite, SWT.NONE | SWT.WRAP);
    lblRoot.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 2, 1));
    lblRoot.setText(RM.getLabel("targetedition.globalroot.label"));
    lblRoot.setToolTipText(RM.getLabel("targetedition.globalroot.tt"));

    txtRootValue = new Text(composite, SWT.BORDER);
    txtRootValue.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 2, 1));
    txtRootValue.setEnabled(false);
    txtRootValue.setToolTipText(RM.getLabel("targetedition.globalroot.tt"));

    Label lblDnd = new Label(composite, SWT.NONE | SWT.WRAP);
    lblDnd.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false, 4, 1));
    lblDnd.setText(RM.getLabel("targetedition.sources.dnd.label"));

    btnAddSource = new Button(composite, SWT.PUSH);
    btnAddSource.setText(RM.getLabel("targetedition.addprocaction.label"));
    btnAddSource.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            File newFile = showSourceEditionFrame(null);
            if (newFile != null) {
                addSource(newFile);
                arrangeSources();
                registerUpdate();
            }
        }
    });

    btnModifySource = new Button(composite, SWT.PUSH);
    btnModifySource.setText(RM.getLabel("targetedition.editprocaction.label"));
    btnModifySource.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            editCurrentSource();
        }
    });

    btnRemoveSource = new Button(composite, SWT.PUSH);
    btnRemoveSource.setText(RM.getLabel("targetedition.removeprocaction.label"));
    btnRemoveSource.addListener(SWT.Selection, new Listener() {
        public void handleEvent(Event event) {
            deleteCurrentSource();
        }
    });

    tblSources.addSelectionListener(new SelectionListener() {
        public void widgetDefaultSelected(SelectionEvent e) {
        }

        public void widgetSelected(SelectionEvent e) {
            updateSourceListState();
        }
    });

    final int operation = DND.DROP_MOVE;
    Transfer[] types = new Transfer[] { FileTransfer.getInstance() };
    DropTarget target = new DropTarget(tblSources, operation);
    target.setTransfer(types);
    target.addDropListener(new DropTargetAdapter() {
        public void dragEnter(DropTargetEvent event) {
            event.detail = operation;
            event.feedback = DND.FEEDBACK_SCROLL;
        }

        public void dragOver(DropTargetEvent event) {
            event.detail = operation;
            event.feedback = DND.FEEDBACK_SCROLL;
        }

        public void drop(DropTargetEvent event) {
            String[] files = (String[]) event.data;
            for (int i = 0; i < files.length; i++) {
                addSource(new File(files[i]));
            }
            arrangeSources();
            registerUpdate();
        }
    });
}

From source file:com.aptana.editor.php.internal.ui.preferences.BuildPathEditingComposite.java

License:Open Source License

/**
 * Add an item to the table viewer after verifying that the path of that item does not exist or is not containing
 * the path for this item.//w w  w.j  av a 2s  . c  o m
 * 
 * @param tableViewer
 * @param item
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
private void addWithValidation(TableViewer tableViewer, Object item) {
    propertyPage.setMessage(null);
    TableItem[] tableItems = tableViewer.getTable().getItems();
    if (tableItems == null || tableItems.length == 0) {
        // Just add
        if (item instanceof Object[]) {
            Object[] items = (Object[]) item;
            for (Object obj : items) {
                tableViewer.add(obj);
                return;
            }
        } else {
            if (item != null) {
                tableViewer.add(item);
                return;
            }
        }
    }
    List toAdd = new ArrayList();
    boolean hasAlreadyIncludedPaths = false;
    if (item instanceof File) {
        File directoryAdded = (File) item;
        // Check for files that are already in the table.
        boolean shouldAdd = true;
        for (TableItem tableItem : tableItems) {
            Object data = tableItem.getData();
            if (data instanceof File) {
                File existinsDirectory = (File) data;
                if (existinsDirectory.equals(directoryAdded)
                        || directoryAdded.getAbsolutePath().startsWith(existinsDirectory.getAbsolutePath())) {
                    hasAlreadyIncludedPaths = true;
                    shouldAdd = false;
                    break;
                }
            }
        }
        if (shouldAdd) {
            toAdd.add(directoryAdded);
        }
    } else if (item instanceof Object[]) {
        Object[] elements = (Object[]) item;

        for (Object element : elements) {
            boolean shouldAdd = true;
            for (TableItem tableItem : tableItems) {
                if (element instanceof IResource && tableItem.getData() instanceof IResource) {
                    IResource resource = (IResource) element;
                    IResource resourceInTable = (IResource) tableItem.getData();
                    if ((resourceInTable).getFullPath().isPrefixOf(resource.getFullPath())) {
                        hasAlreadyIncludedPaths = true;
                        shouldAdd = false;
                        break;
                    }
                }
            }
            if (shouldAdd) {
                toAdd.add(element);
            }
        }
    }
    tableViewer.add(toAdd.toArray());
    if (hasAlreadyIncludedPaths) {
        propertyPage.setMessage(Messages.BuildPathEditingComposite_selectionIncludedNotice,
                DialogPage.INFORMATION);
        Job job = new UIJob("Build-Path::Remove message") //$NON-NLS-1$
        {
            public IStatus runInUIThread(IProgressMonitor monitor) {
                if (propertyPage != null && !propertyPage.getControl().isDisposed()) {
                    propertyPage.setMessage(null);
                }
                return Status.OK_STATUS;
            }
        };
        job.schedule(4000); // wait 4 seconds before removing the message
    }
}

From source file:com.aptana.ide.debug.internal.ui.xhr.AJAXMonitorPage.java

License:Open Source License

private void createDetailsPart(Composite parent, String name, Viewer[] viewers) {
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayoutData(new GridData(GridData.FILL_BOTH));

    GridLayout layout = new GridLayout(1, false);
    layout.marginHeight = 0;//  w  w w. ja  v  a2  s  .  com
    layout.horizontalSpacing = 0;
    layout.marginWidth /= 2;
    container.setLayout(layout);

    Label label = new Label(container, SWT.NONE);
    label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    label.setText(name);

    CTabFolder tab = new CTabFolder(container, SWT.BOTTOM | SWT.FLAT | SWT.BORDER);
    tab.setLayoutData(new GridData(GridData.FILL_BOTH));

    TableViewer viewer = new TableViewer(tab, /* SWT.VIRTUAL | */SWT.SINGLE | SWT.FULL_SELECTION);
    Table table = viewer.getTable();
    TableLayout tableLayout = new TableLayout();
    table.setLayout(tableLayout);
    table.setHeaderVisible(false);
    table.setLinesVisible(true);

    // CHECKSTYLE:OFF
    TableColumn column = new TableColumn(table, SWT.LEFT);
    column.setText(Messages.AJAXMonitorPage_Name);
    tableLayout.addColumnData(new ColumnWeightData(50));

    column = new TableColumn(table, SWT.LEFT);
    column.setText(Messages.AJAXMonitorPage_Value);
    tableLayout.addColumnData(new ColumnWeightData(50));
    // CHECKSTYLE:ON

    viewer.setContentProvider(new XHRContentProvider());
    viewer.setLabelProvider(new XHRLabelProvider());
    viewers[0] = viewer;

    CTabItem item = new CTabItem(tab, SWT.NONE);
    item.setControl(viewers[0].getControl());
    item.setText(Messages.AJAXMonitorPage_Headers);

    TextViewer textViewer = new TextViewer(tab, SWT.READ_ONLY | SWT.V_SCROLL | SWT.H_SCROLL);
    item = new CTabItem(tab, SWT.NONE);
    item.setControl(textViewer.getControl());
    item.setText(Messages.AJAXMonitorPage_Body);

    textViewer.setEditable(false);
    textViewer.setDocument(new Document());
    viewers[1] = textViewer;
    PreferenceUtils.persist(DebugUiPlugin.getDefault().getPreferenceStore(), viewer.getTable(),
            "ajaxMonitorPage.detailsPart"); //$NON-NLS-1$
    tab.setSelection(item);
}

From source file:com.aptana.ide.search.AptanaFileSearchPage.java

License:Open Source License

/**
 * ovverriden to make it working for matching layout
 * @see org.eclipse.search.internal.ui.text.FileSearchPage#getLabel()
 *///from  w  ww .j  a v  a2 s. c  o m
public String getLabel() {
    AbstractTextSearchResult input = this.getInput();
    // we are in out layout
    if (this.layout == AptanaFileSearchPage.LAYOUT_MATCHES) {
        if (input == null) {
            return ""; //$NON-NLS-1$
        }
        String label = input.getLabel();
        TableViewer viewer = (TableViewer) this.getViewer();
        int itemCount = viewer.getTable().getItemCount();
        int matchCount = this.getInput().getMatchCount();
        if (itemCount < matchCount) {
            return Messages.format(com.aptana.ide.search.Messages.AptanaFileSearchPage_NOT_ALL_MATCHES,
                    new Object[] { label, new Integer(itemCount), new Integer(matchCount) });
        }
    }
    return super.getLabel();
}

From source file:com.aptana.ide.search.AptanaFileSearchPage.java

License:Open Source License

/**
 * custom handling of changes in search result for mathces mode
 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#handleSearchResultChanged(org.eclipse.search.ui.SearchResultEvent)
 *//*from   w  w  w . ja  v  a 2  s .  c  o m*/
protected void handleSearchResultChanged(final SearchResultEvent e) {
    if (this.layout != AptanaFileSearchPage.LAYOUT_MATCHES) {
        super.handleSearchResultChanged(e);
        return;
    }
    if (e instanceof MatchEvent) {
        MatchEvent me = (MatchEvent) e;
        int kind = me.getKind();
        if ((Display.getCurrent() != null) && (kind == MatchEvent.REMOVED)) {
            TableViewer cc = (TableViewer) this.getViewer();
            Table table = cc.getTable();
            int selectionIndex = table.getSelectionIndex();
            cc.refresh();
            if (selectionIndex != -1) {
                if (selectionIndex < table.getItemCount()) {
                    TableItem item = cc.getTable().getItem(selectionIndex);
                    cc.setSelection(new StructuredSelection(item.getData()));
                }
            }
        } else {
            super.handleSearchResultChanged(e);
        }
        // elementsChanged(me.getMatches());

    } else if (e instanceof RemoveAllEvent) {
        super.handleSearchResultChanged(e);
    }
}

From source file:com.aptana.ide.search.AptanaFileSearchPage.java

License:Open Source License

/**
 * we are reconfiguring table viewer to matches mode here
 *//*from  w  w  w .  j ava  2s.c o m*/
private void reconfigureTableViewer() {

    TableViewer tViewer = (TableViewer) this.getViewer();
    TableColumn[] columns = tViewer.getTable().getColumns();
    for (int a = 0; a < columns.length; a++) {
        columns[a].dispose();
    }
    this.metrics = new PixelConverter(tViewer.getControl());
    tViewer.getTable().setHeaderVisible(true);
    TableColumn clmn = new TableColumn(tViewer.getTable(), SWT.LEFT);
    clmn.setText(com.aptana.ide.search.Messages.AptanaFileSearchPage_File);
    TableColumn clmn1 = new TableColumn(tViewer.getTable(), SWT.LEFT);
    clmn1.setText(com.aptana.ide.search.Messages.AptanaFileSearchPage_Line);
    TableColumn clmn2 = new TableColumn(tViewer.getTable(), SWT.LEFT);
    clmn2.setText(com.aptana.ide.search.Messages.AptanaFileSearchPage_Source);

    TableLayout tableLayout = new TableLayout();
    tableLayout.addColumnData(new ColumnWeightData(1));
    tableLayout.addColumnData(new ColumnPixelData(50));
    tableLayout.addColumnData(new ColumnWeightData(1));
    PreferenceUtils.persist(Activator.getDefault().getPreferenceStore(), tViewer.getTable(), "tviewer"); //$NON-NLS-1$
    this.listener = new Listener() {

        public void handleEvent(Event event) {
            if (event.index == 2) {
                AptanaFileMatch aptanaFileMatch = ((AptanaFileMatch) event.item.getData());
                if (aptanaFileMatch != null) {
                    event.gc.drawText(aptanaFileMatch.getLineContent(), event.x, event.y);
                }
            }
        }

    };
    this.listener1 = new Listener() {

        public void handleEvent(Event event) {

            if (event.index == 2) {
                AptanaFileMatch aptanaFileMatch = ((AptanaFileMatch) event.item.getData());
                if (aptanaFileMatch != null) {
                    event.width = AptanaFileSearchPage.this.metrics
                            .convertWidthInCharsToPixels(aptanaFileMatch.getLineContent().length());
                }
            }
        }

    };
    tViewer.getTable().addListener(SWT.PaintItem, this.listener);
    tViewer.getTable().setLayout(tableLayout);
    IBaseLabelProvider labelProvider = tViewer.getLabelProvider();
    //if (labelProvider instanceof DecoratingLabelProvider){
    labelProvider = new DecoratingFileSearchLabelProvider(
            new FileLabelProvider(this, FileLabelProvider.SHOW_LABEL_PATH));
    tViewer.setLabelProvider(labelProvider);
    baseLabelProvider = (DecoratingFileSearchLabelProvider) labelProvider;
    tViewer.setInput(null);
    tViewer.setLabelProvider(new MatchesTableLabelProvider());
    final IContentProvider contentProvider = tViewer.getContentProvider();
    this.structuredContentProvider = new MatchesContentProvider(this, contentProvider);
    tViewer.setContentProvider(this.structuredContentProvider);
    tViewer.setInput(this.getInput());
    tViewer.getTable().getParent().layout(true);
}

From source file:com.aptana.ide.search.epl.filesystem.ui.text.FileSystemSearchPage.java

License:Open Source License

/**
 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#canRemoveMatchesWith(org.eclipse.jface.viewers.ISelection)
 *//*w w  w.  j a v  a  2 s. com*/
protected boolean canRemoveMatchesWith(ISelection selection) {
    if (selection.isEmpty()) {
        StructuredViewer viewer = getViewer();
        if ((viewer != null) && (viewer instanceof TableViewer)) {
            TableViewer tv = (TableViewer) viewer;
            tv.getTable().getParent().setFocus();
            tv.getTable().deselectAll();
        }
        if ((viewer != null) && (viewer instanceof TreeViewer)) {
            TreeViewer tv = (TreeViewer) viewer;
            tv.getTree().deselectAll();
        }
    }
    return !selection.isEmpty();
}

From source file:com.aptana.ide.search.epl.filesystem.ui.text.FileTableContentProvider.java

License:Open Source License

/**
 * @see com.aptana.ide.search.epl.filesystem.ui.text.IFileSearchContentProvider#elementsChanged(java.lang.Object[])
 *///from   w  ww  .  j ava 2s.c  o  m
public void elementsChanged(Object[] updatedElements) {
    TableViewer viewer = this.getViewer();

    int elementLimit = this.getElementLimit();
    boolean tableLimited = elementLimit != -1;
    for (int i = 0; i < updatedElements.length; i++) {
        if (this.fResult.getMatchCount(updatedElements[i]) > 0) {
            if (viewer.testFindItem(updatedElements[i]) != null) {
                viewer.update(updatedElements[i], null);
            } else {
                if (!tableLimited || (viewer.getTable().getItemCount() < elementLimit)) {
                    viewer.add(updatedElements[i]);
                }
            }
        } else {
            viewer.remove(updatedElements[i]);
        }
    }
}