/* * Copyright (C) 2007 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.ddmuilib; import com.android.ddmlib.Log; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.GC; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Display; public class ImageHelper { /** * Loads an image from a resource. This method used a class to locate the * resources, and then load the filename from /images inside the resources.<br> * Extra parameters allows for creation of a replacement image of the * loading failed. * * @param loader the image loader used. * @param display the Display object * @param fileName the file name * @param width optional width to create replacement Image. If -1, null be * be returned if the loading fails. * @param height optional height to create replacement Image. If -1, null be * be returned if the loading fails. * @param phColor optional color to create replacement Image. If null, Blue * color will be used. * @return a new Image or null if the loading failed and the optional * replacement size was -1 */ public static Image loadImage(IImageLoader loader, Display display, String fileName, int width, int height, Color phColor) { Image img = null; if (loader != null) { img = loader.loadImage(fileName, display); } if (img == null) { Log.w("ddms", "Couldn't load " + fileName); // if we had the extra parameter to create replacement image then we // create and return it. if (width != -1 && height != -1) { return createPlaceHolderArt(display, width, height, phColor != null ? phColor : display .getSystemColor(SWT.COLOR_BLUE)); } // otherwise, just return null return null; } return img; } /** * Create place-holder art with the specified color. */ public static Image createPlaceHolderArt(Display display, int width, int height, Color color) { Image img = new Image(display, width, height); GC gc = new GC(img); gc.setForeground(color); gc.drawLine(0, 0, width, height); gc.drawLine(0, height - 1, width, -1); gc.dispose(); return img; } }