- object.marshal(out);\r
- out.close();\r
- fos.close();\r
- jout.close();\r
- }\r
- catch (Exception ex)\r
- {\r
- ex.printStackTrace();\r
- }\r
- }\r
-\r
- public static void LoadState(String file)\r
- {\r
- try{\r
- JalviewState state = new JalviewState();\r
- BufferedReader in = new BufferedReader(new FileReader(file));\r
- state = (JalviewState)state.unmarshal(in);\r
- Enumeration en = state.enumerateFile();\r
- while( en.hasMoreElements() )\r
- {\r
- LoadJalviewAlign( en.nextElement().toString());\r
- }\r
- }\r
- catch(Exception ex)\r
- { ex.printStackTrace(); return; }\r
- }\r
-\r
- public static void LoadJalviewAlign(String file)\r
- {\r
- JalviewModel object = new JalviewModel();\r
- Vector seqids = new Vector();\r
- try{\r
- FileInputStream fis = new FileInputStream(file);\r
- JarInputStream jin = new JarInputStream(fis);\r
- jin.getNextJarEntry();\r
- InputStreamReader in = new InputStreamReader(jin, "UTF-8");\r
- object = (JalviewModel) object.unmarshal(in);\r
- }\r
- catch(Exception ex)\r
- { System.out.println(ex); return; }\r
-\r
-\r
- SequenceSet vamsasSet = object.getVamsasModel().getSequenceSet(0);\r
- Sequence [] vamsasSeq = vamsasSet.getSequence();\r
-\r
- JalviewModelSequence jms = object.getJalviewModelSequence();\r
- //////////////////////////////////\r
- //LOAD SEQUENCES\r
- jalview.datamodel.Sequence [] jseqs = new jalview.datamodel.Sequence[vamsasSeq.length];\r
- JSeq [] JSEQ = object.getJalviewModelSequence().getJSeq();\r
- for(int i=0; i<vamsasSeq.length; i++)\r
- {\r
- jseqs[i] = new jalview.datamodel.Sequence(vamsasSeq[i].getName(),\r
- vamsasSeq[i].getSequence());\r
-\r
- jseqs[i].setStart( JSEQ[i].getStart());\r
- jseqs[i].setEnd( JSEQ[i].getEnd());\r
- jseqs[i].setColor( new java.awt.Color(JSEQ[i].getColour()) );\r
- seqids.add(jseqs[i]);\r
- }\r
-\r
- /////////////////////////////////\r
- jalview.datamodel.Alignment al = new jalview.datamodel.Alignment(jseqs);\r
- /////////////////////////////////\r
-\r
- //////////////////////////////////\r
- //LOAD ANNOTATIONS\r
- if(vamsasSet.getAnnotation()!=null)\r
- {\r
- Annotation[] an = vamsasSet.getAnnotation();\r
- for (int i = 0; i < an.length; i++)\r
- {\r
- AnnotationElement[] ae = an[i].getAnnotationElement();\r
- jalview.datamodel.Annotation anot[]\r
- = new jalview.datamodel.Annotation[al.getWidth()];\r
- for (int aa = 0; aa < ae.length; aa++)\r
- {\r
- anot[ae[aa].getPosition()]\r
- = new jalview.datamodel.Annotation(\r
- ae[aa].getDisplayCharacter(),\r
- ae[aa].getDescription(),\r
- ae[aa].getSecondaryStructure().charAt(0),\r
- ae[aa].getValue()\r
- );\r
- }\r
-\r
-\r
- jalview.datamodel.AlignmentAnnotation jaa = null;\r
- if(an[i].getGraph())\r
- jaa = new jalview.datamodel.AlignmentAnnotation(an[i].getLabel(),\r
- an[i].getDescription(), anot,\r
- 0,0,1);\r
- else\r
- jaa = new jalview.datamodel.AlignmentAnnotation(an[i].getLabel(),\r
- an[i].getDescription(), anot);\r
- al.addAnnotation(jaa);\r
- }\r
- }\r
-\r
- /////////////////////////////////\r
- // LOAD VIEWPORT\r
- Viewport[] views = jms.getViewport();\r
- Viewport view = views[0]; // DEAL WITH MULTIPLE VIEWPORTS LATER\r
-\r
- AlignFrame af = new AlignFrame(al);\r
- // af.changeColour() );\r
-\r
- /////////////////////////\r
- //LOAD GROUPS\r
- if (jms.getJGroupCount()>0)\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
- if (cs instanceof ResidueColourScheme)\r
- ( (ResidueColourScheme) cs).setThreshold(groups[i].getPidThreshold());\r
- else if (cs instanceof ScoreColourScheme)\r
- ( (ScoreColourScheme) cs).setThreshold(groups[i].getPidThreshold());\r
-\r
- jalview.datamodel.SequenceGroup sg = new jalview.datamodel.SequenceGroup\r
- (groups[i].getName(),\r
- cs,\r
- groups[i].getDisplayBoxes(),\r
- groups[i].getDisplayText(),\r
- groups[i].getColourText(),\r
- groups[i].getStart(),\r
- groups[i].getEnd()) ;\r
- sg.setOutlineColour( new java.awt.Color(groups[i].getOutlineColour()));\r
- int [] ids = groups[i].getSeq();\r
- for(int s=0; s<ids.length; s++)\r
- sg.addSequence( (jalview.datamodel.SequenceI)seqids.elementAt( ids[s] ));\r
-\r
- if(groups[i].getConsThreshold()!=0)\r