Merge branch 'develop' into feature/JAL-3187linkedFeatures
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 10 Jul 2019 16:03:42 +0000 (17:03 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Wed, 10 Jul 2019 16:03:42 +0000 (17:03 +0100)
1  2 
resources/lang/Messages.properties
resources/lang/Messages_es.properties
src/jalview/gui/CrossRefAction.java
test/jalview/gui/AlignFrameTest.java

@@@ -1226,9 -1226,6 +1226,6 @@@ label.structure_chooser_filter_time = S
  label.structure_chooser_no_of_structures = Structure Chooser - {0} Found ({1})
  info.no_pdb_entry_found_for = No PDB entry found for {0}
  exception.unable_to_detect_internet_connection = Jalview is unable to detect an internet connection
- exception.fts_rest_service_no_longer_available = {0} rest services no longer available!
- exception.resource_not_be_found = The requested resource could not be found
- exception.fts_server_error = There seems to be an error from the {0} server
  exception.fts_server_unreachable = Jalview is unable to reach the {0} server. \nPlease ensure that you are connected to the internet and try again.
  label.nw_mapping = Needleman & Wunsch Alignment
  label.sifts_mapping = SIFTs Mapping
@@@ -1245,8 -1242,6 +1242,6 @@@ action.next_page= >
  action.prev_page= << 
  label.next_page_tooltip=Next Page
  label.prev_page_tooltip=Previous Page
- exception.bad_request=Bad request. There is a problem with your input.
- exception.service_not_available=Service not available. The server is being updated, try again later.
  status.launching_3d_structure_viewer = Launching 3D Structure viewer...
  status.fetching_3d_structures_for_selected_entries = Fetching 3D Structures for selected entries...
  status.fetching_dbrefs_for_sequences_without_valid_refs = Fetching db refs for {0} sequence(s) without valid db ref required for SIFTS mapping
@@@ -1405,7 -1400,3 +1400,7 @@@ label.pca = PC
  label.create_image_of = Create {0} image of {1}
  label.click_to_edit = Click to edit, right-click for menu
  label.by_annotation_tooltip = Annotation Colour is configured from the main Colour menu
 +label.show_linked_features = Show {0} features
 +label.on_top = on top
 +label.include_linked_features = Include {0} features
 +label.include_linked_tooltip = Include visible {0} features<br>converted to local sequence coordinates
@@@ -1200,7 -1200,6 +1200,6 @@@ tooltip.rnalifold_settings=Modificar l
  label.show_selected_annotations=Mostrar anotaciones seleccionadas
  status.colouring_chimera=Coloreando Chimera
  label.configure_displayed_columns=Configurar Columnas Mostradas
- exception.resource_not_be_found=El recurso solicitado no se ha encontrado
  label.aacon_calculations=cálculos AACon
  label.pdb_web-service_error=Error de servicio web PDB
  exception.unable_to_detect_internet_connection=Jalview no puede detectar una conexión a Internet
@@@ -1225,13 -1224,10 +1224,10 @@@ exception.fts_server_unreachable=Jalvie
  exception.outofmemory_loading_mmcif_file=Sin memoria al cargar el fichero mmCIF
  label.hide_columns_not_containing=Ocultar las columnas que no contengan
  label.pdb_sequence_fetcher=Recuperador de secuencias PDB
- exception.fts_server_error=Parece que hay un error desde el servidor {0}
- exception.service_not_available=Servicio no disponible. El servidor se está actualizando, vuelva a intentarlo más tarde.
  status.waiting_for_user_to_select_output_file=Esperando que el usuario seleccione el fichero {0}
  action.prev_page=<< 
  status.cancelled_image_export_operation=Operación de exportación {0} cancelada
  label.couldnt_run_groovy_script=No se ha podido ejecutar el script Groovy
- exception.bad_request=Solicitud incorrecta. Hay un problema con su entrada.
  label.run_groovy=Ejecutar script Groovy desde la consola
  action.next_page=>> 
  label.uniprot_sequence_fetcher=Recuperador de secuencias UniProt
@@@ -1247,7 -1243,6 +1243,6 @@@ label.next_page_tooltip=Página siguient
  label.sifts_mapping=Mapeado SIFTs
  label.mapping_method=Método de mapeo de secuencia \u27F7 estructura
  info.error_creating_file=Error al crear fichero {0}
- exception.fts_rest_service_no_longer_available= Servicios Rest {0} ya no están disponibles! 
  status.launching_3d_structure_viewer=Lanzando visualizador de estructura 3D...
  status.obtaining_mapping_with_sifts=Obteniendo mapeo por SIFTS
  status.fetching_3d_structures_for=Buscando la estructura 3D para {0}
@@@ -1406,7 -1401,3 +1401,7 @@@ label.pca = AC
  label.create_image_of = Crear imagen {0} de {1}
  label.click_to_edit = Haga clic para editar, clic en el botón derecho para ver el menú  
  label.by_annotation_tooltip = El color de anotación se configura desde el menú principal de colores
 +label.show_linked_features = Características de {0}
 +label.on_top = encima
 +label.include_linked_features = Incluir características de {0}
 +label.include_linked_tooltip = Incluir características de {0}<br>convertidas a coordenadas de secuencia local
@@@ -39,7 -39,6 +39,7 @@@ import jalview.util.DBRefUtils
  import jalview.util.MapList;
  import jalview.util.MappingUtils;
  import jalview.util.MessageManager;
 +import jalview.viewmodel.seqfeatures.FeatureRendererModel;
  import jalview.ws.SequenceFetcher;
  
  import java.util.ArrayList;
@@@ -112,6 -111,13 +112,13 @@@ public class CrossRefAction implements 
        FeatureSettingsModelI featureColourScheme = new SequenceFetcher()
                .getFeatureColourScheme(source);
  
+       if (dna && AlignmentUtils.looksLikeEnsembl(alignment))
+       {
+         // override default featureColourScheme so products have Ensembl variant colours
+         featureColourScheme = new SequenceFetcher()
+                 .getFeatureColourScheme(DBRefSource.ENSEMBL);
+       }
        AlignmentI xrefsAlignment = makeCrossReferencesAlignment(dataset,
                xrefs);
        if (!dna)
                .isShowSequenceFeatures();
        newFrame.setShowSeqFeatures(showSequenceFeatures);
        copyThis.setShowSeqFeatures(showSequenceFeatures);
 -      FeatureRenderer myFeatureStyling = alignFrame.alignPanel
 +      FeatureRendererModel myFeatureStyling = alignFrame.alignPanel
                .getSeqPanel().seqCanvas.getFeatureRenderer();
  
        /*
         * copy feature rendering settings to split frame
         */
 -      FeatureRenderer fr1 = newFrame.alignPanel.getSeqPanel().seqCanvas
 +      FeatureRendererModel fr1 = newFrame.alignPanel.getSeqPanel().seqCanvas
                .getFeatureRenderer();
        fr1.transferSettings(myFeatureStyling);
        fr1.findAllFeatures(true);
 -      FeatureRenderer fr2 = copyThis.alignPanel.getSeqPanel().seqCanvas
 +      FeatureRendererModel fr2 = copyThis.alignPanel.getSeqPanel().seqCanvas
                .getFeatureRenderer();
        fr2.transferSettings(myFeatureStyling);
        fr2.findAllFeatures(true);
  
        /*
         * apply 'database source' feature configuration
-        * if any was found
+        * if any - first to the new splitframe view about to be displayed
         */
-       // TODO is this the feature colouring for the original
-       // alignment or the fetched xrefs? either could be Ensembl
        newFrame.getViewport().applyFeaturesStyle(featureColourScheme);
        copyThis.getViewport().applyFeaturesStyle(featureColourScheme);
  
+       /*
+        * and for JAL-3330 also to original alignFrame view(s)
+        * this currently trashes any original settings.
+        */
+       for (AlignmentViewPanel origpanel: alignFrame.getAlignPanels()) {
+         origpanel.getAlignViewport()
+                 .mergeFeaturesStyle(featureColourScheme);
+       }
        SplitFrame sf = new SplitFrame(dna ? copyThis : newFrame,
                dna ? newFrame : copyThis);
        newFrame.setVisible(true);
        copyThis.setVisible(true);
        String linkedTitle = MessageManager
@@@ -62,7 -62,53 +62,53 @@@ public class AlignFrameTes
    AlignFrame af;
  
    @BeforeClass(alwaysRun = true)
-   public void setUpJvOptionPane()
+   public static void setUpBeforeClass() throws Exception
+   {
+     setUpJvOptionPane();
+     /*
+      * use read-only test properties file
+      */
+     Cache.loadProperties("test/jalview/io/testProps.jvprops");
+     Jalview.main(new String[] { "-nonews" });
+   }
+   @AfterMethod(alwaysRun = true)
+   public void tearDown()
+   {
+     Desktop.instance.closeAll_actionPerformed(null);
+   }
+   /**
+    * configure (read-only) properties for test to ensure Consensus is computed for
+    * colour Above PID testing
+    */
+   @BeforeMethod(alwaysRun = true)
+   public void setUp()
+   {
+     Cache.loadProperties("test/jalview/io/testProps.jvprops");
+     Cache.applicationProperties.setProperty("SHOW_IDENTITY",
+             Boolean.TRUE.toString());
+     af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
+             DataSourceType.FILE);
+     /*
+      * wait for Consensus thread to complete
+      */
+     synchronized (this)
+     {
+       while (af.getViewport().getConsensusSeq() == null)
+       {
+         try
+         {
+           wait(50);
+         } catch (InterruptedException e)
+         {
+         }
+       }
+     }
+   }
+   public static void setUpJvOptionPane()
    {
      JvOptionPane.setInteractiveMode(false);
      JvOptionPane.setMockResponse(JvOptionPane.CANCEL_OPTION);
      assertEquals(next[1], 8);
    }
  
-   @BeforeClass(alwaysRun = true)
-   public static void setUpBeforeClass() throws Exception
-   {
-     /*
-      * use read-only test properties file
-      */
-     Cache.loadProperties("test/jalview/io/testProps.jvprops");
-     Jalview.main(new String[] { "-nonews" });
-   }
-   @AfterMethod(alwaysRun = true)
-   public void tearDown()
-   {
-     Desktop.instance.closeAll_actionPerformed(null);
-   }
-   /**
-    * configure (read-only) properties for test to ensure Consensus is computed
-    * for colour Above PID testing
-    */
-   @BeforeMethod(alwaysRun = true)
-   public void setUp()
-   {
-     Cache.loadProperties("test/jalview/io/testProps.jvprops");
-     Cache.applicationProperties.setProperty("SHOW_IDENTITY",
-             Boolean.TRUE.toString());
-     af = new FileLoader().LoadFileWaitTillLoaded("examples/uniref50.fa",
-             DataSourceType.FILE);
-     /*
-      * wait for Consensus thread to complete
-      */
-     synchronized (this)
-     {
-       while (af.getViewport().getConsensusSeq() == null)
-       {
-         try
-         {
-           wait(50);
-         } catch (InterruptedException e)
-         {
-         }
-       }
-     }
-   }
    /**
     * Test that changing background (alignment) colour scheme
     * <ul>
  
      /*
       * apply 30% Conservation to group
 +     * (notice menu action applies to selection group even if mouse click
 +     * is at a sequence not in the group)
       */
 -    PopupMenu popupMenu = new PopupMenu(af.alignPanel, null, null);
 +    PopupMenu popupMenu = new PopupMenu(af.alignPanel, al.getSequenceAt(2),
 +            null);
      popupMenu.changeColour_actionPerformed(JalviewColourScheme.Strand
              .toString());
      assertTrue(sg.getColourScheme() instanceof StrandColourScheme);
      sg.setStartRes(15);
      sg.setEndRes(25);
      av.setSelectionGroup(sg);
 -    PopupMenu popupMenu = new PopupMenu(af.alignPanel, null, null);
 +    PopupMenu popupMenu = new PopupMenu(af.alignPanel, al.getSequenceAt(0),
 +            null);
      popupMenu.changeColour_actionPerformed(JalviewColourScheme.Strand
              .toString());
      assertTrue(sg.getColourScheme() instanceof StrandColourScheme);