JAL-3253-applet adds NOMENUBAR, NOSTATUS, NOCALCULATION, SHOWOVERVIEW
[jalview.git] / src / jalview / appletgui / AlignFrame.java
index fe6b8d9..062dbf8 100644 (file)
@@ -25,6 +25,7 @@ import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
 import jalview.analysis.TreeBuilder;
 import jalview.analysis.scoremodels.PIDModel;
 import jalview.analysis.scoremodels.ScoreModels;
+import jalview.api.AlignFrameI;
 import jalview.api.AlignViewControllerGuiI;
 import jalview.api.AlignViewControllerI;
 import jalview.api.AlignViewportI;
@@ -118,7 +119,8 @@ import java.util.Vector;
 
 import org.jmol.viewer.Viewer;
 
-public class AlignFrame extends EmbmenuFrame implements ActionListener,
+public class AlignFrame extends EmbmenuFrame implements AlignFrameI,
+        ActionListener,
         ItemListener, KeyListener, AlignViewControllerGuiI
 {
   public AlignViewControllerI avc;
@@ -416,7 +418,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         viewport.featureSettings.refreshTable();
       }
       alignPanel.paintAlignment(true, true);
-      statusBar.setText(MessageManager
+      setStatus(MessageManager
               .getString("label.successfully_added_features_alignment"));
     }
     return featuresFile;
@@ -574,7 +576,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 
     case KeyEvent.VK_F2:
       viewport.cursorMode = !viewport.cursorMode;
-      statusBar.setText(MessageManager
+      setStatus(MessageManager
               .formatMessage("label.keyboard_editing_mode", new String[]
               { (viewport.cursorMode ? "on" : "off") }));
       if (viewport.cursorMode)
@@ -880,7 +882,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     }
     else if (source == autoCalculate)
     {
-      viewport.autoCalculateConsensus = autoCalculate.getState();
+      viewport.setAutoCalculateConsensusAndConservation(autoCalculate.getState());
     }
     else if (source == sortByTree)
     {
@@ -1447,14 +1449,12 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     {
       features = formatter.printJalviewFormat(
               viewport.getAlignment().getSequencesArray(),
-              getDisplayedFeatureCols(), null, getDisplayedFeatureGroups(),
-              true);
+              alignPanel.getFeatureRenderer(), true);
     }
     else
     {
       features = formatter.printGffFormat(viewport.getAlignment()
-              .getSequencesArray(), getDisplayedFeatureCols(),
-              getDisplayedFeatureGroups(), true);
+              .getSequencesArray(), alignPanel.getFeatureRenderer(), true);
     }
 
     if (displayTextbox)
@@ -1906,7 +1906,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 
   static StringBuffer copiedSequences;
 
-  static Vector<int[]> copiedHiddenColumns;
+  static HiddenColumns copiedHiddenColumns;
 
   protected void copy_actionPerformed()
   {
@@ -1930,14 +1930,14 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 
     if (viewport.hasHiddenColumns() && viewport.getSelectionGroup() != null)
     {
-      copiedHiddenColumns = new Vector<>(viewport.getAlignment()
-              .getHiddenColumns().getHiddenColumnsCopy());
       int hiddenOffset = viewport.getSelectionGroup().getStartRes();
-      for (int[] region : copiedHiddenColumns)
-      {
-        region[0] = region[0] - hiddenOffset;
-        region[1] = region[1] - hiddenOffset;
-      }
+      int hiddenCutoff = viewport.getSelectionGroup().getEndRes();
+
+      // create new HiddenColumns object with copy of hidden regions
+      // between startRes and endRes, offset by startRes
+      copiedHiddenColumns = new HiddenColumns(
+              viewport.getAlignment().getHiddenColumns(), hiddenOffset,
+              hiddenCutoff, hiddenOffset);
     }
     else
     {
@@ -2006,13 +2006,13 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
   {
     try
     {
-
       if (copiedSequences == null)
       {
         return;
       }
 
-      StringTokenizer st = new StringTokenizer(copiedSequences.toString());
+      StringTokenizer st = new StringTokenizer(copiedSequences.toString(),
+              "\t");
       Vector seqs = new Vector();
       while (st.hasMoreElements())
       {
@@ -2044,14 +2044,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
         }
         AlignFrame af = new AlignFrame(new Alignment(newSeqs),
                 viewport.applet, newtitle, false);
-        if (copiedHiddenColumns != null)
-        {
-          for (int i = 0; i < copiedHiddenColumns.size(); i++)
-          {
-            int[] region = copiedHiddenColumns.elementAt(i);
-            af.viewport.hideColumns(region[0], region[1]);
-          }
-        }
+        af.viewport.setHiddenColumns(copiedHiddenColumns);
 
         jalview.bin.JalviewLite.addFrame(af, newtitle, frameWidth,
                 frameHeight);
@@ -2080,7 +2073,8 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
             seqs, 0, viewport.getAlignment().getWidth(),
             viewport.getAlignment()));
 
-    viewport.getRanges().setEndSeq(viewport.getAlignment().getHeight());
+    viewport.getRanges().setEndSeq(viewport.getAlignment().getHeight() - 1); // BH
+                                                                             // 2019.04.18
     viewport.getAlignment().getWidth();
     viewport.firePropertyChange("alignment", null,
             viewport.getAlignment().getSequences());
@@ -2356,7 +2350,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
                 column, al);
       }
 
-      statusBar.setText(MessageManager
+      setStatus(MessageManager
               .formatMessage("label.removed_columns", new String[]
               { Integer.valueOf(trimRegion.getSize()).toString() }));
       addHistoryItem(trimRegion);
@@ -2400,7 +2394,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
 
     addHistoryItem(removeGapCols);
 
-    statusBar.setText(MessageManager
+    setStatus(MessageManager
             .formatMessage("label.removed_empty_columns", new String[]
             { Integer.valueOf(removeGapCols.getSize()).toString() }));
 
@@ -3822,7 +3816,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
      */
     statusBar.setBackground(Color.white);
     statusBar.setFont(new java.awt.Font("Verdana", 0, 11));
-    statusBar.setText(MessageManager.getString("label.status_bar"));
+    setStatus(MessageManager.getString("label.status_bar"));
     this.add(statusBar, BorderLayout.SOUTH);
   }
 
@@ -4190,7 +4184,7 @@ public class AlignFrame extends EmbmenuFrame implements ActionListener,
     }
     else
     {
-      new MCview.AppletPDBViewer(pdb, seqs, chains, alignPanel, protocol);
+      new mc_view.AppletPDBViewer(pdb, seqs, chains, alignPanel, protocol);
     }
 
   }