7 import java.io.FileOutputStream;
8 import java.io.OutputStreamWriter;
9 import java.io.PrintWriter;
10 import java.util.Hashtable;
11 import java.util.Vector;
12 import java.util.jar.JarOutputStream;
14 import javax.swing.JInternalFrame;
16 import jalview.bin.Cache;
18 import org.vamsas.client.UserHandle;
19 import org.vamsas.client.simpleclient.FileWatcher;
20 import org.vamsas.client.simpleclient.VamsasArchive;
21 import org.vamsas.client.simpleclient.VamsasFile;
22 import org.vamsas.objects.core.VamsasDocument;
23 import org.vamsas.test.simpleclient.ArchiveClient;
24 import org.vamsas.test.simpleclient.ClientDoc;
30 public class VamsasClient extends ArchiveClient {
32 // Cache.preferences for vamsas client session arena
33 // preferences for check for default session at startup.
34 // user and organisation stuff.
35 public VamsasClient(Desktop jdesktop,
37 super(System.getProperty("user.name"),System.getProperty("host.name"), "jalview","2.7",
41 public void initial_update() {
42 Cache.log.info("Jalview loading the Vamsas Session.");
43 // load in the vamsas archive for the first time
44 ClientDoc cdoc = this.getUpdateable();
47 public void get_update(VamsasArchive doc) {
48 Cache.log.info("Jalview updating from Vamsas Session.");
50 public void push_update() {
51 // collect all uncached alignments and put them into the vamsas dataset.
53 Cache.log.info("Jalview updating the Vamsas Session.");
55 public void end_session() {
56 // stop any update/watcher thread.
57 Cache.log.info("Jalview disconnecting from the Vamsas Session.");
59 java.util.Hashtable jv2vobj = null;
60 public void updateVamsasDocument(ClientDoc doc) {
62 jv2vobj = new Hashtable();
63 // wander through frames
64 JInternalFrame[] frames = Desktop.desktop.getAllFrames();
74 // Alignframe.alignment (non-null dataset)==alignment
75 // alignframe .alignment (dataset==null) = VAMAS[]
76 // Tree.alignment = vamsas[].tree (vamsas[] given by dataset, alignment given by local ref]
78 Vector shortNames = new Vector();
81 for (int i = frames.length - 1; i > -1; i--)
83 if (frames[i] instanceof AlignFrame)
85 AlignFrame af = (AlignFrame) frames[i];
86 // check if this frame has an associated alignment object ?
87 // update alignment and root from frame.
93 Cache.log.error("Vamsas Document store exception",e);
96 protected class VamsasClientWatcher extends Thread implements Runnable {
98 * @see java.lang.Thread#run()
100 VamsasClient client=null;
101 VamsasClientWatcher(VamsasClient client) {
102 this.client = client;
105 ClientDoc docio = client.watch(0);
113 public static void main(String[] args) {
114 // TODO Auto-generated method stub