1*cdf0e10cSrcweir /*
2*cdf0e10cSrcweir  * To change this template, choose Tools | Templates
3*cdf0e10cSrcweir  * and open the template in the editor.
4*cdf0e10cSrcweir  */
5*cdf0e10cSrcweir 
6*cdf0e10cSrcweir /**
7*cdf0e10cSrcweir  *
8*cdf0e10cSrcweir  * @author zxf
9*cdf0e10cSrcweir  */
10*cdf0e10cSrcweir 
11*cdf0e10cSrcweir package complex.passwordcontainer;
12*cdf0e10cSrcweir 
13*cdf0e10cSrcweir import com.sun.star.lib.uno.helper.WeakBase;
14*cdf0e10cSrcweir import com.sun.star.task.XInteractionContinuation;
15*cdf0e10cSrcweir import com.sun.star.ucb.XInteractionSupplyAuthentication;
16*cdf0e10cSrcweir import com.sun.star.task.XInteractionRequest;
17*cdf0e10cSrcweir import com.sun.star.task.XInteractionHandler;
18*cdf0e10cSrcweir import com.sun.star.task.MasterPasswordRequest;
19*cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
20*cdf0e10cSrcweir 
21*cdf0e10cSrcweir public class MasterPasswdHandler extends WeakBase
22*cdf0e10cSrcweir         implements XInteractionHandler {
23*cdf0e10cSrcweir     XInteractionHandler m_xHandler;
24*cdf0e10cSrcweir 
25*cdf0e10cSrcweir     public MasterPasswdHandler( XInteractionHandler xHandler ) {
26*cdf0e10cSrcweir         m_xHandler = xHandler;
27*cdf0e10cSrcweir     }
28*cdf0e10cSrcweir 
29*cdf0e10cSrcweir     public void handle( XInteractionRequest xRequest ) {
30*cdf0e10cSrcweir         try {
31*cdf0e10cSrcweir             MasterPasswordRequest aMasterPasswordRequest;
32*cdf0e10cSrcweir             if( xRequest.getRequest() instanceof MasterPasswordRequest ) {
33*cdf0e10cSrcweir                 aMasterPasswordRequest = (MasterPasswordRequest)xRequest.getRequest();
34*cdf0e10cSrcweir                 if( aMasterPasswordRequest != null ) {
35*cdf0e10cSrcweir                     XInteractionContinuation xContinuations[] = xRequest.getContinuations();
36*cdf0e10cSrcweir                     XInteractionSupplyAuthentication xAuthentication = null;
37*cdf0e10cSrcweir 
38*cdf0e10cSrcweir                     for( int i = 0; i < xContinuations.length; ++i ) {
39*cdf0e10cSrcweir                         xAuthentication = UnoRuntime.queryInterface(XInteractionSupplyAuthentication.class, xContinuations[i]);
40*cdf0e10cSrcweir                         if( xAuthentication != null )
41*cdf0e10cSrcweir                         {
42*cdf0e10cSrcweir                             break;
43*cdf0e10cSrcweir                         }
44*cdf0e10cSrcweir                     }
45*cdf0e10cSrcweir                     if( xAuthentication.canSetPassword() )
46*cdf0e10cSrcweir                     {
47*cdf0e10cSrcweir                         xAuthentication.setPassword("abcdefghijklmnopqrstuvwxyz123456");
48*cdf0e10cSrcweir                     }
49*cdf0e10cSrcweir                     xAuthentication.select();
50*cdf0e10cSrcweir                 }
51*cdf0e10cSrcweir             } else {
52*cdf0e10cSrcweir                 m_xHandler.handle( xRequest );
53*cdf0e10cSrcweir             }
54*cdf0e10cSrcweir         } catch( Exception e ) {
55*cdf0e10cSrcweir             System.out.println( "MasterPasswordHandler Error: " + e );
56*cdf0e10cSrcweir         }
57*cdf0e10cSrcweir     }
58*cdf0e10cSrcweir }
59*cdf0e10cSrcweir 
60*cdf0e10cSrcweir 
61*cdf0e10cSrcweir 
62*cdf0e10cSrcweir 
63*cdf0e10cSrcweir 
64*cdf0e10cSrcweir 
65*cdf0e10cSrcweir 
66