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_BLANKDISPATCHER_HXX_ 25 #define __FRAMEWORK_DISPATCH_BLANKDISPATCHER_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 for desktop only(!) to create new tasks on demand for dispatches 57 @descr Use this class as member only! Never use it as baseclass. 58 XInterface will be ambiguous and we hold a weakreference to our OWNER - not to our SUPERCLASS! 59 60 @implements XInterface 61 XDispatch 62 XStatusListener 63 XLoadEventListener 64 XEventListener 65 66 @base BaseDispatcher 67 OWeakObject 68 69 @devstatus ready to use 70 @threadsafe yes 71 *//*-*************************************************************************************************************/ 72 class BlankDispatcher : // -interfaces ... are supported by our BaseDispatcher! 73 // -baseclasses ... order is necessary for right initialization! 74 public BaseDispatcher 75 { 76 //------------------------------------------------------------------------------------------------------------- 77 // public methods 78 //------------------------------------------------------------------------------------------------------------- 79 public: 80 // ctor 81 BlankDispatcher ( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory , 82 const css::uno::Reference< css::frame::XFrame >& xDesktop, 83 sal_Bool bIsDefaultDispatcher ); 84 // XDispatch 85 virtual void SAL_CALL dispatch ( const css::util::URL& aURL , 86 const css::uno::Sequence< css::beans::PropertyValue >& lArguments ) throw( css::uno::RuntimeException ); 87 88 //------------------------------------------------------------------------------------------------------------- 89 // protected methods 90 //------------------------------------------------------------------------------------------------------------- 91 protected: 92 virtual void SAL_CALL reactForLoadingState ( const css::util::URL& aURL , 93 const css::uno::Sequence< css::beans::PropertyValue >& lDescriptor , 94 const css::uno::Reference< css::frame::XFrame >& xTarget , 95 sal_Bool bState , 96 const css::uno::Any& aAsyncInfo ); 97 98 virtual void SAL_CALL reactForHandlingState( const css::util::URL& aURL , 99 const css::uno::Sequence< css::beans::PropertyValue >& lDescriptor , 100 sal_Bool bState , 101 const css::uno::Any& aAsyncInfo ); 102 103 //------------------------------------------------------------------------------------------------------------- 104 // protected methods 105 //------------------------------------------------------------------------------------------------------------- 106 private: 107 sal_Bool implts_findAndActivateAlreadyLoadedTask( const css::util::URL& aURL , 108 const css::uno::Sequence< css::beans::PropertyValue >& lArguments , 109 const css::uno::Reference< css::frame::XFrame > xDesktop ); 110 111 css::uno::Reference< css::frame::XFrame > implts_findAndLockRecycleTask( const css::util::URL& aURL , 112 const css::uno::Sequence< css::beans::PropertyValue >& lArguments , 113 const css::uno::Reference< css::frame::XFrame > xDesktop ); 114 115 //------------------------------------------------------------------------------------------------------------- 116 // variables 117 // (should be private everyway!) 118 //------------------------------------------------------------------------------------------------------------- 119 private: 120 sal_Bool m_bIsDefaultDispatcher; 121 }; // class BlankDispatcher 122 123 } // namespace framework 124 125 #endif // #ifndef __FRAMEWORK_DISPATCH_BLANKDISPATCHER_HXX_ 126