Helo, here's my little story:
I have a TileList that's powered by an ArrayCollection with data
obtained from a DataService (via it's "fill" method). For the DS I
set autoCommit="false".
I enabled the DnD for my TileList (it has built-in DnD support) and
I also set it to allow item move, not copy.
What I'm trying to do is to re-arrange the items on this managed
collection. With the mouse, I'm dragging an item into a different
location on the grid. I wrote an event listener for the
DragEvent.DRAG_COMPLETE event, where I call DataService.commit() for
my managed collection.
What happens on the FDS side (it's actually LCDS 2.5.1): the
destination I wrote is a Java implementation. It's "sync" method
gets called, and the list of changes contain 2 items: "delete"
and "create" for the item I previously DnD-ed on the grid. There is
no indication regarding the new position in the grid for the "new"
item.
I _do not_ want to delete and create anything. I just weant the FDS
to do whatever is necessary to update it's managed collection, and
return the "OK" back to the client. I don't want FDS to call
the "fill" method again, as there is nothing new to refresh from the
database (I do not want to persist this item reordeting action for
now).
I managed to prevent the unnecessary "fill" call from happening,
using the <fill-contains-method> configuration in XML, but the end
result is the FDS does not accept the client's request, deletes the
item I DnD-ed and therefore makes it dissapearing from my grid.
Here is the log info, from the moment I filled in my grid (with 3
items) and up until my list has just 2 items, after I tried to move
the first one via DnD (this first one is the one that got vanished).
I wonder why this behavior? What's missing from what I've done?
Many thanks,
Robert
[Flex] 10/01/2007 17:02:43.781 [DEBUG] [Message.Data.fill] Before
invoke service: data-service
incomingMessage: Flex Message (flex.data.messages.DataMessage)
operation = fill
id = null
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId =
destination = repositoryObjectAssembler
messageId = C81583CC-4942-8A65-11A0-5D60C445D31A
timestamp = 1191272563781
timeToLive = 0
body =
[
0be4dc09800040e6,
false
]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 28F8F58F-3E1D-A44B-F8CC-5ECE708E198C
[Flex] 10/01/2007 17:02:43.812 [DEBUG] [Message.Timing] After invoke
service: data-service; execution time = 31ms
[Flex] 10/01/2007 17:02:43.812 [DEBUG] [Service.Data.Transaction]
Committed transaction
[Flex] 10/01/2007 17:02:43.812 [DEBUG] [Message.Data.fill] After
invoke service: data-service
reply: Flex Message (flex.data.messages.SequencedMessage)
sequenceId = 1
sequenceSize = 3
dynamicSizing = 0
(no sequence proxies)
clientId = null
correlationId = null
destination = repositoryObjectAssembler
messageId = 28F93F78-240A-A32B-8DE7-A1AFAFD75EAC
timestamp = 1191272563812
timeToLive = 0
body =
[
[EMAIL PROTECTED],
[EMAIL PROTECTED],
[EMAIL PROTECTED]
]
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Message.Data.transacted]
Before invoke service: data-service
incomingMessage: Flex Message (flex.data.messages.DataMessage)
operation = transacted
id = null
clientId = 28F92C65-5419-8F1F-963E-FBE7861F4635
correlationId =
destination = repositoryObjectAssembler
messageId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
timestamp = 1191272568031
timeToLive = 0
body =
[
Flex Message (flex.data.messages.DataMessage)
operation = delete
id = ASObject(20624684){objectId=09e4dc09800040f0}
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = 646E01CF-2893-C606-BF70-5D60D4CFFBC9
timestamp = 0
timeToLive = 0
body = [EMAIL PROTECTED],
Flex Message (flex.data.messages.DataMessage)
operation = create
id = ASObject(21796820){objectId=09e4dc09800040f0}
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = F553034C-BA68-52BF-E798-5D60D4DF8EB4
timestamp = 0
timeToLive = 0
body = [EMAIL PROTECTED],
Flex Message (flex.data.messages.UpdateCollectionMessage)
operation = update_collection
id = null
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = 4CBE61EB-454F-19EE-F219-5D60D4CF2248
timestamp = 0
timeToLive = 0
body =
[
[EMAIL PROTECTED](25432371){objectId=09e4dc09800040f0}],
[EMAIL PROTECTED]
]
collectionId =
[
0be4dc09800040e6,
false
]
replace = false
updateMode = client_update
]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 28F8F58F-3E1D-A44B-F8CC-5ECE708E198C
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Service.Data.Transaction]
Started transaction using jndi name: java:comp/UserTransaction
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Message.Timing] After invoke
service: data-service; execution time = 0ms
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Service.Data.Transaction]
Committed transaction
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Service.Data.General]
fillContains for destination: repositoryObjectAssembler params:
[null, true] returns: false
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Service.Data.General]
fillContains for destination: repositoryObjectAssembler params:
[0be4dc09800040e6, false] returns: false
[Flex] 10/01/2007 17:02:48.031 [DEBUG] [Message.Data.transacted]
After invoke service: data-service
reply: Flex Message (flex.messaging.messages.AcknowledgeMessage)
clientId = null
correlationId = null
destination = null
messageId = 28F967B4-6F1F-D6E8-ED8E-F738C343EF76
timestamp = 1191272568031
timeToLive = 0
body =
[
Flex Message (flex.data.messages.DataMessage)
operation = delete
id = ASObject(20624684){objectId=09e4dc09800040f0}
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = 646E01CF-2893-C606-BF70-5D60D4CFFBC9
timestamp = 1191272568031
timeToLive = 0
body = [EMAIL PROTECTED]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 28F8F58F-3E1D-A44B-F8CC-5ECE708E198C,
Flex Message (flex.data.messages.DataMessage)
operation = create
id = {objectId=09e4dc09800040f0}
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = F553034C-BA68-52BF-E798-5D60D4DF8EB4
timestamp = 1191272568031
timeToLive = 0
body = [EMAIL PROTECTED]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 28F8F58F-3E1D-A44B-F8CC-5ECE708E198C,
Flex Message (flex.data.messages.UpdateCollectionMessage)
operation = update_collection
id = null
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = 4CBE61EB-454F-19EE-F219-5D60D4CF2248
timestamp = 1191272568031
timeToLive = 0
body =
[
[EMAIL PROTECTED](25432371){objectId=09e4dc09800040f0}],
[EMAIL PROTECTED]
]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 28F8F58F-3E1D-A44B-F8CC-5ECE708E198C
collectionId =
[
0be4dc09800040e6,
false
]
replace = false
updateMode = server_override,
Flex Message (flex.data.messages.UpdateCollectionMessage)
operation = update_collection
id = null
clientId = 542BAA04-0291-ECDE-6BD6-5D60A50569DE
correlationId = 33033332-3DA7-DCA5-7575-5D60D4DFBE18
destination = repositoryObjectAssembler
messageId = srv:2864127A-4E0D-55BA-619D-1240FB6FC314:3
timestamp = 1191272568031
timeToLive = 0
body =
[
[EMAIL PROTECTED]
]
collectionId =
[
0be4dc09800040e6,
false
]
replace = false
updateMode = server_update
]