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; + } + +}