X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FStructureViewer.java;h=ad3fc6aa0fffb60d8231183bf87f0b618ddf1cda;hb=1d4324b37f248818b6bf5ba18e144f57299dc308;hp=0c12eb2fdd5b91b2e7bb24d90b08981b15d36775;hpb=0788111a588187a04dd0d254d70b055274cf2c9d;p=jalview.git diff --git a/src/jalview/gui/StructureViewer.java b/src/jalview/gui/StructureViewer.java index 0c12eb2..ad3fc6a 100644 --- a/src/jalview/gui/StructureViewer.java +++ b/src/jalview/gui/StructureViewer.java @@ -21,9 +21,11 @@ package jalview.gui; import java.util.ArrayList; +import java.util.EnumSet; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; import java.util.Map; import java.util.Map.Entry; @@ -54,9 +56,39 @@ public class StructureViewer */ private boolean superposeAdded = true; + /** + * whether to open structures in their own thread or not + */ + private boolean async = true; + + public void setAsync(boolean b) + { + async = b; + } + public enum ViewerType { - JMOL, CHIMERA, CHIMERAX, PYMOL + JMOL, CHIMERA, CHIMERAX, PYMOL; + + public static ViewerType getFromString(String viewerString) + { + ViewerType viewerType = null; + if (!"none".equals(viewerString)) + { + for (ViewerType v : EnumSet.allOf(ViewerType.class)) + { + String name = v.name().toLowerCase(Locale.ROOT).replaceAll(" ", + ""); + if (viewerString.equals(name)) + { + viewerType = v; + break; + } + } + } + return viewerType; + } + }; /** @@ -146,7 +178,8 @@ public class StructureViewer if (sview != null) { sview.setAlignAddedStructures(superposeAdded); - new Thread(new Runnable() + + Runnable viewRunnable = new Runnable() { @Override public void run() @@ -165,7 +198,15 @@ public class StructureViewer sview.updateTitleAndMenus(); } - }).start(); + }; + if (async) + { + new Thread(viewRunnable).start(); + } + else + { + viewRunnable.run(); + } return sview; } @@ -303,6 +344,11 @@ public class StructureViewer JalviewStructureDisplayI sview = null; + public JalviewStructureDisplayI getJalviewStructureDisplay() + { + return sview; + } + public JalviewStructureDisplayI viewStructures(PDBEntry pdb, SequenceI[] seqsForPdb, AlignmentPanel ap) {