package org.signalml.plugin.impl; import java.io.IOException; import java.util.Properties; import javax.swing.ImageIcon; import org.apache.log4j.Logger; import org.signalml.app.config.ConfigurationDefaultsLoader; import org.signalml.plugin.export.Plugin; import org.signalml.plugin.export.resources.SvarogAccessResources; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; /** * {@link SvarogAccessResources} implementation using org.springframework.context. * */ public class SvarogAccessResourcesImpl implements SvarogAccessResources { protected static final Logger log = Logger.getLogger(SvarogAccessResources.class); private final Class<? extends Plugin> klass; public SvarogAccessResourcesImpl(Class<? extends Plugin> klass) { this.klass = klass; } public ImageIcon loadClassPathIcon(String classpath) throws IOException { Resource icon = new ClassPathResource(classpath, this.klass); log.debug("trying to load " + icon.getURL()); try { return new ImageIcon(icon.getURL()); } catch (IOException ex) { log.error("WARNING: failed to open icon recource [" + icon + "]", ex); throw ex; } } @Override public Properties loadPluginConfigurationDefaults(String classpath) throws IOException { return ConfigurationDefaultsLoader.Load(this.klass, classpath); } }