public class Jalview2XML\r
{\r
\r
+ // SAVES SEVERAL ALIGNEMENT WINDOWS TO SAME JARFILE\r
public static void SaveState(File statefile)\r
{\r
long creation = System.currentTimeMillis();\r
JInternalFrame[] frames = Desktop.desktop.getAllFrames();\r
try{\r
- JalviewState state = new JalviewState();\r
+ FileOutputStream fos = new FileOutputStream(statefile);\r
+ JarOutputStream jout = new JarOutputStream(fos);\r
+ //NOTE UTF-8 MUST BE USED FOR WRITING UNICODE CHARS\r
+ ////////////////////////////////////////////////////\r
+ PrintWriter out = new PrintWriter(new OutputStreamWriter(jout, "UTF-8"));\r
\r
Vector shortNames = new Vector();\r
for (int i = 0; i < frames.length; i++)\r
\r
shortName = shortName.replace('/', '_');\r
shortName = shortName.replace('\\', '_');\r
- String jarFile = statefile.getParent()+File.separatorChar+shortName+".jar";\r
\r
int count=1;\r
while( shortNames.contains(shortName) )\r
if(!shortName.endsWith(".xml"))\r
shortName = shortName+".xml";\r
\r
- jarFile = statefile.getParent()+File.separatorChar+shortName+".jar";\r
-\r
- SaveState( af, creation, shortName, jarFile);\r
- state.addFile(jarFile);\r
- }\r
+ SaveState( af, creation, shortName, jout, out);\r
+ }\r
}\r
-\r
- PrintWriter out = new PrintWriter(new FileWriter(statefile));\r
- state.marshal(out);\r
out.close();\r
+ jout.close();\r
}\r
catch(Exception ex){ex.printStackTrace();}\r
}\r
\r
+ // USE THIS METHOD TO SAVE A SINGLE ALIGNMENT WINDOW\r
+ public static void SaveState( AlignFrame af, String jarFile, String fileName)\r
+ {\r
+ try{\r
+ FileOutputStream fos = new FileOutputStream(jarFile);\r
+ JarOutputStream jout = new JarOutputStream(fos);\r
+ //NOTE UTF-8 MUST BE USED FOR WRITING UNICODE CHARS\r
+ ////////////////////////////////////////////////////\r
+ PrintWriter out = new PrintWriter(new OutputStreamWriter(jout, "UTF-8"));\r
+\r
+ SaveState(af, System.currentTimeMillis(), fileName, jout, out);\r
+ out.close();\r
+ jout.close();\r
+ }catch(Exception ex){}\r
+ }\r
\r
- public static void SaveState( AlignFrame af, long timeStamp, String fileName, String jarFile)\r
+ public static void SaveState( AlignFrame af, long timeStamp,\r
+ String fileName, JarOutputStream jout, PrintWriter out)\r
{\r
\r
Vector seqids = new Vector();\r
\r
try\r
{\r
- // NAME OF FILE\r
- FileOutputStream fos = new FileOutputStream(jarFile);\r
-\r
- //PUT IT IN THIS JARFILE\r
- JarOutputStream jout = new JarOutputStream(fos);\r
-\r
- //NOTE UTF-8 MUST BE USED FOR WRITING UNICODE CHARS\r
- ////////////////////////////////////////////////////\r
- PrintWriter out = new PrintWriter(new OutputStreamWriter(jout, "UTF-8"));\r
-\r
if(!fileName.endsWith(".xml"))\r
fileName = fileName+".xml";\r
\r
jout.putNextEntry(entry);\r
\r
object.marshal(out);\r
- out.close();\r
- fos.close();\r
- jout.close();\r
}\r
catch (Exception ex)\r
{\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
+ //UNMARSHALLER SEEMS TO CLOSE JARINPUTSTREAM, MOST ANNOYING\r
+ JarInputStream jin = new JarInputStream(new FileInputStream(file));\r
+ JarEntry jarentry=null;\r
+ int entryCount = 1;\r
+ do{\r
+ jin = new JarInputStream(new FileInputStream(file));\r
+ for(int i=0; i<entryCount; i++)\r
+ jarentry = jin.getNextJarEntry();\r
+\r
+ if(jarentry!=null)\r
+ {\r
+ InputStreamReader in = new InputStreamReader(jin, "UTF-8");\r
+ object = (JalviewModel) object.unmarshal(in);\r
+ LoadFromObject(object);\r
+ entryCount++;\r
+ }\r
+ }while(jarentry!=null);\r
+\r
}\r
catch(Exception ex)\r
- { System.out.println(ex); return; }\r
+ { System.out.println("HERE"+ex); return; }\r
\r
+ }\r
\r
+ static void LoadFromObject(JalviewModel object)\r
+ {\r
+ Vector seqids = new Vector();\r
SequenceSet vamsasSet = object.getVamsasModel().getSequenceSet(0);\r
Sequence [] vamsasSeq = vamsasSet.getSequence();\r
\r
af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(), view.getHeight());\r
af.viewport.setStartRes( view.getStartRes() );\r
af.viewport.setStartSeq( view.getStartSeq() );\r
+ af.viewport.showConservation = view.getShowConservation();\r
+ af.viewport.showQuality = view.getShowQuality();\r
+ af.viewport.showIdentity= view.getShowIdentity();\r
af.viewport.setAbovePIDThreshold( view.getPidSelected() );\r
af.viewport.setColourText( view.getShowColourText() );\r
af.viewport.setConservationSelected( view.getConservationSelected());\r
af.ShowNewickTree(new jalview.io.NewickFile(\r
(String)object.getVamsasModel().getTree(0)), "Tree");\r
}catch(Exception ex){ex.printStackTrace();}\r
-\r
}\r
\r
}\r