From: Frank S. <fra...@te...> - 2008-10-15 20:26:25
|
No, I have removed all the object, exept the cancel and save button. The AMD is working, but when clicking on the cancel button (on the AMD) I see my 'busy'-indicator on the main component. So there is something happening in the main page, there are AjaxObserveFields in the main component, perhaps that has something to do with it. Op 15-okt-08, om 22:16 heeft Chuck Hill het volgende geschreven: > > On Oct 15, 2008, at 1:09 PM, Frank Stock wrote: > >> I see the 'busy' on the main page, but I am sure now that the AMD >> is doing nothing at all. > > What does that mean? It does not open now? Is your Wonder up to > date? > > > Chuck > >> Op 15-okt-08, om 22:03 heeft Chuck Hill het volgende geschreven: >> >>> Please keep replies on the list. >>> >>> >>> On Oct 15, 2008, at 12:56 PM, Frank Stock wrote: >>> >>>> It starts from an page with many Ajaxupdatecontainers. I will try >>>> to isolate the problem. Do you suggest not to use the AMD? >>> >>> >>> No, I wrote it. :-) It works fine (for me anyway), but you do >>> need to think about what is really happening. If you are editing >>> values it is one of the more complex Ajax components to use. >>> >>> Chuck >>> >>> >>>> Op 15-okt-08, om 21:41 heeft Chuck Hill het volgende geschreven: >>>> >>>>> I don't see anything obvious. The problem is in a WOConditional: >>>>> >>>>>>> [2008-10-15 21:04:36 CEST] <WorkerThread0> >>>>>>> java.lang.NullPointerException >>>>>>> at >>>>>>> com >>>>>>> .webobjects >>>>>>> .appserver >>>>>>> ._private >>>>>>> .WOKeyValueAssociation >>>>>>> .valueInComponent(WOKeyValueAssociation.java:46) >>>>>>> at >>>>>>> com >>>>>>> .webobjects >>>>>>> .appserver >>>>>>> .WOAssociation.booleanValueInComponent(WOAssociation.java:278) >>>>>>> at >>>>>>> er >>>>>>> .extensions >>>>>>> .components >>>>>>> .conditionals >>>>>>> .ERXWOConditional.conditionInComponent(ERXWOConditional.java:45) >>>>>> >>>>> >>>>> Is it possible that the dialog is changing a value that affects >>>>> the structure of the page? The AjaxModalDialog is tricky to >>>>> use. It looks like a separate page, but functions like an >>>>> invisible div on the page. If the AMD changes things that >>>>> cause the structure of the page to change, strange things can >>>>> happen. >>>>> >>>>> >>>>> Chuck >>>>> >>>>> >>>>> >>>>> On Oct 15, 2008, at 12:27 PM, Frank Stock wrote: >>>>> >>>>>> Hi Chuck, >>>>>> >>>>>> These are the bindings in my component: >>>>>> >>>>>> <wo:AjaxModalDialog id = "stockbeheerModelDialog" title = >>>>>> "Stockbeheer" action = "$stockbeheer" width = "500" >>>>>> overlayOpacity = "0.5" overlayDuration = "0.0" >>>>>> slideDownDuration = "0.0" slideUpDuration = "0.0" > >>>>>> <wo:ERXWOTemplate templateName = >>>>>> "link"><wo:WOImage filename = "information.png" framework = >>>>>> "app" /></wo:ERXWOTemplate> >>>>>> </wo:AjaxModalDialog> >>>>>> >>>>>> and this is from the dialog: >>>>>> >>>>>> <wo:form name="StockBeheerForm" multipleSubmit = "$true"> >>>>>> <div class="modaldialog"> >>>>>> <table> >>>>>> <tr> >>>>>> <td> <wo:localized value = "ProdNr" /> </td><td><wo:textfield >>>>>> value = "$geselecteerdProduct_K_A.productCode.productNr"></ >>>>>> wo:textfield></td> >>>>>> <td> <wo:localized value = "EtikNr" /> </td><td><wo:str value = >>>>>> "$geselecteerdProduct_K_A.artikel.artikelnr_Etiket" >>>>>> valueWhenEmpty = "-"/></td> >>>>>> <td> <wo:localized value = "RegDat" /> </td><td><wo:str value = >>>>>> "??/??/??"></wo:str></td><td><wo:str value = "??"/></td> >>>>>> </tr> >>>>>> <tr> >>>>>> <td> <wo:localized value = "LevProdNr" /> </td><td><wo:str >>>>>> value = "???"/></td> >>>>>> <td> </td><td> </td><td> </td><td> <wo:localized >>>>>> value = "Door" /> </td><td><wo:str value = "??"/></td> >>>>>> </tr> >>>>>> <tr> >>>>>> <td> <wo:localized value = "Artnr" /> </td><td><wo:str value = >>>>>> "$geselecteerdProduct_K_A.artikel.artikelNr"/></td> >>>>>> <td><wo:str value = >>>>>> "$geselecteerdProduct_K_A.artikel.aantalUnPack"/><wo:str value >>>>>> = "$geselecteerdProduct_K_A.artikel.eenheid"/></td> >>>>>> <td><wo:str value = >>>>>> "$geselecteerdProduct_K_A.artikel.artikelNaamKlantNederlands"/ >>>>>> ></td> >>>>>> </tr> >>>>>> </table> >>>>>> <wo:AjaxSubmitButton action = "$cancelEdit" evalScripts = true >>>>>> value = "Cancel" formName = "StockBeheerForm"/> >>>>>> <wo:AjaxSubmitButton action = "$saveEdit" evalScripts = true >>>>>> value = "Save" formName = "StockBeheerForm"/> >>>>>> </div> >>>>>> < >>>>>> Op 15-okt-08, om 21:19 heeft Chuck Hill het volgende geschreven: >>>>>> >>>>>>> We need to see the bindings. >>>>>>> >>>>>>> Chuck >>>>>>> >>>>>>> >>>>>>> On Oct 15, 2008, at 12:11 PM, Frank Stock wrote: >>>>>>> >>>>>>>> Hi All, >>>>>>>> >>>>>>>> I am using AjaxModalDialog in my wonder application (10.5.5, >>>>>>>> WO 5.3) >>>>>>>> My AjaxModalDialog start fine, but when clicking on the >>>>>>>> cancel or save button I always get the error and I can't find >>>>>>>> what I am doing wrong. >>>>>>>> Has anayone an idea where to look? >>>>>>>> >>>>>>>> Thanks in advance, >>>>>>>> Frank Stock >>>>>>>> Belgium >>>>>>>> >>>>>>>> >>>>>>>> okt 15 21:03:55 chemlabVerkoop[63292] (ERXApplication.java: >>>>>>>> 1625) DEBUG er.extensions.ERXApplication.RequestHandling - >>>>>>>> <er.extensions.appserver.ERXRequest >>>>>>>> (<er.extensions.appserver.ERXRequest httpVersion=HTTP/1.1 >>>>>>>> headers={user-agent = (Mozilla/5.0 (Macintosh; U; Intel Mac >>>>>>>> OS X 10_5_5; nl-nl) AppleWebKit/528.5+ (KHTML, like Gecko) >>>>>>>> Version/3.1.2 Safari/525.20.1); cookie = >>>>>>>> (wosid=QdVcEYuKvzPadDDE5YCdT0; woinst=-1; BTL=-); origin = (http://10.0.0.3:63292 >>>>>>>> ); accept = (text/javascript, text/html, application/xml, >>>>>>>> text/xml, */*); referer = (http://10.0.0.3:63292/cgi-bin/WebObjects/chemlabVerkoop.woa/wa/login >>>>>>>> ); content-type = (application/x-www-form-urlencoded; >>>>>>>> charset=UTF-8); accept-encoding = (gzip, deflate); content- >>>>>>>> length = ("111"); x-prototype-version = (1.6.0.3); x- >>>>>>>> requested-with = (XMLHttpRequest); host = (10.0.0.3:63292); >>>>>>>> accept-language = (nl-nl); connection = (keep-alive); } >>>>>>>> content-length=111 cookies=null userInfo=null>) method=POST >>>>>>>> uri=/cgi-bin/WebObjects/chemlabVerkoop.woa/ajax/ >>>>>>>> 8.0.25.3.1.3.1?1224097435410 defaultFormValueEncoding=UTF-8 >>>>>>>> formValueEncodingDetectionEnabled=NO formValueEncoding=UTF-8 >>>>>>>> formValues={AJAX_SUBMIT_BUTTON_NAME = ("0.25.3.1.3.1.32"); >>>>>>>> 0.25.3.1.3.1.3 = ("CL00.0102"); WOIsmapCoords = >>>>>>>> ("1224097435410"); 0.25.3.1.3.1.32 = ("Cancel"); >>>>>>>> 0.25.3.1.3.1.34 = ("Save"); _ = (""); } > >>>>>>>> okt 15 21:04:11 chemlabVerkoop[63292] >>>>>>>> (ERXNSLogLog4jBridge.java:40) INFO NSLog - ModalDialog awake >>>>>>>> okt 15 21:04:15 chemlabVerkoop[63292] >>>>>>>> (ERXNSLogLog4jBridge.java:40) INFO NSLog - Artikel awake >>>>>>>> okt 15 21:04:36 chemlabVerkoop[63292] >>>>>>>> (ERXNSLogLog4jBridge.java:43) WARN NSLog - >>>>>>>> <er.ajax.AjaxRequestHandler>: Exception occurred while >>>>>>>> handling request: >>>>>>>> java.lang.NullPointerException >>>>>>>> [2008-10-15 21:04:36 CEST] <WorkerThread0> >>>>>>>> java.lang.NullPointerException >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOKeyValueAssociation >>>>>>>> .valueInComponent(WOKeyValueAssociation.java:46) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> .WOAssociation.booleanValueInComponent(WOAssociation.java:278) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .components >>>>>>>> .conditionals >>>>>>>> .ERXWOConditional.conditionInComponent(ERXWOConditional.java: >>>>>>>> 45) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .components >>>>>>>> .conditionals >>>>>>>> .ERXWOConditional >>>>>>>> .meetsConditionInComponent(ERXWOConditional.java:50) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .components >>>>>>>> .conditionals >>>>>>>> .ERXWOConditional.takeValuesFromRequest(ERXWOConditional.java: >>>>>>>> 88) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup >>>>>>>> .takeChildrenValuesFromRequest(WODynamicGroup.java:81) >>>>>>>> at >>>>>>>> er >>>>>>>> .ajax >>>>>>>> .AjaxDynamicElement >>>>>>>> .takeValuesFromRequest(AjaxDynamicElement.java:121) >>>>>>>> at >>>>>>>> er >>>>>>>> .ajax >>>>>>>> .AjaxUpdateContainer >>>>>>>> .takeValuesFromRequest(AjaxUpdateContainer.java:50) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup >>>>>>>> .takeChildrenValuesFromRequest(WODynamicGroup.java:81) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentContent >>>>>>>> .takeValuesFromRequest(WOComponentContent.java:20) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup >>>>>>>> .takeChildrenValuesFromRequest(WODynamicGroup.java:81) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver.WOComponent.takeValuesFromRequest(WOComponent.java: >>>>>>>> 914) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .components >>>>>>>> .ERXComponent.takeValuesFromRequest(ERXComponent.java:84) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentReference >>>>>>>> .takeValuesFromRequest(WOComponentReference.java:97) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup >>>>>>>> .takeChildrenValuesFromRequest(WODynamicGroup.java:81) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WODynamicGroup.takeValuesFromRequest(WODynamicGroup.java:89) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver.WOComponent.takeValuesFromRequest(WOComponent.java: >>>>>>>> 914) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .components >>>>>>>> .ERXComponent.takeValuesFromRequest(ERXComponent.java:84) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver.WOSession.takeValuesFromRequest(WOSession.java:1139) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .appserver.ERXSession.takeValuesFromRequest(ERXSession.java: >>>>>>>> 528) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> .WOApplication.takeValuesFromRequest(WOApplication.java:1350) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentRequestHandler >>>>>>>> ._dispatchWithPreparedPage(WOComponentRequestHandler.java:189) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentRequestHandler >>>>>>>> ._dispatchWithPreparedSession(WOComponentRequestHandler.java: >>>>>>>> 287) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentRequestHandler >>>>>>>> ._dispatchWithPreparedApplication >>>>>>>> (WOComponentRequestHandler.java:322) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentRequestHandler >>>>>>>> ._handleRequest(WOComponentRequestHandler.java:358) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private >>>>>>>> .WOComponentRequestHandler >>>>>>>> .handleRequest(WOComponentRequestHandler.java:432) >>>>>>>> at >>>>>>>> er >>>>>>>> .ajax >>>>>>>> .AjaxRequestHandler.handleRequest(AjaxRequestHandler.java:17) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver.WOApplication.dispatchRequest(WOApplication.java: >>>>>>>> 1306) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .appserver >>>>>>>> .ERXApplication >>>>>>>> .dispatchRequestImmediately(ERXApplication.java:1646) >>>>>>>> at >>>>>>>> er >>>>>>>> .extensions >>>>>>>> .appserver.ERXApplication.dispatchRequest(ERXApplication.java: >>>>>>>> 1610) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver >>>>>>>> ._private.WOWorkerThread.runOnce(WOWorkerThread.java:173) >>>>>>>> at >>>>>>>> com >>>>>>>> .webobjects >>>>>>>> .appserver._private.WOWorkerThread.run(WOWorkerThread.java:254) >>>>>>>> at java.lang.Thread.run(Thread.java:613) >>>>>>>> >>>>>>>> okt 15 21:04:36 chemlabVerkoop[63292] (ERXApplication.java: >>>>>>>> 1358) ERROR er.extensions.appserver.ERXApplication - >>>>>>>> Exception caught: null >>>>>>>> Extra info: { >>>>>>>> "Session" = "<Session sessionID=QdVcEYuKvzPadDDE5YCdT0 >>>>>>>> timeOut(sec)=3600.0 terminating=false_wasTimedOutfalse >>>>>>>> contextArray=((\"0\"), (\"2\")) contextPageInfos={0 = >>>>>>>> <com.webobjects.appserver._private.WOTransactionRecord >>>>>>>> responsePage=<Main name: Main subcomponents: null > >>>>>>>> requestSignature=null.null>; 2 = >>>>>>>> <com.webobjects.appserver._private.WOTransactionRecord >>>>>>>> responsePage=<ArtikelComponent name: ArtikelComponent >>>>>>>> subcomponents: {0.25.3.1.3.1 = <er.ajax.AjaxModalDialog name: >>>>>>>> er.ajax.AjaxModalDialog subcomponents: null >; } > >>>>>>>> requestSignature=null.null>; } languages=(\"Dutch_NL\", >>>>>>>> \"Dutch\", \"Nonlocalized\", \"English\") >>>>>>>> componentState={page_replacement_cache = >>>>>>>> {4=[TransactionRecord: page = <ArtikelComponent name: >>>>>>>> ArtikelComponent subcomponents: {0.25.3.1.3.1 = >>>>>>>> <er.ajax.AjaxModalDialog name: er.ajax.AjaxModalDialog >>>>>>>> subcomponents: null >; } >; context = 4; key = 2_artikel; >>>>>>>> oldPage? true], 5=[TransactionRecord: page = >>>>>>>> <ArtikelComponent name: ArtikelComponent subcomponents: >>>>>>>> {0.25.3.1.3.1 = <er.ajax.AjaxModalDialog name: >>>>>>>> er.ajax.AjaxModalDialog subcomponents: null >; } >; context = >>>>>>>> 5; key = 4_artikel; oldPage? false], 7=[TransactionRecord: >>>>>>>> page = <ArtikelComponent name: ArtikelComponent >>>>>>>> subcomponents: {0.25.3.1.3.1 = <er.ajax.AjaxModalDialog name: >>>>>>>> er.ajax.AjaxModalDialog subcomponents: null >; } >; context = >>>>>>>> 7; key = 2_artikel; oldPage? false], 8=[TransactionRecord: >>>>>>>> page = <ArtikelComponent name: ArtikelComponent >>>>>>>> subcomponents: {0.25.3.1.3.1 = <er.ajax.AjaxModalDialog name: >>>>>>>> er.ajax.AjaxModalDialog subcomponents: null >; } >; context = >>>>>>>> 8; key = 7_stockbeheerModelDialog; oldPage? false]}; } >>>>>>>> currentContextID=9 distributionEnabled=false >>>>>>>> cookieRendezVousEnabled=true URLRendezVousEnabled=fals >>>>>>>> localizer=<er.extensions.localization.ERXLocalizer Dutch> >>>>>>>> messageEncoding=<er.extensions.appserver.ERXMessageEncoding >>>>>>>> encoding: UTF-8> >>>>>>>> browser=<er.extensions.appserver.ERXBasicBrowser browserName: >>>>>>>> Safari, version: 525.20.1, mozillaVersion: 5.0, platform: >>>>>>>> MacOS>>"; >>>>>>>> "PreviousPageList" = (); >>>>>>>> "Headers" = { >>>>>>>> "user-agent" = "Mozilla/5.0 (Macintosh; U; Intel Mac OS X >>>>>>>> 10_5_5; nl-nl) AppleWebKit/528.5+ (KHTML, like Gecko) Version/ >>>>>>>> 3.1.2 Safari/525.20.1"; >>>>>>>> "cookie" = "wosid=QdVcEYuKvzPadDDE5YCdT0; woinst=-1; BTL=-"; >>>>>>>> "origin" = "http://10.0.0.3:63292"; >>>>>>>> "accept" = "text/javascript, text/html, application/xml, >>>>>>>> text/xml, */*"; >>>>>>>> "referer" = "http://10.0.0.3:63292/cgi-bin/WebObjects/chemlabVerkoop.woa/wa/login >>>>>>>> "; >>>>>>>> "content-type" = "application/x-www-form-urlencoded; >>>>>>>> charset=UTF-8"; >>>>>>>> "x-prototype-version" = "1.6.0.3"; >>>>>>>> "content-length" = "111"; >>>>>>>> "accept-encoding" = "gzip, deflate"; >>>>>>>> "original_context_id" = "8"; >>>>>>>> "x-requested-with" = "XMLHttpRequest"; >>>>>>>> "host" = "10.0.0.3:63292"; >>>>>>>> "accept-language" = "nl-nl"; >>>>>>>> "connection" = "keep-alive"; >>>>>>>> }; >>>>>>>> "CurrentPage" = "ArtikelComponent"; >>>>>>>> "Bundles" = { >>>>>>>> "Ajax" = ""; >>>>>>>> "ERExtensions" = ""; >>>>>>>> "JavaWebObjects" = "5.3.3"; >>>>>>>> "ERDirectToWeb" = "5.0.0.8427"; >>>>>>>> "ERJavaMail" = "5.0.0.8427"; >>>>>>>> "JavaFoundation" = "5.3.3"; >>>>>>>> "JavaJDBCAdaptor" = "5.3.2"; >>>>>>>> "JavaDirectToWeb" = "5.3.2"; >>>>>>>> "FrontBasePlugIn" = ""; >>>>>>>> "WOOgnl" = ""; >>>>>>>> "JavaEOAccess" = "5.3.2"; >>>>>>>> "JavaEOControl" = "5.3.2"; >>>>>>>> "JavaEOProject" = "5.3.2"; >>>>>>>> "JavaWOExtensions" = "5.0.0.8427"; >>>>>>>> "JavaWOJSPServlet" = "5.3.2"; >>>>>>>> "JavaXML" = "5.3"; >>>>>>>> "chemlabVerkoop" = ""; >>>>>>>> "ERPrototypes" = "5.0.0.8427"; >>>>>>>> "JavaDTWGeneration" = "5.3.2"; >>>>>>>> "chemlablogic" = ""; >>>>>>>> }; >>>>>>>> "URL" = "/cgi-bin/WebObjects/chemlabVerkoop.woa/ajax/ >>>>>>>> 8.0.25.3.1.3.1?1224097435410"; >>>>>>>> } >>>>>>>> >>>>>>>> ------------------------------------------------------------------------- >>>>>>>> This SF.Net email is sponsored by the Moblin Your Move >>>>>>>> Developer's challenge >>>>>>>> Build the coolest Linux based applications with Moblin SDK & >>>>>>>> win great prizes >>>>>>>> Grand prize is a trip for two to an Open Source event >>>>>>>> anywhere in the world >>>>>>>> http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ >>>>>>>> Wonder-disc mailing list >>>>>>>> Won...@li... >>>>>>>> https://lists.sourceforge.net/lists/listinfo/wonder-disc >>>>>>> >>>>>>> -- >>>>>>> Chuck Hill Senior Consultant / VP Development >>>>>>> >>>>>>> Practical WebObjects - for developers who want to increase >>>>>>> their overall knowledge of WebObjects or who are trying to >>>>>>> solve specific problems. >>>>>>> http://www.global-village.net/products/practical_webobjects >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> Chuck Hill Senior Consultant / VP Development >>>>> >>>>> Practical WebObjects - for developers who want to increase their >>>>> overall knowledge of WebObjects or who are trying to solve >>>>> specific problems. >>>>> http://www.global-village.net/products/practical_webobjects >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >>> -- >>> Chuck Hill Senior Consultant / VP Development >>> >>> Practical WebObjects - for developers who want to increase their >>> overall knowledge of WebObjects or who are trying to solve >>> specific problems. >>> http://www.global-village.net/products/practical_webobjects >>> >>> >>> >>> >>> >>> >>> >> >> > > -- > Chuck Hill Senior Consultant / VP Development > > Practical WebObjects - for developers who want to increase their > overall knowledge of WebObjects or who are trying to solve specific > problems. > http://www.global-village.net/products/practical_webobjects > > > > > > > |