📄 imagerepository.java
字号:
/*
* Created on 29 juin 2003
* Copyright (C) 2003, 2004, 2005, 2006 Aelitis, All Rights Reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* AELITIS, SAS au capital de 46,603.30 euros
* 8 Allee Lenotre, La Grille Royale, 78600 Le Mesnil le Roi, France.
*
*/
package org.gudy.azureus2.ui.swt;
import org.eclipse.swt.SWTException;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Display;
import org.gudy.azureus2.core3.util.Constants;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.InputStream;
import java.util.*;
/**
* @author Olivier
*
*/
public class ImageRepository {
private static Display display;
private static final HashMap imagesToPath;
private static final HashMap images;
private static final HashMap registry;
private static final String[] noCacheExtList = new String[] {".exe"};
private static final boolean doNotUseAWTIcon = Constants.isOSX;
static {
images = new HashMap();
imagesToPath = new HashMap();
registry = new HashMap();
}
public static void loadImagesForSplashWindow(Display display) {
ImageRepository.display = display;
loadImage(display, "org/gudy/azureus2/ui/icons/a16.png", "azureus");
loadImage(display, "org/gudy/azureus2/ui/splash/azureus.jpg", "azureus_splash");
}
public static void loadImages(Display display) {
loadImage(display, "org/gudy/azureus2/ui/icons/a32.png", "azureus32");
loadImage(display, "org/gudy/azureus2/ui/icons/a64.png", "azureus64");
loadImage(display, "org/gudy/azureus2/ui/icons/a128.png", "azureus128");
loadImage(display, "org/gudy/azureus2/ui/icons/Azureus_big.png", "tray");
loadImage(display, "org/gudy/azureus2/ui/icons/dragger.gif", "dragger");
loadImage(display, "org/gudy/azureus2/ui/icons/folder.gif", "folder");
loadImage(display, "org/gudy/azureus2/ui/icons/ipfilter.png", "ipfilter");
loadImage(display, "org/gudy/azureus2/ui/icons/start.gif", "start");
loadImage(display, "org/gudy/azureus2/ui/icons/stop.gif", "stop");
loadImage(display, "org/gudy/azureus2/ui/icons/bar.gif", "downloadBar");
loadImage(display, "org/gudy/azureus2/ui/icons/delete.gif", "delete");
loadImage(display, "org/gudy/azureus2/ui/icons/lock.gif", "lock");
loadImage(display, "org/gudy/azureus2/ui/icons/host.gif", "host");
loadImage(display, "org/gudy/azureus2/ui/icons/publish.gif", "publish");
loadImage(display, "org/gudy/azureus2/ui/icons/run.gif", "run");
loadImage(display, "org/gudy/azureus2/ui/icons/details.gif", "details");
loadImage(display, "org/gudy/azureus2/ui/icons/up.gif", "up");
loadImage(display, "org/gudy/azureus2/ui/icons/down.gif", "down");
loadImage(display, "org/gudy/azureus2/ui/icons/top.gif", "top");
loadImage(display, "org/gudy/azureus2/ui/icons/bottom.gif", "bottom");
loadImage(display, "org/gudy/azureus2/ui/icons/recheck.gif", "recheck");
loadImage(display, "org/gudy/azureus2/ui/icons/export.gif", "export");
loadImage(display, "org/gudy/azureus2/ui/icons/move.gif", "move");
loadImage(display, "org/gudy/azureus2/ui/icons/add_tracker.gif", "add_tracker");
loadImage(display, "org/gudy/azureus2/ui/icons/edit_trackers.gif", "edit_trackers");
loadImage(display, "org/gudy/azureus2/ui/icons/columns.gif", "columns");
loadImage(display, "org/gudy/azureus2/ui/icons/speed.gif", "speed");
loadImage(display, "org/gudy/azureus2/ui/icons/openFolder16x12.gif", "openFolderButton");
loadImage(display, "org/gudy/azureus2/ui/icons/forcestart.gif", "forcestart");
loadImage(display, "org/gudy/azureus2/ui/icons/greenled.gif", "greenled");
loadImage(display, "org/gudy/azureus2/ui/icons/redled.gif", "redled");
loadImage(display, "org/gudy/azureus2/ui/icons/yellowled.gif", "yellowled");
loadImage(display, "org/gudy/azureus2/ui/icons/grayled.gif", "grayled");
imagesToPath.put("donation","org/gudy/azureus2/ui/icons/donation.jpg");
loadImage(display, "org/gudy/azureus2/ui/icons/popup.png","popup");
loadImage(display, "org/gudy/azureus2/ui/icons/error.gif","error");
loadImage(display, "org/gudy/azureus2/ui/icons/info.gif","info");
loadImage(display, "org/gudy/azureus2/ui/icons/warning.gif","warning");
loadImage(display, "org/gudy/azureus2/ui/icons/subitem.gif","subitem");
//ToolBar Icons
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/open.gif", "cb_open");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/open_no_default.gif", "cb_open_no_default");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/open_folder.gif", "cb_open_folder");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/open_url.gif", "cb_open_url");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/new.gif", "cb_new");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/up.gif", "cb_up");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/down.gif", "cb_down");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/top.gif", "cb_top");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/bottom.gif", "cb_bottom");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/run.gif", "cb_run");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/start.gif", "cb_start");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/stop.gif", "cb_stop");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/remove.gif", "cb_remove");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/host.gif", "cb_host");
loadImage(display, "org/gudy/azureus2/ui/icons/toolbar/publish.gif", "cb_publish");
//Status icons
loadImage(display, "org/gudy/azureus2/ui/icons/status/ok.gif", "st_ok");
loadImage(display, "org/gudy/azureus2/ui/icons/status/ko.gif", "st_ko");
loadImage(display, "org/gudy/azureus2/ui/icons/status/stopped.gif", "st_stopped");
loadImage(display, "org/gudy/azureus2/ui/icons/status/error.gif", "st_error");
loadImage(display, "org/gudy/azureus2/ui/icons/status/no_tracker.gif", "st_no_tracker");
loadImage(display, "org/gudy/azureus2/ui/icons/status/no_remote.gif", "st_no_remote");
loadImage(display, "org/gudy/azureus2/ui/icons/status/ok_shared.gif", "st_ok_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/status/ko_shared.gif", "st_ko_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/status/error_shared.gif", "st_error_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/status/stopped_shared.gif", "st_stopped_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/status/no_tracker_shared.gif", "st_no_tracker_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/status/no_remote_shared.gif", "st_no_remote_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/status/explain.gif", "st_explain");
loadImage(display, "org/gudy/azureus2/ui/icons/status/shared.gif", "st_shared");
loadImage(display, "org/gudy/azureus2/ui/icons/statusbar/status_warning.gif", "sb_warning");
}
public static Image loadImage(Display display, String res, String name){
return loadImage(display,res,name,255);
}
public static Image loadImage(Display display, String res, String name,int alpha) {
return loadImage(ImageRepository.class.getClassLoader(),display,res,name,alpha);
}
public static Image loadImage(ClassLoader loader,Display display, String res, String name,int alpha) {
imagesToPath.put(name,res);
Image im = getImage(name,false);
if(null == im) {
InputStream is = loader.getResourceAsStream(res);
if(null != is) {
try {
if(alpha == 255) {
im = new Image(display, is);
} else {
ImageData icone = new ImageData(is);
icone.alpha = alpha;
im = new Image(display,icone);
}
images.put(name, im);
} catch (SWTException e) {
return null;
}
} else {
System.out.println("ImageRepository:loadImage:: Resource not found: " + res);
im = new Image( display, 1, 1 );
images.put(name, im);
}
}
return im;
}
public static void unLoadImages() {
Iterator iter;
iter = images.values().iterator();
while (iter.hasNext()) {
Image im = (Image) iter.next();
im.dispose();
}
iter = registry.values().iterator();
while (iter.hasNext()) {
Image im = (Image) iter.next();
if(im != null)
im.dispose();
}
}
public static Image getImage(String name) {
return getImage(name,true);
}
private static Image getImage(String name,boolean allowLoading) {
Image result = (Image) images.get(name);
if(allowLoading && result == null) {
String path = (String) imagesToPath.get(name);
if(path != null) {
return loadImage(display,path,name);
}
}
return result;
}
/**
* Gets an image for a file associated with a given program
*
* @param program the Program
*/
public static Image getIconFromProgram(Program program) {
Image image = null;
try{
image =(Image) images.get(program);
if (image == null) {
if (program != null) {
ImageData imageData = program.getImageData();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -