canvas line/font/pixel fixes; menu accelerators;
[jalview.git] / src / jalview / gui / AlignFrame.java
index f3583e2..71ba94a 100644 (file)
@@ -89,7 +89,6 @@ import jalview.schemes.ResidueColourScheme;
 import jalview.schemes.TCoffeeColourScheme;
 import jalview.util.ImageMaker.TYPE;
 import jalview.util.MessageManager;
-import jalview.util.dialogrunner.RunResponse;
 import jalview.viewmodel.AlignmentViewport;
 import jalview.viewmodel.ViewportRanges;
 import jalview.ws.DBRefFetcher;
@@ -338,6 +337,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    */
   void init()
   {
+//       setBackground(Color.white); // BH 2019
+                 
     if (!Jalview.isHeadlessMode())
     {
       progressBar = new ProgressBar(this.statusPanel, this.statusBar);
@@ -760,9 +761,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     int aSize = alignPanels.size();
 
-    tabbedPane.setVisible(aSize > 1 || ap.av.viewName != null);
+    tabbedPane.setVisible(aSize > 1 || ap.av.getViewName() != null);
 
-    if (aSize == 1 && ap.av.viewName == null)
+    if (aSize == 1 && ap.av.getViewName() == null)
     {
       this.getContentPane().add(ap, BorderLayout.CENTER);
     }
@@ -775,7 +776,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
       expandViews.setEnabled(true);
       gatherViews.setEnabled(true);
-      tabbedPane.addTab(ap.av.viewName, ap);
+      tabbedPane.addTab(ap.av.getViewName(), ap);
 
       ap.setVisible(false);
     }
@@ -798,7 +799,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     gatherViews.setEnabled(true);
     tabbedPane.setVisible(true);
     AlignmentPanel first = alignPanels.get(0);
-    tabbedPane.addTab(first.av.viewName, first);
+    tabbedPane.addTab(first.av.getViewName(), first);
     this.getContentPane().add(tabbedPane, BorderLayout.CENTER);
   }
 
@@ -899,7 +900,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    * @param av
    *          AlignViewport
    */
-  void setMenusFromViewport(AlignViewport av)
+  public void setMenusFromViewport(AlignViewport av)
   {
     padGapsMenuitem.setSelected(av.isPadGaps());
     colourTextMenuItem.setSelected(av.isShowColourText());
@@ -993,7 +994,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   @Override
   public void setStatus(String text)
   {
-    statusBar.setText(text);
+         // BH note: If text width and height are 0, then the layout manager
+         // will dispense of it and change the frame height. 
+         // In JavaScript, we use \u00A0  -- unicode "non-breaking space"
+         // which is the unicode encoding of  
+         
+    statusBar.setText(text == null || text.isEmpty() ? " " : text);
   }
 
   /*
@@ -1235,13 +1241,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         shortName = shortName.substring(
                 shortName.lastIndexOf(File.separatorChar) + 1);
       }
-      lastSaveSuccessful = new Jalview2XML().saveAlignment(this, file,
+      lastSaveSuccessful = new jalview.project.Jalview2XML().saveAlignment(this, file,
               shortName);
+      
+      statusBar.setText(MessageManager.formatMessage(
+              "label.successfully_saved_to_file_in_format", new Object[]
+              { fileName, format }));
+      
       return;
     }
 
     AlignExportSettingsI options = new AlignExportSettingsAdapter(false);
-    RunResponse cancelAction = new RunResponse(JvOptionPane.CANCEL_OPTION)
+    Runnable cancelAction = new Runnable()
     {
       @Override
       public void run()
@@ -1249,7 +1260,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         lastSaveSuccessful = false;
       }
     };
-    RunResponse outputAction = new RunResponse(JvOptionPane.OK_OPTION)
+    Runnable outputAction = new Runnable()
     {
       @Override
       public void run()
@@ -1294,8 +1305,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     {
       AlignExportOptions choices = new AlignExportOptions(
               alignPanel.getAlignViewport(), format, options);
-      choices.setResponseAction(outputAction);
-      choices.setResponseAction(cancelAction);
+      choices.setResponseAction(0, outputAction);
+      choices.setResponseAction(1, cancelAction);
       choices.showDialog();
     }
     else
@@ -1317,7 +1328,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     FileFormatI fileFormat = FileFormats.getInstance()
             .forName(fileFormatName);
     AlignExportSettingsI options = new AlignExportSettingsAdapter(false);
-    RunResponse outputAction = new RunResponse(JvOptionPane.OK_OPTION)
+    Runnable outputAction = new Runnable()
     {
       @Override
       public void run()
@@ -1354,7 +1365,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     {
       AlignExportOptions choices = new AlignExportOptions(
               alignPanel.getAlignViewport(), fileFormat, options);
-      choices.setResponseAction(outputAction);
+      choices.setResponseAction(0, outputAction);
       choices.showDialog();
     }
     else
@@ -1467,9 +1478,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             MessageManager.getString("label.load_jalview_annotations"));
     chooser.setToolTipText(
             MessageManager.getString("label.load_jalview_annotations"));
-    chooser.response(new RunResponse(JalviewFileChooser.APPROVE_OPTION)
+    chooser.setResponseHandler(0, new Runnable()
     {
-
       @Override
       public void run()
       {
@@ -1477,10 +1487,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         jalview.bin.Cache.setProperty("LAST_DIRECTORY", choice);
         loadJalviewDataFile(chooser.getSelectedFile(), null, null, null);
       }
-
     });
 
-    chooser.openDialog(this);
+    chooser.showOpenDialog(this);
   }
 
   /**
@@ -2760,7 +2769,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     /*
      * Create a new AlignmentPanel (with its own, new Viewport)
      */
-    AlignmentPanel newap = new Jalview2XML().copyAlignPanel(alignPanel);
+    AlignmentPanel newap = new jalview.project.Jalview2XML()
+            .copyAlignPanel(alignPanel);
     if (!copyAnnotation)
     {
       /*
@@ -2772,10 +2782,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     newap.av.setGatherViewsHere(false);
 
-    if (viewport.viewName == null)
+    if (viewport.getViewName() == null)
     {
-      viewport.viewName = MessageManager
-              .getString("label.view_name_original");
+      viewport.setViewName(MessageManager
+              .getString("label.view_name_original"));
     }
 
     /*
@@ -2799,7 +2809,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       newap.refresh(true); // adjust layout of annotations
     }
 
-    newap.av.viewName = getNewViewName(viewTitle);
+    newap.av.setViewName(getNewViewName(viewTitle));
 
     addAlignmentPanel(newap, true);
     newap.alignmentChanged();
@@ -2862,9 +2872,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       if (comp instanceof AlignmentPanel)
       {
         AlignmentPanel ap = (AlignmentPanel) comp;
-        if (!existingNames.contains(ap.av.viewName))
+        if (!existingNames.contains(ap.av.getViewName()))
         {
-          existingNames.add(ap.av.viewName);
+          existingNames.add(ap.av.getViewName());
         }
       }
     }
@@ -3678,9 +3688,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     frameTitle += " from ";
 
-    if (viewport.viewName != null)
+    if (viewport.getViewName() != null)
     {
-      frameTitle += viewport.viewName + " of ";
+      frameTitle += viewport.getViewName() + " of ";
     }
 
     frameTitle += this.title;
@@ -3960,8 +3970,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     chooser.setToolTipText(
             MessageManager.getString("label.load_tree_file"));
 
-    chooser.response(new jalview.util.dialogrunner.RunResponse(
-            JalviewFileChooser.APPROVE_OPTION)
+    chooser.setResponseHandler(0,new Runnable()
     {
       @Override
       public void run()
@@ -3991,7 +4000,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   JvOptionPane.WARNING_MESSAGE);
         }
       }
-    }).openDialog(this);
+    });
+    chooser.showOpenDialog(this);
   }
 
   public TreePanel showNewickTree(NewickFile nf, String treeTitle)
@@ -4862,7 +4872,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
       if (reply != null)
       {
-        viewport.viewName = reply;
+        viewport.setViewName(reply);
         // TODO warn if reply is in getExistingViewNames()?
         tabbedPane.setTitleAt(tabbedPane.getSelectedIndex(), reply);
       }
@@ -5391,6 +5401,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   {
     if (avc.createGroup())
     {
+      if (applyAutoAnnotationSettings.isSelected())
+      {
+        alignPanel.updateAnnotation(true, false);
+      }
       alignPanel.alignmentChanged();
     }
   }
@@ -5481,7 +5495,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    */
   public List<? extends AlignmentViewPanel> getAlignPanels()
   {
-    return alignPanels == null ? Arrays.asList(alignPanel) : alignPanels;
+    // alignPanels is never null
+    // return alignPanels == null ? Arrays.asList(alignPanel) : alignPanels;
+    return alignPanels;
   }
 
   /**
@@ -5685,21 +5701,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     chooser.setDialogTitle(MessageManager.getString("label.load_vcf_file"));
     chooser.setToolTipText(MessageManager.getString("label.load_vcf_file"));
     final AlignFrame us = this;
-    chooser.response(new RunResponse(JalviewFileChooser.APPROVE_OPTION)
+    chooser.setResponseHandler(0, new Runnable()
     {
       @Override
       public void run()
       {
-
-        {
-          String choice = chooser.getSelectedFile().getPath();
-          Cache.setProperty("LAST_DIRECTORY", choice);
-          SequenceI[] seqs = viewport.getAlignment().getSequencesArray();
-          new VCFLoader(choice).loadVCF(seqs, us);
-        }
-
+        String choice = chooser.getSelectedFile().getPath();
+        Cache.setProperty("LAST_DIRECTORY", choice);
+        SequenceI[] seqs = viewport.getAlignment().getSequencesArray();
+        new VCFLoader(choice).loadVCF(seqs, us);
       };
-    }).openDialog(null);
+    });
+    chooser.showOpenDialog(null);
 
   }