Applet remembers PDBEntries, can launch multiple structures from popupmenu
authoramwaterhouse <Andrew Waterhouse>
Tue, 17 Apr 2007 10:42:39 +0000 (10:42 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 17 Apr 2007 10:42:39 +0000 (10:42 +0000)
src/jalview/appletgui/APopupMenu.java
src/jalview/appletgui/AppletJmol.java
src/jalview/bin/JalviewLite.java

index ede493e..b281fcd 100755 (executable)
@@ -28,6 +28,7 @@ import jalview.analysis.*;
 import jalview.commands.*;\r
 import jalview.datamodel.*;\r
 import jalview.schemes.*;\r
 import jalview.commands.*;\r
 import jalview.datamodel.*;\r
 import jalview.schemes.*;\r
+import jalview.io.AppletFormatAdapter;\r
 \r
 public class APopupMenu\r
     extends java.awt.PopupMenu implements ActionListener, ItemListener\r
 \r
 public class APopupMenu\r
     extends java.awt.PopupMenu implements ActionListener, ItemListener\r
@@ -474,12 +475,34 @@ public class APopupMenu
 \r
   void addPDB()\r
   {\r
 \r
   void addPDB()\r
   {\r
-    CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame);\r
-    cap.setText("Paste your PDB file here.");\r
-    cap.setPDBImport(seq);\r
-    Frame frame = new Frame();\r
-    frame.add(cap);\r
-    jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300);\r
+    if(seq.getPDBId()!=null)\r
+    {\r
+      PDBEntry entry = (PDBEntry)seq.getPDBId().firstElement();\r
+\r
+      if ( ap.av.applet.jmolAvailable )\r
+       new jalview.appletgui.AppletJmol(entry,\r
+                                        new Sequence[]\r
+                                        {seq},\r
+                                        ap,\r
+                                        AppletFormatAdapter.URL);\r
+     else\r
+\r
+       new MCview.AppletPDBViewer(entry,\r
+                                  new Sequence[]\r
+                                  {seq},\r
+                                  ap,\r
+                                  AppletFormatAdapter.URL);\r
+\r
+    }\r
+    else\r
+    {\r
+      CutAndPasteTransfer cap = new CutAndPasteTransfer(true, ap.alignFrame);\r
+      cap.setText("Paste your PDB file here.");\r
+      cap.setPDBImport(seq);\r
+      Frame frame = new Frame();\r
+      frame.add(cap);\r
+      jalview.bin.JalviewLite.addFrame(frame, "Paste PDB file ", 400, 300);\r
+    }\r
   }\r
 \r
   private void jbInit()\r
   }\r
 \r
   private void jbInit()\r
index 2c2a979..b7e67c1 100644 (file)
@@ -93,7 +93,8 @@ public class AppletJmol extends Frame
     {
        StructureSelectionManager.getStructureSelectionManager()
             .setMapping(seq, pdbentry.getFile(), protocol);
     {
        StructureSelectionManager.getStructureSelectionManager()
             .setMapping(seq, pdbentry.getFile(), protocol);
-        return;
+       //PROMPT USER HERE TO ADD TO NEW OR EXISTING VIEW?
+       //FOR NOW, LETS JUST OPEN A NEW WINDOW
     }
 
     renderPanel = new RenderPanel();
     }
 
     renderPanel = new RenderPanel();
index e01e0e8..ffdbb1b 100755 (executable)
@@ -150,7 +150,7 @@ public class JalviewLite
 
   boolean embedded = false;
 
 
   boolean embedded = false;
 
-  public boolean jmolAvailable = true;
+  public boolean jmolAvailable = false;
 
   /**
    * init method for Jalview Applet
 
   /**
    * init method for Jalview Applet
@@ -159,13 +159,15 @@ public class JalviewLite
   {
     try
     {
   {
     try
     {
-      Class.forName("org.jmol.adapter.smarter.SmarterJmolAdapter");
-
-      jmolAvailable = true;
+      if (!System.getProperty("java.version").startsWith("1.1"))
+      {
+        Class.forName("org.jmol.adapter.smarter.SmarterJmolAdapter");
+        jmolAvailable = true;
+      }
     }
     catch (java.lang.ClassNotFoundException ex)
     {
     }
     catch (java.lang.ClassNotFoundException ex)
     {
-      System.out.println("Jmol not found - Using MCview for structures");
+      System.out.println("Jmol not available - Using MCview for structures");
     }
 
     int r = 255;
     }
 
     int r = 255;
@@ -549,6 +551,10 @@ public class JalviewLite
 
           pdb.setFile(param);
 
 
           pdb.setFile(param);
 
+          for(int i=0; i<seqs.length; i++)
+          {
+            ((Sequence)seqs[i]).addPDBId(pdb);
+          }
 
           if (jmolAvailable)
             new jalview.appletgui.AppletJmol(pdb,
 
           if (jmolAvailable)
             new jalview.appletgui.AppletJmol(pdb,