Add jvsuffix and dbref to menu
[jalview.git] / src / jalview / appletgui / AlignFrame.java
index 0f275de..6e2d32b 100755 (executable)
@@ -29,6 +29,7 @@ import java.awt.event.*;
 import java.util.*;\r
 import java.io.InputStreamReader;\r
 import java.io.BufferedReader;\r
+import java.net.URL;\r
 \r
 public class AlignFrame\r
     extends GAlignFrame\r
@@ -55,7 +56,6 @@ public class AlignFrame
       {\r
         try\r
         {\r
-          treeFile = treeFile;\r
           jalview.io.NewickFile fin = new jalview.io.NewickFile(applet.\r
               getCodeBase() + treeFile, "URL");\r
           fin.parse();\r
@@ -140,6 +140,90 @@ public class AlignFrame
 \r
   }\r
 \r
+\r
+  /**\r
+   * DOCUMENT ME!\r
+   *\r
+   * @param String DOCUMENT ME!\r
+   */\r
+\r
+  public void parseFeaturesFile(String file)\r
+  {\r
+    try\r
+    {\r
+      URL url = new URL(file);\r
+\r
+      BufferedReader in =  new BufferedReader(new InputStreamReader(url.openStream()));\r
+      SequenceI seq = null;\r
+      String line, type, desc, token;\r
+\r
+      int index, start, end;\r
+      StringTokenizer st;\r
+      SequenceFeature sf;\r
+      FeatureRenderer fr = alignPanel.seqPanel.seqCanvas.getFeatureRenderer();\r
+      int lineNo = 0;\r
+      while ( (line = in.readLine()) != null)\r
+      {\r
+        lineNo++;\r
+        st = new StringTokenizer(line, "\t");\r
+        if (st.countTokens() == 2)\r
+        {\r
+          type = st.nextToken();\r
+          UserColourScheme ucs = new UserColourScheme(st.nextToken());\r
+          fr.setColour(type, ucs.findColour("A"));\r
+          continue;\r
+        }\r
+\r
+        while (st.hasMoreElements())\r
+        {\r
+          desc = st.nextToken();\r
+          token = st.nextToken();\r
+          if (!token.equals("ID_NOT_SPECIFIED"))\r
+          {\r
+            index = viewport.alignment.findIndex(viewport.alignment.findName(\r
+                token));\r
+            st.nextToken();\r
+          }\r
+          else\r
+          {\r
+            index = Integer.parseInt(st.nextToken());\r
+          }\r
+\r
+          start = Integer.parseInt(st.nextToken());\r
+          end = Integer.parseInt(st.nextToken());\r
+\r
+          seq = viewport.alignment.getSequenceAt(index);\r
+          start = seq.findIndex(start) - 1;\r
+          end = seq.findIndex(end) - 1;\r
+\r
+          type = st.nextToken();\r
+\r
+          if(fr.getColour(type)==null)\r
+          {\r
+            // Probably the old style groups file\r
+            UserColourScheme ucs = new UserColourScheme(type);\r
+            fr.setColour(type, ucs.findColour("A"));\r
+          }\r
+\r
+          sf = new SequenceFeature(type, desc, "", start, end);\r
+\r
+          seq.addSequenceFeature(sf);\r
+        }\r
+      }\r
+\r
+      viewport.showSequenceFeatures = true;\r
+      ((Alignment)viewport.alignment).featuresAdded = true;\r
+\r
+      alignPanel.repaint();\r
+\r
+    }\r
+    catch (Exception ex)\r
+    {\r
+      System.out.println("Error parsing groups file: " + ex);\r
+    }\r
+  }\r
+\r
+\r
   public void inputText_actionPerformed(ActionEvent e)\r
   {\r
     CutAndPasteTransfer cap = new CutAndPasteTransfer(true, applet);\r
@@ -156,9 +240,10 @@ public class AlignFrame
     jalview.bin.JalviewLite.addFrame(frame,\r
                                      "Alignment output - " + e.getActionCommand(),\r
                                      600, 500);\r
-    cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),\r
-                                              viewport.getAlignment().\r
-                                              getSequences()));\r
+    cap.setText(new AppletFormatAdapter().formatSequences(e.getActionCommand(),\r
+                                              viewport.getAlignment().getSequences(),\r
+                                                      viewport.showDBPrefix,\r
+                                                      viewport.showJVSuffix));\r
   }\r
 \r
   public void closeMenuItem_actionPerformed(ActionEvent e)\r
@@ -771,7 +856,7 @@ public class AlignFrame
 \r
   public void findMenuItem_actionPerformed(ActionEvent e)\r
   {\r
-    Finder finder = new Finder(alignPanel);\r
+    new Finder(alignPanel);\r
   }\r
 \r
   public void font_actionPerformed(ActionEvent e)\r
@@ -779,13 +864,21 @@ public class AlignFrame
     new FontChooser(alignPanel);\r
   }\r
 \r
-  protected void fullSeqId_actionPerformed(ActionEvent e)\r
+  public void dbref_actionPerformed(ItemEvent e)\r
+  {\r
+    viewport.showDBPrefix = dbref.getState();\r
+    alignPanel.fontChanged();\r
+    alignPanel.repaint();\r
+  }\r
+\r
+  public void seqLimits_itemStateChanged(ItemEvent e)\r
   {\r
-    viewport.setShowFullId(fullSeqId.getState());\r
+    viewport.setShowJVSuffix(seqLimits.getState());\r
     alignPanel.fontChanged();\r
     alignPanel.repaint();\r
   }\r
 \r
+\r
   protected void colourTextMenuItem_actionPerformed(ActionEvent e)\r
   {\r
     viewport.setColourText(colourTextMenuItem.getState());\r
@@ -1091,7 +1184,7 @@ public class AlignFrame
 \r
   public void userDefinedColour_actionPerformed(ActionEvent e)\r
   {\r
-    UserDefinedColours chooser = new UserDefinedColours(alignPanel, null);\r
+    new UserDefinedColours(alignPanel, null);\r
   }\r
 \r
   public void PIDColour_actionPerformed(ActionEvent e)\r
@@ -1276,7 +1369,7 @@ public class AlignFrame
 \r
   protected void documentation_actionPerformed(ActionEvent e)\r
   {\r
-    jalview.bin.JalviewLite.showURL("http://www.jalview.org/help.html");\r
+    showURL("http://www.jalview.org/help.html");\r
   }\r
 \r
   protected void about_actionPerformed(ActionEvent e)\r
@@ -1343,4 +1436,36 @@ public class AlignFrame
     jalview.bin.JalviewLite.addFrame(frame, "Jalview", 580, 200);\r
 \r
   }\r
+\r
+  /**\r
+   * Displays the given URL in a new browser window\r
+   *\r
+   * @param url URL to display in browser window.\r
+   * <br>New window will be named "HELP_WINDOW"\r
+   */\r
+  public void showURL(String url)\r
+  {\r
+    showURL(url, "HELP");\r
+  }\r
+\r
+  public void showURL(String url, String target)\r
+  {\r
+    if (applet == null)\r
+    {\r
+      System.out.println("Not running as applet - no browser available.");\r
+    }\r
+    else\r
+    {\r
+      try\r
+      {\r
+        applet.getAppletContext().showDocument(new java.net.URL(url),\r
+                                               target);\r
+      }\r
+      catch (Exception ex)\r
+      {\r
+        ex.printStackTrace();\r
+      }\r
+    }\r
+  }\r
+\r
 }\r