List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
From source file:com.aptana.editor.common.outline.CommonOutlinePage.java
License:Open Source License
@Override public void createControl(Composite parent) { fMainControl = new Composite(parent, SWT.NONE); fMainControl.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 2).create()); fMainControl.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); fSearchBox = new Text(fMainControl, SWT.SINGLE | SWT.BORDER | SWT.SEARCH); fSearchBox.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).indent(0, 3).create()); fSearchBox.setText(INITIAL_FILTER_TEXT); fSearchBox.setForeground(fSearchBox.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); fSearchBox.addModifyListener(fSearchModifyListener); fSearchBox.addFocusListener(new FocusListener() { public void focusLost(FocusEvent e) { if (fSearchBox.getText().length() == 0) { fSearchBox.removeModifyListener(fSearchModifyListener); fSearchBox.setText(INITIAL_FILTER_TEXT); fSearchBox.addModifyListener(fSearchModifyListener); }/* www . j av a 2s. c o m*/ fSearchBox .setForeground(fSearchBox.getDisplay().getSystemColor(SWT.COLOR_TITLE_INACTIVE_FOREGROUND)); } public void focusGained(FocusEvent e) { if (fSearchBox.getText().equals(INITIAL_FILTER_TEXT)) { fSearchBox.removeModifyListener(fSearchModifyListener); fSearchBox.setText(StringUtil.EMPTY); fSearchBox.addModifyListener(fSearchModifyListener); } fSearchBox.setForeground(null); } }); fTreeViewer = new TreeViewer(fMainControl, SWT.VIRTUAL | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL); fTreeViewer.addSelectionChangedListener(this); fTreeViewer.getControl().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); ((IContextService) getSite().getService(IContextService.class)).activateContext(OUTLINE_CONTEXT); final TreeViewer viewer = getTreeViewer(); viewer.setUseHashlookup(true); viewer.setContentProvider(fContentProvider); viewer.setLabelProvider(fLabelProvider); fInput = new CommonOutlinePageInput(fEditor.getAST()); // Note: the input remains the same (we change its internal contents with a new ast and call refresh, // so that the outline structure is maintained). viewer.setInput(fInput); viewer.setComparator(isSortingEnabled() ? new ViewerComparator() : null); fFilter = new PatternFilter() { @Override protected boolean isLeafMatch(Viewer viewer, Object element) { String label = null; if (element instanceof CommonOutlineItem) { label = ((CommonOutlineItem) element).getLabel(); } else if (element instanceof IParseNode) { label = ((IParseNode) element).getText(); } if (label == null) { return true; } return wordMatches(label); } }; fFilter.setIncludeLeadingWildcard(true); viewer.addFilter(fFilter); viewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection selection = (IStructuredSelection) event.getSelection(); // expands the selection one level if applicable viewer.expandToLevel(selection.getFirstElement(), 1); // selects the corresponding text in editor if (!isLinkedWithEditor()) { setEditorSelection(selection, true); } } }); viewer.getTree().addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { if (e.keyCode == '\r' && isLinkedWithEditor()) { ISelection selection = viewer.getSelection(); if (!selection.isEmpty() && selection instanceof IStructuredSelection) { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); if (page != null) { // brings editor to focus page.activate(fEditor); // deselects the current selection but keeps the cursor position Object widget = fEditor.getAdapter(Control.class); if (widget instanceof StyledText) fEditor.selectAndReveal(((StyledText) widget).getCaretOffset(), 0); } } } } }); hookToThemes(); IActionBars actionBars = getSite().getActionBars(); registerActions(actionBars); actionBars.updateActionBars(); fPrefs.addPropertyChangeListener(this); fFilterRefreshJob = new WorkbenchJob("Refresh Filter") //$NON-NLS-1$ { @Override public IStatus runInUIThread(IProgressMonitor monitor) { if (isDisposed()) { return Status.CANCEL_STATUS; } fTreeViewer.refresh(); String text = fSearchBox.getText(); if (!StringUtil.isEmpty(text) && !INITIAL_FILTER_TEXT.equals(text)) { fTreeViewer.expandAll(); } return Status.OK_STATUS; } }; EclipseUtil.setSystemForJob(fFilterRefreshJob); }
From source file:com.aptana.editor.common.outline.CommonOutlinePage.java
License:Open Source License
public void propertyChange(PropertyChangeEvent event) { String property = event.getProperty(); if (property.equals(IPreferenceConstants.LINK_OUTLINE_WITH_EDITOR)) { boolean isLinked = Boolean.parseBoolean(StringUtil.getStringValue(event.getNewValue())); fToggleLinkingAction.setChecked(isLinked); TreeViewer viewer = getTreeViewer(); if (isLinked) { setEditorSelection((IStructuredSelection) viewer.getSelection(), false); }//from ww w .j ava 2s . c o m } else if (property.equals(IPreferenceConstants.SORT_OUTLINE_ALPHABETIC)) { boolean sort = Boolean.parseBoolean(StringUtil.getStringValue(event.getNewValue())); getTreeViewer().setComparator(sort ? new ViewerComparator() : null); } }
From source file:com.aptana.editor.common.outline.CommonQuickOutlinePage.java
License:Open Source License
/** * Contributes actions to quick outline menu. * //from www. j a va 2 s.c om * @param manager * - menu manager. */ void contributeToQuickOutlineMenu(IMenuManager manager) { // add sort action Action sortAction = new Action(Messages.CommonQuickOutlinePage_SortAlphabetically, Action.AS_CHECK_BOX) { public void run() { // Hide tree control during redraw getTreeViewer().getControl().setVisible(false); // Set the sorting according to whether this Action is checked/unchecked // TODO Store this persistently across quick outlines per-language? if (this.isChecked()) { getTreeViewer().setComparator(new ViewerComparator()); } else { getTreeViewer().setComparator(null); } // Show the tree control getTreeViewer().getControl().setVisible(true); } }; sortAction.setImageDescriptor(UIUtils.getImageDescriptor(CommonEditorPlugin.PLUGIN_ID, "icons/sort.gif")); //$NON-NLS-1$ sortAction.setToolTipText(Messages.CommonQuickOutlinePage_SortAlphabetically); // this._sortItem = new ActionContributionItem(sortAction); manager.add(new ActionContributionItem(sortAction)); // add Collapse All action Action collapseAction = new Action(Messages.CommonQuickOutlinePage_CollapseAll, Action.AS_PUSH_BUTTON) { public void run() { getTreeViewer().collapseAll(); } }; collapseAction.setImageDescriptor( PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_COLLAPSEALL)); collapseAction.setToolTipText(Messages.CommonQuickOutlinePage_CollapseAll); manager.add(new ActionContributionItem(collapseAction)); // Expand All action Action expandAction = new Action(Messages.CommonQuickOutlinePage_ExpandAll) { public void run() { getTreeViewer().expandAll(); } }; expandAction.setImageDescriptor( UIUtils.getImageDescriptor(CommonEditorPlugin.PLUGIN_ID, "icons/expandall.gif")); //$NON-NLS-1$ expandAction.setToolTipText(Messages.CommonQuickOutlinePage_ExpandAll); manager.add(new ActionContributionItem(expandAction)); }
From source file:com.aptana.editor.common.preferences.ContentAssistPreferencePage.java
License:Open Source License
/** * createUserAgentTable//from w w w. j a v a2 s . c om * * @param parent */ protected void createUserAgentTable(Composite parent) { Label label = new Label(parent, SWT.WRAP); label.setText(Messages.UserAgentPreferencePage_Select_User_Agents); label.setLayoutData(GridDataFactory.fillDefaults().span(2, 0).grab(true, true).create()); Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(GridLayoutFactory.fillDefaults().create()); composite.setLayoutData(GridDataFactory.fillDefaults().span(2, 0).hint(400, 120).grab(true, true).create()); Table table = new Table(composite, SWT.CHECK | SWT.BORDER | SWT.SINGLE); table.setFont(parent.getFont()); categoryViewer = new CheckboxTableViewer(table); categoryViewer.getControl().setFont(parent.getFont()); categoryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); categoryViewer.setContentProvider(ArrayContentProvider.getInstance()); CategoryLabelProvider categoryLabelProvider = new CategoryLabelProvider(true); categoryViewer.setLabelProvider(categoryLabelProvider); categoryViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object e1, Object e2) { if (e1 instanceof IUserAgent && e2 instanceof IUserAgent) { IUserAgent ua1 = (IUserAgent) e1; IUserAgent ua2 = (IUserAgent) e2; String uaName1 = StringUtil.getStringValue(ua1.getName()); String uaName2 = StringUtil.getStringValue(ua2.getName()); return uaName1.compareToIgnoreCase(uaName2); } return super.compare(viewer, e1, e2); } }); categoryViewer.setInput(UserAgentManager.getInstance().getAllUserAgents()); }
From source file:com.aptana.editor.common.preferences.TasksPreferencePage.java
License:Open Source License
/** * @param parent// ww w .j a va 2s . c om */ private void createTaskTableArea(Composite parent) { fTasksTableViewer = new TableViewer(parent, SWT.BORDER | SWT.SINGLE); Table table = fTasksTableViewer.getTable(); table.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); table.setHeaderVisible(true); table.setLinesVisible(true); table.setFont(parent.getFont()); TableColumn tagNameColumn = new TableColumn(table, SWT.NONE); tagNameColumn.setText(Messages.TasksPreferencePage_TagNameColumnHeader); tagNameColumn.setWidth(100); TableColumn tagPriorityColumn = new TableColumn(table, SWT.NONE); tagPriorityColumn.setText(Messages.TasksPreferencePage_PriorityColumnHeader); tagPriorityColumn.setWidth(100); fTasksTableViewer.setContentProvider(ArrayContentProvider.getInstance()); fTasksTableViewer.setLabelProvider(new TaskLabelProvider()); fTasksTableViewer.setComparator(new ViewerComparator()); fTasksTableViewer.setInput(getTaskTags()); fTasksTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { // Enable/disable buttons updateButtonStates(); } }); createTaskButtons(parent); }
From source file:com.aptana.editor.php.internal.ui.preferences.BuildPathEditingComposite.java
License:Open Source License
private void createLibraryPart(TabItem item) { TabFolder parent2 = item.getParent(); Composite projectPart = new Composite(parent2, SWT.NONE); projectPart.setLayout(new GridLayout(2, false)); customLibsButton = new Button(projectPart, SWT.CHECK); GridData layoutData = new GridData(GridData.FILL_HORIZONTAL); layoutData.horizontalSpan = 2;/* w w w .jav a2s .co m*/ customLibsButton.setLayoutData(layoutData); customLibsButton.setText(Messages.BuildPathEditingComposite_projectSpecific); libraryViewer = CheckboxTableViewer.newCheckList(projectPart, SWT.BORDER); libraryViewer.setContentProvider(new ArrayContentProvider()); IPHPLibrary[] allLibraries = LibraryManager.getInstance().getAllLibraries(); libraryViewer.setInput(allLibraries); libraryViewer.setComparator(new ViewerComparator()); final Map<URL, Image> images = new HashMap<URL, Image>(); libraryViewer.setLabelProvider(new LibraryLabelProvider(images)); final Composite buttons = new Composite(projectPart, SWT.NONE); projectPart.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { for (Image m : images.values()) { m.dispose(); } } }); libraryViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; buttons.setLayout(layout); select = new Button(buttons, SWT.NONE); select.setText(Messages.LibrariesPage_selectAll); select.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); deselect = new Button(buttons, SWT.NONE); deselect.setText(Messages.LibrariesPage_deselectAll); deselect.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL)); customLibsButton.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { boolean selection = customLibsButton.getSelection(); libraryViewer.getControl().setEnabled(selection); select.setEnabled(selection); deselect.setEnabled(selection); } }); select.addSelectionListener(new SelectAction(true)); deselect.addSelectionListener(new SelectAction(false)); item.setControl(projectPart); }
From source file:com.aptana.editor.php.internal.ui.preferences.PHPLibrariesPreferencePage.java
License:Open Source License
@Override protected Control createContents(Composite parent) { Composite body = new Composite(parent, SWT.NONE); body.setLayout(new GridLayout(1, false)); Label label = new Label(body, SWT.NONE | SWT.WRAP); label.setText(Messages.PHPLibrariesPreferencePage_librariesTitle); final Map<URL, Image> images = new HashMap<URL, Image>(); Composite tableAndButton = new Composite(body, SWT.NONE); tableAndButton.setLayout(new GridLayout(2, false)); newCheckList = CheckboxTableViewer.newCheckList(tableAndButton, SWT.BORDER); newCheckList.setContentProvider(new ArrayContentProvider()); newCheckList.setInput(LibraryManager.getInstance().getAllLibraries()); Composite buttons = new Composite(tableAndButton, SWT.NONE); buttons.setLayout(new GridLayout(1, false)); newCheckList.setComparator(new ViewerComparator()); newCheckList.setLabelProvider(new LibraryLabelProvider(images)); GridData layoutData = new GridData(GridData.FILL_BOTH); layoutData.minimumHeight = 400;/*w w w . j a va2s . co m*/ newCheckList.getControl().setLayoutData(layoutData); body.addDisposeListener(new DisposeListener() { public void widgetDisposed(DisposeEvent e) { for (Image m : images.values()) { m.dispose(); } } }); layoutData = new GridData(); layoutData.heightHint = 400; body.setLayoutData(layoutData); for (IPHPLibrary l : LibraryManager.getInstance().getAllLibraries()) { newCheckList.setChecked(l, l.isTurnedOn()); } buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL)); Button add = new Button(buttons, SWT.PUSH); add.setText(Messages.PHPLibrariesPreferencePage_newUserLibrary); add.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); add.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { PHPLibraryDialog libraryDialog = new PHPLibraryDialog(Display.getCurrent().getActiveShell(), null, getContent()); if (libraryDialog.open() == Dialog.OK) { UserLibrary result = libraryDialog.getResult(); newCheckList.add(result); newCheckList.setChecked(result, true); } } }); final Button edit = new Button(buttons, SWT.PUSH); edit.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { // empty } public void widgetSelected(SelectionEvent e) { IStructuredSelection ss = (IStructuredSelection) newCheckList.getSelection(); UserLibrary firstElement = (UserLibrary) ss.getFirstElement(); PHPLibraryDialog libraryDialog = new PHPLibraryDialog(Display.getCurrent().getActiveShell(), firstElement, getContent()); if (libraryDialog.open() == Dialog.OK) { newCheckList.remove(firstElement); newCheckList.add(libraryDialog.getResult()); } } }); edit.setText(Messages.PHPLibrariesPreferencePage_editLibrary); edit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); final Button remove = new Button(buttons, SWT.PUSH); remove.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { IStructuredSelection ss = (IStructuredSelection) newCheckList.getSelection(); for (Object o : ss.toArray()) { newCheckList.remove(o); } } }); remove.setText(Messages.PHPLibrariesPreferencePage_removeLibrary); tableAndButton.setLayoutData(new GridData(GridData.FILL_BOTH)); remove.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); newCheckList.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { IStructuredSelection ss = (IStructuredSelection) event.getSelection(); if (ss.isEmpty() || ss.getFirstElement() instanceof PHPLibrary) { edit.setEnabled(false); remove.setEnabled(false); return; } edit.setEnabled(true); remove.setEnabled(true); } }); Button selectAll = new Button(buttons, SWT.PUSH); selectAll.setText(Messages.LibrariesPage_selectAll); selectAll.addSelectionListener(new SelectAction(true)); Button deselectAll = new Button(buttons, SWT.PUSH); deselectAll.setText(Messages.LibrariesPage_deselectAll); selectAll.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); deselectAll.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); deselectAll.addSelectionListener(new SelectAction(false)); edit.setEnabled(false); remove.setEnabled(false); return body; }
From source file:com.aptana.editor.php.internal.ui.preferences.PHPLibraryDialog.java
License:Open Source License
@Override protected Control createDialogArea(Composite parent) { Composite body = new Composite(parent, SWT.NONE); body.setLayout(new GridLayout(2, false)); body.setLayoutData(new GridData(GridData.FILL_BOTH)); Label label = new Label(body, SWT.NONE); label.setText(Messages.PHPLibraryDialog_libraryName); nameText = new Text(body, SWT.BORDER); nameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); if (library != null) { nameText.setText(library.getName()); }//from w ww . java 2 s .c o m nameText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { validate(); } }); Group pComp = new Group(body, SWT.NONE); pComp.setText(Messages.PHPLibraryDialog_libraryContent); pComp.setLayout(new GridLayout(2, false)); GridData layoutData = new GridData(GridData.FILL_BOTH); layoutData.horizontalSpan = 2; layoutData.minimumHeight = 200; pComp.setLayoutData(layoutData); viewer = new TableViewer(pComp, SWT.BORDER); viewer.setComparator(new ViewerComparator()); viewer.setContentProvider(new ArrayContentProvider()); viewer.setLabelProvider(new LabelProvider() { public String getText(Object element) { return element.toString(); } public Image getImage(Object element) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER); } }); Composite buttons = new Composite(pComp, SWT.NONE); GridLayout layout = new GridLayout(1, false); layout.marginHeight = 0; if (library != null) { viewer.setInput(library.getDirectories().toArray()); } else { viewer.setInput(new String[0]); // $codepro.audit.disable reusableImmutables } buttons.setLayout(layout); Button add = new Button(buttons, SWT.NONE); add.setText(Messages.PHPLibraryDialog_addFolder); add.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { DirectoryDialog directoryDialog = new DirectoryDialog(Display.getCurrent().getActiveShell()); directoryDialog.setText(Messages.PHPLibraryDialog_selectFolder); String open = directoryDialog.open(); viewer.add(open); } }); add.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); Button remove = new Button(buttons, SWT.NONE); remove.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent e) { } public void widgetSelected(SelectionEvent e) { IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); for (Object o : selection.toArray()) { viewer.remove(o); } } }); remove.setText(Messages.PHPLibraryDialog_removeSelected); remove.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL)); viewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); Control createDialogArea = super.createDialogArea(parent); setMessage(Messages.PHPLibraryDialog_libraryConfigureMessage); setTitleImage(titleImage); setTitle(Messages.PHPLibraryDialog_libraryConfigureTitle); buttons.setLayoutData(new GridData(GridData.FILL_VERTICAL)); return createDialogArea; }
From source file:com.aptana.formatter.ui.preferences.AddRemoveList.java
License:Open Source License
/** * Creates the contents of this list./*from w ww .j a v a2 s . co m*/ */ protected void createContents(Composite parent) { control = new Composite(parent, SWT.NULL); GridLayout layout = new GridLayout(); layout.numColumns = 2; layout.marginWidth = 0; layout.marginHeight = 0; control.setLayout(layout); GridData data = new GridData(GridData.FILL_BOTH); data.grabExcessVerticalSpace = true; control.setLayoutData(data); listViewer = new CListViewer(control, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION | SWT.V_SCROLL); listViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtonsState(); } }); contentProvider = new ListContentProvider(); listViewer.setContentProvider(contentProvider); listViewer.setComparator(new ViewerComparator()); data = new GridData(GridData.FILL_BOTH); data.heightHint = 300; listViewer.getControl().setLayoutData(data); Composite groupComponent = new Composite(control, SWT.NULL); GridLayout groupLayout = new GridLayout(); groupLayout.marginWidth = 0; groupLayout.marginHeight = 0; groupComponent.setLayout(groupLayout); data = new GridData(); data.verticalAlignment = GridData.FILL; data.horizontalAlignment = GridData.FILL; groupComponent.setLayoutData(data); addButton = new Button(groupComponent, SWT.PUSH); addButton.setText(Messages.AddRemoveList_add); addButton.addListener(SWT.Selection, this); addButton.setLayoutData(data); setButtonLayoutData(addButton); removeButton = new Button(groupComponent, SWT.PUSH); removeButton.setText(Messages.AddRemoveList_remove); removeButton.addListener(SWT.Selection, this); setButtonLayoutData(removeButton); // Spacer Label label = new Label(control, SWT.LEFT); data = new GridData(); data.horizontalAlignment = GridData.FILL; data.horizontalSpan = 2; label.setLayoutData(data); updateButtonsState(); }
From source file:com.aptana.ide.ui.io.preferences.RemotePreferencePage.java
License:Open Source License
private Composite createCloakingComposite(Composite parent) { Composite main = new Composite(parent, SWT.NONE); main.setLayout(GridLayoutFactory.fillDefaults().numColumns(2).create()); Button addButton = new Button(main, SWT.PUSH); addButton.setImage(IOUIPlugin.getImage(ADD_ICON)); addButton.addSelectionListener(new SelectionAdapter() { @Override//from w ww.j a va 2 s .co m public void widgetSelected(SelectionEvent e) { add(); } }); removeButton = new Button(main, SWT.PUSH); removeButton.setImage(IOUIPlugin.getImage(REMOVE_ICON)); removeButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { remove(); } }); tableViewer = new TableViewer(main, SWT.MULTI | SWT.BORDER | SWT.FULL_SELECTION); Table table = tableViewer.getTable(); table.setLayoutData(GridDataFactory.fillDefaults().span(2, 1).grab(true, true).create()); tableViewer.setContentProvider(ArrayContentProvider.getInstance()); tableViewer.setLabelProvider(new LabelProvider()); tableViewer.setInput(expressions); tableViewer.setComparator(new ViewerComparator()); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtonState(); } }); updateButtonState(); return main; }