/*
* 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;
}
}
|