/* * Created on 15-Sep-2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package org.vamsas.client.simpleclient; import java.beans.EventHandler; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.BufferedReader; import java.io.File; import java.util.Hashtable; import java.util.Vector; import org.vamsas.client.ClientHandle; import org.vamsas.client.Events; import org.vamsas.client.IClient; import org.vamsas.client.IClientDocument; import org.vamsas.client.SessionHandle; import org.vamsas.client.UserHandle; /** * @author jimp */ public class SimpleClient implements IClient { UserHandle user = null; SessionHandle session = null; ClientHandle client = null; /* * (non-Javadoc) * TODO: check that build substitution variables are correct * @see org.vamsas.client.IClient#getAbout() */ public String getAbout() { return new String("VORBA SimpleClient version $version$ build $build$"); } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#getSessionUrn() */ public String getSessionUrn() { return session.getSessionUrn(); } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#getSessionHandle() */ public SessionHandle getSessionHandle() { return session; } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#getClientHandle() */ public ClientHandle getClientHandle() { return client; } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#getUserHandle() */ public UserHandle getUserHandle() { return user; } private Hashtable handlers = initHandlers(); private Vector listeners = new Vector(); /** * make all the PropertyChangeSupport objects for the * events described in org.vamsas.client.Event * @return */ private static Hashtable initHandlers() { Hashtable events = new Hashtable(); java.util.Iterator evt = Events.EventList.iterator(); while (evt.hasNext()) { Object ths = evt.next(); events.put(ths, (Object) new PropertyChangeSupport(ths)); } return events; } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#addDocumentUpdateHandler(java.util.EventListener) */ public void addDocumentUpdateHandler(PropertyChangeListener evt) { if (handlers.containsKey(Events.DOCUMENT_UPDATE)) { Object handler; ((PropertyChangeSupport) (handler = handlers.get(Events.DOCUMENT_UPDATE))) .addPropertyChangeListener(evt); listeners.add(handler); listeners.add((Object) evt); } } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#finalizeClient() */ public void finalizeClient() { // TODO: determine if this is last client in session // TODO: raise events like : ((lst_client && document.request.to.close), (client_finalization), ( // if (handlers.containsKey(Events.)) // if (handlers.containsKey(Events.CLIENT_FINALIZATION)) // deregister listeners. // mark this instance as finalized } /** * extract data appropriate for client, session and user * from vamsas document. * @return application's byte array */ private byte[] getApplicationData() { // TODO: extract correct byte object from Jar and return it to application. return null; } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#getClientDocument() */ public IClientDocument getClientDocument() { Object[] vdoc;// TODO: = getVamsasDocument(new Reader()); // ClientDocument cdoc = new ClientDocument(getApplicationData(), // ((VamsasDocument) vdoc[0]).getVAMSAS(), (Hashtable) vdoc[1], this); // return null; } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#updateDocument(org.vamsas.client.IClientDocument) */ public void updateDocument(IClientDocument newdoc) { // TODO Auto-generated method stub // } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#storeDocument(java.io.File) */ public void storeDocument(File location) { // TODO Auto-generated method stub } /* * (non-Javadoc) * * @see org.vamsas.client.IClient#addVorbaEventHandler(java.lang.String, * java.beans.PropertyChangeListener) */ public void addVorbaEventHandler(String EventChain, PropertyChangeListener evt) { if (handlers.containsKey(EventChain)) { Object handler; ((PropertyChangeSupport) (handler = handlers.get(EventChain))) .addPropertyChangeListener(evt); listeners.add(handler); listeners.add((Object) evt); } } /* (non-Javadoc) * @see org.vamsas.client.IClient#pollUpdate() */ public void pollUpdate() { // TODO wake up UpdateWatcher thread to check for updates. } public static void main(String[] args) { } /* (non-Javadoc) * @see org.vamsas.client.IClient#joinSession() */ public void joinSession() throws Exception { // TODO Auto-generated method stub } }