Desktop GUI - Broadcasting and sharing dialogs
From pyswarm
End-users of pyswarm application have multiple ways to share information with colleagues and partners outside an organization. This may be sequential work on items according to some work-flow, task delegation, or sending messages and notes with links to objects inside (pyswarm://example.com:8090/myservice/myobject) to another user.
All of these can be considered as asynchronous collaboration. For synchronous collaboration on a particular domain object (or collection of domain objects), the end-user is able to broadcast an open dialog to another user or group of users. The user is even able to move input control temporarily to a viewer.
How-to:
- the end-user U1 can click on the dialogs Broadcast button
- U1 gets a list of all users that are currently signed on to the very same service (of that dialog)
- U1 selects one or more of these users as viewers (e.g. end-user U2)
- U2 and all other viewers are getting some notice from the sys-tray icon on the broadcast invitation
- U2 accepts broadcast invitation (or denies which would end this procedure)
- a copy of U1's dialog pop-ups at U2's Desktop GUI
- the user agent controller of the pyswarm service is duplicating all communication/interaction with the GUI of U1 regarding this dialog - for U2 this is read-only view for U2, though U2 gets all privileges of U1 necessary to see all the information in the dialog. (This is sand-boxed in the dialog!)
- whenever U1's broad-casted dialog is updated the user agent controller routes all update events to the copy of U2 and all other viewers
- U1 may decide to give U2 control over the dialog (U1's write privileges is transferred to U2 as soon as U1 accepts)
- Now roles between U1 and U2 are switched, whenever in U2's dialog events occur (e.g. U2 enters text, a list of objects are updated) the update is broad-casted to U1 and other viewers
- Even Transaction handling is re-routed to the sand-boxed dialog of U2 as if U1 would work on that transaction
- U2 can anytime quit viewing the dialog, so the full control would return back to U1
- However, U1 can take back control over the dialog at any time, see a list of all users currently viewing, and stop broad-casting to all users or particular users
