List of usage examples for org.eclipse.jface.viewers DecorationOverlayIcon DecorationOverlayIcon
public DecorationOverlayIcon(ImageDescriptor baseImageDescriptor, ImageDescriptor overlayImageDescriptor, int quadrant)
From source file:org.jboss.tools.fuse.transformation.editor.internal.AddCustomTransformationDialog.java
License:Open Source License
@Override protected void constructContents(Composite parent) { parent.setLayout(GridLayoutFactory.swtDefaults().numColumns(3).create()); Label label = new Label(parent, SWT.NONE); label.setText(Messages.AddCustomTransformationDialog_label_Class); final Button classButton = new Button(parent, SWT.NONE); classButton.setLayoutData(/*from ww w . ja v a2s . co m*/ GridDataFactory.swtDefaults().align(SWT.FILL, SWT.CENTER).grab(true, false).create()); classButton.setAlignment(SWT.LEFT); classButton.setText(Messages.AddCustomTransformationDialog_button_selectAnExistingClass); Button newClassButton = new Button(parent, SWT.NONE); newClassButton .setImage(new DecorationOverlayIcon(JavaUI.getSharedImages().getImage(ISharedImages.IMG_OBJS_CLASS), Decorations.ADD, IDecoration.TOP_RIGHT).createImage()); label = new Label(parent, SWT.NONE); label.setText(Messages.AddCustomTransformationDialog_label_method); final ComboViewer methodComboViewer = new ComboViewer(parent, SWT.READ_ONLY); methodComboViewer.getCombo().setLayoutData( GridDataFactory.swtDefaults().span(2, 1).align(SWT.FILL, SWT.CENTER).grab(true, false).create()); methodComboViewer.setContentProvider(new ArrayContentProvider()); methodComboViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { IMethod method = (IMethod) element; try { StringBuilder builder = new StringBuilder(); builder.append(Signature.getSignatureSimpleName(method.getReturnType())); builder.append(" "); //$NON-NLS-1$ builder.append(method.getElementName()); builder.append("("); //$NON-NLS-1$ String[] types = method.getParameterTypes(); String[] names = method.getParameterNames(); boolean hasPrm = false; for (int ndx = 0; ndx < types.length; ndx++) { if (hasPrm) builder.append(", "); //$NON-NLS-1$ else { builder.append(" "); //$NON-NLS-1$ hasPrm = true; } builder.append(Signature.getSignatureSimpleName(types[ndx])); builder.append(" "); //$NON-NLS-1$ builder.append(names[ndx]); } if (hasPrm) builder.append(" "); //$NON-NLS-1$ builder.append(")"); //$NON-NLS-1$ return builder.toString(); } catch (JavaModelException e) { return ""; //$NON-NLS-1$ } } }); methodComboViewer.setComparator(new ViewerComparator() { @Override public int compare(Viewer viewer, Object object1, Object object2) { IMethod method1 = (IMethod) object1; IMethod method2 = (IMethod) object2; int comparison = method1.getElementName().compareTo(method2.getElementName()); if (comparison != 0) return comparison; String[] types1 = method1.getParameterTypes(); String[] types2 = method2.getParameterTypes(); comparison = types1.length - types2.length; if (comparison != 0) return comparison; for (int ndx = 0; ndx < types1.length; ndx++) { comparison = Signature.getSignatureSimpleName(types1[ndx]) .compareTo(Signature.getSignatureSimpleName(types2[ndx])); if (comparison != 0) return comparison; } return 0; } }); methodComboViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { methodSelected(methodComboViewer); } }); classButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { try { selectClass(classButton, methodComboViewer); } catch (JavaModelException e) { Activator.error(e); } } }); newClassButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { createNewClass(classButton, methodComboViewer); } }); }
From source file:org.jboss.tools.fuse.transformation.editor.internal.MappingsViewer.java
License:Open Source License
public MappingsViewer(final TransformationManager manager, TransformationEditor editor, Composite parent, List<PotentialDropTarget> potentialDropTargets) { super(parent, SWT.NONE); this.editor = editor; this.potentialDropTargets = potentialDropTargets; setLayout(GridLayoutFactory.fillDefaults().spacing(0, 0).create()); setBackground(parent.getParent().getBackground()); final Label title = new Label(this, SWT.CENTER); title.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); title.setText(Messages.MappingsViewer_labelMappings); // Create tool bar final ToolBar toolBar = new ToolBar(this, SWT.NONE); final ToolItem addButton = new ToolItem(toolBar, SWT.PUSH); addButton.setImage(/*from w w w. j a v a 2 s .c o m*/ new DecorationOverlayIcon(Images.MAPPED, Decorations.ADD, IDecoration.TOP_RIGHT).createImage()); addButton.setToolTipText(Messages.MappingsViewer_tooltipMappings); addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { manager.newMapping(); } }); deleteButton = new ToolItem(toolBar, SWT.PUSH); deleteButton.setImage(Images.DELETE); deleteButton.setToolTipText(Messages.MappingsViewer_tooltipDeleteMapping); deleteButton.setEnabled(false); deleteButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(final SelectionEvent event) { deleteSelectedMappingSummary(manager); } }); scroller = new ScrolledComposite(this, SWT.V_SCROLL); scroller.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); scroller.setExpandHorizontal(true); scroller.setExpandVertical(true); scroller.setBackground(getBackground()); summaryPane = new Composite(scroller, SWT.NONE); scroller.setContent(summaryPane); summaryPane.setLayout(GridLayoutFactory.fillDefaults().numColumns(3).spacing(0, 0).create()); summaryPane.setBackground(getBackground()); sourcePane = new Composite(summaryPane, SWT.NONE); sourcePane.setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); sourcePane.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 0).create()); sourcePane.setBackground(getBackground()); mapsToPane = new Composite(summaryPane, SWT.NONE); mapsToPane.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 0).create()); mapsToPane.setLayoutData(GridDataFactory.fillDefaults().grab(false, true).create()); mapsToPane.setBackground(getBackground()); targetPane = new Composite(summaryPane, SWT.NONE); targetPane.setLayoutData(GridDataFactory.fillDefaults().grab(true, false).create()); targetPane.setLayout(GridLayoutFactory.fillDefaults().spacing(0, 0).create()); targetPane.setBackground(getBackground()); for (MappingOperation<?, ?> mapping : manager.mappings()) { if (mapping.getType() == MappingType.EXPRESSION || mapping.getType() == MappingType.VARIABLE || !((Model) mapping.getSource()).isCollection() || !((Model) mapping.getTarget()).isCollection()) { mappingSummaries.add(new MappingSummary(manager, mapping, this, potentialDropTargets)); } } int width = Math.max(sourcePane.computeSize(SWT.DEFAULT, SWT.DEFAULT).x, targetPane.computeSize(SWT.DEFAULT, SWT.DEFAULT).x); ((GridData) sourcePane.getLayoutData()).widthHint = width; ((GridData) targetPane.getLayoutData()).widthHint = width; scroller.setMinSize(summaryPane.computeSize(SWT.DEFAULT, SWT.DEFAULT)); manager.addListener(new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent event) { if (!event.getPropertyName().equals(Event.MAPPING.name())) return; MappingOperation<?, ?> mapping = (MappingOperation<?, ?>) event.getNewValue(); if (mapping != null) mappingSummaryAdded(manager, mapping); } }); focusListener = new Listener() { @Override public void handleEvent(org.eclipse.swt.widgets.Event event) { if (selectedMappingSummary == null || selectedMappingSummary.mapsToLabel.isDisposed()) return; selectedMappingSummary .setBackground(child((Control) event.widget) ? Colors.SELECTED : Colors.SELECTED_NO_FOCUS); } }; getDisplay().addFilter(SWT.FocusIn, focusListener); getDisplay().addFilter(SWT.MouseDown, focusListener); keyListener = new Listener() { @Override public void handleEvent(org.eclipse.swt.widgets.Event event) { if (selectedMappingSummary == null || selectedMappingSummary.mapsToLabel.isDisposed()) return; if (selectedMappingSummary.mapsToLabel.getBackground().equals(Colors.SELECTED_NO_FOCUS)) return; switch (event.keyCode) { case SWT.ARROW_UP: { if ((event.stateMask & (SWT.COMMAND)) != 0) selectMappingSummary(0); else selectPreviousMappingSummary(); break; } case SWT.ARROW_DOWN: { if ((event.stateMask & (SWT.COMMAND)) != 0) selectMappingSummary(mappingSummaries.size() - 1); else selectNextMappingSummary(); break; } case SWT.BS: case SWT.DEL: { deleteSelectedMappingSummary(manager); break; } case '=': { if ((event.stateMask & (SWT.SHIFT)) == 0) break; } // $FALL-THROUGH$ if SHIFT-EQUAL ('+') case '+': case SWT.KEYPAD_ADD: { if ((event.stateMask & (SWT.SHIFT)) != 0) manager.newMapping(); break; } } event.type = SWT.NONE; } }; getDisplay().addFilter(SWT.KeyDown, keyListener); }
From source file:org.jboss.tools.fuse.transformation.editor.internal.VariablesViewer.java
License:Open Source License
public VariablesViewer(final TransformationManager manager, Composite parent) { super(parent, SWT.NONE); setLayout(GridLayoutFactory.fillDefaults().create()); setBackground(parent.getParent().getParent().getBackground()); // Create tool bar ToolBar toolBar = new ToolBar(this, SWT.NONE); ToolItem addButton = new ToolItem(toolBar, SWT.PUSH); addButton.setImage(//from w w w . j av a 2 s . c o m new DecorationOverlayIcon(Images.VARIABLE, Decorations.ADD, IDecoration.TOP_RIGHT).createImage()); addButton.setToolTipText(Messages.VariablesViewer_toolbarTooltip_addNewVariable); final ToolItem deleteButton = new ToolItem(toolBar, SWT.PUSH); deleteButton.setImage(PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_ETOOL_DELETE)); deleteButton.setToolTipText(Messages.VariablesViewer_toolbarTooltip_DeleteVariable); deleteButton.setEnabled(false); // Create table tableViewer = new TableViewer(this); tableViewer.getTable().setHeaderVisible(true); tableViewer.getTable().setLayoutData(GridDataFactory.fillDefaults().grab(true, true).create()); tableViewer.setComparator(new ViewerComparator()); tableViewer.setContentProvider(ArrayContentProvider.getInstance()); // Create columns // TODO add support for changing variable names final TableViewerColumn nameColumn = new TableViewerColumn(tableViewer, SWT.NONE); nameColumn.getColumn().setText(Messages.VariablesViewer_columnName_name); nameColumn.getColumn().setImage(Images.VARIABLE); nameColumn.setLabelProvider(new ColumnLabelProvider() { @Override public Image getImage(Object element) { Image img = Images.VARIABLE; if (manager.mapped((Variable) element)) return new DecorationOverlayIcon(img, Decorations.MAPPED, IDecoration.BOTTOM_RIGHT) .createImage(); return img; } @Override public String getText(Object element) { return ((Variable) element).getName(); } }); final TableViewerColumn valueColumn = new TableViewerColumn(tableViewer, SWT.NONE); valueColumn.getColumn().setText(Messages.VariablesViewer_columnName_value); valueColumn.setLabelProvider(new ColumnLabelProvider() { @Override public String getText(final Object element) { return "\"" + ((Variable) element).getValue() + "\""; //$NON-NLS-1$ //$NON-NLS-2$ } }); valueColumn.setEditingSupport(new EditingSupport(tableViewer) { private final TextCellEditor cellEditor = new TextCellEditor(tableViewer.getTable()); @Override protected boolean canEdit(Object element) { return true; } @Override protected CellEditor getCellEditor(Object element) { return cellEditor; } @Override protected Object getValue(Object element) { return ((Variable) element).getValue(); } @Override protected void setValue(Object element, Object value) { Variable variable = (Variable) element; manager.setValue(variable, value.toString()); try { manager.save(); tableViewer.setInput(manager.variables()); } catch (final Exception e) { Activator.error(e); } } }); // Wire tableViewer.addDragSupport(DND.DROP_MOVE, new Transfer[] { LocalSelectionTransfer.getTransfer() }, new DragSourceAdapter() { @Override public void dragStart(final DragSourceEvent event) { LocalSelectionTransfer.getTransfer().setSelection(tableViewer.getSelection()); } }); addButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { InputDialog dlg = new InputDialog(getShell(), Messages.VariablesViewer_addVariableDialogTitle, Messages.VariablesViewer_addVariableDialogDescription, null, new IInputValidator() { @Override public String isValid(String text) { for (final Variable variable : manager.variables()) { if (variable.getName().equals(text)) return Messages.VariablesViewer_addVariableDialog_validation_variablealreadyExists; } return null; } }); if (dlg.open() != Window.OK) return; manager.addVariable(dlg.getValue(), dlg.getValue()); try { manager.save(); tableViewer.setInput(manager.variables()); } catch (final Exception e) { Activator.error(e); } } }); tableViewer.addSelectionChangedListener(new ISelectionChangedListener() { @Override public void selectionChanged(SelectionChangedEvent event) { deleteButton.setEnabled(!event.getSelection().isEmpty()); } }); deleteButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent event) { boolean deleteAll = false; try { for (Iterator<?> iter = tableViewer.getStructuredSelection().iterator(); iter.hasNext();) { Variable variable = (Variable) iter.next(); if (manager.mapped(variable)) { if (!deleteAll) { MessageDialog dlg = new MessageDialog(getShell(), Messages.VariablesViewer_confirm, null, Messages.bind(Messages.VariablesViewer_deleteConfirmationMessage, variable.getName()), MessageDialog.WARNING, new String[] { IDialogConstants.CANCEL_LABEL, IDialogConstants.YES_LABEL, IDialogConstants.YES_TO_ALL_LABEL, IDialogConstants.NO_LABEL }, 3); int button = dlg.open(); if (button == 2) deleteAll = true; else if (button == 3) continue; else if (button < 1) return; } } manager.removeVariable(variable); tableViewer.remove(variable); } manager.save(); tableViewer.setInput(manager.variables()); } catch (final Exception e) { Activator.error(e); } } }); // Populate tableViewer.setInput(manager.variables()); // Expand name and value columns to fill initial width of table each time table is resized tableViewer.getTable().addControlListener(new ControlAdapter() { @Override public void controlResized(ControlEvent event) { int width = tableViewer.getTable().getSize().x / 2; nameColumn.getColumn().setWidth(width); valueColumn.getColumn().setWidth(width); } }); }
From source file:org.jboss.tools.ws.jaxrs.ui.JBossJaxrsUIPlugin.java
License:Open Source License
/** * Creates an image from the given baseImage with the given decorator at the bottom left corner * @param baseImage/*www.j a v a 2s . c o m*/ * @param decoratorId * @return * * @see https://bugs.eclipse.org/bugs/show_bug.cgi?id=383810 to use PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_DEC_FIELD_ERROR), * which returns null for now. */ private ImageDescriptor createDecoratedImageDescriptor(final ImageDescriptor baseImageDescriptor, String decoratorId) { final ImageDescriptor decoratorDescriptor = PlatformUI.getWorkbench().getSharedImages() .getImageDescriptor(decoratorId); final Image baseImage = baseImageDescriptor.createImage(); final DecorationOverlayIcon result = new DecorationOverlayIcon(baseImage, new ImageDescriptor[] { null, null, decoratorDescriptor, null, null }, new Point(16, 16)); return result; }
From source file:org.kalypso.model.wspm.pdb.ui.internal.checkout.CheckoutPdbLabelDecorator.java
License:Open Source License
private Image createDecoratedImage(final Image image) { final ImageDescriptor warningImage = WspmPdbUiImages.getImageDescriptor(IMAGE.WARNING_DECORATION); final DecorationOverlayIcon decorated = new DecorationOverlayIcon(image, warningImage, IDecoration.BOTTOM_RIGHT);/*from www. ja va2 s. c o m*/ return decorated.createImage(); }
From source file:org.polymap.core.operation.actions.SaveChangesAction.java
License:Open Source License
public void historyNotification(OperationHistoryEvent ev) { log.debug("History changed: ev= " + ev); if (action != null) { Polymap.getSessionDisplay().asyncExec(new Runnable() { public void run() { if (operationSupport.undoHistorySize() > 0) { Image image = CorePlugin.getDefault().imageForDescriptor(origImage, "_saveActionOrig"); ImageDescriptor ovr = CorePlugin.getDefault().imageDescriptor("icons/ovr16/dirty_ovr2.png"); action.setImageDescriptor(new DecorationOverlayIcon(image, ovr, IDecoration.BOTTOM_RIGHT)); //action.setToolTipText( "Operations: " + operationSupport.undoHistorySize() ); } else { action.setImageDescriptor(origImage); //action.setToolTipText( "Save (including open editors)" ); }/*w w w . j av a 2s .c o m*/ } }); } }
From source file:org.polymap.rhei.batik.app.SvgImageRegistryHelper.java
License:Open Source License
/** * //w w w.j ava 2 s . c o m * * @param baseImagePath * @param baseConfigName * @param ovrImagePath * @param ovrConfigName * @param quadrant * @return Newly generated are cached image. Must no be used outside current user session! */ public Image svgOverlayedImage(String baseImagePath, String baseConfigName, String ovrImagePath, String ovrConfigName, Quadrant quadrant) { String key = Joiner.on("-").join(baseImagePath, baseConfigName, ovrImagePath, ovrConfigName); Image image = registry.get().get(key); if (image == null || image.isDisposed()) { Image baseImage = svgImage(baseImagePath, baseConfigName); ImageDescriptor ovrImage = svgImageDescriptor(ovrImagePath, ovrConfigName); image = new DecorationOverlayIcon(baseImage, ovrImage, quadrant.iDecorationConstant).createImage(); registry.get().put(key, image); image = registry.get().get(key); } return image; }
From source file:org.python.pydev.navigator.PythonLabelProvider.java
License:Open Source License
/** * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) *///w w w. j av a2s . c o m public Image getImage(Object element) { if (element instanceof PythonProjectSourceFolder) { return SharedUiPlugin.getImageCache().get(UIConstants.PROJECT_SOURCE_FOLDER_ICON); } if (element instanceof PythonSourceFolder) { return SharedUiPlugin.getImageCache().get(UIConstants.SOURCE_FOLDER_ICON); } if (element instanceof PythonFolder) { PythonFolder folder = (PythonFolder) element; IFolder actualObject = folder.getActualObject(); if (actualObject != null) { final String[] validInitFiles = FileTypesPreferencesPage.getValidInitFiles(); for (String init : validInitFiles) { if (actualObject.getFile(init).exists()) { if (checkParentsHaveInit(folder, validInitFiles)) { return SharedUiPlugin.getImageCache().get(UIConstants.FOLDER_PACKAGE_ICON); } else { break; } } } } return provider.getImage(actualObject); } if (element instanceof PythonNode) { PythonNode node = (PythonNode) element; return node.entry.getImage(); } if (element instanceof IWrappedResource) { IWrappedResource resource = (IWrappedResource) element; Object actualObject = resource.getActualObject(); if (actualObject instanceof IFile) { IFile iFile = (IFile) actualObject; final String name = iFile.getName(); if (name.indexOf('.') == -1) { try { if (PythonPathHelper.markAsPyDevFileIfDetected(iFile)) { if (FileTypesPreferencesPage.isCythonFile(name)) { return SharedUiPlugin.getImageCache().get(UIConstants.CYTHON_FILE_ICON); } return SharedUiPlugin.getImageCache().get(UIConstants.PY_FILE_ICON); } } catch (Exception e) { //Ignore } } if (FileTypesPreferencesPage.isCythonFile(name)) { return SharedUiPlugin.getImageCache().get(UIConstants.CYTHON_FILE_ICON); } if (name.startsWith("__init__.") && PythonPathHelper.isValidSourceFile(name)) { return PyTitlePreferencesPage.getInitIcon(); } else { IProject project = iFile.getProject(); try { if (project.hasNature(PythonNature.DJANGO_NATURE_ID)) { String djangoModulesHandling = PyTitlePreferencesPage.getDjangoModulesHandling(); if (djangoModulesHandling == PyTitlePreferencesPage.TITLE_EDITOR_DJANGO_MODULES_SHOW_PARENT_AND_DECORATE || djangoModulesHandling == PyTitlePreferencesPage.TITLE_EDITOR_DJANGO_MODULES_DECORATE) { if (PyTitlePreferencesPage.isDjangoModuleToDecorate(name)) { return PyTitlePreferencesPage.getDjangoModuleIcon(name); } } } } catch (CoreException e) { Log.log(e); } } } return provider.getImage(actualObject); } if (element instanceof ProjectConfigError) { return SharedUiPlugin.getImageCache().get(UIConstants.ERROR); } if (element instanceof TreeNode<?>) { TreeNode<?> treeNode = (TreeNode<?>) element; LabelAndImage data = (LabelAndImage) treeNode.getData(); return data.image; } if (element instanceof IFile) { IFile iFile = (IFile) element; String name = iFile.getName(); if (FileTypesPreferencesPage.isCythonFile(name)) { return SharedUiPlugin.getImageCache().get(UIConstants.CYTHON_FILE_ICON); } } if (element instanceof IProject) { IProject project = (IProject) element; if (!project.isOpen()) { return null; } IMarker[] markers; try { markers = project.findMarkers(PythonBaseModelProvider.PYDEV_PACKAGE_EXPORER_PROBLEM_MARKER, true, 0); } catch (CoreException e1) { Log.log(e1); return null; } if (markers == null || markers.length == 0) { return null; } //We have errors: make them explicit. if (projectWithError == null) { synchronized (lock) { //we must recheck again (if 2 got here and 1 got the lock while the other was waiting, when //the other enters the lock, it does not need to recalculated). if (projectWithError == null) { //Note on double-checked locking idiom: http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html. //(would not work as expected on java 1.4) Image image = provider.getImage(element); try { DecorationOverlayIcon decorationOverlayIcon = new DecorationOverlayIcon(image, SharedUiPlugin.getImageCache().getDescriptor(UIConstants.ERROR_SMALL), IDecoration.BOTTOM_LEFT); projectWithError = decorationOverlayIcon.createImage(); } catch (Exception e) { Log.log("Unable to create error decoration for project icon.", e); projectWithError = image; } } } } return projectWithError; } if (element instanceof IWorkingSet) { return SharedUiPlugin.getImageCache().get(UIConstants.WORKING_SET); } return null; }
From source file:org.robotframework.ide.eclipse.main.plugin.launch.tabs.SuitesToRunCompositeTest.java
License:Apache License
@Test public void whenLabelProviderIsAskedForImageOfNonExistingFolderSuite_folderImageWithErrorIconIsReturned() { final CheckboxTreeViewerLabelProvider provider = new CheckboxTreeViewerLabelProvider(); final IResource resource = mock(IResource.class); when(resource.getType()).thenReturn(IResource.FOLDER); when(resource.exists()).thenReturn(false); final SuiteLaunchElement suiteElement = new SuiteLaunchElement(resource); final Image expectedImage = ImagesManager .getImage(new DecorationOverlayIcon(ImagesManager.getImage(RedImages.getFolderImage()), RedImages.getErrorImage(), IDecoration.BOTTOM_LEFT)); assertThat(provider.getImage(suiteElement)).isEqualTo(expectedImage); }
From source file:org.robotframework.ide.eclipse.main.plugin.launch.tabs.SuitesToRunCompositeTest.java
License:Apache License
@Test public void whenLabelProviderIsAskedForImageOfNonExistingFileSuite_fileImageWithErrorIconIsReturned() { final CheckboxTreeViewerLabelProvider provider = new CheckboxTreeViewerLabelProvider(); final IResource resource = mock(IResource.class); when(resource.getType()).thenReturn(IResource.FILE); when(resource.exists()).thenReturn(false); final SuiteLaunchElement suiteElement = new SuiteLaunchElement(resource); final Image expectedImage = ImagesManager .getImage(new DecorationOverlayIcon(ImagesManager.getImage(RedImages.getRobotFileImage()), RedImages.getErrorImage(), IDecoration.BOTTOM_LEFT)); assertThat(provider.getImage(suiteElement)).isEqualTo(expectedImage); }