Example usage for org.eclipse.jface.viewers DecorationOverlayIcon DecorationOverlayIcon

List of usage examples for org.eclipse.jface.viewers DecorationOverlayIcon DecorationOverlayIcon

Introduction

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

Prototype

public DecorationOverlayIcon(ImageDescriptor baseImageDescriptor, ImageDescriptor overlayImageDescriptor,
        int quadrant) 

Source Link

Document

Create a decoration overlay icon that will place the given overlay icon in the given quadrant of the base image descriptor.

Usage

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);
}