/** * Encodes the {@link DSLBreakpoint#IMAGE_ATTRIBUTE}. * * @param image * the {@link Object} image * @return the attribute {@link String} * @throws IOException * if encoding fails */ private static String toAttribute(Object image) throws IOException { final String res; StringBuffer buffer = new StringBuffer(); if (image instanceof ComposedImage) { toAttribute(buffer, (ComposedImage)image); if (buffer.length() != 0) { res = buffer.substring(0, buffer.length() - 1); } else { res = buffer.toString(); } } else if (image instanceof URL) { buffer.append(Base64.encode((URL_MARKER + (URL)image).toString().getBytes(UTF8))); res = buffer.toString(); } else if (image instanceof URI) { buffer.append(Base64.encode(((URI_MARKER + (URI)image).toString()).getBytes(UTF8))); res = buffer.toString(); } else { res = toAttribute(DebugEditPlugin.INSTANCE.getImage(FULL_OBJ16_BREAKPOINT)); } return res; }
/** * Encodes the given {@link ComposedImage}. * * @param buffer * the result {@link StringBuffer} * @param image * the {@link ComposedImage} * @throws IOException * if encoding fails */ private static void toAttribute(StringBuffer buffer, ComposedImage image) throws IOException { for (Object object : image.getImages()) { if (object instanceof ComposedImage) { toAttribute(buffer, (ComposedImage)image); } else if (object instanceof URL) { buffer.append(Base64.encode(((URL)object).toString().getBytes(UTF8))); } buffer.append(DELIMITER); } }
/** * {@inheritDoc} * * @see org.eclipse.debug.ui.IDebugModelPresentation#getImage(java.lang.Object) */ public Image getImage(final Object element) { final Image res; final Object unwrapped = unwrapp(element); if (unwrapped instanceof Variable) { res = getImage(((Variable)unwrapped).getValue()); } else if (element instanceof DSLBreakpoint) { final Object image = ((DSLBreakpoint)element).getImage(); if (image instanceof ComposedImage) { ((ComposedImage)image).getImages().add(DebugIdeUiPlugin.INSTANCE.getImage( "full/deco16/breakpoint_enabled")); } final ImageDescriptor descriptor = ExtendedImageRegistry.getInstance().getImageDescriptor(image); Image cachedImage = imagesCache.get(descriptor); if (cachedImage == null) { cachedImage = new Image(Display.getDefault(), descriptor.getImageData()); imagesCache.put(descriptor, cachedImage); } res = cachedImage; } else { if (unwrapped != null) { synchronized(unwrapped) { res = eLabelProvider.getImage(unwrapped); } } else { res = null; } } return res; }
/** * This returns Record.gif. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated NOT */ @Override public Object getImage(Object object) { List<Object> images = new ArrayList<Object>(2); images.add(getResourceLocator().getImage("full/obj16/Record")); if (((Record)object).getStatistics() != null) { images.add(getResourceLocator().getImage("full/ovr16/hasrecord")); } return new ComposedImage(images); }
private static Object overlay(final Object base, final Object... overlayed) { final ComposedImage composed = base instanceof ComposedImage ? (ComposedImage) base : new ComposedImage( asList(base)); composed.getImages().addAll(asList(overlayed)); return composed; }
/** * Compose two images to derive a combined icon. * * @param baseImage * The base image to combine. * @param itemProvider * The item provider to retrieve the resource locator. * @param imagePath * The path to the image to be overlaid. (relative to /icons/) * @return The composed image object. */ public static Object composeImage(Object baseImage, DiffItemProvider itemProvider, String imagePath) { List<Object> images = new ArrayList<Object>(2); images.add(baseImage); images.add(itemProvider.getResourceLocator().getImage(imagePath)); return new ComposedImage(images); }
/** * Compose two images to derive a combined icon. * * @param baseImage * The base image to combine. * @param count * The number to select an overlay for. * @return The composed image object. */ private Object overlayVariantCount(Object baseImage, int count) { List<Object> images = new ArrayList<Object>(2); images.add(baseImage); images.add(getResourceLocator().getImage("overlay/count-" + count)); return new ComposedImage(images); }