Changeset 1482

Show
Ignore:
Timestamp:
11/24/08 16:17:49 (6 weeks ago)
Author:
csims
Message:

All code changes necessary to use the Mesh4X extensions

Location:
branches/dev
Files:
1 added
31 modified

Legend:

Unmodified
Added
Removed
  • branches/dev/j2merosa/org.javarosa.demo

    • Property svn:ignore
      •  

        old new  
        22dist 
        33documentation 
         4webdocs 
  • branches/dev/j2merosa/org.javarosa.formmanager/src/org/javarosa/formmanager/view/SubmitStatusScreen.java

    r1431 r1482  
    66 
    77import javax.microedition.lcdui.Command; 
     8import javax.microedition.lcdui.CommandListener; 
    89import javax.microedition.lcdui.Form; 
    910import javax.microedition.lcdui.Spacer; 
     
    1314import org.javarosa.core.api.IView; 
    1415import org.javarosa.core.services.transport.TransportMessage; 
    15 import org.javarosa.formmanager.activity.FormTransportActivity; 
    1616 
    1717public class SubmitStatusScreen extends Form implements IView { 
     
    3131    public static String MSG_UNKNOWN_ERROR = "Unknown sending error; form not sent!"; 
    3232     
    33         public SubmitStatusScreen (FormTransportActivity fta, int modelID) { 
     33    public SubmitStatusScreen (CommandListener listener) { 
     34        this(listener, -1); 
     35        } 
     36     
     37        public SubmitStatusScreen (CommandListener listener, int modelID) { 
    3438        //#style submitPopup 
    3539                super("Send Status"); 
    3640                this.modelID = modelID; 
    37                 setCommandListener(fta); 
     41                setCommandListener(listener); 
    3842                 
    3943                okCommand = new Command("OK", Command.OK, 1); 
     
    5357         
    5458        public void updateStatus () { 
    55                 counter += REFRESH_INTERVAL; 
     59                int status = JavaRosaServiceProvider.instance().getTransportManager().getModelDeliveryStatus(modelID, false); 
     60                updateStatus(status); 
     61        } 
     62         
     63        public void updateStatus(int status) { 
     64                        counter += REFRESH_INTERVAL; 
    5665 
    57                 int status = JavaRosaServiceProvider.instance().getTransportManager().getModelDeliveryStatus(modelID, false); 
    58                 if (status != TransportMessage.STATUS_NEW) 
    59                         timer.cancel(); 
     66                        if (status != TransportMessage.STATUS_NEW) 
     67                                timer.cancel(); 
    6068 
    61                 String message; 
    62                 switch (status) { 
    63                 case TransportMessage.STATUS_NEW:       message = (counter < TIMEOUT ? MSG_SENDING : MSG_TOO_LONG); break; 
    64                 case TransportMessage.STATUS_DELIVERED: message = MSG_SUCCESS + getServerResponse(); break; 
    65                 case TransportMessage.STATUS_FAILED:    message = MSG_FAILED; break; 
    66                 default:                                message = MSG_UNKNOWN_ERROR; break; 
    67                 } 
     69                        String message; 
     70                        switch (status) { 
     71                        case TransportMessage.STATUS_NEW:       message = (counter < TIMEOUT ? MSG_SENDING : MSG_TOO_LONG); break; 
     72                        case TransportMessage.STATUS_DELIVERED: message = MSG_SUCCESS + getServerResponse(); break; 
     73                        case TransportMessage.STATUS_FAILED:    message = MSG_FAILED; break; 
     74                        default:                                message = MSG_UNKNOWN_ERROR; break; 
     75                        } 
    6876 
    69                 msg.setText(message); 
     77                        msg.setText(message); 
    7078        } 
    7179         
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/.classpath

    r1476 r1482  
    55        <classpathentry combineaccessrules="false" kind="src" path="/org.javarosa.core"/> 
    66        <classpathentry combineaccessrules="false" kind="src" path="/org.javarosa.user"/> 
    7         <classpathentry kind="lib" path="C:/Clarius/JavaROSA/J2ME-Polish/import/cldc-1.1-java5.0.jar"/> 
    8         <classpathentry kind="lib" path="C:/Clarius/JavaROSA/J2ME-Polish/import/fileconnection.jar"/> 
    9         <classpathentry kind="lib" path="C:/Clarius/JavaROSA/J2ME-Polish/import/mmapi.jar"/> 
    10         <classpathentry kind="lib" path="C:/Clarius/JavaROSA/J2ME-Polish/import/wmapi.jar"/> 
    11         <classpathentry kind="lib" path="C:/Clarius/JavaROSA/J2ME-Polish/import/enough-j2mepolish-client-java5.jar"/> 
    127        <classpathentry kind="lib" path="/org.mesh4j.sync/lib/kxml2-2.3.0.jar"/> 
    138        <classpathentry combineaccessrules="false" kind="src" path="/org.javarosa.xform"/> 
     
    1510        <classpathentry combineaccessrules="false" kind="src" path="/org.javarosa.formmanager"/> 
    1611        <classpathentry combineaccessrules="false" kind="src" path="/org.mesh4j.sync.message"/> 
    17         <classpathentry kind="lib" path="C:/Clarius/JavaROSA/J2ME-Polish/import/midp-2.0.jar"/> 
     12        <classpathentry kind="con" path="J2MELIB"/> 
     13        <classpathentry combineaccessrules="false" kind="src" path="/org.javarosa.communication"/> 
     14        <classpathentry combineaccessrules="false" kind="src" path="/org.javarosa.communication.ui"/> 
    1815        <classpathentry kind="output" path="bin"/> 
    19         <classpathentry kind="con" path="J2MELIB"/> 
    2016</classpath> 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/activity/mesh4j/extensions/DeleteSyncInfoActivity.java

    r1476 r1482  
    1111import org.javarosa.core.api.IActivity; 
    1212import org.javarosa.core.api.IShell; 
     13import org.javarosa.core.services.UnavailableServiceException; 
    1314import org.javarosa.core.services.mesh4j.extensions.SyncEngineService; 
    1415import org.javarosa.view.MessageScreen; 
     
    8283                        e.printStackTrace(); 
    8384                        this.messageScreen.setMessage("Fail delete info !!!"); 
     85                } catch (UnavailableServiceException e) { 
     86                        e.printStackTrace(); 
     87                        this.messageScreen.setMessage("Fail delete info !!!"); 
    8488                } 
    8589        } 
     
    8892                this.deleteXforms = true; 
    8993        } 
     94 
     95        public Context getActivityContext() { 
     96                return context; 
     97        } 
     98 
     99        public void setShell(IShell shell) { 
     100                this.shell = shell; 
     101                 
     102        } 
    90103} 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/activity/mesh4j/extensions/ImportFormDefinitionActivity.java

    r1476 r1482  
    1212import org.javarosa.core.api.IActivity; 
    1313import org.javarosa.core.api.IShell; 
     14import org.javarosa.core.services.UnavailableServiceException; 
    1415import org.javarosa.core.services.mesh4j.extensions.SyncEngineService; 
    1516import org.javarosa.core.services.transport.TransportMessage; 
     
    7576                this.sendStatus = TransportMessage.STATUS_NEW; 
    7677                 
    77                 submitStatusScreen = new SubmitStatusScreen(); 
     78                submitStatusScreen = new SubmitStatusScreen(this); 
    7879                submitStatusScreen.setCommandListener(this); 
    7980                 
     
    132133                        e.printStackTrace(); 
    133134                        this.sendStatus = TransportMessage.STATUS_FAILED; 
     135                } catch (UnavailableServiceException e) { 
     136                        e.printStackTrace(); 
     137                        this.sendStatus = TransportMessage.STATUS_FAILED; 
    134138                } 
    135139        } 
    136140 
     141        public Context getActivityContext() { 
     142                return this.context; 
     143        } 
     144 
     145        public void setShell(IShell shell) { 
     146                this.shell = shell; 
     147        } 
     148 
    137149} 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/activity/mesh4j/extensions/SyncActivity.java

    r1476 r1482  
    170170                return this.sendStatus == TransportMessage.STATUS_NEW; 
    171171        } 
     172 
     173        public Context getActivityContext() { 
     174                return this.context; 
     175        } 
     176 
     177        public void setShell(IShell shell) { 
     178                this.shell = shell; 
     179        } 
    172180} 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/communication/http/mesh4j/extensions/Mesh4jHttpTransportMethod.java

    r1476 r1482  
    33import java.util.Vector; 
    44 
     5import org.javarosa.communication.http.HttpTransportDestination; 
     6import org.javarosa.communication.http.HttpTransportProperties; 
     7import org.javarosa.communication.http.ui.HttpDestinationRetrievalActivity; 
     8import org.javarosa.core.JavaRosaServiceProvider; 
     9import org.javarosa.core.api.IActivity; 
    510import org.javarosa.core.services.ITransportManager; 
    611import org.javarosa.core.services.mesh4j.extensions.SyncEngineService; 
     12import org.javarosa.core.services.transport.ITransportDestination; 
    713import org.javarosa.core.services.transport.TransportMessage; 
    814import org.javarosa.core.services.transport.TransportMethod; 
     
    1622        private TransportMessage message; 
    1723        private ITransportManager manager; 
     24        private IActivity retrievalActivity; 
     25         
     26        private Thread worker;  
    1827 
    1928        // BUSINESS METHODS 
     
    3039                this.message = message; 
    3140                this.manager = manager; 
    32                 new Thread(new WorkerThread()).start(); 
     41                worker = new Thread(new WorkerThread()); 
     42                worker.start(); 
    3343                //sendData(); 
    3444        } 
     
    6979                }  
    7080        } 
     81 
     82        public void closeConnections() { 
     83                //TODO: What should close here? 
     84        } 
     85 
     86        public ITransportDestination getDefaultDestination() { 
     87                String url = JavaRosaServiceProvider.instance().getPropertyManager().getSingularProperty(HttpTransportProperties.POST_URL_PROPERTY); 
     88                if(url == null) { 
     89                        return null; 
     90                } else { 
     91                        return new HttpTransportDestination(url); 
     92                } 
     93        } 
     94 
     95        public IActivity getDestinationRetrievalActivity() { 
     96                return retrievalActivity; 
     97        } 
     98 
     99        public void setDestinationRetrievalActivity(IActivity activity) { 
     100                retrievalActivity = activity; 
     101        } 
    71102} 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/core/services/mesh4j/extensions/SyncEngineService.java

    r1476 r1482  
    1010import org.javarosa.core.model.storage.FormDefRMSUtility; 
    1111import org.javarosa.core.services.IService; 
     12import org.javarosa.core.services.UnavailableServiceException; 
    1213import org.javarosa.core.services.properties.mesh4j.extensions.Mesh4jPropertyRules; 
    1314import org.javarosa.mesh4j.sync.adapter.DataModelTreeContentAdapter; 
     
    1920import org.mesh4j.sync.SyncEngine; 
    2021import org.mesh4j.sync.adapters.feed.atom.AtomSyndicationFormat; 
    21 import org.mesh4j.sync.adapters.feed.rss.RssSyndicationFormat; 
    2222import org.mesh4j.sync.adapters.http.HttpSyncAdapter; 
    2323import org.mesh4j.sync.adapters.rms.storage.RmsStorageSyncRepository; 
     
    5353import org.mesh4j.sync.message.protocol.NoChangesMessageProcessor; 
    5454import org.mesh4j.sync.model.Item; 
     55import org.mesh4j.sync.validations.MeshException; 
    5556 
    5657public class SyncEngineService implements IService, IMessageSyncAdapterFactory, IMessageSyncAware, ISmsConnectionInboundOutboundNotification, ISmsRetiesNotification { 
     
    130131        } 
    131132 
    132         public static void synchronizeItemsAsynchronousSmsMethod(String formName, String smsNumber) { 
     133        public static void synchronizeItemsAsynchronousSmsMethod(String formName, String smsNumber) throws UnavailableServiceException { 
    133134                SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
    134135                if(syncEngine != null){ 
     
    163164        } 
    164165 
    165         public static void importFormDefFromSMS() { 
     166        public static void importFormDefFromSMS() throws UnavailableServiceException { 
    166167                String smsNumber = SyncEngineService.getDefaultSmsNumber(); 
    167168                SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
     
    173174        } 
    174175         
    175         public static void cancelSync(String formName, String smsNumber){ 
     176        public static void cancelSync(String formName, String smsNumber) throws UnavailableServiceException{ 
    176177                SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
    177178                if(syncEngine != null){ 
     
    180181        } 
    181182 
    182         public static void deleteInfo(boolean deleteXforms){ 
     183        public static void deleteInfo(boolean deleteXforms) throws UnavailableServiceException{ 
    183184                for (String name : RecordStore.listRecordStores()) { 
    184185                        boolean noOk = true; 
     
    227228        } 
    228229         
    229         public static void forceSyncRetries() { 
     230        public static void forceSyncRetries() throws UnavailableServiceException { 
    230231                SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
    231232                ISmsChannel channel = (ISmsChannel)syncEngine.smsSyncEngine.getChannel(); 
     
    288289 
    289290        public void notifyProblemWithSessionCreation(IMessage message) { 
    290                 SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
    291                 String sourceId = syncEngine.smsSyncEngine.getProtocol().getBeginMessageProcessor().getSourceId(message.getData()); 
    292                 this.addMessage("Protocol Error: message was discarded because session can not be created: " + translateMessageType(message) + " session: " + message.getSessionId() + " endpoint: " + message.getEndpoint().getEndpointId() + " source: " + sourceId); 
     291                SyncEngineService syncEngine; 
     292                try { 
     293                        syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
     294                        String sourceId = syncEngine.smsSyncEngine.getProtocol().getBeginMessageProcessor().getSourceId(message.getData()); 
     295                        this.addMessage("Protocol Error: message was discarded because session can not be created: " + translateMessageType(message) + " session: " + message.getSessionId() + " endpoint: " + message.getEndpoint().getEndpointId() + " source: " + sourceId); 
     296                } catch (UnavailableServiceException e) { 
     297                        e.printStackTrace(); 
     298                        throw new MeshException("SyncEngineService was not available"); 
     299                } 
    293300        } 
    294301         
     
    402409        } 
    403410         
    404         public static void cleanConsole(){ 
    405                 SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
    406                 synchronized (SEMAPHORE) { 
    407                         syncEngine.consoleRepository.deleteAll();        
     411        public static void cleanConsole() { 
     412                SyncEngineService syncEngine; 
     413                try { 
     414                        syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
     415                        synchronized (SEMAPHORE) { 
     416                                syncEngine.consoleRepository.deleteAll();        
     417                        } 
     418                } catch (UnavailableServiceException e) { 
     419                        e.printStackTrace(); 
     420                        throw new MeshException("SyncEngineService was not available"); 
    408421                } 
    409422        } 
    410423         
    411424        public static Vector<String> getConsoleItems() { 
    412                 SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
    413                 synchronized (SEMAPHORE) { 
    414                         return syncEngine.consoleRepository.getAll(); 
     425                try { 
     426                        SyncEngineService syncEngine = (SyncEngineService) JavaRosaServiceProvider.instance().getService(SyncEngineService.NAME); 
     427                        synchronized (SEMAPHORE) { 
     428                                return syncEngine.consoleRepository.getAll(); 
     429                        } 
     430                } catch (UnavailableServiceException e) { 
     431                        e.printStackTrace(); 
     432                        throw new MeshException("SyncEngineService was not available"); 
    415433                } 
    416434        } 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/core/services/properties/mesh4j/extensions/Mesh4jPropertyRules.java

    r1476 r1482  
    158158        } 
    159159 
     160        public String getHumanReadableDescription(String propertyName) { 
     161                //TODO: Jazz this up with some decorated descriptions 
     162                return propertyName; 
     163        } 
     164 
     165        public String getHumanReadableValue(String propertyName, String value) { 
     166                //TODO: Jazz this up with some decorated descriptions 
     167                return value; 
     168        } 
     169 
     170        public void handlePropertyChanges(String propertyName) { 
     171                // Nothing (yet). 
     172        } 
     173 
    160174 
    161175} 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/mesh4j/sync/adapter/DataModelTreeContentAdapter.java

    r1476 r1482  
    1515import org.javarosa.core.model.storage.DataModelTreeRMSUtility; 
    1616import org.javarosa.core.model.storage.FormDefRMSUtility; 
     17import org.javarosa.core.services.storage.utilities.IRecordStoreEnumeration; 
    1718import org.javarosa.model.xform.XFormSerializingVisitor; 
    1819import org.javarosa.xform.parse.XFormParser; 
     
    9697                Vector<IContent> result = new Vector<IContent>(); 
    9798                DataModelTreeRMSUtility modelUtil = this.getDataModelTreeRMSUtility(); 
    98                 RecordEnumeration records = null; 
     99                IRecordStoreEnumeration records = null; 
    99100                try{ 
    100101                        FormDef formDef = new FormDef(); 
     
    175176                } 
    176177                 
    177                 byte[] payloadBytes = this.xFormSerializer.serializeDataModel(theModel, formDef); 
     178                byte[] payloadBytes = this.xFormSerializer.serializeDataModel(theModel); 
    178179                String xml = new String(payloadBytes, "UTF-8"); 
    179180                xml = xml.substring(XML_HEADER.length(), xml.length()); 
     
    241242        public void deleteAll() { 
    242243                DataModelTreeRMSUtility modelUtil = this.getDataModelTreeRMSUtility(); 
    243                 RecordEnumeration records = null; 
     244                IRecordStoreEnumeration records = null; 
    244245                try{ 
    245246                        records = modelUtil.enumerateMetaData(); 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/mesh4j/sync/adapter/FormDefContentAdapter.java

    r1476 r1482  
    66import java.util.Vector; 
    77 
    8 import javax.microedition.rms.RecordEnumeration; 
    9  
    108import org.javarosa.core.JavaRosaServiceProvider; 
    119import org.javarosa.core.model.FormDef; 
    1210import org.javarosa.core.model.storage.FormDefMetaData; 
    1311import org.javarosa.core.model.storage.FormDefRMSUtility; 
     12import org.javarosa.core.services.storage.utilities.IRecordStoreEnumeration; 
    1413import org.javarosa.xform.mesh4j.extensions.FormDefUtils; 
    1514import org.mesh4j.sync.adapters.rms.storage.RmsRecordContent; 
     
    7271                Vector<IContent> result = new Vector<IContent>(); 
    7372                FormDefRMSUtility modelUtil = this.getFormDefRMSUtility(); 
    74                 RecordEnumeration records = null; 
     73                IRecordStoreEnumeration records = null; 
    7574                try{ 
    7675                        records = modelUtil.enumerateMetaData(); 
  • branches/dev/j2merosa/org.javarosa.mesh4j.sync.extensions/src/org/javarosa/mesh4j/sync/adapter/UserContentAdapter.java

    r1476 r1482  
    77 
    88import org.javarosa.core.JavaRosaServiceProvider; 
     9import org.javarosa.core.services.storage.utilities.IRecordStoreEnumeration; 
    910import org.javarosa.user.model.User; 
    1011import org.javarosa.user.storage.UserRMSUtility; 
     
    5859                Vector<IContent> result = new Vector<IContent>(); 
    5960                 
    60                 RecordEnumeration records = null; 
     61                IRecordStoreEnumeration records = null; 
    6162                try { 
    6263                        records = this.rmsUtility.enumerateMetaData();