1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 
28 #ifndef INCLUDED_TDOC_PASSWORDREQUEST_HXX
29 #define INCLUDED_TDOC_PASSWORDREQUEST_HXX
30 
31 #include "com/sun/star/task/PasswordRequestMode.hpp"
32 #include "com/sun/star/task/XInteractionPassword.hpp"
33 
34 #include "ucbhelper/interactionrequest.hxx"
35 
36 namespace tdoc_ucp {
37 
38     /*
39         @usage:
40 
41         uno::Reference< ucb::XCommandEnvironment > Environment = ...;
42 
43         if ( Environment.is() )
44         {
45             uno::Reference< task::XInteractionHandler > xIH
46                 = Environment->getInteractionHandler();
47             if ( xIH.is() )
48             {
49                 rtl::Reference< DocumentPasswordRequest > xRequest
50                     = new DocumentPasswordRequest(
51                         task::PasswordRequestMode_PASSWORD_ENTER,
52                         m_xIdentifier->getContentIdentifier() );
53                 xIH->handle( xRequest.get() );
54 
55                 rtl::Reference< ucbhelper::InteractionContinuation > xSelection
56                     = xRequest->getSelection();
57 
58                 if ( xSelection.is() )
59                 {
60                     // Handler handled the request.
61                     uno::Reference< task::XInteractionAbort > xAbort(
62                         xSelection.get(), uno::UNO_QUERY );
63                     if ( xAbort.is() )
64                     {
65                         // @@@
66                     }
67 
68                     uno::Reference< task::XInteractionRetry > xRetry(
69                         xSelection.get(), uno::UNO_QUERY );
70                     if ( xRetry.is() )
71                     {
72                         // @@@
73                     }
74 
75                     uno::Reference< task::XInteractionPassword > xPassword(
76                         xSelection.get(), uno::UNO_QUERY );
77                     if ( xPassword.is() )
78                     {
79                         rtl::OUString aPassword = xPassword->getPassword();
80 
81                         // @@@
82                     }
83                 }
84             }
85         }
86 
87     */
88 
89     class DocumentPasswordRequest : public ucbhelper::InteractionRequest
90     {
91     public:
92         DocumentPasswordRequest(
93             com::sun::star::task::PasswordRequestMode eMode,
94             const rtl::OUString & rDocumentName );
95     };
96 
97 } // namespace tdoc_ucp
98 
99 #endif /* !INCLUDED_TDOC_PASSWORDREQUEST_HXX */
100 
101