01: package com.xoetrope.medical.forms;
02:
03: import com.xoetrope.service.http.XHttpRequestProxy;
04: import java.io.StringReader;
05: import net.xoetrope.optional.data.XOptionalDataSource;
06: import net.xoetrope.optional.service.ServiceContext;
07: import net.xoetrope.optional.service.ServiceProxyArgs;
08: import net.xoetrope.optional.service.XServiceModelNode;
09: import net.xoetrope.xml.XmlElement;
10: import net.xoetrope.xml.nanoxml.NanoXmlParser;
11: import net.xoetrope.xui.XLifeCycleListener;
12: import net.xoetrope.xui.XProject;
13: import net.xoetrope.xui.data.XBaseModel;
14: import net.xoetrope.xui.data.XModel;
15:
16: import sun.misc.BASE64Encoder;
17:
18: /**
19: * Initialize the project's connection
20: */
21: public class ProjectListener implements XLifeCycleListener {
22: /**
23: * Called when the application/applet has been created and initialized.
24: * @param project the owner project
25: */
26: public void initialize(XProject project) {
27: // String userName = "admin";
28: // String password = "foofoo";
29: //
30: // XModel rootModel = project.getModel();
31: // XBaseModel model = (XBaseModel)rootModel.get( "PhysioEvents" );
32: // XServiceModelNode node = (XServiceModelNode)model.get();
33: // ServiceContext context = new ServiceContext();
34: // ServiceProxyArgs args = context.getArgs();
35: // String token = userName + ":" + password;
36: // String authorization = new BASE64Encoder().encode( token.getBytes());
37: // args.setConfigParam( XHttpRequestProxy.PARAM_AUTHORIZATION, authorization );
38: // String result = (String)node.get( context );
39: //
40: // System.out.println( result );
41: //
42: // StringReader sr = new StringReader( result );
43: // NanoXmlParser parser = new NanoXmlParser();
44: // XmlElement httpElement = parser.parse( sr );
45: // XOptionalDataSource modelDataSource = (XOptionalDataSource)project.getObject( "ModelDataSource" );
46: // httpElement.setAttribute( "id", "physioEvent" );
47: //
48: // XBaseModel bm = (XBaseModel)rootModel.get( "physioEvent" );
49: // bm.removeChildren();
50: //
51: // modelDataSource.loadTable( httpElement, bm );
52: //
53: // // Now filter the events for pending and sent status and fill the tree's structure'
54: // XBaseModel pendingModel = (XBaseModel)rootModel.get( "myJobs/Physio/1" );
55: // int pending = pendingModel.getNumChildren();
56: // XBaseModel issuedModel = (XBaseModel)rootModel.get( "myJobs/Physio/2" );
57: // int issued = issuedModel.getNumChildren();
58: // int numEvents = bm.getNumChildren();
59: // for ( int i = 0; i < numEvents; i++ ) {
60: // XModel event = bm.get( i );
61: // String sentStr = ((XModel)event.get( "letterSent" )).get().toString().toLowerCase();
62: // String name = ((XModel)event.get( "title" )).get().toString();
63: // String id = ((XModel)event.get( 0 )).getId();
64: // if ( "true".equals( sentStr ) || "tes".equals( sentStr ))
65: // issuedModel.set( id, name );
66: // else
67: // pendingModel.set( id, name );
68: // }
69: }
70:
71: /**
72: * Called when the application/applet has been shutdown and is about to exit
73: */
74: public void shutdown() {
75: }
76:
77: /**
78: * Can the current project close?
79: * @param project the project initiating the shutdown
80: * @return true if the application can close
81: */
82: public boolean canClose(XProject project) {
83: return true;
84: }
85: }
|