Use sequence description
[jalview.git] / src / jalview / gui / AlignFrame.java
index 7ef0e25..de3e8fd 100755 (executable)
@@ -60,6 +60,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
   /** DOCUMENT ME!! */
   public String currentFileFormat = null;
 
+  public String fileName = null;
+
   private int treeCount = 0;
 
   /**
@@ -166,33 +168,21 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
             case KeyEvent.VK_V:
               if (!evt.isControlDown())
               {
-                AlignmentI al;
-                if(viewport.hasHiddenRows)
-                {
-                  al = viewport.alignment.getHiddenSequences().getFullAlignment();
-                }
-                else
-                  al = new Alignment(viewport.alignment.getSequencesArray());
-
-                AlignViewport newview = new AlignViewport(al);
+                AlignmentPanel newap =
+                    new Jalview2XML().copyAlignPanel(alignPanel, true);
 
                 if(viewport.viewName==null)
                   viewport.viewName="View 1";
 
-                newview.historyList = viewport.historyList;
-                newview.redoList = viewport.redoList;
-
-                newview.sequenceSetID = viewport.getSequenceSetId();
-                newview.viewName = "View " +
+                newap.av.historyList = viewport.historyList;
+                newap.av.redoList = viewport.redoList;
+                newap.av.viewName = "View " +
                     (Desktop.getViewCount(viewport.getSequenceSetId())+1);
 
-                AlignmentPanel newap = new AlignmentPanel(af, newview);
+                addAlignmentPanel(newap, false);
 
-                PaintRefresher.Register(newap, viewport.getSequenceSetId());
-                PaintRefresher.Register(alignPanel, viewport.getSequenceSetId());
-
-                addAlignmentPanel(newap, true);
                 tabbedPane.setSelectedIndex(tabbedPane.getTabCount()-1);
+
               }
               break;
             case KeyEvent.VK_G:
@@ -583,12 +573,21 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
     Desktop.instance.inputURLMenuItem_actionPerformed(viewport);
   }
 
+
+  public void save_actionPerformed(ActionEvent e)
+  {
+    if(fileName==null || currentFileFormat==null)
+      saveAs_actionPerformed(null);
+    else
+      saveAlignment(fileName, currentFileFormat);
+  }
+
   /**
    * DOCUMENT ME!
    *
    * @param e DOCUMENT ME!
    */
-  public void saveAlignmentMenu_actionPerformed(ActionEvent e)
+  public void saveAs_actionPerformed(ActionEvent e)
   {
     JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.
         getProperty( "LAST_DIRECTORY"),
@@ -609,7 +608,6 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
     if (value == JalviewFileChooser.APPROVE_OPTION)
     {
         currentFileFormat = chooser.getSelectedFormat();
-
         if (currentFileFormat == null)
         {
           JOptionPane.showInternalMessageDialog(Desktop.desktop,
@@ -620,13 +618,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
           return;
         }
 
+        fileName = chooser.getSelectedFile().getPath();
+
       jalview.bin.Cache.setProperty("DEFAULT_FILE_FORMAT",
                                     currentFileFormat);
 
-      String choice = chooser.getSelectedFile().getPath();
-      jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
+      jalview.bin.Cache.setProperty("LAST_DIRECTORY", fileName);
 
-      saveAlignment(choice, currentFileFormat);
+      saveAlignment(fileName, currentFileFormat);
     }
   }
 
@@ -644,6 +643,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
 
       new Jalview2XML().SaveAlignment(this, file, shortName);
 
+      statusBar.setText("Successfully saved to file: "
+                          +fileName+" in "
+                          +format +" format.");
+
+
       // USE Jalview2XML to save this file
       return true;
     }
@@ -682,6 +686,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
         out.print(output);
         out.close();
         this.setTitle(file);
+        statusBar.setText("Successfully saved to file: "
+                          +fileName+" in "
+                          +format +" format.");
         return true;
       }
       catch (Exception ex)
@@ -833,8 +840,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
         }
       //  alignPanels = null;
       }
-      else
-        System.out.println("null one here");
+    //  else
+     //   System.out.println("null one here");
 
     //  alignPanel = null;
     //  viewport = null;
@@ -2066,8 +2073,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
                 viewport.getIgnoreGapsConsensus());
 
          sg.cs.setConsensus(AAFrequency.calculate(
-             sg.getSequences(true), 0,
-             sg.getWidth()));
+             sg.getSequences(true), sg.getStartRes(),
+             sg.getEndRes()+1));
        }
         else
           sg.cs.setThreshold(0, viewport.getIgnoreGapsConsensus());
@@ -2077,8 +2084,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener
         {
           Conservation c = new Conservation("Group",
                                             ResidueProperties.propHash, 3,
-                                            sg.getSequences(true), 0,
-                                            viewport.alignment.getWidth() - 1);
+                                            sg.getSequences(true),
+                                            sg.getStartRes(),
+                                            sg.getEndRes()+1);
           c.calculate();
           c.verdict(false, viewport.ConsPercGaps);
           sg.cs.setConservation(c);