blob: ae59e102961e34b69fd4d8adcc1bd18853d89e2e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2007 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are 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
*
*******************************************************************************/
package org.eclipse.dltk.ui;
import java.util.List;
import org.eclipse.dltk.core.DLTKLanguageManager;
import org.eclipse.dltk.core.IDLTKLanguageToolkit;
import org.eclipse.dltk.core.IModelElement;
import org.eclipse.dltk.core.PriorityClassDLTKExtensionManager;
import org.eclipse.dltk.ui.viewsupport.ScriptUILabelProvider;
public class DLTKUILanguageManager extends PriorityClassDLTKExtensionManager {
private static DLTKUILanguageManager instance = new DLTKUILanguageManager();
private final static String LANGUAGE_EXTPOINT = DLTKUIPlugin.PLUGIN_ID
+ ".language"; //$NON-NLS-1$
private DLTKUILanguageManager() {
super(LANGUAGE_EXTPOINT);
}
public static IDLTKUILanguageToolkit[] getLanguageToolkits() {
@SuppressWarnings("unchecked")
List<IDLTKUILanguageToolkit> toolkits = instance.getObjectList();
return toolkits.toArray(new IDLTKUILanguageToolkit[toolkits.size()]);
}
/**
* @since 2.0
*/
public static IDLTKUILanguageToolkit getLanguageToolkit(
IDLTKLanguageToolkit toolkit) {
return (IDLTKUILanguageToolkit) instance.getObject(toolkit
.getNatureId());
}
public static IDLTKUILanguageToolkit getLanguageToolkit(String natureId) {
return (IDLTKUILanguageToolkit) instance.getObject(natureId);
}
public static IDLTKUILanguageToolkit getLanguageToolkit(
IModelElement element) {
IDLTKLanguageToolkit coreToolkit = DLTKLanguageManager
.getLanguageToolkit(element);
if (coreToolkit != null) {
return (IDLTKUILanguageToolkit) instance.getObject(coreToolkit
.getNatureId());
}
return null;
}
public static ScriptUILabelProvider createLabelProvider(
IModelElement element) {
IDLTKUILanguageToolkit languageToolkit = getLanguageToolkit(element);
if (languageToolkit != null) {
ScriptUILabelProvider provider = languageToolkit
.createScriptUILabelProvider();
if (provider != null) {
return provider;
}
}
return new ScriptUILabelProvider();
}
public static ScriptUILabelProvider createLabelProvider(String nature) {
IDLTKUILanguageToolkit languageToolkit = getLanguageToolkit(nature);
if (languageToolkit != null) {
ScriptUILabelProvider provider = languageToolkit
.createScriptUILabelProvider();
if (provider != null) {
return provider;
}
}
return new ScriptUILabelProvider();
}
public static IDLTKUILanguageToolkit getLanguageToolkitLower(String natureId) {
return (IDLTKUILanguageToolkit) instance.getObjectLower(natureId);
}
}