📄 lgprotegei18n.java
字号:
/*
* Copyright: (c) 2004 Mayo Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this
* list of conditions and the following disclaimer in the documentation and/or other
* materials provided with the distribution.
*
* 3. The end-user documentation included with the redistribution, if any, must include
* the following acknowledgment:
* "This product includes software developed by Mayo Clinic Division of Biomedical
* Informatics Research (http://informatics.mayo.edu/)."
* Alternately, this acknowledgment may appear in the software itself, if and wherever
* such third-party acknowledgments normally appear.
*
* 4. The names "Mayo", "Mayo Clinic", "Mayo Foundation", "LexGrid", or "LexGrid Editor"
* must not be used to endorse or promote products derived from this software without
* prior written permission. For written permission, please contact the author
* or copyright holder.
*
* 5. Products derived from this software may not be called "LexGrid Editor", nor may
* "LexGrid" or "Mayo" appear in their name, without prior written permission of the
* author or copyright holder.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
* BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MAYO CLINIC OR OTHER
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.lexgrid.ui.extension.protege;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.internal.WorkbenchImages;
/**
* Provides lookup services for internationalized text and images.
*
* @author <A HREF="mailto:johnson.thomas@mayo.edu">Thomas M Johnson</A>
*/
public class LgProtegeI18n {
private static Map fgImageRegistry;
private LgProtegeI18n() {
super();
}
/**
* Returns an internationalized string from plug-in properties, based on key.
* @param key
* @return String
*/
public static String getI18nString(String key) {
try {
return Plugin.getResourceString(key);
} catch (RuntimeException e) {
}
return key;
}
/**
* Returns the image with the given path (current display),
* relative to the plugin icon directory.
*/
public static Image getImage(String relativePath) {
return getImage(Display.getCurrent(), getImageDescriptor(relativePath));
}
/**
* Returns an image for the given display as specified by the given image descriptor.
* @param display the display
* @param descriptor the image descriptor
* @return an image for the display as specified by the descriptor
*/
public static Image getImage(Display display, ImageDescriptor descriptor) {
Map map= getImageRegistry(display);
Image image= (Image) map.get(descriptor);
if (image == null) {
image= descriptor.createImage();
map.put(descriptor, image);
}
return image;
}
/**
* Returns the image descriptor with the given path, relative to the
* plugin icon directory.
*/
public static ImageDescriptor getImageDescriptor(String relativePath) {
final String iconPath = "icons/";
try {
URL installURL = Plugin.getPlugin().getBundle().getEntry("/");
URL url = new URL(installURL, iconPath + relativePath);
return ImageDescriptor.createFromURL(url);
}
catch (MalformedURLException e) {
return ImageDescriptor.getMissingImageDescriptor();
}
}
/**
* Returns an image registry for the given display. If no such registry exists
* the resgitry is created.
* @param display the display
* @return the image registry for the given display
*/
protected static Map getImageRegistry(Display display) {
if (fgImageRegistry == null) {
fgImageRegistry= new HashMap();
display.disposeExec(new Runnable() {
public void run() {
if (fgImageRegistry != null) {
Map map= fgImageRegistry;
fgImageRegistry= null;
Iterator e= map.values().iterator();
while (e.hasNext()) {
Image image= (Image) e.next();
if (!image.isDisposed())
image.dispose();
}
}
}
});
}
return fgImageRegistry;
}
/**
* Returns the image of the given name.
* @param name the name of the requested image
* @return the image; null if there is no such image
*/
public static Image getWorkbenchImage(String name) {
if (name != null)
return WorkbenchImages.getImage(name);
return null;
}
/**
* Returns an image descriptor from the workbench image gallery, based on key.
* @param key
* @return ImageDescriptor
*/
public static ImageDescriptor getWorkbenchImageDesc(String key) {
return WorkbenchImages.getImageDescriptor(key);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -