Example usage for org.eclipse.jface.resource ImageDescriptor getMissingImageDescriptor

List of usage examples for org.eclipse.jface.resource ImageDescriptor getMissingImageDescriptor

Introduction

In this page you can find the example usage for org.eclipse.jface.resource ImageDescriptor getMissingImageDescriptor.

Prototype

public static ImageDescriptor getMissingImageDescriptor() 

Source Link

Document

Returns the shared image descriptor for a missing image.

Usage

From source file:org.eclipse.scada.vi.ui.draw2d.primitives.ImageController.java

License:Open Source License

public void setImage(final String uri) {
    if (this.currentImage != null) {
        this.manager.destroyImage(this.currentImage);
        this.currentImage = null;
    }//from w  w w  .  j a va 2 s .  c o m

    if (uri == null || uri.isEmpty()) {
        this.figure.setIcon(null);
    } else {
        try {
            final URL url = new URL(this.symbolLoader.resolveUri(uri));
            this.figure.setIcon(this.manager
                    .createImageWithDefault(this.currentImage = ImageDescriptor.createFromURL(url)));
            this.factoryContext.loadedResource(URI.createURI(url.toString()));
        } catch (final MalformedURLException e) {
            this.figure
                    .setIcon(this.manager.createImageWithDefault(ImageDescriptor.getMissingImageDescriptor()));
        }
    }
}

From source file:org.eclipse.scada.vi.ui.user.navigation.ToolBarNavigatorItem.java

License:Open Source License

private Image createImage(final String key) {
    try {/*from w w  w  . j a  v  a 2 s .com*/
        final String uri = Activator.getDefault().getPreferenceStore().getString(key);
        return this.manager.createImageWithDefault(ImageDescriptor.createFromURL(new URL(uri)));
    } catch (final MalformedURLException e) {
        return this.manager.createImageWithDefault(ImageDescriptor.getMissingImageDescriptor());
    }
}

From source file:org.eclipse.sirius.common.ui.tools.api.util.ImageProvider.java

License:Open Source License

/**
 * Get the <code>ImageDescriptor</code> from a path.
 * // ww  w .  j  ava 2s  .c om
 * @param path
 *            The path of the image (path relative to the workspace or to
 *            the plugins).
 * @return an ImageDescriptor
 */
public static ImageDescriptor getImageDescriptor(final String path) {
    final File imageFile = FileProvider.getDefault().getFile(new Path(path));
    if (imageFile != null && imageFile.exists() && imageFile.canRead()) {
        try {
            return ImageDescriptor.createFromURL(imageFile.toURI().toURL());
        } catch (MalformedURLException e) {
            // do nothing
        }
    }
    return ImageDescriptor.getMissingImageDescriptor();
}

From source file:org.eclipse.sirius.diagram.ui.internal.operation.RegionContainerUpdateLayoutOperation.java

License:Open Source License

/**
 * Compute the default size of regions according to regions container size.
 * This method is called only when the regions container has not an auto
 * sized for its GMF size.//from   w w w .j  ava  2  s. co  m
 * 
 * @param nbRegionsToLayout
 *            Number of regions to layout
 * @param vertical
 *            true if the stack is vertical, false if it is horizontal
 * @param containerIsRegion
 *            true if the container is also a region
 * @param regionsContainerSize
 *            The size, defined in the VSM or by the end-user at creation,
 *            of the regions container
 * @return list of dimension (the first is the size of a region, the second,
 *         optional, is the size of the last region if different of the
 *         others)
 */
private List<Dimension> computeRegionsSizeAccordingToContainerSize(int nbRegionsToLayout, boolean vertical,
        boolean containerIsRegion, Size regionsContainerSize) {
    List<Dimension> result = Lists.newArrayList();
    Dimension regionContainerContentPaneSize = new Dimension(regionsContainerSize.getWidth(),
            regionsContainerSize.getHeight());
    Dimension regionSize = new Dimension();
    // headerHeight includes the title height (with the icon), the label
    // offset, the 1 pixel separator line,
    int headerHeight = 0;
    EObject element = regionsContainer.getElement();
    ViewQuery viewQuery = new ViewQuery(regionsContainer);
    int borderSize = 0;
    boolean needShadowBorder = true;
    if (element instanceof DNodeContainer) {
        DNodeContainer dnc = (DNodeContainer) element;
        Style siriusStyle = dnc.getStyle();
        // Get border size
        if (siriusStyle instanceof BorderedStyle) {
            if (((BorderedStyle) siriusStyle).getBorderSize() != null) {
                borderSize = ((BorderedStyle) siriusStyle).getBorderSize().intValue();
            }
        }
        // Get header size (title and all associated margin)
        if (!new DDiagramElementQuery(dnc).isLabelHidden()) {
            int titleHeight = 0;
            if (siriusStyle instanceof BasicLabelStyle) {
                BasicLabelStyle bls = (BasicLabelStyle) siriusStyle;
                Font defaultFont = VisualBindingManager.getDefault().getFontFromLabelStyle(bls,
                        (String) viewQuery.getDefaultValue(NotationPackage.Literals.FONT_STYLE__FONT_NAME));
                Dimension titleDimension;
                try {
                    titleDimension = FigureUtilities.getStringExtents(dnc.getName(), defaultFont);
                } catch (SWTException e) {
                    // Probably an "Invalid thread access" (FigureUtilities
                    // creates a new Shell to compute the label size). So in
                    // this case, we use a default size.
                    titleDimension = new Dimension(20, 12);
                }
                titleHeight = titleDimension.height;
                if (bls.isShowIcon()) {
                    // Also consider the icon size
                    Image icon = null;
                    ImageDescriptor descriptor = null;
                    EObject target = dnc.getTarget();
                    if (!StringUtil.isEmpty(bls.getIconPath())) {
                        String iconPath = bls.getIconPath();
                        final File imageFile = FileProvider.getDefault().getFile(new Path(iconPath));
                        if (imageFile != null && imageFile.exists() && imageFile.canRead()) {
                            try {
                                descriptor = DiagramUIPlugin.Implementation
                                        .findImageDescriptor(imageFile.toURI().toURL());
                            } catch (MalformedURLException e) {
                                // Do nothing here
                            }
                        }
                    } else if (target != null) {
                        final IItemLabelProvider labelProvider = (IItemLabelProvider) DiagramUIPlugin
                                .getPlugin().getItemProvidersAdapterFactory()
                                .adapt(target, IItemLabelProvider.class);
                        if (labelProvider != null) {
                            descriptor = ExtendedImageRegistry.getInstance()
                                    .getImageDescriptor(labelProvider.getImage(target));
                        }
                    }

                    if (descriptor == null) {
                        descriptor = ImageDescriptor.getMissingImageDescriptor();
                    }
                    icon = DiagramUIPlugin.getPlugin().getImage(descriptor);
                    titleHeight = Math.max(titleHeight, icon.getBounds().height);
                }
            }
            int separatorLineHeight = 1;
            int labelOffset = IContainerLabelOffsets.LABEL_OFFSET;
            // As in
            // org.eclipse.sirius.diagram.ui.edit.internal.part.DiagramContainerEditPartOperation.refreshBorder(AbstractDiagramElementContainerEditPart,
            // ViewNodeContainerFigureDesc, ContainerStyle)
            if (!containerIsRegion) {
                labelOffset -= 1;
            }
            headerHeight = labelOffset + titleHeight + AbstractDiagramElementContainerEditPart.DEFAULT_SPACING
                    + separatorLineHeight;
        }
        // Compute if the shadow border is needed (as in
        // AbstractDiagramElementContainerEditPart.addDropShadow(NodeFigure,
        // IFigure))
        needShadowBorder = !(new DDiagramElementContainerExperimentalQuery(dnc).isRegion()
                || dnc.getOwnedStyle() instanceof WorkspaceImage);
    }

    // Adds all the expected margin
    regionContainerContentPaneSize
            .setHeight(regionContainerContentPaneSize.height() - (borderSize + headerHeight + borderSize));
    regionContainerContentPaneSize.setWidth(regionContainerContentPaneSize.width() - (borderSize + borderSize));
    if (needShadowBorder) {
        // Remove the 2 pixels corresponding to the shadow insets
        // (AlphaDropShadowBorder.getInsets(IFigure))
        regionContainerContentPaneSize.setHeight(
                regionContainerContentPaneSize.height() - AlphaDropShadowBorder.getDefaultShadowSize());
        regionContainerContentPaneSize.setWidth(
                regionContainerContentPaneSize.width() - AlphaDropShadowBorder.getDefaultShadowSize());
    }
    if (vertical) {
        if (regionContainerContentPaneSize.height() != 0) {
            regionSize.setHeight(regionContainerContentPaneSize.height() / nbRegionsToLayout);
        }
        regionSize.setWidth(regionContainerContentPaneSize.width());
        result.add(regionSize);
        if (regionContainerContentPaneSize.height() % regionSize.height() != 0) {
            // Compute the precise last height (the regions container height
            // is not necessarily exactly divisible by the number of
            // regions)
            int lastRegionHeight = regionContainerContentPaneSize.height()
                    - (regionSize.height() * (nbRegionsToLayout - 1));
            result.add(new Dimension(regionContainerContentPaneSize.width(), lastRegionHeight));
        }
    } else {
        if (regionsContainerSize.getWidth() != 0) {
            regionSize.setWidth(regionContainerContentPaneSize.width() / nbRegionsToLayout);
        }
        regionSize.setHeight(regionContainerContentPaneSize.height());
        result.add(regionSize);
        if (regionContainerContentPaneSize.width() % regionSize.width() != 0) {
            // Compute the precise last width (the regions container width
            // is not necessarily exactly divisible by the number of
            // regions)
            int lastRegionWidth = regionContainerContentPaneSize.width()
                    - (regionSize.width() * (nbRegionsToLayout - 1));
            result.add(new Dimension(lastRegionWidth, regionContainerContentPaneSize.height()));
        }
    }
    return result;
}

From source file:org.eclipse.sirius.diagram.ui.tools.api.graphical.edit.styles.SimpleStyleConfiguration.java

License:Open Source License

/**
 * {@inheritDoc}//  w w w .j a  v a 2 s. c  o  m
 * 
 * @see org.eclipse.sirius.diagram.tools.api.graphical.edit.styles.StyleConfiguration#getLabelIcon(DDiagramElement,
 *      IGraphicalEditPart)
 */
public Image getLabelIcon(final DDiagramElement vpElement, IGraphicalEditPart editPart) {
    Image icon = null;

    if (vpElement != null) {
        if (isShowIcon(vpElement, editPart)) {
            ImageDescriptor descriptor = null;
            EObject target = vpElement.getTarget();

            if (useCustomIcon(vpElement, editPart)) {
                descriptor = getCustomIconDescriptor(vpElement, editPart);
            } else if (target != null) {
                final IItemLabelProvider labelProvider = (IItemLabelProvider) DiagramUIPlugin.getPlugin()
                        .getItemProvidersAdapterFactory().adapt(target, IItemLabelProvider.class);
                if (labelProvider != null) {
                    descriptor = ExtendedImageRegistry.getInstance()
                            .getImageDescriptor(labelProvider.getImage(target));
                }
            }

            if (descriptor == null) {
                descriptor = ImageDescriptor.getMissingImageDescriptor();
            }
            icon = DiagramUIPlugin.getPlugin().getImage(descriptor);
        }
    }
    return icon;
}

From source file:org.eclipse.sirius.diagram.ui.tools.internal.dialogs.ExtendedFeatureEditorDialog.java

License:Open Source License

/**
 * Creates a new <code>ExtendedFeatureEditorDialog</code>. see
 * {@link org.eclipse.emf.edit.ui.celleditor.FeatureEditorDialog}.
 * //w  w  w. ja  v a  2s.  c om
 * @param parent
 *            the parent.
 * @param choices
 *            the choices.
 * @param referenceValues
 *            the reference values.
 * @param extReference
 *            the ext reference.
 */
public ExtendedFeatureEditorDialog(final Shell parent, final List<EObject> choices,
        final List<EObject> referenceValues, final ExtensionFeatureDescription extReference) {
    super(parent);
    this.choices = choices;
    this.referenceValues = referenceValues;
    this.extReference = extReference;
    final List<AdapterFactory> adapterFactories = Collections.emptyList();
    final AdapterFactory adapterFactory = new ComposedAdapterFactory(adapterFactories);
    values = new ItemProvider(adapterFactory, this.referenceValues);
    contentProvider = new AdapterFactoryContentProvider(adapterFactory);
    this.choices.removeAll(this.referenceValues);
    this.labelProvider = new LabelProvider() {
        @Override
        public String getText(final Object element) {
            if (element instanceof EObject) {
                final ModelAccessor accessor = SiriusPlugin.getDefault().getModelAccessorRegistry()
                        .getModelAccessor((EObject) element);
                return accessor.getQualifiedName((EObject) element, true);
            }
            return String.valueOf(element);
        }

        @Override
        public Image getImage(final Object element) {
            ImageDescriptor descriptor = null;
            if (element instanceof EObject) {
                final EObject target = (EObject) element;
                final IItemLabelProvider myLabelProvider = (IItemLabelProvider) DiagramUIPlugin.getPlugin()
                        .getItemProvidersAdapterFactory().adapt(target, IItemLabelProvider.class);
                descriptor = ExtendedImageRegistry.getInstance()
                        .getImageDescriptor(myLabelProvider.getImage(target));

            }
            if (descriptor == null) {
                descriptor = ImageDescriptor.getMissingImageDescriptor();
            }
            return DiagramUIPlugin.getPlugin().getImage(descriptor);
        }

    };

}

From source file:org.eclipse.sirius.diagram.ui.tools.internal.views.providers.outline.OutlineLabelProvider.java

License:Open Source License

/**
 * Returns the image for the label of the given DNodeLabelItemProvider.
 * /*ww  w .  ja v  a  2s  .  c o  m*/
 * @param element
 *            the element for which to provide the label image
 * @return the image used to label the element, or <code>null</code> if
 *         there is no image for the given object
 */
private Image getImage(final AbstractDDiagramElementLabelItemProvider element) {
    Image result;
    ImageDescriptor descriptor = ExtendedImageRegistry.getInstance()
            .getImageDescriptor(element.getImage(element.getTarget()));
    if (descriptor == null) {
        descriptor = ImageDescriptor.getMissingImageDescriptor();
    }
    result = DiagramUIPlugin.getPlugin().getImage(descriptor);

    Option<DDiagramElement> optionTarget = element.getDiagramElementTarget();
    if (optionTarget.some() && new DDiagramElementQuery(optionTarget.get()).isLabelHidden()) {
        result = getDecoratedImage(result, DiagramImagesPath.HIDDEN_DECORATOR, IDecoration.TOP_LEFT);
    }

    return result;
}

From source file:org.eclipse.sirius.diagram.ui.tools.internal.views.providers.outline.OutlineLabelProvider.java

License:Open Source License

/**
 * Returns the image for the label of the given DSemanticDecorator.
 * /*www  .  j ava2 s  .c  om*/
 * @param element
 *            the element for which to provide the label image
 * @return the image used to label the element, or <code>null</code> if
 *         there is no image for the given object
 */
private Image getImage(DSemanticDecorator element) {
    Image result = null;
    final EObject target = element.getTarget();
    if (target != null) {
        final IItemLabelProvider labelProvider = (IItemLabelProvider) this.factory.adapt(target,
                IItemLabelProvider.class);
        if (labelProvider != null) {
            ImageDescriptor descriptor = ExtendedImageRegistry.getInstance()
                    .getImageDescriptor(labelProvider.getImage(target));
            if (descriptor == null) {
                descriptor = ImageDescriptor.getMissingImageDescriptor();
            }
            result = DiagramUIPlugin.getPlugin().getImage(descriptor);

            if (element instanceof DEdge) {
                result = getDecoratedImage(result, DiagramImagesPath.VIEW_EDGE_DECORATOR,
                        IDecoration.BOTTOM_LEFT);
                result = computeFoldDecorator(result, (DEdge) element);
            }

            if (element instanceof DDiagramElement) {
                DDiagramElementQuery query = new DDiagramElementQuery((DDiagramElement) element);
                if (query.isHidden()) {
                    result = getDecoratedImage(result, DiagramImagesPath.HIDDEN_DECORATOR,
                            IDecoration.TOP_LEFT);
                }
                if (element instanceof DDiagramElementContainer && query.isLabelHidden()) {
                    result = getDecoratedImage(result, DiagramImagesPath.HIDDEN_LABEL_DECORATOR,
                            IDecoration.BOTTOM_RIGHT);
                }
            }
        }
    }
    return result;
}

From source file:org.eclipse.sirius.tests.sample.migration.design.Draw2dToSiriusModelTransformer.java

License:Open Source License

private String getIconPath(org.eclipse.sirius.viewpoint.BasicLabelStyle viewpointBasicLabelStyle,
        AbstractDiagramNameEditPart abstractDiagramNameEditPart) {
    String iconPath = "";
    String modelIconPath = viewpointBasicLabelStyle.getIconPath();
    IFigure figure = abstractDiagramNameEditPart.getFigure();
    if (figure instanceof SiriusWrapLabel) {
        SiriusWrapLabel viewpointWrapLabel = (SiriusWrapLabel) figure;
        Image icon = viewpointWrapLabel.getIcon();
        if (modelIconPath != null && modelIconPath.length() > 0) {
            File imageFile = FileProvider.getDefault().getFile(new Path(modelIconPath));
            if (imageFile != null) {
                try {
                    ImageDescriptor imageDescriptor = DiagramUIPlugin.Implementation
                            .findImageDescriptor(imageFile.toURI().toURL());
                    if (imageDescriptor == null) {
                        imageDescriptor = ImageDescriptor.getMissingImageDescriptor();
                    }/*from  w  ww .  j a v  a2 s .c  om*/
                    Image image = DiagramUIPlugin.getPlugin().getImage(imageDescriptor);
                    if (areEqualImages(image, icon)) {
                        iconPath = modelIconPath;
                    }
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                }
            }
        }

    }
    return iconPath;
}

From source file:org.eclipse.sirius.tree.ui.tools.internal.editor.provider.DTreeColumnLabelProvider.java

License:Open Source License

private Image getCustomImage(BasicLabelStyle bls) {
    Image customImage = null;//w w  w . j  av a  2  s  . c om
    if (bls != null && !StringUtil.isEmpty(bls.getIconPath())) {
        ImageDescriptor descriptor = null;
        String iconPath = bls.getIconPath();
        final File imageFile = FileProvider.getDefault().getFile(new Path(iconPath));
        if (imageFile != null && imageFile.exists() && imageFile.canRead()) {
            try {
                descriptor = ImageDescriptor.createFromURL(imageFile.toURI().toURL());
            } catch (MalformedURLException e) {
                // log a waring later.
            }
        }

        if (descriptor == null) {
            SiriusPlugin.getDefault().warning("Icon file \"" + iconPath + "\" not found", null);
            descriptor = ImageDescriptor.getMissingImageDescriptor();
        }

        customImage = TreeUIPlugin.getImage(descriptor);
    }
    return customImage;
}