List of usage examples for org.eclipse.jface.viewers ViewerComparator ViewerComparator
public ViewerComparator()
From source file:com.liferay.ide.gradle.ui.action.OSGiBundleFileSelectionDialog.java
License:Open Source License
public OSGiBundleFileSelectionDialog(Shell parent, ElementList<OverrideFilePath> currentFiles) { super(parent, new FileLabelProvider(), new FileContentProvider()); files = currentFiles;/*from w w w . ja va2s . c o m*/ setComparator(new ViewerComparator()); }
From source file:com.liferay.ide.portlet.ui.action.SortAction.java
License:Open Source License
/** * @param viewer// w w w . j av a 2 s .co m * @param tooltipText * @param sorter * @param defaultSorter * @param listener * @param useMiniImage */ public SortAction(StructuredViewer viewer, String tooltipText, ViewerComparator sorter, ViewerComparator defaultSorter, IPropertyChangeListener listener) { super(tooltipText, IAction.AS_CHECK_BOX); // Set the tooltip setToolTipText(tooltipText); // Set the image setImageDescriptor(ImageDescriptor .createFromURL(PortletUIPlugin.getDefault().getBundle().getEntry("/icons/e16/alphab_sort_co.gif"))); //$NON-NLS-1$ // Set the default comparator fDefaultComparator = defaultSorter; // Set the viewer fViewer = viewer; // Set the comparator // If one was not specified, use the default if (sorter == null) { fComparator = new ViewerComparator(); } else { fComparator = sorter; } // Determine if the viewer is already sorted // Note: Most likely the default comparator is null if (viewer.getComparator() == fDefaultComparator) { fSorted = false; } else { fSorted = true; } // Set the status of this action depending on whether it is sorted or // not setChecked(fSorted); // If a listener was specified, use it if (listener != null) { addListenerObject(listener); } }
From source file:com.liferay.ide.project.ui.modules.fragment.action.OSGiBundleFileSelectionDialog.java
License:Open Source License
public OSGiBundleFileSelectionDialog(Shell parent, ElementList<OverrideFilePath> currentFiles, String projectName) {// www . j a v a 2 s . c o m super(parent, new FileLabelProvider(), new FileContentProvider()); files = currentFiles; this.projectName = projectName; setComparator(new ViewerComparator()); }
From source file:com.liferay.ide.project.ui.wizard.SDKProjectConvertWizardPage.java
License:Open Source License
protected void createProjectsList(Composite workArea) { Label title = new Label(workArea, SWT.NONE); title.setText(Msgs.importProjectLabel); title.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1)); // Composite listComposite = new Composite(workArea, SWT.NONE); // GridLayout layout = new GridLayout(); // layout.numColumns = 2; // layout.marginWidth = 0; // layout.makeColumnsEqualWidth = false; // listComposite.setLayout(layout); // GridData gd = new GridData(GridData.GRAB_HORIZONTAL // | GridData.GRAB_VERTICAL | GridData.FILL_BOTH); // gd.grabExcessHorizontalSpace = true; // gd.horizontalSpan = 3; // listComposite.setLayoutData(gd); projectsList = new CheckboxTreeViewer(workArea, SWT.BORDER); GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1); gridData.widthHint = new PixelConverter(projectsList.getControl()).convertWidthInCharsToPixels(25); gridData.heightHint = new PixelConverter(projectsList.getControl()).convertHeightInCharsToPixels(10); projectsList.getControl().setLayoutData(gridData); projectsList.setContentProvider(new ITreeContentProvider() { public void dispose() { }/* w w w .j a v a 2 s . com*/ public Object[] getChildren(Object parentElement) { return null; } public Object[] getElements(Object inputElement) { // return getProjectRecords(); return (Object[]) getDataModel().getProperty(SELECTED_PROJECTS); } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return false; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); projectsList.setLabelProvider(new ProjectLabelProvider()); projectsList.addCheckStateListener(new ICheckStateListener() { /* * (non-Javadoc) * @see org.eclipse.jface.viewers.ICheckStateListener#checkStateChanged * (org.eclipse.jface.viewers.CheckStateChangedEvent) */ public void checkStateChanged(CheckStateChangedEvent event) { ProjectRecord element = (ProjectRecord) event.getElement(); if (element.hasConflicts()) { projectsList.setChecked(element, false); } getDataModel().setProperty(SELECTED_PROJECTS, projectsList.getCheckedElements()); setPageComplete(projectsList.getCheckedElements().length > 0); } }); projectsList.setInput(this); projectsList.setComparator(new ViewerComparator()); }
From source file:com.liferay.ide.project.ui.wizard.SDKProjectsImportWizardPage.java
License:Open Source License
protected void createProjectsList(Composite workArea) { labelProjectsList = new Label(workArea, SWT.NONE); labelProjectsList.setText(Msgs.importProjectsLabel); labelProjectsList.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1)); projectsList = new CheckboxTreeViewer(workArea, SWT.BORDER); GridData gridData = new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1); gridData.widthHint = new PixelConverter(projectsList.getControl()).convertWidthInCharsToPixels(25); gridData.heightHint = new PixelConverter(projectsList.getControl()).convertHeightInCharsToPixels(10); projectsList.getControl().setLayoutData(gridData); projectsList.setContentProvider(new ITreeContentProvider() { public void dispose() { }//from w w w .j ava 2 s . co m public Object[] getChildren(Object parentElement) { return null; } public Object[] getElements(Object inputElement) { return getProjectRecords(); } public Object getParent(Object element) { return null; } public boolean hasChildren(Object element) { return false; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } }); projectsList.setLabelProvider(createProjectsListLabelProvider()); projectsList.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { handleCheckStateChangedEvent(event); } }); projectsList.setInput(this); projectsList.setComparator(new ViewerComparator()); createSelectionButtons(workArea); }
From source file:com.liferay.ide.project.ui.wizard.WorkingSetGroup.java
License:Open Source License
private void createControl(Composite container) { addToWorkingSetButton = new Button(container, SWT.CHECK); GridData gd_addToWorkingSetButton = new GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1); gd_addToWorkingSetButton.verticalIndent = 12; addToWorkingSetButton.setLayoutData(gd_addToWorkingSetButton); addToWorkingSetButton.setSelection(true); addToWorkingSetButton.setData("name", "addToWorkingSetButton"); //$NON-NLS-1$ //$NON-NLS-2$ addToWorkingSetButton.setText("Add project to working set"); addToWorkingSetButton.setSelection(false); final Label workingsetLabel = new Label(container, SWT.NONE); GridData gd_workingsetLabel = new GridData(); gd_workingsetLabel.horizontalIndent = 10; workingsetLabel.setLayoutData(gd_workingsetLabel); workingsetLabel.setEnabled(false);//from ww w . jav a 2s . co m workingsetLabel.setData("name", "workingsetLabel"); //$NON-NLS-1$ //$NON-NLS-2$ workingsetLabel.setText("Working set:"); Combo workingsetCombo = new Combo(container, SWT.READ_ONLY); workingsetCombo.setEnabled(false); workingsetCombo.setData("name", "workingsetCombo"); //$NON-NLS-1$ //$NON-NLS-2$ workingsetCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); workingsetComboViewer = new ComboViewer(workingsetCombo); workingsetComboViewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object input) { if (input instanceof IWorkingSet[]) { return (IWorkingSet[]) input; } else if (input instanceof List<?>) { return new Object[] { input }; } else if (input instanceof Set<?>) { return ((Set<?>) input).toArray(); } return new IWorkingSet[0]; } public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } public void dispose() { } }); workingsetComboViewer.setLabelProvider(new LabelProvider() { private ResourceManager images = new LocalResourceManager(JFaceResources.getResources()); @SuppressWarnings("deprecation") public Image getImage(Object element) { if (element instanceof IWorkingSet) { ImageDescriptor imageDescriptor = ((IWorkingSet) element).getImage(); if (imageDescriptor != null) { try { return (Image) images.create(imageDescriptor); } catch (DeviceResourceException ex) { return null; } } } return super.getImage(element); } public String getText(Object element) { if (element instanceof IWorkingSet) { return ((IWorkingSet) element).getLabel(); } else if (element instanceof List<?>) { StringBuffer sb = new StringBuffer(); for (Object o : (List<?>) element) { if (o instanceof IWorkingSet) { if (sb.length() > 0) { sb.append(", "); //$NON-NLS-1$ } sb.append(((IWorkingSet) o).getLabel()); } } return sb.toString(); } return super.getText(element); } public void dispose() { images.dispose(); super.dispose(); } }); workingsetComboViewer.setComparator(new ViewerComparator()); final Button newWorkingSetButton = new Button(container, SWT.NONE); newWorkingSetButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false)); newWorkingSetButton.setData("name", "configureButton"); //$NON-NLS-1$ //$NON-NLS-2$ newWorkingSetButton.setText("More..."); newWorkingSetButton.setEnabled(false); newWorkingSetButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { IWorkingSetManager workingSetManager = PlatformUI.getWorkbench().getWorkingSetManager(); IWorkingSetSelectionDialog dialog = workingSetManager.createWorkingSetSelectionDialog(shell, true, WORKING_SET_IDS.toArray(new String[0])); if (dialog.open() == Window.OK) { IWorkingSet[] workingSets = dialog.getSelection(); selectWorkingSets(Arrays.asList(workingSets)); } } }); if (selectWorkingSets(workingSets)) { addToWorkingSetButton.setSelection(true); workingsetLabel.setEnabled(true); workingsetComboViewer.getCombo().setEnabled(true); newWorkingSetButton.setEnabled(true); } addToWorkingSetButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { boolean addToWorkingingSet = addToWorkingSetButton.getSelection(); workingsetLabel.setEnabled(addToWorkingingSet); workingsetComboViewer.getCombo().setEnabled(addToWorkingingSet); newWorkingSetButton.setEnabled(addToWorkingingSet); if (addToWorkingingSet) { updateConfiguration(); } else { workingSets.clear(); } } }); workingsetComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateConfiguration(); } }); }
From source file:com.liferay.ide.ui.snippets.wizard.AbstractModelWizardPage.java
License:Open Source License
public void createControl(Composite parent) { Composite topComposite = SWTUtil.createTopComposite(parent, 3); modelClassDialogField.doFillIntoGrid(topComposite, 3); // Text modelClassText = modelClassDialogField.getTextControl(null); ///*ww w. ja v a 2 s . co m*/ // JavaTypeCompletionProcessor classCompletionProcessor = new JavaTypeCompletionProcessor(false, false, true); // classCompletionProcessor.setCompletionContextRequestor(new CompletionContextRequestor() { // // @Override // public StubTypeContext getStubTypeContext() { // return getClassStubTypeContext(); // } // }); // // ControlContentAssistHelper.createTextContentAssistant(modelClassText, classCompletionProcessor); // TextFieldNavigationHandler.install(modelClassText); propertyListField.doFillIntoGrid(topComposite, 3); LayoutUtil.setHorizontalSpan(propertyListField.getLabelControl(null), 1); LayoutUtil.setWidthHint(propertyListField.getLabelControl(null), convertWidthInCharsToPixels(40)); LayoutUtil.setHorizontalGrabbing(propertyListField.getListControl(null)); propertyListField.getTableViewer().setComparator(new ViewerComparator()); varNameLabel = new Label(topComposite, SWT.LEFT); varNameLabel.setText(Msgs.variableNameLabel); varNameLabel.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL)); varNameText = new Text(topComposite, SWT.SINGLE | SWT.BORDER); varNameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); varNameText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { lastVarName = varNameText.getText(); } }); setControl(topComposite); }
From source file:com.mansfield.pde.api.tools.internal.ui.preferencepages.TargetBaselinePreferencePage.java
License:Open Source License
private void createTargetProfilesGroup(Composite parent) { Composite comp = SWTFactory.createComposite(parent); GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(comp); GridDataFactory.fillDefaults().grab(true, true).hint(350, SWT.DEFAULT).applyTo(comp); Label message = SWTFactory.createLabel(comp, SWT.WRAP, PDEUIMessages.TargetPlatformPreferencePage2_0); GridDataFactory.fillDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).applyTo(message); Label spacer = SWTFactory.createLabel(comp); GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(SWT.DEFAULT, 1).applyTo(spacer); Composite tableComposite = SWTFactory.createComposite(comp); GridLayoutFactory.swtDefaults().margins(0, 0).numColumns(2).applyTo(tableComposite); GridDataFactory.fillDefaults().grab(true, true).applyTo(tableComposite); Label tableTitle = SWTFactory.createLabel(tableComposite, PDEUIMessages.TargetPlatformPreferencePage2_2); GridDataFactory.swtDefaults().span(2, 1).applyTo(tableTitle); fTableViewer = CheckboxTableViewer.newCheckList(tableComposite, SWT.MULTI | SWT.BORDER); GridDataFactory.fillDefaults().hint(250, SWT.DEFAULT).grab(true, true).applyTo(fTableViewer.getTable()); fTableViewer.setLabelProvider(new TargetNameLabelProvider()); fTableViewer.setContentProvider(ArrayContentProvider.getInstance()); fTableViewer.addCheckStateListener(new ICheckStateListener() { public void checkStateChanged(CheckStateChangedEvent event) { Object definition = event.getElement(); if (event.getChecked()) { fTableViewer.setCheckedElements(new Object[] { definition }); int id = getIdentifier(definition); newDefinitionId = id;/* w ww . j a v a2 s .c o m*/ } else { fTableViewer.setChecked(definition, event.getChecked()); newDefinitionId = NULL_DEFINITION; } rebuild_Count = 0; fTableViewer.refresh(true); is_Dirty = true; } }); fTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { updateButtons(); updateDetails(); } }); fTableViewer.addDoubleClickListener(new IDoubleClickListener() { public void doubleClick(DoubleClickEvent event) { IStructuredSelection ss = (IStructuredSelection) event.getSelection(); handleEdit(ss.getFirstElement()); } }); fTableViewer.getTable().addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.stateMask == SWT.NONE && e.keyCode == SWT.DEL) { handleRemove(); } } }); fTableViewer.setComparator(new ViewerComparator() { public int compare(Viewer viewer, Object e1, Object e2) { String name1 = getDefinitionName(e1); String name2 = getDefinitionName(e2); if (name1 == null) { return -1; } if (name2 == null) { return 1; } return name1.compareToIgnoreCase(name2); } }); Composite buttonComposite = SWTFactory.createComposite(tableComposite); GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(buttonComposite); GridDataFactory.fillDefaults().applyTo(buttonComposite); fReloadButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_16); int width = SWTFactory.getButtonWidthHint(fReloadButton); GridDataFactory.fillDefaults().hint(width, SWT.DEFAULT).applyTo(fReloadButton); fReloadButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { handleReload(); } }); spacer = SWTFactory.createLabel(buttonComposite); GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).hint(SWT.DEFAULT, 1).applyTo(spacer); fAddButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_3); GridDataFactory.fillDefaults().applyTo(fAddButton); fAddButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { handleAdd(); } }); fEditButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_5); GridDataFactory.fillDefaults().applyTo(fEditButton); fEditButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { handleEdit(getCurrentSelection().get(0)); } }); fRemoveButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_7); GridDataFactory.fillDefaults().applyTo(fRemoveButton); fRemoveButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { handleRemove(); } }); // TODO: Bad Label fMoveButton = SWTFactory.createPushButton(buttonComposite, PDEUIMessages.TargetPlatformPreferencePage2_13, null); GridDataFactory.fillDefaults().applyTo(fMoveButton); fMoveButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { handleMove(); } }); Composite detailsComposite = SWTFactory.createComposite(comp); GridLayoutFactory.swtDefaults().margins(0, 0).applyTo(detailsComposite); GridDataFactory.fillDefaults().applyTo(detailsComposite); Label locations = SWTFactory.createLabel(detailsComposite, PDEUIMessages.TargetPlatformPreferencePage2_25); GridDataFactory.fillDefaults().applyTo(locations); fDetails = new TableViewer(detailsComposite); GridDataFactory.fillDefaults().hint(SWT.DEFAULT, 50).grab(true, false).applyTo(fDetails.getTable()); fDetails.setLabelProvider(new DefinitionLocationLabelProvider(true, true)); fDetails.setContentProvider(new ArrayContentProvider()); compilers_ConfigBlock = new ApiBaselinesConfigurationBlock((IWorkbenchPreferenceContainer) getContainer()); compilers_ConfigBlock.createControl(comp, null); // Initialization steps // Bootstrap the buttons with their initial state updateButtons(); // Add the existing API Baseline definitions BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() { public void run() { IApiBaseline[] existingBaselines = baseline_Manager.getApiBaselines(); List<IApiBaseline> baselines = new ArrayList<IApiBaseline>(existingBaselines.length); Collections.addAll(baselines, existingBaselines); // Find any persisted (active?) baselines with the @target extension // and remove them from the list of baselines since they should be // associated with a target for (int i = 0; i < baselines.size(); i++) { IApiBaseline baseline = baselines.get(i); if (baseline.getName().endsWith(TARGET_BASELINE_EXTENSION)) { baselines.remove(i--); } } buildIdentifiers(baselines); baselineDefinitions.addAll(baselines); allDefinitions.addAll(baselines); } }); // Add the existing Target definitions BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() { public void run() { ITargetPlatformService service = getTargetService(); if (service != null) { ITargetHandle[] targets = service.getTargets(null); for (int i = 0; i < targets.length; i++) { try { ITargetDefinition target = targets[i].getTargetDefinition(); buildIdentifier(target); targetDefinitions.add(target); allDefinitions.add(target); } catch (CoreException e) { PDECore.log(e); setErrorMessage(e.getMessage()); } } } } }); // Load the definitions into the table fTableViewer.setInput(allDefinitions); // Set the active baseline, if any BusyIndicator.showWhile(getShell().getDisplay(), new Runnable() { public void run() { IApiBaseline activeBaseline = baseline_Manager.getDefaultApiBaseline(); if (activeBaseline != null) { if (!activeBaseline.getName().endsWith(TARGET_BASELINE_EXTENSION)) { fTableViewer.setCheckedElements(new Object[] { activeBaseline }); activeDefinitionId = getIdentifier(activeBaseline); newDefinitionId = activeDefinitionId; } else { int index = activeBaseline.getName().lastIndexOf(TARGET_BASELINE_EXTENSION); String name = activeBaseline.getName().substring(0, index); for (int i = 0; i < targetDefinitions.size(); i++) { ITargetDefinition target = targetDefinitions.get(i); if (target.getName().equals(name)) { try { IApiBaseline tempBaseline = ApiModelFactory.newApiBaseline("local_temp"); //$NON-NLS-1$ try { addComponents(tempBaseline, target, new NullProgressMonitor()); } catch (CoreException ex) { // do nothing, assume they do not match continue; } // Even though they are supposed to be returned by lookup order, // the order is non-deterministic (provable, bug?) thus we need to // sort the arrays IApiComponent[] activeComponents = activeBaseline.getApiComponents(); Arrays.sort(activeComponents, componentSorter); IApiComponent[] tempComponents = tempBaseline.getApiComponents(); Arrays.sort(tempComponents, componentSorter); if (activeComponents.length != tempComponents.length) { continue; } boolean equal = true; for (int j = 0; j < activeComponents.length && equal; j++) { // Since we are only interested in the bundles and not any SystemLibraryComponents // we can use the overridden equals() method in BundleComponent for the evaluation // If there is a system library then this will fail, as it should since Targets // cannot have system libraries equal &= areEqual(activeComponents[j], tempComponents[j]); } if (equal) { fTableViewer.setCheckedElements(new Object[] { target }); activeDefinitionId = getIdentifier(target); newDefinitionId = activeDefinitionId; break; } } finally { baseline_Manager.removeApiBaseline("local_temp"); //$NON-NLS-1$ } } } } } } }); fTableViewer.refresh(true); }
From source file:com.microsoft.tfs.client.common.ui.teambuild.egit.dialogs.GitSourceSettingsControl.java
License:Open Source License
private void setupRepoComboViewer() { repoComboViewer.setLabelProvider(new LabelProvider() { @Override//from ww w . j a v a2s.co m public String getText(final Object element) { final GitRepository repository = (GitRepository) element; final String name = repository.getName(); final GitBranch branch = repository.getCurrentBranch(); final String path = repository.getRepositoryPath(); return MessageFormat.format("{0} [{1}] - {2}", //$NON-NLS-1$ name, branch == null ? "?" : branch.getRemoteName(), //$NON-NLS-1$ path); } }); repoComboViewer.setContentProvider(new ContentProviderAdapter() { @Override public Object[] getElements(final Object input) { @SuppressWarnings("unchecked") final List<GitRepository> repositories = ((List<GitRepository>) input); return repositories.toArray(new GitRepository[repositories.size()]); } }); repoComboViewer.setComparator(new ViewerComparator() { @Override public int compare(final Viewer viewer, final Object e1, final Object e2) { return ((GitRepository) e1).compareTo(((GitRepository) e2)); } }); repoComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(final SelectionChangedEvent event) { final IStructuredSelection selection = (IStructuredSelection) event.getSelection(); onRepoSelected((GitRepository) selection.getFirstElement()); } }); }
From source file:com.microsoft.tfs.client.common.ui.teambuild.egit.dialogs.GitSourceSettingsControl.java
License:Open Source License
private void setupBranchViewers() { final IContentProvider contentProvider = new ContentProviderAdapter() { @Override/*from w w w. ja v a 2 s .c om*/ public Object[] getElements(final Object input) { @SuppressWarnings("unchecked") final List<GitBranch> branches = ((List<GitBranch>) input); return branches.toArray(new GitBranch[branches.size()]); } }; branchViewer.setContentProvider(contentProvider); branchComboViewer.setContentProvider(contentProvider); final LabelProvider labelProvider = new LabelProvider() { @Override public String getText(final Object element) { return ((GitBranch) element).getRemoteName(); } }; branchViewer.setLabelProvider(labelProvider); branchComboViewer.setLabelProvider(labelProvider); final ViewerComparator viewerComparator = new ViewerComparator() { @Override public int compare(final Viewer viewer, final Object e1, final Object e2) { return ((GitBranch) e1).compareTo(((GitBranch) e2)); } }; branchViewer.setComparator(viewerComparator); branchComboViewer.setComparator(viewerComparator); }