+ final IClientAppdata cappdata = cdoc.getClientAppdata();
+ if (cappdata != null)
+ {
+ if (cappdata.hasClientAppdata())
+ {
+ // TODO: how to check version of Jalview client app data and whether
+ // it has been modified
+ // client data is shared over all app clients
+ try
+ {
+ // jalview.gui.Jalview2XML fromxml = new jalview.gui.Jalview2XML();
+ Jalview2XML fromxml = new Jalview2XML();
+ fromxml.attemptversion1parse = false;
+ fromxml.setUniqueSetSuffix("");
+ fromxml.setObjectMappingTables(vobj2jv, jv2vobj); // mapKeysToString
+ // and
+ // mapValuesToString
+ fromxml.setSkipList(skipList);
+ jarInputStreamProvider jprovider = new jarInputStreamProvider()
+ {
+
+ @Override
+ public String getFilename()
+ {
+
+ // TODO Get the vamsas session ID here
+ return "Jalview Vamsas Document Client Data";
+ }
+
+ @Override
+ public JarInputStream getJarInputStream() throws IOException
+ {
+ jalview.bin.Cache.log.debug(
+ "Returning client input stream for Jalview from Vamsas Document.");
+ return new JarInputStream(cappdata.getClientInputStream());
+ }
+
+ @Override
+ public File getFile()
+ {
+ return null;
+ }
+ };
+ if (dojvsync)
+ {
+ fromxml.loadJalviewAlign(jprovider);
+ }
+ } catch (Exception e)
+ {
+
+ } catch (OutOfMemoryError e)
+ {
+
+ } catch (Error e)
+ {
+
+ }
+ }
+ }
+ if (cappdata.hasUserAppdata())
+ {
+ // TODO: how to check version of Jalview user app data and whether it
+ // has been modified
+ // user data overrides data shared over all app clients ?
+ try
+ {
+ Jalview2XML fromxml = new Jalview2XML();
+ fromxml.attemptversion1parse = false;
+ fromxml.setUniqueSetSuffix("");
+ fromxml.setSkipList(skipList);
+ fromxml.setObjectMappingTables(mapKeysToString(vobj2jv),
+ mapValuesToString(jv2vobj));
+ jarInputStreamProvider jarstream = new jarInputStreamProvider()
+ {
+
+ @Override
+ public String getFilename()
+ {
+
+ // TODO Get the vamsas session ID here
+ return "Jalview Vamsas Document User Data";
+ }
+
+ @Override
+ public JarInputStream getJarInputStream() throws IOException
+ {
+ jalview.bin.Cache.log.debug(
+ "Returning user input stream for Jalview from Vamsas Document.");
+ return new JarInputStream(cappdata.getUserInputStream());
+ }
+
+ @Override
+ public File getFile()
+ {
+ return null;
+ }
+ };
+ if (dojvsync)
+ {
+ fromxml.loadJalviewAlign(jarstream);
+ }
+ } catch (Exception e)
+ {
+
+ } catch (OutOfMemoryError e)
+ {
+
+ } catch (Error e)
+ {