[Seaside] Deleting from GOODS.

Adrian Lienhard adi at netstyle.ch
Sat Jul 24 11:54:57 CEST 2004


Hi Larry

It should say "allRecords remove: aRecord" and not #removeAt: (latter 
takes an integer to remove an item from the ordered collection at a 
specific index).

Adrian

On Jul 24, 2004, at 4:22 AM, LK wrote:

> OK, I've got a table that will display records from my GOODS database. 
> Many thanks to Bany and Shaffer.  Would someone tell me what's wrong 
> with my delete:  method.?   I've taken code from a 'table tutorial' 
> and modified it as follows:
>
> my PMLogsView class has an allRecords instance var which holds the 
> PMLogs ( Ordered Collection ol PMLogItem objects).
>
> PMLogsView>>renderContentOn: html
>   | |
>   allRecords := db root at: 'logs'.
>   html table: [
>       html tableRow: [html tableHeading: 'View all Log Entries']].
>   html attributeAt: 'cellspacing' put: 0; attributeAt: 'cellpadding' 
> put: 5; attributeAt: 'border' put: 2.
>   html table: [
>           allRecords do: [:i |
>               html tableRow: [
>                   html tableData: [html anchorWithAction: [self 
> delete: i] text: 'Del'].
>                   html tableData: i type.
>                   html tableData: i entryDate.
>                   html tableData: i startTime.
>                   html tableData: i entryText.
>                   html tableData: i endTime.
>           ].
>       ].
>       html tableRow: []
> ]
> -----------------------------
> The delete: method looks like this:
>
> PMLogsView>>delete: aRecord
> (self confirm: 'Are you sure you want to delete ', (aRecord entryText) 
> printString, '?')
> ifTrue: [allRecords removeAt: aRecord]
> ----------------------------
> When I excute it Seaside displays the following error:
>
>
> MessageNotUnderstood: PMLogItem>><
>
>   * PMLogItem(Object)>>doesNotUnderstand: #<
>
>         self     a PMLogItem
>         aMessage     a Message with selector: #< and arguments: #(1)
>
>   * KKObjectProxy>>doesNotUnderstand: #<
>
>         self     a PMLogItem
>         aMessage     a Message with selector: #< and arguments: #(1)
>
>   * PMLogs(OrderedCollection)>>at:
>
>         self     a PMLogs(a PMLogItem a PMLogItem a PMLogItem a 
> PMLogItem)
>         anInteger     a PMLogItem
>
>   * PMLogs(OrderedCollection)>>removeAt:
>
>         self     a PMLogs(a PMLogItem a PMLogItem a PMLogItem a 
> PMLogItem)
>         index     a PMLogItem
>         removed     nil
>
>   * KKObjectProxy>>doesNotUnderstand: #removeAt:
>
>         self     a PMLogs(a PMLogItem a PMLogItem a PMLogItem a 
> PMLogItem)
>         aMessage     a Message with selector: #removeAt: and arguments:
>         #(a PMLogItem)
>
>   * PMLogsView>>delete:
>
>         self     a PMLogsView
>         aRecord     a PMLogItem
>
>   * [] in PMLogsView>>renderContentOn:
>
>         self     a PMLogsView
>         html     a WAHtmlRenderer
>         i     a PMLogItem
>
>   * WAActionCallback>>evaluateWithArgument:
>
>         self     a WAActionCallback
>         anObject     ''
>
>   * WAActionCallback(WACallback)>>evaluateWithField:
>
>         self     a WAActionCallback
>         anObject     ''
>
>   * WACallbackStream>>processCallbacksWithOwner:
>
>         self     a WACallbackStream
>         anObject     a PMLogsView
>         callback     a WAActionCallback
>
>   * PMLogsView(WAPresenter)>>processCallbackStream:
>
>         self     a PMLogsView
>         aCallbackStream     a WACallbackStream
>
>   * [] in PMLogsTask(WAPresenter)>>processChildCallbacks:
>
>         self     a PMLogsTask
>         aStream     a WACallbackStream
>         ea     a PMLogsView
>
>   * PMLogsView(WAComponent)>>decorationChainDo:
>
>         self     a PMLogsView
>         aBlock     [] in 
> PMLogsTask(WAPresenter)>>processChildCallbacks:
>
>   * [] in PMLogsTask(WAComponent)>>nextPresentersDo:
>
>         self     a PMLogsTask
>         aBlock     [] in 
> PMLogsTask(WAPresenter)>>processChildCallbacks:
>         ea     a PMLogsView
>
>   * [] in PMLogsTask(WAComponent)>>childrenDo:
>
>         self     a PMLogsTask
>         aBlock     [] in PMLogsTask(WAComponent)>>nextPresentersDo:
>         ea     a PMLogsView
>
>   * Array(SequenceableCollection)>>do:
>
>         self     #(a PMLogsView)
>         aBlock     [] in PMLogsTask(WAComponent)>>childrenDo:
>         index     1
>         indexLimiT     1
>
>   * PMLogsTask(WAComponent)>>childrenDo:
>
>         self     a PMLogsTask
>         aBlock     [] in PMLogsTask(WAComponent)>>nextPresentersDo:
>         ea     a PMLogsView
>
>   * PMLogsTask(WAComponent)>>nextPresentersDo:
>
>         self     a PMLogsTask
>         aBlock     [] in 
> PMLogsTask(WAPresenter)>>processChildCallbacks:
>         ea     a PMLogsView
>
>   * PMLogsTask(WAPresenter)>>processChildCallbacks:
>
>         self     a PMLogsTask
>         aStream     a WACallbackStream
>         ea     a PMLogsView
>
>   * PMLogsTask(WAPresenter)>>processCallbackStream:
>
>         self     a PMLogsTask
>         aCallbackStream     a WACallbackStream
>
>   * [] in WAToolFrame(WAPresenter)>>processChildCallbacks:
>
>         self     a WAToolFrame
>         aStream     a WACallbackStream
>         ea     a PMLogsTask
>
>   * PMLogsTask(WAComponent)>>decorationChainDo:
>
>         self     a PMLogsTask
>         aBlock     [] in 
> WAToolFrame(WAPresenter)>>processChildCallbacks:
>
>   * [] in WAToolFrame(WAComponent)>>nextPresentersDo:
>
>         self     a WAToolFrame
>         aBlock     [] in 
> WAToolFrame(WAPresenter)>>processChildCallbacks:
>         ea     a PMLogsTask
>
>   * [] in WAToolFrame(WAComponent)>>childrenDo:
>
>         self     a WAToolFrame
>         aBlock     [] in WAToolFrame(WAComponent)>>nextPresentersDo:
>         ea     a PMLogsTask
>
>   * Array(SequenceableCollection)>>do:
>
>         self     #(a PMLogsTask)
>         aBlock     [] in WAToolFrame(WAComponent)>>childrenDo:
>         index     1
>         indexLimiT     1
>
>   * WAToolFrame(WAComponent)>>childrenDo:
>
>         self     a WAToolFrame
>         aBlock     [] in WAToolFrame(WAComponent)>>nextPresentersDo:
>         ea     a PMLogsTask
>
>   * WAToolFrame(WAComponent)>>nextPresentersDo:
>
>         self     a WAToolFrame
>         aBlock     [] in 
> WAToolFrame(WAPresenter)>>processChildCallbacks:
>         ea     a PMLogsTask
>
>   * WAToolFrame(WAPresenter)>>processChildCallbacks:
>
>         self     a WAToolFrame
>         aStream     a WACallbackStream
>         ea     a PMLogsTask
>
>   * WAToolFrame(WAPresenter)>>processCallbackStream:
>
>         self     a WAToolFrame
>         aCallbackStream     a WACallbackStream
>
>   * [] in WARenderLoop>>processCallbacks:
>
>         self     a WARenderLoop
>         aCallbackStream     a WACallbackStream
>         lastPosition     0
>         ea     a WAToolFrame
>
>   * WAToolFrame(WAComponent)>>decorationChainDo:
>
>         self     a WAToolFrame
>         aBlock     [] in WARenderLoop>>processCallbacks:
>
>   * WARenderLoop>>processCallbacks:
>
>         self     a WARenderLoop
>         aCallbackStream     a WACallbackStream
>         lastPosition     0
>         ea     a WAToolFrame
>
>   * WARenderLoop>>render
>
>         self     a WARenderLoop
>         request     a WARequest
>         context     a WARenderingContext
>         document     nil
>         docRoot     nil
>         url     nil
>         response     nil
>         ea     nil
>
>   * [] in WARenderLoop>>run
>
>         self     a WARenderLoop
>         notification     nil
>
>   * BlockContext>>on:do:
>
>         self     [] in WARenderLoop>>run
>         exception     WARenderNotification
>         handlerAction     [] in WARenderLoop>>withRenderNowHandler:
>         handlerActive     true
>
>   * WARenderLoop>>withRenderNowHandler:
>
>         self     a WARenderLoop
>         aBlock     [] in WARenderLoop>>run
>         n     nil
>
>   * [] in WARenderLoop>>run
>
>         self     a WARenderLoop
>         notification     nil
>
>   * BlockContext>>on:do:
>
>         self     [] in WARenderLoop>>run
>         exception     WAPageExpired
>         handlerAction     [] in WARenderLoop>>withPageExpiredHandler:
>         handlerActive     true
>
>   * WARenderLoop>>withPageExpiredHandler:
>
>         self     a WARenderLoop
>         aBlock     [] in WARenderLoop>>run
>         n     nil
>
>   * [] in WARenderLoop>>run
>
>         self     a WARenderLoop
>         notification     nil
>
>   * BlockContext>>repeat
>
>         self     [] in WARenderLoop>>run
>
>   * WARenderLoop>>run
>
>         self     a WARenderLoop
>         notification     nil
>
>   * WARenderLoopMain>>start:
>
>         self     a WARenderLoopMain
>         aRequest     a WARequest
>
>   * WASession>>start:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>
>   * [] in WASession>>performRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>         key     nil
>         continuation     nil
>
>   * Dictionary>>at:ifAbsent:
>
>         self     a Dictionary()
>         key     '_k'
>         aBlock     [] in WASession>>performRequest:
>         assoc     nil
>
>   * WASession>>performRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>         key     nil
>         continuation     nil
>
>   * [] in WASession>>responseForRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>
>   * BlockContext>>on:do:
>
>         self     [] in WASession>>responseForRequest:
>         exception     Error
>         handlerAction     [] in WASession>>withErrorHandler:
>         handlerActive     false
>
>   * [] in WASession>>withErrorHandler:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aBlock     [] in WASession>>responseForRequest:
>         e     MessageNotUnderstood: PMLogItem>><
>         w     nil
>
>   * BlockContext>>on:do:
>
>         self     [] in WASession>>withErrorHandler:
>         exception     Warning
>         handlerAction     [] in WASession>>withErrorHandler:
>         handlerActive     true
>
>   * WASession>>withErrorHandler:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aBlock     [] in WASession>>responseForRequest:
>         e     MessageNotUnderstood: PMLogItem>><
>         w     nil
>
>   * [] in WASession>>responseForRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>
>   * BlockContext>>on:do:
>
>         self     [] in WASession>>responseForRequest:
>         exception     WACurrentSession
>         handlerAction     [] in WACurrentSession 
> class(WADynamicVariable
>         class)>>use:during:
>         handlerActive     true
>
>   * WACurrentSession class(WADynamicVariable class)>>use:during:
>
>         self     WACurrentSession
>         anObject     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aBlock     [] in WASession>>responseForRequest:
>         n     WACurrentSession
>
>   * [] in WASession>>responseForRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>
>   * [] in WASession>>withEscapeContinuation:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aBlock     [] in WASession>>responseForRequest:
>         cc     a Continuation
>
>   * Continuation class>>currentDo:
>
>         self     Continuation
>         aBlock     [] in WASession>>withEscapeContinuation:
>
>   * WASession>>withEscapeContinuation:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aBlock     [] in WASession>>responseForRequest:
>         cc     a Continuation
>
>   * WASession>>responseForRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>
>   * [] in WASession>>incomingRequest:
>
>         self     a WASession(/seaside/logs?_s=YGJFCkUdbwMVquFZ)
>         aRequest     a WARequest
>         e     nil
>
>   * BlockContext>>on:do:
>
>         self     [] in WASession>>incomingRequest:
>         exception     Error
>         handlerAction     [] in WASession>>incomingRequest:
>         handlerActive     true
>
>   * [] in WAProcessMonitor>>critical:ifError:
>
>         self     a WAProcessMonitor
>         aBlock     [] in WASession>>incomingRequest:
>         errorBlock     [] in WASession>>incomingRequest:
>         value     a WAResponse
>
>   * BlockContext>>ensure:
>
>         self     [] in WAProcessMonitor>>critical:ifError:
>         aBlock     [] in WAProcessMonitor>>critical:ifError:
>         returnValue     nil
>
>   * [] in WAProcessMonitor>>critical:ifError:
>
>         self     a WAProcessMonitor
>         aBlock     [] in WASession>>incomingRequest:
>         errorBlock     [] in WASession>>incomingRequest:
>         value     a WAResponse
>
>   * [] in BlockContext>>newProcess
>
>         self     [] in WAProcessMonitor>>critical:ifError:
>
>
> Thanks for the help.
> -Larry
>
>
> _______________________________________________
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/seaside
>
>
___________________
Adrian Lienhard
www.adrian-lienhard.ch
www.netstyle.ch



More information about the Seaside mailing list