view src/de/mpg/mpiwg/itgroup/digilib/manipulator/DigilibImageManipulatorProvider.java @ 1:83c58ea33792

first release (continued)
author dwinter
date Mon, 03 Jan 2011 09:11:25 +0100
parents
children e63a64652f4d
line wrap: on
line source

package de.mpg.mpiwg.itgroup.digilib.manipulator;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.Platform;

import org.eclipse.jface.viewers.CellEditor;



/**
 * This singleton class manages the property extensions.
 * 
 * @author Julia Damerow
 *
 */
public class DigilibImageManipulatorProvider {

    public static DigilibImageManipulatorProvider INSTANCE = new DigilibImageManipulatorProvider();
    
    private List<IDigilibImageManipulator> propertyExtensions;
    private HashMap<String,IDigilibImageManipulator> propertyExtensionsMap;
   
    
    private DigilibImageManipulatorProvider() {
    	propertyExtensions = new ArrayList<IDigilibImageManipulator>();
    	propertyExtensionsMap = new HashMap<String,IDigilibImageManipulator>();
        
        IConfigurationElement[] configs = Platform.getExtensionRegistry().getConfigurationElementsFor("de.mpg.mpiwg.itgroup.digilib.plugin","DigilibImageManipulation");
        for (IConfigurationElement e : configs)
        {
            Object o = null;
            try {
                o = e.createExecutableExtension("class");
       
            } catch (CoreException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
                continue;
            }
            if (o != null)
            {
            	IDigilibImageManipulator dim = (IDigilibImageManipulator)o;
            propertyExtensions.add(dim);
            propertyExtensionsMap.put(dim.getKeyword(), dim);
            }
        }
    }
    
    /**
     * Get all registered <code>FieldEditorPreferencePage</code>s.
     * @return a list with all registered <code>FieldEditorPreferencePage</code>s
     */
    public List<IDigilibImageManipulator> getAllManipulators()
    {
       
        return propertyExtensions;
    }

	public IDigilibImageManipulator getManipulator(String keyword) {
		return propertyExtensionsMap.get(keyword);
	}
    
  
}