I'm using Adobe Drive 18.104.22.168 on Windows 7. When I drag and drop multiple assets into the Explorer Window, right-click those assets and choose "Check In..", none of the handlers associated with my custom checkin dialog (i.e., CanEnableCustomCheckInUIHandler, GetCustomCheckInUIContextInfoHandler and GetCustomCheckInUIHandler) are called. Only the default check in comments dialog appears. However, if I select a single asset for check in, then my handlers are correctly called. Is this the expected behavior? I want the user to be able to determine the type of object and some metadata in my CMS on import, but don't have this capability when multiple assets are selected.
The second issue I have is that the CanEnableCustomCheckInUIHandler, GetCustomCheckInUIContextInfoHandler do not have any visibility into non-remote assets through the API (i.e., assets with a null Asset ID). The getAssetIdentities() call only returns information about assets that already have an assetId. In these two handlers, I would like to make decisions and set context based on the the entire list of files, not just those that already live in the remote CMS.
The third issue I have is that I would like capture ContextInfo for each asset individually. For example, if a user checks in an InDesign file and a linked Image at the same time, I would like capture separate context info for each asset that I can store in my CMS. I might also want to capture global context that applies to all assets (i.e., the comments are a good example of this, but there could be others).
Based on these three issues, I am limited to allowing only one asset to be checked in at a time. However, with the current API, I can't even prevent a check in until my CheckInHandler is called, which is the first opportunity for me to throw an Exception to stop the checkin. In my opinion, this is not a good user experience because the user will be prompted to enter the comments and then get an error, which means they will loose the information they typed in the comments.
I'm mostly trying to provide feedback to improve the API, but if there is something I'm overlooking here, please let me know.
It turns out I was wrong in my second issue above. The request.getAssetIdentities() call in my CanEnableCustomCheckInUIHandler and GetCustomCheckInUIContextInfoHandler both return empty Iterables. In these two handlers I have no visibility into any of the assets being checked into the repository. This seems like a bug to me. I have tried this from Explorer, InDesign and Photoshop with the same result.
For the first issue and the second issue, yes, it's a design limitation, we will try to resolve it in the coming dot release, thanks for pointing out them
For the third issue, I think you can manage the context info for each item by utilizing IGetCustomCheckInUIContextInfoHandler, you can establish a data structure for the requested items, this structure will be passed to the your custom UI module, the UI module understands it and returns the context info to ICheckInHandler in the custom parameters, in a word, you should establish a comunication protocol between IGetCustomCheckInUIContextInfoHandler, the custom Flex UI module and ICheckInHandler about how to pass and manager the context info.
Regarding how to prevent a check-in, please provide your deep thoughts on it, we can discuss that in detail