merge
authortcofoegbu <tcnofoegbu@dundee.ac.uk>
Thu, 6 Aug 2015 10:41:01 +0000 (11:41 +0100)
committertcofoegbu <tcnofoegbu@dundee.ac.uk>
Thu, 6 Aug 2015 10:41:01 +0000 (11:41 +0100)
src/jalview/ext/jmol/JalviewJmolBinding.java
src/jalview/gui/AlignViewport.java
src/jalview/gui/AppJmol.java
src/jalview/gui/StructureChooser.java

index 0f69aeb..296892c 100644 (file)
@@ -676,6 +676,7 @@ public abstract class JalviewJmolBinding extends AAStructureBindingModel
           // applet path with docroot - discard as format won't match pdbfile
           mset[0] = m;
         }
+        _modelFileNameMap[0] = 0; // filename index for first model is always 0.
       }
       int j = 1;
       for (int i = 1; i < mset.length; i++)
index c18c989..29c4fde 100644 (file)
@@ -801,6 +801,17 @@ public class AlignViewport extends AlignmentViewport implements
      */
     if (Cache.getDefault(Preferences.ENABLE_SPLIT_FRAME, true))
     {
+      if (al.getDataset() == null)
+      {
+        // need to create ds seqs
+        for (SequenceI sq : al.getSequences())
+        {
+          if (sq.getDatasetSequence() == null)
+          {
+            sq.createDatasetSequence();
+          }
+        }
+      }
       if (AlignmentUtils.isMappable(al, getAlignment()))
       {
         if (openLinkedAlignment(al, title))
index a16ea68..7876346 100644 (file)
@@ -748,8 +748,22 @@ public class AppJmol extends StructureViewerBase
         {
           public void run()
           {
-            alignStructs_withAllAlignPanels();
-            // jmb.superposeStructures(ap.av.getAlignment(), -1, null);
+            if (jmb.viewer.isScriptExecuting())
+            {
+              javax.swing.SwingUtilities.invokeLater(this);
+              try
+              {
+                Thread.sleep(5);
+              } catch (InterruptedException q)
+              {
+              }
+              ;
+              return;
+            }
+            else
+            {
+              alignStructs_withAllAlignPanels();
+            }
           }
         });
         alignAddedStructures = false;
index 976b77b..765c214 100644 (file)
@@ -49,7 +49,6 @@ import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.table.DefaultTableModel;
 
-
 /**
  * Provides the behaviors for the Structure chooser Panel
  * 
@@ -189,8 +188,7 @@ public class StructureChooser extends GStructureChooser
     }
     else
     {
-      mainFrame
-.setTitle("Structure Chooser - Manual association");
+      mainFrame.setTitle("Structure Chooser - Manual association");
       if (errors.size() > 0)
       {
         StringBuilder errorMsg = new StringBuilder();
@@ -232,16 +230,13 @@ public class StructureChooser extends GStructureChooser
           String chain = pdbEntry.getChainCode() == null ? "_" : pdbEntry
                   .getChainCode();
           Object[] pdbEntryRowData = new Object[]
-          { seq, pdbEntry.getId(),
- chain,
-              pdbEntry.getType(),
+          { seq, pdbEntry.getId(), chain, pdbEntry.getType(),
               pdbEntry.getFile() };
           if (pdbEntry.getFile() != null)
           {
             tableModel.addRow(pdbEntryRowData);
           }
-          cachedEntryMap.put(pdbEntry.getId().toLowerCase(),
-                  pdbEntry);
+          cachedEntryMap.put(pdbEntry.getId().toLowerCase(), pdbEntry);
         }
       }
     }
@@ -461,7 +456,6 @@ public class StructureChooser extends GStructureChooser
     filterThread.start();
   }
 
-
   /**
    * Handles action event for btn_pdbFromFile
    */
@@ -628,8 +622,7 @@ public class StructureChooser extends GStructureChooser
             .getCmb_assSeq().getSelectedItem();
     lbl_fromFileStatus.setIcon(errorImage);
     if (selectedSequences.length == 1
-            || (assSeqOpt != null
-            && !assSeqOpt.getName().equalsIgnoreCase(
+            || (assSeqOpt != null && !assSeqOpt.getName().equalsIgnoreCase(
                     "-Select Associated Seq-")))
     {
       btn_pdbFromFile.setEnabled(true);
@@ -713,7 +706,8 @@ public class StructureChooser extends GStructureChooser
       launchStructureViewer(ap.getStructureSelectionManager(),
               pdbEntriesToView, ap, selectedSeqs);
     }
-    else if(currentView == VIEWS_LOCAL_PDB){
+    else if (currentView == VIEWS_LOCAL_PDB)
+    {
       int[] selectedRows = tbl_local_pdb.getSelectedRows();
       PDBEntry[] pdbEntriesToView = new PDBEntry[selectedRows.length];
       int count = 0;
@@ -725,8 +719,7 @@ public class StructureChooser extends GStructureChooser
       for (int row : selectedRows)
       {
         String entryKey = tbl_local_pdb.getValueAt(row, pdbIdColIndex)
-                .toString()
-                .toLowerCase();
+                .toString().toLowerCase();
         pdbEntriesToView[count++] = cachedEntryMap.get(entryKey);
         SequenceI selectedSeq = (SequenceI) tbl_local_pdb.getValueAt(row,
                 refSeqColIndex);
@@ -772,9 +765,9 @@ public class StructureChooser extends GStructureChooser
         selectedSequence = userSelectedSeq;
       }
       PDBEntry fileEntry = new AssociatePdbFileWithSeq()
-              .associatePdbWithSeq(
-              selectedPdbFileName, jalview.io.AppletFormatAdapter.FILE,
-              selectedSequence, true, Desktop.instance);
+              .associatePdbWithSeq(selectedPdbFileName,
+                      jalview.io.AppletFormatAdapter.FILE,
+                      selectedSequence, true, Desktop.instance);
 
       launchStructureViewer(ap.getStructureSelectionManager(),
               new PDBEntry[]
@@ -784,31 +777,35 @@ public class StructureChooser extends GStructureChooser
     mainFrame.dispose();
   }
 
-  private void launchStructureViewer(StructureSelectionManager ssm,
-          PDBEntry[] pdbEntriesToView, AlignmentPanel alignPanel,
-          SequenceI[] sequences)
+  private void launchStructureViewer(final StructureSelectionManager ssm,
+          final PDBEntry[] pdbEntriesToView,
+          final AlignmentPanel alignPanel, final SequenceI[] sequences)
   {
-    StructureViewer sViewer = new StructureViewer(ssm);
-    if (pdbEntriesToView.length > 1)
+    final StructureViewer sViewer = new StructureViewer(ssm);
+    new Thread(new Runnable()
     {
-      ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
-      for (SequenceI seq : sequences)
+      public void run()
       {
-        seqsMap.add(new SequenceI[]
-        { seq });
+        if (pdbEntriesToView.length > 1)
+        {
+          ArrayList<SequenceI[]> seqsMap = new ArrayList<SequenceI[]>();
+          for (SequenceI seq : sequences)
+          {
+            seqsMap.add(new SequenceI[]
+            { seq });
+          }
+          SequenceI[][] collatedSeqs = seqsMap.toArray(new SequenceI[0][0]);
+          sViewer.viewStructures(pdbEntriesToView, collatedSeqs, alignPanel);
+          // sViewer.viewStructures(pdbEntriesToView,
+          // alignPanel.av.collateForPDB(pdbEntriesToView),
+          // alignPanel);
+        }
+        else
+        {
+          sViewer.viewStructures(pdbEntriesToView[0], sequences, alignPanel);
+        }
       }
-      SequenceI[][] collatedSeqs = seqsMap.toArray(new SequenceI[0][0]);
-      sViewer.viewStructures(pdbEntriesToView, collatedSeqs,
-              alignPanel);
-      // sViewer.viewStructures(pdbEntriesToView,
-      // alignPanel.av.collateForPDB(pdbEntriesToView),
-      // alignPanel);
-    }
-    else
-    {
-      sViewer.viewStructures(pdbEntriesToView[0], sequences,
-              alignPanel);
-    }
+    }).start();
   }
 
   /**