diff --git a/src/main/java/net/imagej/legacy/convert/StringToResultTableConverter.java b/src/main/java/net/imagej/legacy/convert/StringToResultTableConverter.java new file mode 100644 index 000000000..f507b4d76 --- /dev/null +++ b/src/main/java/net/imagej/legacy/convert/StringToResultTableConverter.java @@ -0,0 +1,52 @@ +package net.imagej.legacy.convert; + +import java.awt.Frame; +import java.util.Collection; + +import org.scijava.Priority; +import org.scijava.convert.Converter; +import org.scijava.plugin.Plugin; + +import ij.WindowManager; +import ij.measure.ResultsTable; +import ij.text.TextWindow; + +@Plugin(type = Converter.class, priority = Priority.LOW) +public class StringToResultTableConverter extends +AbstractLegacyConverter { + + @Override + public boolean canConvert(Object src, Class dest) { + return super.canConvert(src, dest) && convert(src, getOutputType()) != null; + } + + @Override + public T convert(Object src, Class dest) { + String title = (String) src; + @SuppressWarnings("unchecked") + T rt = (T) ResultsTable.getResultsTable(title); + return rt; + } + + @Override + public void populateInputCandidates(Collection objects) { + Frame[] nonImageWindows = WindowManager.getNonImageWindows(); + for (Frame frame : nonImageWindows) { + if (frame instanceof TextWindow) { + ResultsTable rt = ((TextWindow) frame).getTextPanel().getResultsTable(); + if (rt != null) objects.add(rt); + } + } + } + + @Override + public Class getInputType() { + return String.class; + } + + @Override + public Class getOutputType() { + return ResultsTable.class; + } + +} diff --git a/src/test/java/net/imagej/legacy/ImageJ1EncapsulationTest.java b/src/test/java/net/imagej/legacy/ImageJ1EncapsulationTest.java index 5c3051250..3b88812ff 100644 --- a/src/test/java/net/imagej/legacy/ImageJ1EncapsulationTest.java +++ b/src/test/java/net/imagej/legacy/ImageJ1EncapsulationTest.java @@ -102,6 +102,7 @@ public void verifyEncapsulation() throws Exception { className.startsWith(net.imagej.legacy.convert.ResultsTableWrapper.class.getName()) || className.startsWith(net.imagej.legacy.convert.ROITreeToOverlayConverter.class.getName()) || className.startsWith(net.imagej.legacy.convert.StringToImagePlusConverter.class.getName()) || + className.startsWith(net.imagej.legacy.convert.StringToResultTableConverter.class.getName()) || className.startsWith(net.imagej.legacy.convert.TableListWrapper.class.getName()) || className.startsWith(net.imagej.legacy.convert.TableToResultsTableConverters.class.getName()) || className.startsWith(net.imagej.legacy.convert.TableUnwrapper.class.getName()) ||