{\r
\r
Vector seqids = new Vector();\r
+ Vector userColours = new Vector();\r
\r
AlignViewport av = af.viewport;\r
\r
\r
if (sg.cs instanceof ResidueColourScheme)\r
groups[i].setPidThreshold( ( (ResidueColourScheme) sg.cs).getThreshold());\r
- else if (sg.cs instanceof ScoreColourScheme)\r
- groups[i].setPidThreshold( ( (ScoreColourScheme) sg.cs).getThreshold());\r
+ else if (sg.cs instanceof ScoreColourScheme)\r
+ groups[i].setPidThreshold( ( (ScoreColourScheme) sg.cs).getThreshold());\r
\r
\r
- groups[i].setColour( ColourSchemeProperty.getColourName(sg.cs) );\r
+ if (sg.cs instanceof jalview.schemes.UserColourScheme)\r
+ groups[i].setColour(SetUserColourScheme(sg.cs, userColours, jms));\r
+ else\r
+ groups[i].setColour(ColourSchemeProperty.getColourName(sg.cs));\r
+\r
groups[i].setOutlineColour(sg.getOutlineColour().getRGB());\r
groups[i].setDisplayBoxes(sg.getDisplayBoxes());\r
groups[i].setDisplayText(sg.getDisplayText());\r
}\r
\r
}\r
-\r
jms.setJGroup(groups);\r
\r
}\r
view.setHeight(af.getHeight());\r
view.setStartRes(av.startRes);\r
view.setStartSeq(av.startSeq);\r
+\r
+\r
+ if( av.getGlobalColourScheme() instanceof jalview.schemes.UserColourScheme)\r
+ view.setBgColour( SetUserColourScheme(av.getGlobalColourScheme(),\r
+ userColours, jms) );\r
+ else\r
view.setBgColour( ColourSchemeProperty.getColourName\r
( av.getGlobalColourScheme()));\r
\r
}\r
}\r
\r
+ static String SetUserColourScheme(jalview.schemes.ColourSchemeI cs,\r
+ Vector userColours,\r
+ JalviewModelSequence jms)\r
+ {\r
+ String id=null;\r
+ jalview.schemes.UserColourScheme ucs = (jalview.schemes.UserColourScheme)cs;\r
+ if (!userColours.contains(ucs))\r
+ {\r
+ userColours.add(ucs);\r
+ java.awt.Color [] colours = ucs.getColours();\r
+ jalview.binding.UserColours uc = new jalview.binding.UserColours();\r
+ jalview.binding.UserColourScheme jbucs = new jalview.binding.UserColourScheme();\r
+ for(int i=0; i<colours.length; i++)\r
+ {\r
+ jalview.binding.Colour col = new jalview.binding.Colour();\r
+ col.setRGB( jalview.util.Format.getHexString(colours[i]) );\r
+ jbucs.addColour(col);\r
+ }\r
+ id = "ucs"+userColours.indexOf(ucs);\r
+ uc.setId(id);\r
+ uc.setUserColourScheme(jbucs);\r
+ jms.addUserColours(uc);\r
+ }\r
+ return id;\r
+ }\r
+\r
+ static jalview.schemes.UserColourScheme GetUserColourScheme(JalviewModelSequence jms, String id)\r
+ {\r
+ UserColours [] uc = jms.getUserColours();\r
+ UserColours colours=null;\r
+ for(int i=0; i<uc.length; i++)\r
+ {\r
+ if(uc[i].getId().equals(id))\r
+ { colours = uc[i]; break; }\r
+ }\r
+ int csize = colours.getUserColourScheme().getColourCount();\r
+ java.awt.Color [] newColours = new java.awt.Color[csize];\r
+\r
+ for(int i=0; i<csize;i++)\r
+ newColours[i] = new java.awt.Color(\r
+ Integer.parseInt( colours.getUserColourScheme().getColour(i).getRGB(), 16) );\r
+\r
+ return new jalview.schemes.UserColourScheme(newColours);\r
+\r
+ }\r
+\r
\r
public static void LoadJalviewAlign(String file)\r
{\r
JGroup[] groups = jms.getJGroup();\r
for (int i = 0; i < groups.length; i++)\r
{\r
- ColourSchemeI cs = ColourSchemeProperty.getColour(al, groups[i].getColour() );\r
+ ColourSchemeI cs=null;\r
+ if(groups[i].getColour().startsWith("ucs"))\r
+ cs = GetUserColourScheme(jms,groups[i].getColour());\r
+ else\r
+ cs = ColourSchemeProperty.getColour(al, groups[i].getColour() );\r
+\r
if (cs instanceof ResidueColourScheme)\r
( (ResidueColourScheme) cs).setThreshold(groups[i].getPidThreshold());\r
else if (cs instanceof ScoreColourScheme)\r
af.viewport.setShowBoxes( view.getShowBoxes() );\r
af.viewport.setShowText( view.getShowText() );\r
\r
- af.viewport.setGlobalColourScheme( ColourSchemeProperty.getColour(al, view.getBgColour()));\r
- af.viewport.setColourAppliesToAllGroups(false);\r
- af.changeColour( af.viewport.getGlobalColourScheme() );\r
- af.viewport.setColourAppliesToAllGroups(true);\r
+ ColourSchemeI cs=null;\r
+ if (view.getBgColour().startsWith("ucs"))\r
+ cs = GetUserColourScheme(jms, view.getBgColour());\r
+ else\r
+ cs = ColourSchemeProperty.getColour(al, view.getBgColour());\r
+ af.viewport.setGlobalColourScheme( cs );\r
\r
- ColourSchemeI cs = af.viewport.getGlobalColourScheme();\r
if(cs instanceof ConservationColourScheme)\r
( (ConservationColourScheme) cs).inc = view.getConsThreshold();\r
\r
else if (cs instanceof ScoreColourScheme)\r
( (ScoreColourScheme) cs).setThreshold(view.getPidThreshold());\r
\r
+ af.viewport.setColourAppliesToAllGroups(false);\r
+ af.changeColour(af.viewport.getGlobalColourScheme());\r
+ af.viewport.setColourAppliesToAllGroups(true);\r
+\r
+\r
//LOAD TREES - THIS RELEASE ONLY ALLOWS 1 TREE\r
if(object.getVamsasModel().getTreeCount()>0)\r
{\r