Hello Yan Wu,
Hello Andreas,
After some analysis of the interactionhandler, we have some concepts about that. An instance can be passed to XInteractionHandler::hanle(...). Each interaction request contains a number of interaction continuations. For the passworddlg,the user interaction like: hand()->handle_impl()->handlePasswordRequest()->handlePasswordRequest()->executePasswordDialog

Is above right or misunderstanding?
Now we are not clear what the needed environment informations of the interaction handler are.

An implementation of the interface XInteractionHandler of course will be an InteractionHandler by itself. Such InteractionHandler can be passed to some other APIs of OOo ... e.g. dispatches or the well known function loadComponentFromURL(). A handler is used in cases where some "internal problems" must be solved ... e.g. password must be retrieved;warnings/erros must be shown
or filters must be selected by the user.
An interaction must not be an UI action always. E.g. you can pass a special implemented interaction handler which make it's work without any UI
(e.g. by answering password requests hard coded).
The method XInteractionHandler.handle() is called with an interaction object. Those object is analyzed within it's type first. Every interaction must be defined as real UNO type based on css::uno::Exception. The reason for that: if an interaction is not handled the same object must be thrown as an exception. Such intercation can transport two groups of parameters: a) In-Parameters specifying the interaction more in detail (e.g. two filters where the suer should decide which of them must be used) and b) a list of continuations. Such continuations are used to show the calli of XInteractionHandler::handle() if the interaction was handled and how they was handled. There are some standard continuations as XAbort, XContinue. Of course you can define new continuations which fits to your special
designed interaction.

What do we need to fix issue #73968# ?

We need some context informations during an interaction.
The implementation in our "uui" module is an UI based implementations.
Mostly message boxes and windows are shown. Especialy to fix this issue here
we need a parent window for all new generated windows/dialogs etcpp.

So I would say ...

a) we should provide an initialization method on the uui-interaction handler implementation.
css.lang.XInitialization would be a good candidate.

b) Within the method XInitialization::initialize() the given sequence of arguments will be
analyzed and context informations are retrieved and saved as members.
E.g. a css.frame.XFrame. Thos frame provides: the frame with it's parent child relations,
the window, the document and some other usefully informations.

c) All internal generated windows/dialogs etcpp. must use the container window of the frame as parent window. Please note: thos context information is an optional parameter. If no such parent window was given ... all message boxes must be shown as today without a parent.

d) The framework code must be changed so the new inialization interface is used and the
frame is set on the used interaction handler.

Looking forward your help!
Regards,
Yan Wu
Regards
Andreas

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to