1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef __FRAMEWORK_DISPATCH_SELFDISPATCHER_HXX_
25 #define __FRAMEWORK_DISPATCH_SELFDISPATCHER_HXX_
26 
27 //_________________________________________________________________________________________________________________
28 //	my own includes
29 //_________________________________________________________________________________________________________________
30 
31 #include <dispatch/basedispatcher.hxx>
32 
33 //_________________________________________________________________________________________________________________
34 //	interface includes
35 //_________________________________________________________________________________________________________________
36 
37 //_________________________________________________________________________________________________________________
38 //	other includes
39 //_________________________________________________________________________________________________________________
40 
41 //_________________________________________________________________________________________________________________
42 //	namespace
43 //_________________________________________________________________________________________________________________
44 
45 namespace framework{
46 
47 //_________________________________________________________________________________________________________________
48 //	exported const
49 //_________________________________________________________________________________________________________________
50 
51 //_________________________________________________________________________________________________________________
52 //	exported definitions
53 //_________________________________________________________________________________________________________________
54 
55 /*-************************************************************************************************************//**
56     @short          helper to dispatch into an existing owner frame
57     @descr          You should use it as dispatcher for "_self", flag::SELF ... cases, to load a document into an
58                     owner frame without creation of a new one.
59                     Use this class as member only! Never use it as baseclass.
60 					XInterface will be ambigous and we hold a weakreference to ouer OWNER - not to ouer SUPERCLASS!
61 
62 	@implements		XInterface
63 					XDispatch
64                     XStatusListener
65                     XLoadEventListener
66 					XEventListener
67 
68     @base           BaseDispatcher
69 					OWeakObject
70 
71 	@devstatus		ready to use
72     @threadsafe     yes
73 *//*-*************************************************************************************************************/
74 class SelfDispatcher   :   // -interfaces  ... are supported by our BaseDispatcher!
75                            // -baseclasses ... order is necessary for right initialization!
76                            public BaseDispatcher
77 {
78 	//-------------------------------------------------------------------------------------------------------------
79 	//	public methods
80 	//-------------------------------------------------------------------------------------------------------------
81 	public:
82         //  ctor
83                               SelfDispatcher      ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory   ,
84                                                     const css::uno::Reference< css::frame::XFrame >&              xTarget    );
85 		//	XDispatch
86         virtual void SAL_CALL dispatch            ( const css::util::URL&                                         aURL       ,
87                                                     const css::uno::Sequence< css::beans::PropertyValue >&        lArguments ) throw( css::uno::RuntimeException );
88 
89     //-------------------------------------------------------------------------------------------------------------
90     //  protected methods
91 	//-------------------------------------------------------------------------------------------------------------
92     protected:
93         virtual void SAL_CALL reactForLoadingState ( const css::util::URL&                                      aURL        ,
94                                                      const css::uno::Sequence< css::beans::PropertyValue >&     lDescriptor ,
95                                                      const css::uno::Reference< css::frame::XFrame >&           xTarget     ,
96                                                            sal_Bool                                             bState      ,
97                                                      const css::uno::Any&                                       aAsyncInfo  );
98 
99         virtual void SAL_CALL reactForHandlingState( const css::util::URL&                                      aURL        ,
100                                                      const css::uno::Sequence< css::beans::PropertyValue >&     lDescriptor ,
101                                                            sal_Bool                                             bState      ,
102                                                      const css::uno::Any&                                       aAsyncInfo  );
103 
104 };      //  class SelfDispatcher
105 
106 }		//	namespace framework
107 
108 #endif  //  #ifndef __FRAMEWORK_DISPATCH_SELFDISPATCHER_HXX_
109