Merge branch 'develop' into features/JAL-2446NCList
authorgmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 8 Aug 2017 10:30:04 +0000 (11:30 +0100)
committergmungoc <g.m.carstairs@dundee.ac.uk>
Tue, 8 Aug 2017 10:30:04 +0000 (11:30 +0100)
1  2 
src/jalview/gui/Jalview2XML.java

@@@ -32,7 -32,6 +32,7 @@@ import jalview.datamodel.AlignmentI
  import jalview.datamodel.GraphLine;
  import jalview.datamodel.PDBEntry;
  import jalview.datamodel.RnaViewerModel;
 +import jalview.datamodel.SequenceFeature;
  import jalview.datamodel.SequenceGroup;
  import jalview.datamodel.SequenceI;
  import jalview.datamodel.StructureViewerModel;
@@@ -883,43 -882,48 +883,43 @@@ public class Jalview2XM
  
        // TODO: omit sequence features from each alignment view's XML dump if we
        // are storing dataset
 -      if (jds.getSequenceFeatures() != null)
 +      List<jalview.datamodel.SequenceFeature> sfs = jds
 +              .getSequenceFeatures();
 +      for (SequenceFeature sf : sfs)
        {
 -        jalview.datamodel.SequenceFeature[] sf = jds.getSequenceFeatures();
 -        int index = 0;
 -        while (index < sf.length)
 -        {
 -          Features features = new Features();
 +        Features features = new Features();
  
 -          features.setBegin(sf[index].getBegin());
 -          features.setEnd(sf[index].getEnd());
 -          features.setDescription(sf[index].getDescription());
 -          features.setType(sf[index].getType());
 -          features.setFeatureGroup(sf[index].getFeatureGroup());
 -          features.setScore(sf[index].getScore());
 -          if (sf[index].links != null)
 +        features.setBegin(sf.getBegin());
 +        features.setEnd(sf.getEnd());
 +        features.setDescription(sf.getDescription());
 +        features.setType(sf.getType());
 +        features.setFeatureGroup(sf.getFeatureGroup());
 +        features.setScore(sf.getScore());
 +        if (sf.links != null)
 +        {
 +          for (int l = 0; l < sf.links.size(); l++)
            {
 -            for (int l = 0; l < sf[index].links.size(); l++)
 -            {
 -              OtherData keyValue = new OtherData();
 -              keyValue.setKey("LINK_" + l);
 -              keyValue.setValue(sf[index].links.elementAt(l).toString());
 -              features.addOtherData(keyValue);
 -            }
 +            OtherData keyValue = new OtherData();
 +            keyValue.setKey("LINK_" + l);
 +            keyValue.setValue(sf.links.elementAt(l).toString());
 +            features.addOtherData(keyValue);
            }
 -          if (sf[index].otherDetails != null)
 +        }
 +        if (sf.otherDetails != null)
 +        {
 +          String key;
 +          Iterator<String> keys = sf.otherDetails.keySet().iterator();
 +          while (keys.hasNext())
            {
 -            String key;
 -            Iterator<String> keys = sf[index].otherDetails.keySet()
 -                    .iterator();
 -            while (keys.hasNext())
 -            {
 -              key = keys.next();
 -              OtherData keyValue = new OtherData();
 -              keyValue.setKey(key);
 -              keyValue.setValue(sf[index].otherDetails.get(key).toString());
 -              features.addOtherData(keyValue);
 -            }
 +            key = keys.next();
 +            OtherData keyValue = new OtherData();
 +            keyValue.setKey(key);
 +            keyValue.setValue(sf.otherDetails.get(key).toString());
 +            features.addOtherData(keyValue);
            }
 -
 -          jseq.addFeatures(features);
 -          index++;
          }
 +
 +        jseq.addFeatures(features);
        }
  
        if (jdatasq.getAllPDBEntries() != null)
            Features[] features = jseqs[i].getFeatures();
            for (int f = 0; f < features.length; f++)
            {
 -            jalview.datamodel.SequenceFeature sf = new jalview.datamodel.SequenceFeature(
 -                    features[f].getType(), features[f].getDescription(),
 -                    features[f].getStatus(), features[f].getBegin(),
 -                    features[f].getEnd(), features[f].getFeatureGroup());
 -
 -            sf.setScore(features[f].getScore());
 +            SequenceFeature sf = new SequenceFeature(features[f].getType(),
 +                    features[f].getDescription(), features[f].getBegin(),
 +                    features[f].getEnd(), features[f].getScore(),
 +                    features[f].getFeatureGroup());
 +            sf.setStatus(features[f].getStatus());
              for (int od = 0; od < features[f].getOtherDataCount(); od++)
              {
                OtherData keyValue = features[f].getOtherData(od);
  
      }
      // recover view properties and display parameters
-     if (view.getViewName() != null)
-     {
-       af.viewport.viewName = view.getViewName();
-       af.setInitialTabVisible();
-     }
-     af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),
-             view.getHeight());
  
      af.viewport.setShowAnnotation(view.getShowAnnotation());
      af.viewport.setAbovePIDThreshold(view.getPidSelected());
      af.viewport.setShowUnconserved(view.hasShowUnconserved() ? view
              .isShowUnconserved() : false);
      af.viewport.getRanges().setStartRes(view.getStartRes());
+     if (view.getViewName() != null)
+     {
+       af.viewport.viewName = view.getViewName();
+       af.setInitialTabVisible();
+     }
+     af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),
+             view.getHeight());
      // startSeq set in af.alignPanel.updateLayout below
      af.alignPanel.updateLayout();
      ColourSchemeI cs = null;