git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'patch/JAL-4195_cli_eps_export_npe' into develop
[jalview.git]
/
src
/
jalview
/
gui
/
StructureViewer.java
diff --git
a/src/jalview/gui/StructureViewer.java
b/src/jalview/gui/StructureViewer.java
index
40f9ae1
..
6cef665
100644
(file)
--- a/
src/jalview/gui/StructureViewer.java
+++ b/
src/jalview/gui/StructureViewer.java
@@
-29,6
+29,7
@@
import java.util.Map.Entry;
import jalview.api.structures.JalviewStructureDisplayI;
import jalview.bin.Cache;
import jalview.api.structures.JalviewStructureDisplayI;
import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
@@
-53,6
+54,16
@@
public class StructureViewer
*/
private boolean superposeAdded = true;
*/
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
public enum ViewerType
{
JMOL, CHIMERA, CHIMERAX, PYMOL
@@
-63,7
+74,8
@@
public class StructureViewer
*
* @param structureSelectionManager
*/
*
* @param structureSelectionManager
*/
- public StructureViewer(StructureSelectionManager structureSelectionManager)
+ public StructureViewer(
+ StructureSelectionManager structureSelectionManager)
{
ssm = structureSelectionManager;
}
{
ssm = structureSelectionManager;
}
@@
-80,7
+92,6
@@
public class StructureViewer
return sv;
}
return sv;
}
-
@Override
public String toString()
{
@Override
public String toString()
{
@@
-90,9
+101,10
@@
public class StructureViewer
}
return "New View";
}
}
return "New View";
}
+
/**
*
/**
*
- * @return ViewerType for currently configured structure viewer
+ * @return ViewerType for currently configured structure viewer
*/
public static ViewerType getViewerType()
{
*/
public static ViewerType getViewerType()
{
@@
-117,6
+129,12
@@
public class StructureViewer
public JalviewStructureDisplayI viewStructures(PDBEntry[] pdbs,
SequenceI[] seqs, AlignmentPanel ap)
{
public JalviewStructureDisplayI viewStructures(PDBEntry[] pdbs,
SequenceI[] seqs, AlignmentPanel ap)
{
+ return viewStructures(pdbs, seqs, ap, null);
+ }
+
+ public JalviewStructureDisplayI viewStructures(PDBEntry[] pdbs,
+ SequenceI[] seqs, AlignmentPanel ap, ViewerType viewerType)
+ {
JalviewStructureDisplayI viewer = onlyOnePdb(pdbs, seqs, ap);
if (viewer != null)
{
JalviewStructureDisplayI viewer = onlyOnePdb(pdbs, seqs, ap);
if (viewer != null)
{
@@
-126,18
+144,20
@@
public class StructureViewer
return viewer;
}
return viewer;
}
- ViewerType viewerType = getViewerType();
+ if (viewerType == null)
+ viewerType = getViewerType();
Map<PDBEntry, SequenceI[]> seqsForPdbs = getSequencesForPdbs(pdbs,
seqs);
Map<PDBEntry, SequenceI[]> seqsForPdbs = getSequencesForPdbs(pdbs,
seqs);
- PDBEntry[] pdbsForFile = seqsForPdbs.keySet().toArray(
- new PDBEntry[seqsForPdbs.size()]);
- SequenceI[][] theSeqs = seqsForPdbs.values().toArray(
- new SequenceI[seqsForPdbs.size()][]);
+ PDBEntry[] pdbsForFile = seqsForPdbs.keySet()
+ .toArray(new PDBEntry[seqsForPdbs.size()]);
+ SequenceI[][] theSeqs = seqsForPdbs.values()
+ .toArray(new SequenceI[seqsForPdbs.size()][]);
if (sview != null)
{
sview.setAlignAddedStructures(superposeAdded);
if (sview != null)
{
sview.setAlignAddedStructures(superposeAdded);
- new Thread(new Runnable()
+
+ Runnable viewRunnable = new Runnable()
{
@Override
public void run()
{
@Override
public void run()
@@
-156,7
+176,15
@@
public class StructureViewer
sview.updateTitleAndMenus();
}
sview.updateTitleAndMenus();
}
- }).start();
+ };
+ if (async)
+ {
+ new Thread(viewRunnable).start();
+ }
+ else
+ {
+ viewRunnable.run();
+ }
return sview;
}
return sview;
}
@@
-180,7
+208,7
@@
public class StructureViewer
}
else
{
}
else
{
- Cache.error(UNKNOWN_VIEWER_TYPE + getViewerType().toString());
+ Console.error(UNKNOWN_VIEWER_TYPE + getViewerType().toString());
}
return sview;
}
}
return sview;
}
@@
-294,9
+322,20
@@
public class StructureViewer
JalviewStructureDisplayI sview = null;
JalviewStructureDisplayI sview = null;
+ public JalviewStructureDisplayI getJalviewStructureDisplay()
+ {
+ return sview;
+ }
+
public JalviewStructureDisplayI viewStructures(PDBEntry pdb,
SequenceI[] seqsForPdb, AlignmentPanel ap)
{
public JalviewStructureDisplayI viewStructures(PDBEntry pdb,
SequenceI[] seqsForPdb, AlignmentPanel ap)
{
+ return viewStructures(pdb, seqsForPdb, ap, null);
+ }
+
+ public JalviewStructureDisplayI viewStructures(PDBEntry pdb,
+ SequenceI[] seqsForPdb, AlignmentPanel ap, ViewerType viewerType)
+ {
if (sview != null)
{
sview.setAlignAddedStructures(superposeAdded);
if (sview != null)
{
sview.setAlignAddedStructures(superposeAdded);
@@
-309,7
+348,8
@@
public class StructureViewer
sview.raiseViewer();
return sview;
}
sview.raiseViewer();
return sview;
}
- ViewerType viewerType = getViewerType();
+ if (viewerType == null)
+ viewerType = getViewerType();
if (viewerType.equals(ViewerType.JMOL))
{
sview = new AppJmol(pdb, seqsForPdb, null, ap);
if (viewerType.equals(ViewerType.JMOL))
{
sview = new AppJmol(pdb, seqsForPdb, null, ap);
@@
-328,7
+368,7
@@
public class StructureViewer
}
else
{
}
else
{
- Cache.error(UNKNOWN_VIEWER_TYPE + getViewerType().toString());
+ Console.error(UNKNOWN_VIEWER_TYPE + getViewerType().toString());
}
return sview;
}
}
return sview;
}
@@
-366,12
+406,11
@@
public class StructureViewer
viewer = new PymolViewer(viewerData, alignPanel, sessionFile, vid);
break;
default:
viewer = new PymolViewer(viewerData, alignPanel, sessionFile, vid);
break;
default:
- Cache.error(UNKNOWN_VIEWER_TYPE + type.toString());
+ Console.error(UNKNOWN_VIEWER_TYPE + type.toString());
}
return viewer;
}
}
return viewer;
}
-
public boolean isBusy()
{
if (sview != null)
public boolean isBusy()
{
if (sview != null)