Merge branch 'bug/JAL-2865removeGC' into develop
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 16 Mar 2018 09:59:01 +0000 (09:59 +0000)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Fri, 16 Mar 2018 09:59:01 +0000 (09:59 +0000)
1  2 
src/jalview/gui/AlignFrame.java
src/jalview/gui/Desktop.java
src/jalview/gui/OverviewCanvas.java

@@@ -81,7 -81,6 +81,7 @@@ import jalview.io.JnetAnnotationMaker
  import jalview.io.NewickFile;
  import jalview.io.ScoreMatrixFile;
  import jalview.io.TCoffeeScoreFile;
 +import jalview.io.vcf.VCFLoader;
  import jalview.jbgui.GAlignFrame;
  import jalview.schemes.ColourSchemeI;
  import jalview.schemes.ColourSchemes;
@@@ -840,7 -839,6 +840,7 @@@ public class AlignFrame extends GAlignF
      AlignmentI al = getViewport().getAlignment();
      boolean nucleotide = al.isNucleotide();
  
 +    loadVcf.setVisible(nucleotide);
      showTranslation.setVisible(nucleotide);
      showReverse.setVisible(nucleotide);
      showReverseComplement.setVisible(nucleotide);
    @Override
    public void exportFeatures_actionPerformed(ActionEvent e)
    {
 -    new AnnotationExporter().exportFeatures(alignPanel);
 +    new AnnotationExporter(alignPanel).exportFeatures();
    }
  
    @Override
    public void exportAnnotations_actionPerformed(ActionEvent e)
    {
 -    new AnnotationExporter().exportAnnotations(alignPanel);
 +    new AnnotationExporter(alignPanel).exportAnnotations();
    }
  
    @Override
    @Override
    protected void copy_actionPerformed(ActionEvent e)
    {
-     System.gc();
      if (viewport.getSelectionGroup() == null)
      {
        return;
        return;
      }
  
 -    ArrayList<int[]> hiddenColumns = null;
 +    HiddenColumns hiddenColumns = null;
      if (viewport.hasHiddenColumns())
      {
 -      hiddenColumns = new ArrayList<>();
        int hiddenOffset = viewport.getSelectionGroup().getStartRes();
        int hiddenCutoff = viewport.getSelectionGroup().getEndRes();
 -      ArrayList<int[]> hiddenRegions = viewport.getAlignment()
 -              .getHiddenColumns().getHiddenColumnsCopy();
 -      for (int[] region : hiddenRegions)
 -      {
 -        if (region[0] >= hiddenOffset && region[1] <= hiddenCutoff)
 -        {
 -          hiddenColumns
 -                  .add(new int[]
 -                  { region[0] - hiddenOffset, region[1] - hiddenOffset });
 -        }
 -      }
 +
 +      // create new HiddenColumns object with copy of hidden regions
 +      // between startRes and endRes, offset by startRes
 +      hiddenColumns = new HiddenColumns(
 +              viewport.getAlignment().getHiddenColumns(), hiddenOffset,
 +              hiddenCutoff, hiddenOffset);
      }
  
      Desktop.jalviewClipboard = new Object[] { seqs,
          if (Desktop.jalviewClipboard != null
                  && Desktop.jalviewClipboard[2] != null)
          {
 -          List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
 -          for (int[] region : hc)
 -          {
 -            af.viewport.hideColumns(region[0], region[1]);
 -          }
 +          HiddenColumns hc = (HiddenColumns) Desktop.jalviewClipboard[2];
 +          af.viewport.setHiddenColumns(hc);
          }
  
          // >>>This is a fix for the moment, until a better solution is
        if (Desktop.jalviewClipboard != null
                && Desktop.jalviewClipboard[2] != null)
        {
 -        List<int[]> hc = (List<int[]>) Desktop.jalviewClipboard[2];
 -        for (int region[] : hc)
 -        {
 -          af.viewport.hideColumns(region[0], region[1]);
 -        }
 +        HiddenColumns hc = (HiddenColumns) Desktop.jalviewClipboard[2];
 +        af.viewport.setHiddenColumns(hc);
        }
  
        // >>>This is a fix for the moment, until a better solution is
    protected void showProductsFor(final SequenceI[] sel, final boolean _odna,
            final String source)
    {
 -    new Thread(CrossRefAction.showProductsFor(sel, _odna, source, this))
 +    new Thread(CrossRefAction.getHandlerFor(sel, _odna, source, this))
              .start();
    }
  
              new JnetAnnotationMaker();
              JnetAnnotationMaker.add_annotation(predictions,
                      viewport.getAlignment(), 0, false);
 -            SequenceI repseq = viewport.getAlignment().getSequenceAt(0);
 -            viewport.getAlignment().setSeqrep(repseq);
 -            HiddenColumns cs = new HiddenColumns();
 -            cs.hideInsertionsFor(repseq);
 -            viewport.getAlignment().setHiddenColumns(cs);
 +            viewport.getAlignment().setupJPredAlignment();
              isAnnotation = true;
            }
            // else if (IdentifyFile.FeaturesFile.equals(format))
              MessageManager.getString("option.trim_retrieved_seqs"));
      trimrs.setToolTipText(
              MessageManager.getString("label.trim_retrieved_sequences"));
 -    trimrs.setSelected(Cache.getDefault("TRIM_FETCHED_DATASET_SEQS", true));
 +    trimrs.setSelected(
 +            Cache.getDefault(DBRefFetcher.TRIM_RETRIEVED_SEQUENCES, true));
      trimrs.addActionListener(new ActionListener()
      {
        @Override
        public void actionPerformed(ActionEvent e)
        {
          trimrs.setSelected(trimrs.isSelected());
 -        Cache.setProperty("TRIM_FETCHED_DATASET_SEQS",
 +        Cache.setProperty(DBRefFetcher.TRIM_RETRIEVED_SEQUENCES,
                  Boolean.valueOf(trimrs.isSelected()).toString());
        };
      });
        new CalculationChooser(AlignFrame.this);
      }
    }
 +
 +  @Override
 +  protected void loadVcf_actionPerformed()
 +  {
 +    JalviewFileChooser chooser = new JalviewFileChooser(
 +            Cache.getProperty("LAST_DIRECTORY"));
 +    chooser.setFileView(new JalviewFileView());
 +    chooser.setDialogTitle(MessageManager.getString("label.load_vcf_file"));
 +    chooser.setToolTipText(MessageManager.getString("label.load_vcf_file"));
 +
 +    int value = chooser.showOpenDialog(null);
 +
 +    if (value == JalviewFileChooser.APPROVE_OPTION)
 +    {
 +      String choice = chooser.getSelectedFile().getPath();
 +      Cache.setProperty("LAST_DIRECTORY", choice);
 +      SequenceI[] seqs = viewport.getAlignment().getSequencesArray();
 +      new VCFLoader(choice).loadVCF(seqs, this);
 +    }
 +
 +  }
  }
  
  class PrintThread extends Thread
@@@ -849,7 -849,6 +849,7 @@@ public class Desktop extends jalview.jb
      frame.setResizable(resizable);
      frame.setMaximizable(resizable);
      frame.setIconifiable(resizable);
 +    frame.setOpaque(false);
  
      if (frame.getX() < 1 && frame.getY() < 1)
      {
            menuItem.removeActionListener(menuItem.getActionListeners()[0]);
          }
          windowMenu.remove(menuItem);
-         System.gc();
        };
      });
  
      {
        ssm.resetAll();
      }
-     System.gc();
    }
  
    @Override
@@@ -161,7 -161,6 +161,6 @@@ public class OverviewCanvas extends JCo
                od.getColumns(av.getAlignment()));
        mg.translate(0, -od.getSequencesHeight());
      }
-     System.gc();
  
      or.removePropertyChangeListener(progressPanel);
      or = null;
    @Override
    public void paintComponent(Graphics g)
    {
 -    // super.paintComponent(g);
 +    super.paintComponent(g);
  
      if (restart)
      {