package com.mobilesorcery.sdk.core.templates;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.swt.graphics.Image;
import org.eclipse.ui.plugin.AbstractUIPlugin;
import com.mobilesorcery.sdk.core.CoreMoSyncPlugin;
import com.mobilesorcery.sdk.core.MoSyncProject;
public class ProjectTemplateExtension implements IProjectTemplateExtension {
public static final String EXTENSION_POINT_ID = "com.mobilesorcery.sdk.templates.type.extension";
private final IConfigurationElement element;
private boolean inited;
private IProjectTemplateExtensionDelegate configurer;
public ProjectTemplateExtension(IConfigurationElement element) {
this.element = element;
}
@Override
public ImageDescriptor getImage() {
String ns = element.getDeclaringExtension().getNamespaceIdentifier();
String icon = element.getAttribute("image");
ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(ns, icon);
return imageDescriptor;
}
@Override
public String getName() {
return element.getAttribute("name");
}
@Override
public void configureProject(MoSyncProject project) throws CoreException {
if (!inited) {
inited = true;
try {
if (element.getAttribute("configurer") != null) {
configurer = (IProjectTemplateExtensionDelegate) element.createExecutableExtension("configurer");
}
} catch (CoreException e) {
CoreMoSyncPlugin.getDefault().log(e);
// Never mind.
}
}
if (configurer != null) {
configurer.configureProject(project);
}
}
@Override
public String getType() {
return element.getAttribute("type");
}
}