Thanks Jeff, I tried using this approach, and the result is the item I
moved via DnD gets removed from the list. The methods addItemToFill and
removeItemFromFill are both called, however the server overrides the
client update, keeps the item deletion but does not insert the it at the
new position in the list. Here's the class, followed by some log
information.
Thanks, Robert.
public class RepositoryObjectAssembler extends AbstractAssembler
{
public Collection fill(List fillParameters)
{
String strFolderId = (String)fillParameters.get(0);
Boolean bFoldersOnly = (Boolean)fillParameters.get(1);
return RepositoryObjectDAO.getFolderContent(strFolderId,
bFoldersOnly.booleanValue());
}
public void createItem(Object newVersion)
{
// do nothing
}
public void updateItem(Object newVersion, Object prevVersion, List
changes)
{
// do nothing
}
public void deleteItem(Object prevVersion)
{
// do nothing
}
public void addItemToFill(List fillParameters, int position, Map
identity)
{
super.addItemToFill(fillParameters, position, identity);
}
public void removeItemFromFill(List fillParameters, int position,
Map identity)
{
super.removeItemFromFill(fillParameters, position, identity);
}
public int refreshFill(List fillParams, Object item, boolean
isCreate)
{
// no fill call is required
return DO_NOT_EXECUTE_FILL;
}
}
The LCDS log:
[Flex] 10/03/2007 08:06:32.593 [DEBUG] [Message.Data.transacted] Before
invoke service: data-service
incomingMessage: Flex Message (flex.data.messages.DataMessage)
operation = transacted
id = null
clientId = 3D6FBC44-BE1F-AEE0-0309-AC766B21EFD4
correlationId =
destination = repositoryObjectAssembler
messageId = A809E367-1A49-AB69-F4D9-65C297822CEE
timestamp = 1191413192593
timeToLive = 0
body =
[
Flex Message (flex.data.messages.DataMessage)
operation = delete
id = ASObject(27493784){objectId=0be4dc0980002e1a}
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = 41799982-23C8-0188-8FB4-65C297729DC7
timestamp = 0
timeToLive = 0
body = [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> ,
Flex Message (flex.data.messages.DataMessage)
operation = create
id = ASObject(9956648){objectId=0be4dc0980002e1a}
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = 9CB13D2B-6B5F-3AD5-E3BE-65C29782CFE4
timestamp = 0
timeToLive = 0
body = [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> ,
Flex Message (flex.data.messages.UpdateCollectionMessage)
operation = update_collection
id = null
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = 412F15E4-2516-BA73-CCC4-65C29772DB9D
timestamp = 0
timeToLive = 0
body =
[
[EMAIL PROTECTED](5440609){objectId=0be4dc0980002e1a
<mailto:[EMAIL PROTECTED](5440609){objectId=0be4dc0980002e1a> }],
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> ]
]
collectionId =
[
0be4dc098000045f,
false
]
replace = false
updateMode = client_update
]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 3D6F602E-860F-C68A-4937-E11FB0DD926B
[Flex] 10/03/2007 08:06:32.640 [DEBUG] [Service.Data.Transaction]
Started transaction using jndi name: java:comp/UserTransaction
[Flex] 10/03/2007 08:06:49.437 [DEBUG] [Service.Data.Transaction]
Committed transaction
[Flex] 10/03/2007 08:06:53.750 [DEBUG] [Service.Data.General]
refreshFill for destination: repositoryObjectAssembler params: [null,
true] returns: DO_NOT_EXECUTE_FILL
[Flex] 10/03/2007 08:07:09.953 [DEBUG] [Service.Data.General]
refreshFill for destination: repositoryObjectAssembler params:
[0be4dc098000045f, false] returns: DO_NOT_EXECUTE_FILL
[Flex] 10/03/2007 08:07:09.953 [DEBUG] [Message.Data.transacted] After
invoke service: data-service
reply: Flex Message (flex.messaging.messages.AcknowledgeMessage)
clientId = null
correlationId = null
destination = null
messageId = 3D717853-F119-5B48-1E34-EE513421CEA5
timestamp = 1191413229953
timeToLive = 0
body =
[
Flex Message (flex.data.messages.DataMessage)
operation = delete
id = ASObject(27493784){objectId=0be4dc0980002e1a}
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = 41799982-23C8-0188-8FB4-65C297729DC7
timestamp = 1191413192640
timeToLive = 0
body = [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 3D6F602E-860F-C68A-4937-E11FB0DD926B,
Flex Message (flex.data.messages.DataMessage)
operation = create
id = {objectId=0be4dc0980002e1a}
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = 9CB13D2B-6B5F-3AD5-E3BE-65C29782CFE4
timestamp = 1191413192640
timeToLive = 0
body = [EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 3D6F602E-860F-C68A-4937-E11FB0DD926B,
Flex Message (flex.data.messages.UpdateCollectionMessage)
operation = update_collection
id = null
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = 412F15E4-2516-BA73-CCC4-65C29772DB9D
timestamp = 1191413192640
timeToLive = 0
body =
[
[EMAIL PROTECTED](5440609){objectId=0be4dc0980002e1a
<mailto:[EMAIL PROTECTED](5440609){objectId=0be4dc0980002e1a> }],
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> }]
]
hdr(DSEndpoint) = my-rtmp
hdr(DSId) = 3D6F602E-860F-C68A-4937-E11FB0DD926B
collectionId =
[
0be4dc098000045f,
false
]
replace = false
updateMode = server_override,
Flex Message (flex.data.messages.UpdateCollectionMessage)
operation = update_collection
id = null
clientId = 6B1CE2F6-D08A-BC8B-2249-65C24C5F7CB0
correlationId = A809E367-1A49-AB69-F4D9-65C297822CEE
destination = repositoryObjectAssembler
messageId = srv:3D70B4AC-0D0F-AD8F-4CE2-658940E36E3D:0
timestamp = 1191413209437
timeToLive = 0
body =
[
[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]> }]
]
collectionId =
[
0be4dc098000045f,
false
]
replace = false
updateMode = server_update
]