Merge branch 'features/pca_jaxb_datasetrefs_JAL-3171_JAL-3063_JAL-1767' into develop
authorJim Procter <jprocter@issues.jalview.org>
Wed, 16 Jan 2019 11:38:15 +0000 (11:38 +0000)
committerJim Procter <jprocter@issues.jalview.org>
Wed, 16 Jan 2019 11:38:15 +0000 (11:38 +0000)
1  2 
resources/lang/Messages.properties
resources/lang/Messages_es.properties
src/jalview/gui/FeatureSettings.java

@@@ -172,10 -172,9 +172,9 @@@ label.principal_component_analysis = Pr
  label.average_distance_identity = Average Distance Using % Identity
  label.neighbour_joining_identity = Neighbour Joining Using % Identity
  label.choose_calculation = Choose Calculation
- label.treecalc_title = {0} Using {1}
+ label.calc_title = {0} Using {1}
  label.tree_calc_av = Average Distance
  label.tree_calc_nj = Neighbour Joining
- label.select_score_model = Select score model
  label.score_model_pid = % Identity
  label.score_model_blosum62 = BLOSUM62
  label.score_model_pam250 = PAM 250
@@@ -416,7 -415,7 +415,7 @@@ label.input_alignment_from_url = Input 
  label.input_alignment = Input Alignment
  label.couldnt_import_as_vamsas_session = Couldn't import {0} as a new vamsas session.
  label.vamsas_document_import_failed = Vamsas Document Import Failed
 -label.couldnt_locate = Couldn't locate {0}
 +label.couldnt_locate = Could not locate {0}
  label.url_not_found = URL not found
  label.new_sequence_url_link = New sequence URL link
  label.cannot_edit_annotations_in_wrapped_view = Cannot edit annotations in wrapped view
@@@ -879,7 -878,6 +878,6 @@@ label.error_unsupported_owwner_user_col
  label.save_alignment_to_file = Save Alignment to file
  label.save_features_to_file = Save Features to File
  label.save_annotation_to_file = Save Annotation to File
- label.no_features_on_alignment = No features found on alignment
  label.save_pdb_file = Save PDB File
  label.save_text_to_file = Save Text to File
  label.save_state = Save State
@@@ -1284,6 -1282,7 +1282,6 @@@ label.SEQUENCE_ID_for_DB_ACCESSION1 = P
  label.SEQUENCE_ID_for_DB_ACCESSION2 = URL links using '$SEQUENCE_ID$' for DB accessions now use '$DB_ACCESSION$'.
  label.do_not_display_again = Do not display this message again
  exception.url_cannot_have_duplicate_id = {0} cannot be used as a label for more than one line
 -label.filter = Filter text:
  action.customfilter = Custom only
  action.showall = Show All
  label.insert = Insert:
@@@ -1351,6 -1350,7 +1349,6 @@@ label.colour_by_text = Colour by tex
  label.graduated_colour = Graduated Colour
  label.by_text_of = By text of
  label.by_range_of = By range of
 -label.filters_tooltip = Click to set or amend filters
  label.or = Or
  label.and = And
  label.sequence_feature_colours = Sequence Feature Colours
@@@ -1361,5 -1361,3 +1359,5 @@@ label.most_bound_molecules = Most Boun
  label.most_polymer_residues = Most Polymer Residues
  label.cached_structures = Cached Structures
  label.free_text_search = Free Text Search
 +label.configuration = Configuration
 +label.configure_feature_tooltip = Click to configure variable colour or filters
@@@ -169,10 -169,9 +169,9 @@@ label.principal_component_analysis = An
  label.average_distance_identity = Distancia Media Usando % de Identidad
  label.neighbour_joining_identity = Unir vecinos utilizando % de Identidad
  label.choose_calculation = Elegir el cálculo
- label.treecalc_title = {0} utilizando {1}
+ label.calc_title = {0} utilizando {1}
  label.tree_calc_av = Distancia media
  label.tree_calc_nj = Unir vecinos
- label.select_score_model = Selecciones modelo de puntuación
  label.score_model_pid = % Identidad
  label.score_model_blosum62 = BLOSUM62
  label.score_model_pam250 = PAM 250
@@@ -804,7 -803,6 +803,6 @@@ label.error_unsupported_owwner_user_col
  label.save_alignment_to_file = Guardar Alineamiento en fichero
  label.save_features_to_file = Guardar Características en un fichero
  label.save_annotation_to_file = Guardar Anotación en un fichero
- label.no_features_on_alignment = No se han encontrado características en el alineamiento
  label.save_pdb_file = Guardar fichero PDB 
  label.save_text_to_file = Guardar Texto en un fichero
  label.save_state = Guardar estado
@@@ -1285,6 -1283,7 +1283,6 @@@ label.SEQUENCE_ID_for_DB_ACCESSION1 = P
  label.SEQUENCE_ID_for_DB_ACCESSION2 = URL enlaza usando '$SEQUENCE_ID$' para accesiones DB ahora usar '$DB_ACCESSION$'.
  label.do_not_display_again = No mostrar este mensaje de nuevo
  exception.url_cannot_have_duplicate_id = {0} no puede ser usada como etiqueta en más de un enlace
 -label.filter = Filtrar texto:
  action.customfilter = Sólo personalizado
  action.showall = Mostrar todo
  label.insert = Insertar:
@@@ -1352,6 -1351,7 +1350,6 @@@ label.colour_by_text = Colorear por tex
  label.graduated_colour = Color graduado
  label.by_text_of = Por texto de
  label.by_range_of = Por rango de
 -label.filters_tooltip = Haga clic para configurar o modificar los filtros
  label.or = O
  label.and = Y
  label.sequence_feature_colours = Colores de características de las secuencias
@@@ -1362,5 -1362,3 +1360,5 @@@ label.most_bound_molecules = Más Molécu
  label.most_polymer_residues = Más Residuos de Polímeros
  label.cached_structures = Estructuras en Caché
  label.free_text_search = Búsqueda de texto libre
 +label.configuration = Configuración
 +label.configure_feature_tooltip = Haga clic para configurar el color o los filtros
@@@ -30,13 -30,14 +30,14 @@@ import jalview.datamodel.features.Featu
  import jalview.gui.Help.HelpId;
  import jalview.io.JalviewFileChooser;
  import jalview.io.JalviewFileView;
- import jalview.schemabinding.version2.Filter;
- import jalview.schemabinding.version2.JalviewUserColours;
- import jalview.schemabinding.version2.MatcherSet;
  import jalview.schemes.FeatureColour;
  import jalview.util.MessageManager;
  import jalview.util.Platform;
  import jalview.viewmodel.seqfeatures.FeatureRendererModel.FeatureSettingsBean;
+ import jalview.xml.binding.jalview.JalviewUserColours;
+ import jalview.xml.binding.jalview.JalviewUserColours.Colour;
+ import jalview.xml.binding.jalview.JalviewUserColours.Filter;
+ import jalview.xml.binding.jalview.ObjectFactory;
  
  import java.awt.BorderLayout;
  import java.awt.Color;
@@@ -78,6 -79,7 +79,6 @@@ import javax.swing.BorderFactory
  import javax.swing.Icon;
  import javax.swing.JButton;
  import javax.swing.JCheckBox;
 -import javax.swing.JCheckBoxMenuItem;
  import javax.swing.JColorChooser;
  import javax.swing.JDialog;
  import javax.swing.JInternalFrame;
@@@ -97,6 -99,11 +98,11 @@@ import javax.swing.table.AbstractTableM
  import javax.swing.table.TableCellEditor;
  import javax.swing.table.TableCellRenderer;
  import javax.swing.table.TableColumn;
+ import javax.xml.bind.JAXBContext;
+ import javax.xml.bind.JAXBElement;
+ import javax.xml.bind.Marshaller;
+ import javax.xml.stream.XMLInputFactory;
+ import javax.xml.stream.XMLStreamReader;
  
  public class FeatureSettings extends JPanel
          implements FeatureSettingsControllerI
            FeatureMatcherSet o = (FeatureMatcherSet) table.getValueAt(row,
                    column);
            tip = o.isEmpty()
 -                  ? MessageManager.getString("label.filters_tooltip")
 +                  ? MessageManager
 +                          .getString("label.configure_feature_tooltip")
                    : o.toString();
            break;
          default:
      });
      men.add(dens);
  
 -    /*
 -     * variable colour options include colour by label, by score,
 -     * by selected attribute text, or attribute value
 -     */
 -    final JCheckBoxMenuItem mxcol = new JCheckBoxMenuItem(
 -            MessageManager.getString("label.variable_colour"));
 -    mxcol.setSelected(!featureColour.isSimpleColour());
 -    men.add(mxcol);
 -    mxcol.addActionListener(new ActionListener()
 -    {
 -      JColorChooser colorChooser;
 -
 -      @Override
 -      public void actionPerformed(ActionEvent e)
 -      {
 -        if (e.getSource() == mxcol)
 -        {
 -          if (featureColour.isSimpleColour())
 -          {
 -            FeatureTypeSettings fc = new FeatureTypeSettings(me.fr, type);
 -            fc.addActionListener(this);
 -          }
 -          else
 -          {
 -            // bring up simple color chooser
 -            colorChooser = new JColorChooser();
 -            String title = MessageManager
 -                    .getString("label.select_colour");
 -            JDialog dialog = JColorChooser.createDialog(me,
 -                    title, true, // modal
 -                    colorChooser, this, // OK button handler
 -                    null); // no CANCEL button handler
 -            colorChooser.setColor(featureColour.getMaxColour());
 -            dialog.setVisible(true);
 -          }
 -        }
 -        else
 -        {
 -          if (e.getSource() instanceof FeatureTypeSettings)
 -          {
 -            /*
 -             * update after OK in feature colour dialog; the updated
 -             * colour will have already been set in the FeatureRenderer
 -             */
 -            FeatureColourI fci = fr.getFeatureColours().get(type);
 -            table.setValueAt(fci, rowSelected, 1);
 -            table.validate();
 -          }
 -          else
 -          {
 -            // probably the color chooser!
 -            table.setValueAt(new FeatureColour(colorChooser.getColor()),
 -                    rowSelected, 1);
 -            table.validate();
 -            me.updateFeatureRenderer(
 -                    ((FeatureTableModel) table.getModel()).getData(),
 -                    false);
 -          }
 -        }
 -      }
 -
 -    });
 -
      JMenuItem selCols = new JMenuItem(
              MessageManager.getString("label.select_columns_containing"));
      selCols.addActionListener(new ActionListener()
        InputStreamReader in = new InputStreamReader(
                new FileInputStream(file), "UTF-8");
  
-       JalviewUserColours jucs = JalviewUserColours.unmarshal(in);
+       JAXBContext jc = JAXBContext
+               .newInstance("jalview.xml.binding.jalview");
+       javax.xml.bind.Unmarshaller um = jc.createUnmarshaller();
+       XMLStreamReader streamReader = XMLInputFactory.newInstance()
+               .createXMLStreamReader(in);
+       JAXBElement<JalviewUserColours> jbe = um.unmarshal(streamReader,
+               JalviewUserColours.class);
+       JalviewUserColours jucs = jbe.getValue();
+       // JalviewUserColours jucs = JalviewUserColours.unmarshal(in);
  
        /*
         * load feature colours
         */
-       for (int i = jucs.getColourCount() - 1; i >= 0; i--)
+       for (int i = jucs.getColour().size() - 1; i >= 0; i--)
        {
-         jalview.schemabinding.version2.Colour newcol = jucs.getColour(i);
-         FeatureColourI colour = Jalview2XML.unmarshalColour(newcol);
+         Colour newcol = jucs.getColour().get(i);
+         FeatureColourI colour = jalview.project.Jalview2XML
+                 .parseColour(newcol);
          fr.setColour(newcol.getName(), colour);
-         fr.setOrder(newcol.getName(), i / (float) jucs.getColourCount());
+         fr.setOrder(newcol.getName(), i / (float) jucs.getColour().size());
        }
  
        /*
         * load feature filters; loaded filters will replace any that are
         * currently defined, other defined filters are left unchanged 
         */
-       for (int i = 0; i < jucs.getFilterCount(); i++)
+       for (int i = 0; i < jucs.getFilter().size(); i++)
        {
-         jalview.schemabinding.version2.Filter filterModel = jucs
-                 .getFilter(i);
+         Filter filterModel = jucs.getFilter().get(i);
          String featureType = filterModel.getFeatureType();
-         FeatureMatcherSetI filter = Jalview2XML.unmarshalFilter(featureType,
-                 filterModel.getMatcherSet());
+         FeatureMatcherSetI filter = jalview.project.Jalview2XML
+                 .parseFilter(featureType, filterModel.getMatcherSet());
          if (!filter.isEmpty())
          {
            fr.setFeatureFilter(featureType, filter);
        for (String featureType : sortedTypes)
        {
          FeatureColourI fcol = fr.getFeatureStyle(featureType);
-         jalview.schemabinding.version2.Colour col = Jalview2XML.marshalColour(
-                 featureType, fcol);
-         ucs.addColour(col);
+         Colour col = jalview.project.Jalview2XML.marshalColour(featureType,
+                 fcol);
+         ucs.getColour().add(col);
        }
  
        /*
          {
            Iterator<FeatureMatcherI> iterator = filter.getMatchers().iterator();
            FeatureMatcherI firstMatcher = iterator.next();
-           MatcherSet ms = Jalview2XML.marshalFilter(firstMatcher, iterator,
+           jalview.xml.binding.jalview.FeatureMatcherSet ms = jalview.project.Jalview2XML
+                   .marshalFilter(firstMatcher, iterator,
                    filter.isAnded());
            Filter filterModel = new Filter();
            filterModel.setFeatureType(featureType);
            filterModel.setMatcherSet(ms);
-           ucs.addFilter(filterModel);
+           ucs.getFilter().add(filterModel);
          }
        }
+       JAXBContext jaxbContext = JAXBContext
+               .newInstance(JalviewUserColours.class);
+       Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
+       jaxbMarshaller.marshal(
+               new ObjectFactory().createJalviewUserColours(ucs), out);
+       // jaxbMarshaller.marshal(object, pout);
+       // marshaller.marshal(object);
+       out.flush();
  
-       ucs.marshal(out);
+       // ucs.marshal(out);
        out.close();
      } catch (Exception ex)
      {
      private String[] columnNames = {
          MessageManager.getString("label.feature_type"),
          MessageManager.getString("action.colour"),
 -        MessageManager.getString("label.filter"),
 +        MessageManager.getString("label.configuration"),
          MessageManager.getString("label.show") };
  
      private Object[][] data;
          {
            // bring up graduated chooser.
            chooser = new FeatureTypeSettings(me.fr, type);
 -          chooser.setRequestFocusEnabled(true);
 -          chooser.requestFocus();
 +          /**
 +           * @j2sNative
 +           */
 +          {
 +            chooser.setRequestFocusEnabled(true);
 +            chooser.requestFocus();
 +          }
            chooser.addActionListener(this);
 -          chooser.showTab(true);
 +          // Make the renderer reappear.
 +          fireEditingStopped();
          }
 -        // Make the renderer reappear.
 -        fireEditingStopped();
 -
        }
        else
        {
                    chooser.getWidth(), chooser.getHeight());
            chooser.validate();
          }
 -        chooser.showTab(false);
          fireEditingStopped();
        }
        else if (e.getSource() instanceof Component)