better command line processing options (load, save) and slower update poll check.
authorjprocter <jprocter@compbio.dundee.ac.uk>
Fri, 18 May 2007 11:41:01 +0000 (11:41 +0000)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Fri, 18 May 2007 11:41:01 +0000 (11:41 +0000)
git-svn-id: https://svn.lifesci.dundee.ac.uk/svn/repository/trunk@393 be28352e-c001-0410-b1a7-c7978e42abec

src/uk/ac/vamsas/test/ExampleApplication.java

index 18b6cac..6673129 100644 (file)
@@ -10,6 +10,7 @@ import uk.ac.vamsas.test.objects.Core;
 import java.awt.Event;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
+import java.io.File;
 import java.io.IOException;
 import java.util.Vector;
 
@@ -195,24 +196,44 @@ public class ExampleApplication
 
   }
 
-  public String Usage = "ExampleApplication [session urn] watch/n( future usage is :/n <vamsasFileDirectory> <vamsasSessionURN> <action> [+<arguments>]\n"
+  public String Usage = "ExampleApplication :/n [-arena <vamsasFileDirectory>][-session <vamsasSessionURN>] <action> [+<arguments>]\n"
     + "<action> is one of :\n\tsave,update,close,watch";
 
   String sess = null;
-
+  String importFile=null;
+  String outputFile=null;
   private boolean parseArgs(String args[])
   {
     if (args.length == 0)
     {
       return false;
     }
-    if (!args[0].toLowerCase().equals("watch"))
+    int cpos=0;
+    boolean parsed=false;
+    while (!parsed && cpos<args.length)
     {
-      sess = args[0];
+      if (args[cpos].toLowerCase().equals("load") && cpos+1<args.length)
+      {
+        importFile=args[cpos+1];
+        cpos+=2;
+        continue;
+      }
+      if (args[cpos].toLowerCase().equals("save") && cpos+1<args.length)
+      {
+        outputFile=args[cpos+1];
+        cpos+=2;
+        continue;
+      }
+      // default behaviour - if not anything else its probably a session urn
+      if (!args[cpos].toLowerCase().equals("watch"))
+      {
+        sess = args[cpos];
+      }
+      cpos++;
     }
     return true;
   }
-
+  
   class ExamplePicker extends Thread
   {
     String me = null;
@@ -264,7 +285,15 @@ public class ExampleApplication
     user = new UserHandle("arnolduser", "deathsdoor");
     try
     {
-      vorbaclient = clientfactory.getIClient(app, user);
+      if (sess!=null)
+      {
+        System.out.println("Connecting to "+sess);
+        vorbaclient = clientfactory.getIClient(app, user, sess);
+      }
+      else
+      {
+        vorbaclient = clientfactory.getIClient(app, user);
+      }
     }
     catch (NoDefaultSessionException e)
     {
@@ -287,6 +316,37 @@ public class ExampleApplication
       System.exit(1);
     }
     // register an update listener and a close listener.
+    // import any data if requested to
+    if (importFile!=null)
+    {
+      File vfile = new File(importFile);
+      try
+      { 
+        vorbaclient.importDocument(vfile);
+      }
+      catch (Exception e)
+      {
+        System.err.println("Failed to import file "+importFile);
+        System.err.println("Exception received was "+e);
+        e.printStackTrace(System.err);
+      }
+      
+    }
+   // Write out any data if requested to
+    if (outputFile!=null)
+    {
+      File vfile = new File(outputFile);
+      try
+      { 
+        vorbaclient.storeDocument(vfile);
+      }
+      catch (Exception e)
+      {
+        System.err.println("Failed to export session as file "+outputFile);
+        System.err.println("Exception received was "+e);
+        e.printStackTrace(System.err);
+      }
+    }
     // get document data
     try
     {
@@ -344,7 +404,7 @@ public class ExampleApplication
         }
       }
 
-      try      { Thread.sleep(15); }
+      try      { Thread.sleep(50); }
       catch (Exception e) {}
 
     }