From: Patrick Plitzner
Date: Wed, 8 Jul 2015 05:41:33 +0000 (+0200)
Subject: Externalize cdmViewer extension point parsing
X-Git-Tag: 3.7.0~1^2~15
X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/b933f37d14db71d8d755b6b004ce8109adbd9491
Externalize cdmViewer extension point parsing
---
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java
index 2aa1f6766..6efcc81d0 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerChooser.java
@@ -9,16 +9,9 @@
*/
package eu.etaxonomy.taxeditor.view;
-import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
import org.eclipse.jface.dialogs.PopupDialog;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ILabelProvider;
@@ -35,9 +28,6 @@ import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-
/**
* This class opens a popup dialog and provides the possibility to choose from a
* list of possible viewers which can be opened for a given input.
@@ -63,39 +53,13 @@ public class CdmViewerChooser extends PopupDialog implements ISelectionChangedLi
titleText, infoText);
}
- public static Map, String>, ICdmViewer> getNameViewerMap(Object input){
- Map, String>, ICdmViewer> nameViewerMap = new HashMap, String>, ICdmViewer>();
-
- IExtensionRegistry reg = Platform.getExtensionRegistry();
- IConfigurationElement[] extensions = reg
- .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer");
- for (IConfigurationElement configElement : extensions) {
- try {
- Object object = configElement.createExecutableExtension("class");
- if(object instanceof ICdmViewer){
- ICdmViewer cdmViewer = (ICdmViewer)object;
- Map, String> viewerClasses = cdmViewer.getViewerClasses(input);
- for (Entry, String> entry : viewerClasses.entrySet()) {
- nameViewerMap.put(entry, cdmViewer);
- }
- }
- else{
- MessagingUtils.error(CdmViewerChooser.class, new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Could not load cdmViewer extension"));
- }
- } catch (CoreException e) {
- MessagingUtils.error(CdmViewerChooser.class, "Could not load cdmViewer extension", e);
- }
- }
- return nameViewerMap;
- }
-
/**
* Opens a popup dialog with all possible viewers for the given input.
* @param input the input for which the viewers are listed
*/
public void chooseViewer(Object input){
this.input = input;
- this.nameViewerMap = getNameViewerMap(input);
+ this.nameViewerMap = CdmViewerUtil.getNameViewerMap(input);
//if only one editor is available then open it
if(nameViewerMap.size()==1){
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
index d67df2931..712bec9d8 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerContextMenu.java
@@ -36,7 +36,7 @@ public class CdmViewerContextMenu extends CompoundContributionItem {
final ISelection selection = window.getActivePage().getSelection();
if(selection instanceof IStructuredSelection){
Object firstElement = ((IStructuredSelection) selection).getFirstElement();
- Map, String>, ICdmViewer> nameViewerMap = CdmViewerChooser.getNameViewerMap(firstElement);
+ Map, String>, ICdmViewer> nameViewerMap = CdmViewerUtil.getNameViewerMap(firstElement);
for(Entry, String>, ICdmViewer> entry:nameViewerMap.entrySet()){
Entry, String> viewerClass = entry.getKey();
MenuItem menuItem = new MenuItem(addMenu, SWT.NONE);
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java
new file mode 100644
index 000000000..6f5c6f67a
--- /dev/null
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/CdmViewerUtil.java
@@ -0,0 +1,59 @@
+// $Id$
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.view;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.Status;
+
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+
+/**
+ * @author pplitzner
+ * @date Jul 7, 2015
+ *
+ */
+public class CdmViewerUtil {
+
+ public static Map, String>, ICdmViewer> getNameViewerMap(Object input){
+ Map, String>, ICdmViewer> nameViewerMap = new HashMap, String>, ICdmViewer>();
+
+ IExtensionRegistry reg = Platform.getExtensionRegistry();
+ IConfigurationElement[] extensions = reg
+ .getConfigurationElementsFor("eu.etaxonomy.taxeditor.store.cdmViewer");
+ for (IConfigurationElement configElement : extensions) {
+ try {
+ Object object = configElement.createExecutableExtension("class");
+ if(object instanceof ICdmViewer){
+ ICdmViewer cdmViewer = (ICdmViewer)object;
+ Map, String> viewerClasses = cdmViewer.getViewerClasses(input);
+ for (Entry, String> entry : viewerClasses.entrySet()) {
+ nameViewerMap.put(entry, cdmViewer);
+ }
+ }
+ else{
+ MessagingUtils.error(CdmViewerChooser.class, new Status(IStatus.ERROR, TaxeditorStorePlugin.PLUGIN_ID, "Could not load cdmViewer extension"));
+ }
+ } catch (CoreException e) {
+ MessagingUtils.error(CdmViewerChooser.class, "Could not load cdmViewer extension", e);
+ }
+ }
+ return nameViewerMap;
+ }
+
+}