package org.nightlabs.jfire.trade.admin.ui.overview; import org.apache.log4j.Logger; 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 org.nightlabs.eclipse.extension.AbstractEPProcessor; /** * @author Daniel.Mazurek [at] NightLabs [dot] de * */ public abstract class AbstractTradeAdminCategoryFactory implements TradeAdminCategoryFactory { private static final Logger logger = Logger.getLogger(AbstractTradeAdminCategoryFactory.class); public static final String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$ public static final String ATTRIBUTE_ICON = "icon"; //$NON-NLS-1$ public static final String ATTRIBUTE_INDEX = "index"; //$NON-NLS-1$ private int index = -1; public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } private Image image; public Image getImage() { return image; } public void setImage(Image image) { this.image = image; } private String name = null; public String getName() { return name; } public void setName(String name) { this.name = name; } public void setInitializationData(IConfigurationElement element, String propertyName, Object data) throws CoreException { String name = element.getAttribute(ATTRIBUTE_NAME); String iconString = element.getAttribute(ATTRIBUTE_ICON); String indexString = element.getAttribute(ATTRIBUTE_INDEX); if (AbstractEPProcessor.checkString(name)) setName(name); if (AbstractEPProcessor.checkString(iconString)) { ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin( element.getNamespaceIdentifier(), iconString); if (imageDescriptor != null) setImage(imageDescriptor.createImage()); } if (AbstractEPProcessor.checkString(indexString)) { try { int index = Integer.valueOf(indexString); setIndex(index); } catch (NumberFormatException e) { logger.error("Attribute index "+indexString+" is not valid number!"); //$NON-NLS-1$ //$NON-NLS-2$ } } } }