1
|
1 package de.mpg.mpiwg.itgroup.digilib.manipulator;
|
|
2
|
|
3 import java.util.ArrayList;
|
|
4 import java.util.HashMap;
|
|
5 import java.util.List;
|
|
6
|
|
7 import org.eclipse.core.runtime.CoreException;
|
|
8 import org.eclipse.core.runtime.IConfigurationElement;
|
|
9 import org.eclipse.core.runtime.Platform;
|
|
10
|
|
11
|
|
12
|
|
13
|
|
14 /**
|
|
15 * This singleton class manages the property extensions.
|
|
16 *
|
|
17 * @author Julia Damerow
|
9
|
18 * @author Dirk Wintergruen
|
1
|
19 *
|
|
20 */
|
|
21 public class DigilibImageManipulatorProvider {
|
|
22
|
|
23 public static DigilibImageManipulatorProvider INSTANCE = new DigilibImageManipulatorProvider();
|
|
24
|
|
25 private List<IDigilibImageManipulator> propertyExtensions;
|
|
26 private HashMap<String,IDigilibImageManipulator> propertyExtensionsMap;
|
|
27
|
|
28
|
|
29 private DigilibImageManipulatorProvider() {
|
|
30 propertyExtensions = new ArrayList<IDigilibImageManipulator>();
|
|
31 propertyExtensionsMap = new HashMap<String,IDigilibImageManipulator>();
|
|
32
|
|
33 IConfigurationElement[] configs = Platform.getExtensionRegistry().getConfigurationElementsFor("de.mpg.mpiwg.itgroup.digilib.plugin","DigilibImageManipulation");
|
|
34 for (IConfigurationElement e : configs)
|
|
35 {
|
|
36 Object o = null;
|
|
37 try {
|
|
38 o = e.createExecutableExtension("class");
|
|
39
|
|
40 } catch (CoreException e1) {
|
|
41 // TODO Auto-generated catch block
|
|
42 e1.printStackTrace();
|
|
43 continue;
|
|
44 }
|
|
45 if (o != null)
|
|
46 {
|
|
47 IDigilibImageManipulator dim = (IDigilibImageManipulator)o;
|
|
48 propertyExtensions.add(dim);
|
|
49 propertyExtensionsMap.put(dim.getKeyword(), dim);
|
|
50 }
|
|
51 }
|
|
52 }
|
|
53
|
|
54 /**
|
9
|
55 * Get all registered <code>DigilibImageManipulation</code>s.
|
|
56 * @return a list with all registered <code>DigilibImageManipulation</code>s
|
1
|
57 */
|
|
58 public List<IDigilibImageManipulator> getAllManipulators()
|
|
59 {
|
|
60
|
|
61 return propertyExtensions;
|
|
62 }
|
|
63
|
|
64 public IDigilibImageManipulator getManipulator(String keyword) {
|
|
65 return propertyExtensionsMap.get(keyword);
|
|
66 }
|
|
67
|
|
68
|
|
69 }
|