Merge branch 'Release_2_8_2_Branch' into
[jalview.git] / src / jalview / gui / AlignFrame.java
index c3d80d1..2f94019 100644 (file)
@@ -334,6 +334,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     setMenusFromViewport(viewport);
     buildSortByAnnotationScoresMenu();
     buildTreeMenu();
+    
     if (viewport.wrapAlignment)
     {
       wrapMenuItem_actionPerformed(null);
@@ -505,14 +506,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         case KeyEvent.VK_F1:
           try
           {
-            ClassLoader cl = jalview.gui.Desktop.class.getClassLoader();
-            java.net.URL url = javax.help.HelpSet.findHelpSet(cl,
-                    "help/help");
-            javax.help.HelpSet hs = new javax.help.HelpSet(cl, url);
-
-            javax.help.HelpBroker hb = hs.createHelpBroker();
-            hb.setCurrentID("home");
-            hb.setDisplayed(true);
+            Help.showHelpWindow();
           } catch (Exception ex)
           {
             ex.printStackTrace();
@@ -729,6 +723,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     scaleLeft.setVisible(av.wrapAlignment);
     scaleRight.setVisible(av.wrapAlignment);
     annotationPanelMenuItem.setState(av.showAnnotation);
+    /*
+     * Show/hide all annotations only enabled if annotation panel is shown
+     */
+    showAllAnnotations.setEnabled(annotationPanelMenuItem.getState());
+    hideAllAnnotations.setEnabled(annotationPanelMenuItem.getState());
     viewBoxesMenuItem.setSelected(av.showBoxes);
     viewTextMenuItem.setSelected(av.showText);
     showNonconservedMenuItem.setSelected(av.getShowUnconserved());
@@ -2178,17 +2177,27 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       return;
     }
 
-    Vector seqs = new Vector();
+    List<SequenceI> seqs = new ArrayList<SequenceI>(sg.getSize());
     SequenceI seq;
     for (int i = 0; i < sg.getSize(); i++)
     {
       seq = sg.getSequenceAt(i);
-      seqs.addElement(seq);
+      seqs.add(seq);
     }
 
-    // If the cut affects all sequences, remove highlighted columns
+    // If the cut affects all sequences, warn, remove highlighted columns
     if (sg.getSize() == viewport.getAlignment().getHeight())
     {
+      int confirm = JOptionPane.showConfirmDialog(this,
+              MessageManager.getString("warn.delete_all"), // $NON-NLS-1$
+              MessageManager.getString("label.delete_all"), // $NON-NLS-1$
+              JOptionPane.OK_CANCEL_OPTION);
+
+      if (confirm == JOptionPane.CANCEL_OPTION
+              || confirm == JOptionPane.CLOSED_OPTION)
+      {
+        return;
+      }
       viewport.getColumnSelection().removeElements(sg.getStartRes(),
               sg.getEndRes() + 1);
     }
@@ -2196,7 +2205,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     SequenceI[] cut = new SequenceI[seqs.size()];
     for (int i = 0; i < seqs.size(); i++)
     {
-      cut[i] = (SequenceI) seqs.elementAt(i);
+      cut[i] = seqs.get(i);
     }
 
     /*
@@ -3033,16 +3042,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   /**
-   * DOCUMENT ME!
+   * Action on toggle of the 'Show annotations' menu item. This shows or hides
+   * the annotations panel as a whole.
+   * 
+   * The options to show/hide all annotations should be enabled when the panel
+   * is shown, and disabled when the panel is hidden.
    * 
    * @param e
-   *          DOCUMENT ME!
    */
   @Override
   public void annotationPanelMenuItem_actionPerformed(ActionEvent e)
   {
-    viewport.setShowAnnotation(annotationPanelMenuItem.isSelected());
-    alignPanel.setAnnotationVisible(annotationPanelMenuItem.isSelected());
+    final boolean setVisible = annotationPanelMenuItem.isSelected();
+    viewport.setShowAnnotation(setVisible);
+    alignPanel.setAnnotationVisible(setVisible);
+    this.showAllAnnotations.setEnabled(setVisible);
+    this.hideAllAnnotations.setEnabled(setVisible);
   }
 
   @Override
@@ -4021,6 +4036,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           tm.setText(title);//
           tm.addActionListener(new java.awt.event.ActionListener()
           {
+            @Override
             public void actionPerformed(ActionEvent e)
             {
               NewTreePanel(type, (String) pwtype, title);
@@ -5308,6 +5324,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     trimrs.setSelected(Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true));
     trimrs.addActionListener(new ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         trimrs.setSelected(trimrs.isSelected());
@@ -5690,6 +5707,22 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       tabbedPane.setSelectedIndex(alignPanels.indexOf(alignmentPanel));
     }
   }
+
+  /**
+   * Action on selection of menu option to Show or Hide all annotations.
+   * 
+   * @param visibile
+   */
+  @Override
+  protected void setAllAnnotationsVisibility(boolean visible)
+  {
+    for (AlignmentAnnotation aa : alignPanel.getAlignment()
+            .getAlignmentAnnotation())
+    {
+      aa.visible = visible;
+    }
+    this.alignPanel.paintAlignment(true);
+  }
 }
 
 class PrintThread extends Thread