Let MediaTypeDetector do the mime guessing
diff --git a/taverna-results-view/src/main/java/org/apache/taverna/workbench/views/results/workflow/RenderedResultComponent.java b/taverna-results-view/src/main/java/org/apache/taverna/workbench/views/results/workflow/RenderedResultComponent.java
index f0900b8..d280a56 100644
--- a/taverna-results-view/src/main/java/org/apache/taverna/workbench/views/results/workflow/RenderedResultComponent.java
+++ b/taverna-results-view/src/main/java/org/apache/taverna/workbench/views/results/workflow/RenderedResultComponent.java
@@ -23,7 +23,6 @@
 import static javax.swing.BoxLayout.LINE_AXIS;
 import static javax.swing.SwingUtilities.invokeLater;
 import static org.apache.taverna.renderers.RendererUtils.getInputStream;
-import static org.apache.taverna.results.ResultsUtils;
 import static org.apache.taverna.workbench.icons.WorkbenchIcons.refreshIcon;
 import static org.apache.commons.lang.StringEscapeUtils.escapeHtml;
 
@@ -38,6 +37,8 @@
 import java.io.InputStream;
 import java.nio.file.Path;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -61,6 +62,7 @@
 import javax.swing.tree.DefaultTreeCellRenderer;
 
 import org.apache.taverna.lang.ui.DialogTextArea;
+import org.apache.taverna.renderers.MediaTypeDetector;
 import org.apache.taverna.renderers.Renderer;
 import org.apache.taverna.renderers.RendererException;
 import org.apache.taverna.renderers.RendererRegistry;
@@ -71,7 +73,6 @@
 import org.apache.taverna.databundle.DataBundles;
 import org.apache.taverna.databundle.ErrorDocument;
 import org.apache.taverna.scufl2.api.port.OutputWorkflowPort;
-import eu.medsea.mimeutil.MimeType;
 
 /**
  * Creates a component that renders an individual result from an output port.
@@ -294,36 +295,22 @@
 		if (DataBundles.isValue(path) || DataBundles.isReference(path)) {
 			// Enable refresh button
 			refreshButton.setEnabled(true);
-
-			List<MimeType> mimeTypes = new ArrayList<>();
-			try (InputStream inputstream = getInputStream(path)) {
-				mimeTypes.addAll(getMimeTypes(inputstream));
+			
+			List<String> mediaTypes;
+			MediaTypeDetector detector = rendererRegistry.getMimeTypeDetector();
+			try {
+				if (DataBundles.isReference(path)) {
+					mediaTypes = detector.guessMediaTypes(DataBundles.getReference(path));
+				} else {
+					mediaTypes = detector.guessMediaTypes(path);
+				}
 			} catch (IOException e) {
-				logger.warn("Error getting mimetype", e);
+				logger.warn("Can't detect media type of " + path, e);
+				mediaTypes = Collections.emptyList();
 			}
-
-			if (mimeTypes.isEmpty())
-				// If MIME types is empty - add "plain/text" MIME type
-				mimeTypes.add(new MimeType("text/plain"));
-			else if (mimeTypes.size() == 1
-					&& mimeTypes.get(0).toString().equals("chemical/x-fasta")) {
-				/*
-				 * If MIME type is recognised as "chemical/x-fasta" only then
-				 * this might be an error from MIME magic (i.e., sometimes it
-				 * recognises stuff that is not "chemical/x-fasta" as
-				 * "chemical/x-fasta" and then Seq Vista renderer is used that
-				 * causes errors) - make sure we also add the renderers for
-				 * "text/plain" and "text/xml" as it is most probably just
-				 * normal xml text and push the "chemical/x-fasta" to the bottom
-				 * of the list.
-				 */
-				mimeTypes.add(0, new MimeType("text/plain"));
-				mimeTypes.add(1, new MimeType("text/xml"));
-			}
-
-			for (MimeType mimeType : mimeTypes) {
-				List<Renderer> renderersList = rendererRegistry.getRenderersForMimeType(mimeType
-						.toString());
+			
+			for (String mediaType : mediaTypes) {
+				List<Renderer> renderersList = rendererRegistry.getRenderersForMimeType(mediaType);
 				for (Renderer renderer : renderersList)
 					if (!recognisedRenderersForMimeType.contains(renderer))
 						recognisedRenderersForMimeType.add(renderer);