/******************************************************************************* * Copyright (c) 2007 Exadel, Inc. and Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is made available under the terms of the * Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Exadel, Inc. and Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.common.model.ui.image; import java.util.Hashtable; import org.eclipse.swt.graphics.*; import org.eclipse.jface.resource.ImageDescriptor; import org.jboss.tools.common.model.XModelObject; import org.jboss.tools.common.model.icons.impl.XModelObjectIcon; public class XModelObjectImageDescriptor extends ImageDescriptor { private static Hashtable<String,Image> imageCache = new Hashtable<String,Image>(); private XModelObjectIcon xicon = null; public XModelObjectImageDescriptor(XModelObject object) { xicon = new XModelObjectIcon(object); } public ImageData getImageData() { return createImage().getImageData(); } public Image createImage(boolean returnMissingImageOnError, Device device) { int code = xicon.getIconHash(); if (code == 0) return null; String key = "" + code; //$NON-NLS-1$ Image img = (Image)imageCache.get(key); if (img != null) return img; img = xicon.getEclipseImage(); if (img != null) imageCache.put(key, img); return img; } }