1 11 package org.eclipse.jdt.internal.ui.wizards; 12 13 import java.net.MalformedURLException ; 14 import java.net.URL ; 15 16 import org.eclipse.core.runtime.CoreException; 17 import org.eclipse.core.runtime.IConfigurationElement; 18 import org.eclipse.core.runtime.Platform; 19 20 import org.eclipse.jface.resource.ImageDescriptor; 21 import org.eclipse.jface.wizard.Wizard; 22 23 import org.eclipse.jdt.internal.ui.JavaPlugin; 24 import org.eclipse.jdt.internal.ui.util.CoreUtility; 25 26 public class OpenTypeWizardAction extends AbstractOpenWizardAction { 27 28 private final static String ATT_NAME = "name"; private final static String ATT_CLASS = "class"; private final static String ATT_ICON = "icon"; private static final String TAG_DESCRIPTION = "description"; 33 private IConfigurationElement fConfigurationElement; 34 35 public OpenTypeWizardAction(IConfigurationElement element) { 36 fConfigurationElement= element; 37 setText(element.getAttribute(ATT_NAME)); 38 39 String description= getDescriptionFromConfig(fConfigurationElement); 40 setDescription(description); 41 setToolTipText(description); 42 setImageDescriptor(getIconFromConfig(fConfigurationElement)); 43 } 44 45 private String getDescriptionFromConfig(IConfigurationElement config) { 46 IConfigurationElement [] children = config.getChildren(TAG_DESCRIPTION); 47 if (children.length>=1) { 48 return children[0].getValue(); 49 } 50 return ""; } 52 53 private ImageDescriptor getIconFromConfig(IConfigurationElement config) { 54 try { 55 String iconName = config.getAttribute(ATT_ICON); 56 if (iconName != null) { 57 URL pluginInstallUrl = Platform.getBundle(config.getNamespace()).getEntry("/"); return ImageDescriptor.createFromURL(new URL (pluginInstallUrl, iconName)); 59 } 60 return null; 61 } catch (MalformedURLException exception) { 62 JavaPlugin.logErrorMessage("Unable to load wizard icon"); } 64 return ImageDescriptor.getMissingImageDescriptor(); 65 66 } 67 68 71 protected Wizard createWizard() throws CoreException { 72 return (Wizard) CoreUtility.createExtension(fConfigurationElement, ATT_CLASS); 73 } 74 } 75 | Popular Tags |