From: jprocter Date: Thu, 14 Dec 2006 18:49:07 +0000 (+0000) Subject: refactoring org to uk - never use f**ng eclipse X-Git-Tag: Release_0.2~228 X-Git-Url: http://source.jalview.org/gitweb/?a=commitdiff_plain;h=ea2aacfe6e4261466389bdd0ec72b71d14d45842;p=vamsas.git refactoring org to uk - never use f**ng eclipse git-svn-id: https://svn.lifesci.dundee.ac.uk/svn/repository/trunk@292 be28352e-c001-0410-b1a7-c7978e42abec --- diff --git a/src/uk/ac/vamsas/test/ExampleApplication.java b/src/uk/ac/vamsas/test/ExampleApplication.java new file mode 100644 index 0000000..186e51e --- /dev/null +++ b/src/uk/ac/vamsas/test/ExampleApplication.java @@ -0,0 +1,160 @@ +/** + * Created on 14-Sep-2005 + * + * TODO To change the template for this generated file go to + * Window - Preferences - Java - Code Style - Code Templates + */ +package uk.ac.vamsas.test; + +import uk.ac.vamsas.client.*; + +import java.awt.Event; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.io.IOException; +import java.util.Vector; +/** + * Toy vamsas command line client application demonstrating the API. + * + * @author jimp + */ + +public class ExampleApplication { + private static ClientHandle app; + private static UserHandle user; // TODO: make this something defined by the api + private static IClientFactory clientfactory; + private static IClient vorbaclient; + private static byte[] mydata; + private static Vector vamsasObjects; + private static boolean isUpdated = false; + private static boolean isShuttingdown = false; + private static boolean isFinalizing = false; + private static void processVamsasDocument(IClientDocument doc) { + // merge vamsasObjects with vamsas objects in document + // get this apps 'mydata' if it hasn't got it already. + // .. access this application's 'public' mydata' if there is any. + } + private static void addHandlers(IClient avorbaclient) { + // make a non-volatile reference to the client instance. + final IClient vorbaclient = avorbaclient; + // register update handler + vorbaclient.addDocumentUpdateHandler(new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + System.out.println("Vamsas document update for "+evt.getPropertyName() + +": "+evt.getOldValue()+" to "+evt.getNewValue()); + // merge new data into ours. + isUpdated=true; // tell main thread to reflect change... + } + }); + // register close handler + vorbaclient.addVorbaEventHandler(Events.DOCUMENT_REQUESTTOCLOSE, + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + System.out.println("Received request to close vamsas document."); + // ask user for a filename to save it to. + // Then pass it to the vorba object... + vorbaclient.storeDocument(new java.io.File("UserLocation")); + } + }); + + // register some more handlers to monitor the session : + + vorbaclient.addVorbaEventHandler(Events.CLIENT_CREATION, + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + System.out.println("New Vamsas client for "+evt.getPropertyName() + +": "+evt.getOldValue()+" to "+evt.getNewValue()); + // tell app add new client to its list of clients. + } + }); + vorbaclient.addVorbaEventHandler(Events.CLIENT_FINALIZATION, + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + System.out.println("Vamsas client finalizing for "+evt.getPropertyName() + +": "+evt.getOldValue()+" to "+evt.getNewValue()); + // tell app to update its list of clients to communicate with. + } + }); + vorbaclient.addVorbaEventHandler(Events.SESSION_SHUTDOWN, + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + System.out.println("Session "+evt.getPropertyName()+" is shutting down."); + // tell app to finalize its session data before shutdown. + } + }); + vorbaclient.addVorbaEventHandler(Events.DOCUMENT_FINALIZEAPPDATA, + new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + System.out.println("Application received a DOCUMENT_FINALIZEAPPDATA event."); + // tell app to finalize its session data prior to the storage of the current session as an archive. + } + }); + + } + public static String + Usage="ExampleApplication [+]\n" + +" is one of :\n\tsave,update,close,watch"; + + private static boolean parseArgs(String args[]) { + return true; // incorrect arguments. + } + public static void main(String[] args) { + if ((args.length<=2) || !parseArgs(args)) { + System.err.print(Usage); + } + + // get IClientFactory + try { + clientfactory = new uk.ac.vamsas.client.simpleclient.SimpleClientFactory(args[0]); + } catch (IOException e) { + System.err.println(e+"\n"+Usage); + System.exit(1); + } + + // get an Iclient with session data + app = new ClientHandle("uk.ac.vamsas.test.ExampleApplication","0.1"); + user = new UserHandle("arnolduser","deathsdoor"); + try { + vorbaclient = clientfactory.getIClient(app, user); + } catch (NoDefaultSessionException e) { + System.err.println("There appear to be several sessions to choose from :"); + String[] sessions = clientfactory.getCurrentSessions(); + for (int s=0;s