only make a link menu when there are links
[jalview.git] / src / jalview / gui / Jalview2XML.java
index 4664a6a..b3cf1af 100755 (executable)
@@ -915,7 +915,7 @@ public class Jalview2XML
         groups[i].setTextCol1(sg.textColour.getRGB());
         groups[i].setTextCol2(sg.textColour2.getRGB());
         groups[i].setTextColThreshold(sg.thresholdTextColour);
-
+        groups[i].setShowUnconserved(sg.getShowunconserved());
         for (int s = 0; s < sg.getSize(); s++)
         {
           jalview.datamodel.Sequence seq = (jalview.datamodel.Sequence) sg
@@ -1022,6 +1022,7 @@ public class Jalview2XML
     view.setRightAlignIds(av.rightAlignIds);
     view.setShowSequenceFeatures(av.showSequenceFeatures);
     view.setShowText(av.getShowText());
+    view.setShowUnconserved(av.getShowUnconserved());
     view.setWrapAlignment(av.getWrapAlignment());
     view.setTextCol1(av.textColour.getRGB());
     view.setTextCol2(av.textColour2.getRGB());
@@ -2130,6 +2131,7 @@ public class Jalview2XML
 
         sg.textColour = new java.awt.Color(groups[i].getTextCol1());
         sg.textColour2 = new java.awt.Color(groups[i].getTextCol2());
+        sg.setShowunconserved(groups[i].hasShowUnconserved() ? groups[i].isShowUnconserved() : false);
         sg.thresholdTextColour = groups[i].getTextColThreshold();
 
         if (groups[i].getConsThreshold() != 0)
@@ -2257,6 +2259,11 @@ public class Jalview2XML
             tp.treeCanvas.ap = ap; // af.alignPanel;
 
           }
+         if (tp==null)
+          {
+            warn("There was a problem recovering stored Newick tree: \n"+tree.getNewick());
+            continue;
+          }
 
           tp.fitToWindow.setState(tree.getFitToWindow());
           tp.fitToWindow_actionPerformed(null);
@@ -2526,7 +2533,7 @@ public class Jalview2XML
     af.viewport.textColour = new java.awt.Color(view.getTextCol1());
     af.viewport.textColour2 = new java.awt.Color(view.getTextCol2());
     af.viewport.thresholdTextColour = view.getTextColThreshold();
-
+    af.viewport.setShowUnconserved(view.hasShowUnconserved() ? view.isShowUnconserved() : false);
     af.viewport.setStartRes(view.getStartRes());
     af.viewport.setStartSeq(view.getStartSeq());
 
@@ -2659,9 +2666,19 @@ public class Jalview2XML
       for (int fs = 0; fs < jms.getFeatureSettings().getSettingCount(); fs++)
       {
         Setting setting = jms.getFeatureSettings().getSetting(fs);
-
-        af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setColour(
-                setting.getType(), new java.awt.Color(setting.getColour()));
+        if (setting.hasMincolour())
+        {
+          // TODO: determine how to set data independent bounds for a graduated colour scheme's range.
+          GraduatedColor gc = new GraduatedColor(new java.awt.Color(setting.getMincolour()), new java.awt.Color(setting.getColour()),
+                  0,1);
+          if (setting.hasThreshold()) {
+            gc.setThresh(setting.getThreshold());
+            gc.setThreshType(setting.getThreshstate());
+          }
+        } else {
+          af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setColour(
+                  setting.getType(), new java.awt.Color(setting.getColour()));
+        }
         renderOrder[fs] = setting.getType();
         if (setting.hasOrder())
           af.alignPanel.seqPanel.seqCanvas.getFeatureRenderer().setOrder(