1*2a97ec55SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*2a97ec55SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*2a97ec55SAndrew Rist * or more contributor license agreements. See the NOTICE file
5*2a97ec55SAndrew Rist * distributed with this work for additional information
6*2a97ec55SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*2a97ec55SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*2a97ec55SAndrew Rist * "License"); you may not use this file except in compliance
9*2a97ec55SAndrew Rist * with the License. You may obtain a copy of the License at
10*2a97ec55SAndrew Rist *
11*2a97ec55SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*2a97ec55SAndrew Rist *
13*2a97ec55SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*2a97ec55SAndrew Rist * software distributed under the License is distributed on an
15*2a97ec55SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*2a97ec55SAndrew Rist * KIND, either express or implied. See the License for the
17*2a97ec55SAndrew Rist * specific language governing permissions and limitations
18*2a97ec55SAndrew Rist * under the License.
19*2a97ec55SAndrew Rist *
20*2a97ec55SAndrew Rist *************************************************************/
21*2a97ec55SAndrew Rist
22*2a97ec55SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_extensions.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir
28cdf0e10cSrcweir #include <osl/mutex.hxx>
29cdf0e10cSrcweir #include <tools/urlobj.hxx>
30cdf0e10cSrcweir #include <tools/diagnose_ex.h>
31cdf0e10cSrcweir #include <cppuhelper/weak.hxx>
32cdf0e10cSrcweir #include <svl/itemprop.hxx>
33cdf0e10cSrcweir #include <uno/environment.h>
34cdf0e10cSrcweir #include <svl/urihelper.hxx>
35cdf0e10cSrcweir #ifndef _TOOLKIT_UNOHLP_HXX
36cdf0e10cSrcweir #include <toolkit/helper/vclunohelper.hxx>
37cdf0e10cSrcweir #endif
38cdf0e10cSrcweir #include <comphelper/processfactory.hxx>
39cdf0e10cSrcweir #include <cppuhelper/factory.hxx> // helper for factories
40cdf0e10cSrcweir #include <com/sun/star/sdbc/ResultSetType.hpp>
41cdf0e10cSrcweir #include <com/sun/star/sdbc/ResultSetConcurrency.hpp>
42cdf0e10cSrcweir #include <com/sun/star/sdb/XColumn.hpp>
43cdf0e10cSrcweir #include <com/sun/star/util/XURLTransformer.hpp>
44cdf0e10cSrcweir #include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
45cdf0e10cSrcweir #include <com/sun/star/sdbc/XRowSet.hpp>
46cdf0e10cSrcweir #include <com/sun/star/sdb/CommandType.hpp>
47cdf0e10cSrcweir #include <com/sun/star/frame/XFrameLoader.hpp>
48cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
49cdf0e10cSrcweir #include <com/sun/star/lang/XSingleServiceFactory.hpp>
50cdf0e10cSrcweir #include <com/sun/star/beans/PropertyAttribute.hpp>
51cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
52cdf0e10cSrcweir #include <com/sun/star/container/XNameAccess.hpp>
53cdf0e10cSrcweir #include <com/sun/star/text/BibliographyDataField.hpp>
54cdf0e10cSrcweir #include <com/sun/star/form/XLoadListener.hpp>
55cdf0e10cSrcweir #include <com/sun/star/frame/XLayoutManager.hpp>
56cdf0e10cSrcweir #include <toolkit/awt/vclxwindow.hxx>
57cdf0e10cSrcweir #include <vcl/window.hxx>
58cdf0e10cSrcweir #include <vcl/edit.hxx>
59cdf0e10cSrcweir #include <vcl/svapp.hxx>
60cdf0e10cSrcweir #include <vcl/group.hxx>
61cdf0e10cSrcweir #include <svtools/svmedit.hxx>
62cdf0e10cSrcweir
63cdf0e10cSrcweir #include "bibresid.hxx"
64cdf0e10cSrcweir #ifndef BIB_HRC
65cdf0e10cSrcweir #include "bib.hrc"
66cdf0e10cSrcweir #endif
67cdf0e10cSrcweir #include "bibcont.hxx"
68cdf0e10cSrcweir #include "bibbeam.hxx"
69cdf0e10cSrcweir #include "bibmod.hxx"
70cdf0e10cSrcweir #include "bibview.hxx"
71cdf0e10cSrcweir #include "framectr.hxx"
72cdf0e10cSrcweir #include "datman.hxx"
73cdf0e10cSrcweir #include <bibconfig.hxx>
74cdf0e10cSrcweir #include <cppuhelper/implbase4.hxx> // helper for implementations
75cdf0e10cSrcweir
76cdf0e10cSrcweir using namespace ::rtl;
77cdf0e10cSrcweir using namespace ::com::sun::star;
78cdf0e10cSrcweir using namespace ::com::sun::star::uno;
79cdf0e10cSrcweir using namespace ::com::sun::star::beans;
80cdf0e10cSrcweir using namespace ::com::sun::star::lang;
81cdf0e10cSrcweir using namespace ::com::sun::star::sdb;
82cdf0e10cSrcweir using namespace ::com::sun::star::sdbc;
83cdf0e10cSrcweir using namespace ::com::sun::star::form;
84cdf0e10cSrcweir using namespace ::com::sun::star::container;
85cdf0e10cSrcweir using namespace ::com::sun::star::frame;
86cdf0e10cSrcweir
87cdf0e10cSrcweir #define C2U(cChar) OUString::createFromAscii(cChar)
88cdf0e10cSrcweir
89cdf0e10cSrcweir
90cdf0e10cSrcweir //-----------------------------------------------------------------------------
91cdf0e10cSrcweir
92cdf0e10cSrcweir #define PROPERTY_FRAME 1
93cdf0e10cSrcweir
94cdf0e10cSrcweir class BibliographyLoader : public cppu::WeakImplHelper4
95cdf0e10cSrcweir < XServiceInfo, XNameAccess, XPropertySet, XFrameLoader >
96cdf0e10cSrcweir {
97cdf0e10cSrcweir HdlBibModul m_pBibMod;
98cdf0e10cSrcweir Reference< XLoadable > m_xDatMan;
99cdf0e10cSrcweir BibDataManager* m_pDatMan;
100cdf0e10cSrcweir Reference< XNameAccess > m_xColumns;
101cdf0e10cSrcweir Reference< XResultSet > m_xCursor;
102cdf0e10cSrcweir
103cdf0e10cSrcweir private:
104cdf0e10cSrcweir
105cdf0e10cSrcweir void loadView(const Reference< XFrame > & aFrame, const rtl::OUString& aURL,
106cdf0e10cSrcweir const Sequence< PropertyValue >& aArgs,
107cdf0e10cSrcweir const Reference< XLoadEventListener > & aListener);
108cdf0e10cSrcweir
109cdf0e10cSrcweir BibDataManager* GetDataManager()const;
110cdf0e10cSrcweir Reference< XNameAccess > GetDataColumns() const;
111cdf0e10cSrcweir Reference< XResultSet > GetDataCursor() const;
112cdf0e10cSrcweir Reference< sdb::XColumn > GetIdentifierColumn() const;
113cdf0e10cSrcweir
114cdf0e10cSrcweir public:
115cdf0e10cSrcweir BibliographyLoader();
116cdf0e10cSrcweir ~BibliographyLoader();
117cdf0e10cSrcweir
118cdf0e10cSrcweir // XServiceInfo
119cdf0e10cSrcweir rtl::OUString SAL_CALL getImplementationName() throw( );
120cdf0e10cSrcweir sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw( );
121cdf0e10cSrcweir Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void) throw( );
getImplementationName_Static()122cdf0e10cSrcweir static rtl::OUString getImplementationName_Static() throw( )
123cdf0e10cSrcweir
124cdf0e10cSrcweir {
125cdf0e10cSrcweir //!
126cdf0e10cSrcweir return C2U("com.sun.star.extensions.Bibliography");
127cdf0e10cSrcweir //!
128cdf0e10cSrcweir }
129cdf0e10cSrcweir
130cdf0e10cSrcweir //XNameAccess
131cdf0e10cSrcweir virtual Any SAL_CALL getByName(const rtl::OUString& aName) throw ( NoSuchElementException, WrappedTargetException, RuntimeException );
132cdf0e10cSrcweir virtual Sequence< rtl::OUString > SAL_CALL getElementNames(void) throw ( RuntimeException );
133cdf0e10cSrcweir virtual sal_Bool SAL_CALL hasByName(const rtl::OUString& aName) throw ( RuntimeException );
134cdf0e10cSrcweir
135cdf0e10cSrcweir //XElementAccess
136cdf0e10cSrcweir virtual Type SAL_CALL getElementType(void) throw ( RuntimeException );
137cdf0e10cSrcweir virtual sal_Bool SAL_CALL hasElements(void) throw ( RuntimeException );
138cdf0e10cSrcweir
139cdf0e10cSrcweir //XPropertySet
140cdf0e10cSrcweir virtual Reference< XPropertySetInfo > SAL_CALL getPropertySetInfo(void) throw ( RuntimeException );
141cdf0e10cSrcweir virtual void SAL_CALL setPropertyValue(const rtl::OUString& PropertyName, const Any& aValue) throw( UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException, RuntimeException );
142cdf0e10cSrcweir virtual Any SAL_CALL getPropertyValue(const rtl::OUString& PropertyName) throw ( UnknownPropertyException, WrappedTargetException, RuntimeException );
143cdf0e10cSrcweir virtual void SAL_CALL addPropertyChangeListener(const rtl::OUString& PropertyName, const Reference< XPropertyChangeListener > & aListener) throw( UnknownPropertyException, WrappedTargetException, RuntimeException );
144cdf0e10cSrcweir virtual void SAL_CALL removePropertyChangeListener(const rtl::OUString& PropertyName, const Reference< XPropertyChangeListener > & aListener) throw( UnknownPropertyException, WrappedTargetException, RuntimeException );
145cdf0e10cSrcweir virtual void SAL_CALL addVetoableChangeListener(const rtl::OUString& PropertyName, const Reference< XVetoableChangeListener > & aListener) throw( UnknownPropertyException, WrappedTargetException, RuntimeException );
146cdf0e10cSrcweir virtual void SAL_CALL removeVetoableChangeListener(const rtl::OUString& PropertyName, const Reference< XVetoableChangeListener > & aListener) throw( UnknownPropertyException, WrappedTargetException, RuntimeException );
147cdf0e10cSrcweir
148cdf0e10cSrcweir static Sequence<rtl::OUString> SAL_CALL getSupportedServiceNames_Static(void) throw( );
149cdf0e10cSrcweir
150cdf0e10cSrcweir friend Reference< XInterface > SAL_CALL BibliographyLoader_CreateInstance( const Reference< XMultiServiceFactory > & rSMgr ) throw( Exception );
151cdf0e10cSrcweir
152cdf0e10cSrcweir // XLoader
153cdf0e10cSrcweir virtual void SAL_CALL load(const Reference< XFrame > & aFrame, const rtl::OUString& aURL,
154cdf0e10cSrcweir const Sequence< PropertyValue >& aArgs,
155cdf0e10cSrcweir const Reference< XLoadEventListener > & aListener) throw (::com::sun::star::uno::RuntimeException);
156cdf0e10cSrcweir virtual void SAL_CALL cancel(void) throw (::com::sun::star::uno::RuntimeException);
157cdf0e10cSrcweir };
158cdf0e10cSrcweir
BibliographyLoader()159cdf0e10cSrcweir BibliographyLoader::BibliographyLoader() :
160cdf0e10cSrcweir m_pBibMod(0),
161cdf0e10cSrcweir m_pDatMan(0)
162cdf0e10cSrcweir {
163cdf0e10cSrcweir }
164cdf0e10cSrcweir
~BibliographyLoader()165cdf0e10cSrcweir BibliographyLoader::~BibliographyLoader()
166cdf0e10cSrcweir {
167cdf0e10cSrcweir Reference< lang::XComponent > xComp(m_xCursor, UNO_QUERY);
168cdf0e10cSrcweir if (xComp.is())
169cdf0e10cSrcweir xComp->dispose();
170cdf0e10cSrcweir if(m_pBibMod)
171cdf0e10cSrcweir CloseBibModul(m_pBibMod);
172cdf0e10cSrcweir }
173cdf0e10cSrcweir
174cdf0e10cSrcweir
BibliographyLoader_CreateInstance(const Reference<XMultiServiceFactory> &)175cdf0e10cSrcweir Reference< XInterface > SAL_CALL BibliographyLoader_CreateInstance( const Reference< XMultiServiceFactory > & /*rSMgr*/ ) throw( Exception )
176cdf0e10cSrcweir {
177cdf0e10cSrcweir return *(new BibliographyLoader);
178cdf0e10cSrcweir }
179cdf0e10cSrcweir
180cdf0e10cSrcweir
181cdf0e10cSrcweir // XServiceInfo
getImplementationName()182cdf0e10cSrcweir rtl::OUString BibliographyLoader::getImplementationName() throw( )
183cdf0e10cSrcweir
184cdf0e10cSrcweir {
185cdf0e10cSrcweir return getImplementationName_Static();
186cdf0e10cSrcweir }
187cdf0e10cSrcweir
188cdf0e10cSrcweir // XServiceInfo
supportsService(const rtl::OUString & ServiceName)189cdf0e10cSrcweir sal_Bool BibliographyLoader::supportsService(const rtl::OUString& ServiceName) throw( )
190cdf0e10cSrcweir {
191cdf0e10cSrcweir Sequence< rtl::OUString > aSNL = getSupportedServiceNames();
192cdf0e10cSrcweir const rtl::OUString * pArray = aSNL.getConstArray();
193cdf0e10cSrcweir for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
194cdf0e10cSrcweir if( pArray[i] == ServiceName )
195cdf0e10cSrcweir return sal_True;
196cdf0e10cSrcweir return sal_False;
197cdf0e10cSrcweir }
198cdf0e10cSrcweir
199cdf0e10cSrcweir // XServiceInfo
getSupportedServiceNames(void)200cdf0e10cSrcweir Sequence< rtl::OUString > BibliographyLoader::getSupportedServiceNames(void) throw( )
201cdf0e10cSrcweir {
202cdf0e10cSrcweir return getSupportedServiceNames_Static();
203cdf0e10cSrcweir }
204cdf0e10cSrcweir
205cdf0e10cSrcweir // ORegistryServiceManager_Static
getSupportedServiceNames_Static(void)206cdf0e10cSrcweir Sequence< rtl::OUString > BibliographyLoader::getSupportedServiceNames_Static(void) throw( )
207cdf0e10cSrcweir {
208cdf0e10cSrcweir Sequence< rtl::OUString > aSNS( 2 );
209cdf0e10cSrcweir aSNS.getArray()[0] = C2U("com.sun.star.frame.FrameLoader");
210cdf0e10cSrcweir //!
211cdf0e10cSrcweir aSNS.getArray()[1] = C2U("com.sun.star.frame.Bibliography");
212cdf0e10cSrcweir //!
213cdf0e10cSrcweir return aSNS;
214cdf0e10cSrcweir }
215cdf0e10cSrcweir
216cdf0e10cSrcweir extern "C"
217cdf0e10cSrcweir {
component_getImplementationEnvironment(const sal_Char ** ppEnvTypeName,uno_Environment **)218cdf0e10cSrcweir void SAL_CALL component_getImplementationEnvironment(
219cdf0e10cSrcweir const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
220cdf0e10cSrcweir {
221cdf0e10cSrcweir *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
222cdf0e10cSrcweir }
223cdf0e10cSrcweir
component_getFactory(const sal_Char * pImplName,XMultiServiceFactory * pServiceManager,void *)224cdf0e10cSrcweir void * SAL_CALL component_getFactory(
225cdf0e10cSrcweir const sal_Char * pImplName, XMultiServiceFactory * pServiceManager, void * /*pRegistryKey*/ )
226cdf0e10cSrcweir {
227cdf0e10cSrcweir void * pRet = 0;
228cdf0e10cSrcweir if (!BibliographyLoader::getImplementationName_Static().compareToAscii( pImplName ) )
229cdf0e10cSrcweir {
230cdf0e10cSrcweir // create the factory
231cdf0e10cSrcweir Reference< XSingleServiceFactory > xFactory =
232cdf0e10cSrcweir cppu::createSingleFactory(
233cdf0e10cSrcweir pServiceManager,
234cdf0e10cSrcweir BibliographyLoader::getImplementationName_Static(),
235cdf0e10cSrcweir BibliographyLoader_CreateInstance,
236cdf0e10cSrcweir BibliographyLoader::getSupportedServiceNames_Static() );
237cdf0e10cSrcweir // acquire, because we return an interface pointer instead of a reference
238cdf0e10cSrcweir xFactory->acquire();
239cdf0e10cSrcweir pRet = xFactory.get();
240cdf0e10cSrcweir }
241cdf0e10cSrcweir return pRet;
242cdf0e10cSrcweir }
243cdf0e10cSrcweir
244cdf0e10cSrcweir }
245cdf0e10cSrcweir // -----------------------------------------------------------------------
cancel(void)246cdf0e10cSrcweir void BibliographyLoader::cancel(void) throw (::com::sun::star::uno::RuntimeException)
247cdf0e10cSrcweir {
248cdf0e10cSrcweir //!
249cdf0e10cSrcweir //!
250cdf0e10cSrcweir }
251cdf0e10cSrcweir
252cdf0e10cSrcweir // -----------------------------------------------------------------------
load(const Reference<XFrame> & rFrame,const rtl::OUString & rURL,const Sequence<PropertyValue> & rArgs,const Reference<XLoadEventListener> & rListener)253cdf0e10cSrcweir void BibliographyLoader::load(const Reference< XFrame > & rFrame, const rtl::OUString& rURL,
254cdf0e10cSrcweir const Sequence< PropertyValue >& rArgs,
255cdf0e10cSrcweir const Reference< XLoadEventListener > & rListener) throw (::com::sun::star::uno::RuntimeException)
256cdf0e10cSrcweir {
257cdf0e10cSrcweir //!
258cdf0e10cSrcweir
259cdf0e10cSrcweir vos::OGuard aGuard(Application::GetSolarMutex());
260cdf0e10cSrcweir m_pBibMod = OpenBibModul();
261cdf0e10cSrcweir
262cdf0e10cSrcweir String aURLStr( rURL );
263cdf0e10cSrcweir String aPartName = aURLStr.GetToken( 1, '/' );
264cdf0e10cSrcweir Reference<XPropertySet> xPrSet(rFrame, UNO_QUERY);
265cdf0e10cSrcweir if(xPrSet.is())
266cdf0e10cSrcweir {
267cdf0e10cSrcweir Any aTitle;
268cdf0e10cSrcweir aTitle <<= OUString(String(BibResId(RID_BIB_STR_FRAME_TITLE)));
269cdf0e10cSrcweir xPrSet->setPropertyValue(C2U("Title"), aTitle);
270cdf0e10cSrcweir }
271cdf0e10cSrcweir if(aPartName.EqualsAscii("View") || aPartName.EqualsAscii("View1"))
272cdf0e10cSrcweir {
273cdf0e10cSrcweir loadView(rFrame, rURL, rArgs, rListener);
274cdf0e10cSrcweir }
275cdf0e10cSrcweir }
276cdf0e10cSrcweir
277cdf0e10cSrcweir // -----------------------------------------------------------------------
loadView(const Reference<XFrame> & rFrame,const rtl::OUString &,const Sequence<PropertyValue> &,const Reference<XLoadEventListener> & rListener)278cdf0e10cSrcweir void BibliographyLoader::loadView(const Reference< XFrame > & rFrame, const rtl::OUString& /*rURL*/,
279cdf0e10cSrcweir const Sequence< PropertyValue >& /*rArgs*/,
280cdf0e10cSrcweir const Reference< XLoadEventListener > & rListener)
281cdf0e10cSrcweir {
282cdf0e10cSrcweir vos::OGuard aGuard(Application::GetSolarMutex());
283cdf0e10cSrcweir //!
284cdf0e10cSrcweir if(!m_pBibMod)
285cdf0e10cSrcweir m_pBibMod = OpenBibModul();
286cdf0e10cSrcweir
287cdf0e10cSrcweir /*
288cdf0e10cSrcweir //create the menu
289cdf0e10cSrcweir ResMgr* pResMgr = (*m_pBibMod)->GetResMgr();
290cdf0e10cSrcweir INetURLObject aEntry( URIHelper::SmartRelToAbs(pResMgr->GetFileName()) );
291cdf0e10cSrcweir String aMenuRes( RTL_CONSTASCII_USTRINGPARAM( "private:resource/" ));
292cdf0e10cSrcweir aMenuRes += ( aEntry.GetName() += '/' );
293cdf0e10cSrcweir aMenuRes+=String::CreateFromInt32(RID_MAIN_MENU);
294cdf0e10cSrcweir
295cdf0e10cSrcweir util::URL aURL;
296cdf0e10cSrcweir aURL.Complete = aMenuRes;
297cdf0e10cSrcweir
298cdf0e10cSrcweir Reference< XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory();
299cdf0e10cSrcweir Reference< util::XURLTransformer > xTrans ( xMgr->createInstance( C2U("com.sun.star.util.URLTransformer") ), UNO_QUERY );
300cdf0e10cSrcweir if( xTrans.is() )
301cdf0e10cSrcweir {
302cdf0e10cSrcweir // Datei laden
303cdf0e10cSrcweir xTrans->parseStrict( aURL );
304cdf0e10cSrcweir
305cdf0e10cSrcweir Reference< XDispatchProvider > xProv( rFrame, UNO_QUERY );
306cdf0e10cSrcweir if ( xProv.is() )
307cdf0e10cSrcweir {
308cdf0e10cSrcweir Reference< XDispatch > aDisp = xProv->queryDispatch( aURL, C2U("_menubar"), 12 );
309cdf0e10cSrcweir if ( aDisp.is() )
310cdf0e10cSrcweir aDisp->dispatch( aURL, Sequence<PropertyValue>() );
311cdf0e10cSrcweir }
312cdf0e10cSrcweir }
313cdf0e10cSrcweir */
314cdf0e10cSrcweir m_pDatMan = (*m_pBibMod)->createDataManager();
315cdf0e10cSrcweir m_xDatMan = m_pDatMan;
316cdf0e10cSrcweir BibDBDescriptor aBibDesc = BibModul::GetConfig()->GetBibliographyURL();
317cdf0e10cSrcweir
318cdf0e10cSrcweir if(!aBibDesc.sDataSource.getLength())
319cdf0e10cSrcweir {
320cdf0e10cSrcweir DBChangeDialogConfig_Impl aConfig;
321cdf0e10cSrcweir const Sequence<OUString> aSources = aConfig.GetDataSourceNames();
322cdf0e10cSrcweir if(aSources.getLength())
323cdf0e10cSrcweir aBibDesc.sDataSource = aSources.getConstArray()[0];
324cdf0e10cSrcweir }
325cdf0e10cSrcweir
326cdf0e10cSrcweir Reference< XForm > xForm = m_pDatMan->createDatabaseForm( aBibDesc );
327cdf0e10cSrcweir
328cdf0e10cSrcweir Reference< awt::XWindow > aWindow = rFrame->getContainerWindow();
329cdf0e10cSrcweir VCLXWindow* pParentComponent = VCLXWindow::GetImplementation(aWindow);
330cdf0e10cSrcweir
331cdf0e10cSrcweir Window* pParent = VCLUnoHelper::GetWindow( aWindow );
332cdf0e10cSrcweir
333cdf0e10cSrcweir BibBookContainer *pMyWindow = new BibBookContainer( pParent, m_pDatMan );
334cdf0e10cSrcweir pMyWindow->Show();
335cdf0e10cSrcweir
336cdf0e10cSrcweir ::bib::BibView* pView = new ::bib::BibView( pMyWindow, m_pDatMan, WB_VSCROLL | WB_HSCROLL | WB_3DLOOK );
337cdf0e10cSrcweir pView->Show();
338cdf0e10cSrcweir m_pDatMan->SetView( pView );
339cdf0e10cSrcweir
340cdf0e10cSrcweir ::bib::BibBeamer* pBeamer = new ::bib::BibBeamer( pMyWindow, m_pDatMan );
341cdf0e10cSrcweir pBeamer->Show();
342cdf0e10cSrcweir pMyWindow->createTopFrame(pBeamer);
343cdf0e10cSrcweir
344cdf0e10cSrcweir pMyWindow->createBottomFrame(pView);
345cdf0e10cSrcweir
346cdf0e10cSrcweir Reference< awt::XWindow > xWin ( pMyWindow->GetComponentInterface(), UNO_QUERY );
347cdf0e10cSrcweir
348cdf0e10cSrcweir Reference< XController > xCtrRef( new BibFrameController_Impl( xWin, m_pDatMan ) );
349cdf0e10cSrcweir
350cdf0e10cSrcweir xCtrRef->attachFrame(rFrame);
351cdf0e10cSrcweir rFrame->setComponent( xWin, xCtrRef);
352cdf0e10cSrcweir pBeamer->SetXController(xCtrRef);
353cdf0e10cSrcweir //!
354cdf0e10cSrcweir
355cdf0e10cSrcweir // not earlier because SetFocus() is triggered in setVisible()
356cdf0e10cSrcweir pParentComponent->setVisible(sal_True);
357cdf0e10cSrcweir
358cdf0e10cSrcweir m_xDatMan->load();
359cdf0e10cSrcweir // #100312# ----------
360cdf0e10cSrcweir m_pDatMan->RegisterInterceptor(pBeamer);
361cdf0e10cSrcweir
362cdf0e10cSrcweir if ( rListener.is() )
363cdf0e10cSrcweir rListener->loadFinished( this );
364cdf0e10cSrcweir
365cdf0e10cSrcweir // attach menu bar
366cdf0e10cSrcweir Reference< XPropertySet > xPropSet( rFrame, UNO_QUERY );
367cdf0e10cSrcweir Reference< ::com::sun::star::frame::XLayoutManager > xLayoutManager;
368cdf0e10cSrcweir if ( xPropSet.is() )
369cdf0e10cSrcweir {
370cdf0e10cSrcweir try
371cdf0e10cSrcweir {
372cdf0e10cSrcweir Any a = xPropSet->getPropertyValue( OUString( RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" )));
373cdf0e10cSrcweir a >>= xLayoutManager;
374cdf0e10cSrcweir }
375cdf0e10cSrcweir catch ( uno::Exception& )
376cdf0e10cSrcweir {
377cdf0e10cSrcweir }
378cdf0e10cSrcweir }
379cdf0e10cSrcweir
380cdf0e10cSrcweir if ( xLayoutManager.is() )
381cdf0e10cSrcweir xLayoutManager->createElement( OUString( RTL_CONSTASCII_USTRINGPARAM( "private:resource/menubar/menubar" )));
382cdf0e10cSrcweir }
383cdf0e10cSrcweir /* -----------------06.12.99 14:37-------------------
384cdf0e10cSrcweir
385cdf0e10cSrcweir --------------------------------------------------*/
GetDataManager() const386cdf0e10cSrcweir BibDataManager* BibliographyLoader::GetDataManager()const
387cdf0e10cSrcweir {
388cdf0e10cSrcweir if(!m_pDatMan)
389cdf0e10cSrcweir {
390cdf0e10cSrcweir if(!m_pBibMod)
391cdf0e10cSrcweir const_cast< BibliographyLoader* >( this )->m_pBibMod = OpenBibModul();
392cdf0e10cSrcweir const_cast< BibliographyLoader* >( this )->m_pDatMan = (*m_pBibMod)->createDataManager();
393cdf0e10cSrcweir const_cast< BibliographyLoader* >( this )->m_xDatMan = m_pDatMan;
394cdf0e10cSrcweir }
395cdf0e10cSrcweir return m_pDatMan;
396cdf0e10cSrcweir }
397cdf0e10cSrcweir /* -----------------06.12.99 14:39-------------------
398cdf0e10cSrcweir
399cdf0e10cSrcweir --------------------------------------------------*/
GetDataColumns() const400cdf0e10cSrcweir Reference< XNameAccess > BibliographyLoader::GetDataColumns() const
401cdf0e10cSrcweir {
402cdf0e10cSrcweir if (!m_xColumns.is())
403cdf0e10cSrcweir {
404cdf0e10cSrcweir Reference< XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory();
405cdf0e10cSrcweir Reference< XRowSet > xRowSet(xMgr->createInstance(C2U("com.sun.star.sdb.RowSet")), UNO_QUERY);
406cdf0e10cSrcweir Reference< XPropertySet > xResultSetProps(xRowSet, UNO_QUERY);
407cdf0e10cSrcweir DBG_ASSERT(xResultSetProps.is() , "BibliographyLoader::GetDataCursor : invalid row set (no XResultSet or no XPropertySet) !");
408cdf0e10cSrcweir
409cdf0e10cSrcweir BibDBDescriptor aBibDesc = BibModul::GetConfig()->GetBibliographyURL();
410cdf0e10cSrcweir
411cdf0e10cSrcweir Any aBibUrlAny; aBibUrlAny <<= aBibDesc.sDataSource;
412cdf0e10cSrcweir xResultSetProps->setPropertyValue(C2U("DataSourceName"), aBibUrlAny);
413cdf0e10cSrcweir Any aCommandType; aCommandType <<= aBibDesc.nCommandType;
414cdf0e10cSrcweir xResultSetProps->setPropertyValue(C2U("CommandType"), aCommandType);
415cdf0e10cSrcweir Any aTableName; aTableName <<= aBibDesc.sTableOrQuery;
416cdf0e10cSrcweir xResultSetProps->setPropertyValue(C2U("Command"), aTableName);
417cdf0e10cSrcweir Any aResultSetType; aResultSetType <<= (sal_Int32)(ResultSetType::SCROLL_INSENSITIVE);
418cdf0e10cSrcweir xResultSetProps->setPropertyValue(C2U("ResultSetType"), aResultSetType);
419cdf0e10cSrcweir Any aResultSetCurrency; aResultSetCurrency <<= (sal_Int32)(ResultSetConcurrency::UPDATABLE);
420cdf0e10cSrcweir xResultSetProps->setPropertyValue(C2U("ResultSetConcurrency"), aResultSetCurrency);
421cdf0e10cSrcweir
422cdf0e10cSrcweir sal_Bool bSuccess = sal_False;
423cdf0e10cSrcweir try
424cdf0e10cSrcweir {
425cdf0e10cSrcweir xRowSet->execute();
426cdf0e10cSrcweir bSuccess = sal_True;
427cdf0e10cSrcweir }
428cdf0e10cSrcweir catch(const SQLException&)
429cdf0e10cSrcweir {
430cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION();
431cdf0e10cSrcweir }
432cdf0e10cSrcweir catch(const Exception& )
433cdf0e10cSrcweir {
434cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION();
435cdf0e10cSrcweir bSuccess = sal_False;
436cdf0e10cSrcweir }
437cdf0e10cSrcweir
438cdf0e10cSrcweir if (!bSuccess)
439cdf0e10cSrcweir {
440cdf0e10cSrcweir Reference< XComponent > xSetComp(xRowSet, UNO_QUERY);
441cdf0e10cSrcweir if (xSetComp.is())
442cdf0e10cSrcweir xSetComp->dispose();
443cdf0e10cSrcweir xRowSet = NULL;
444cdf0e10cSrcweir }
445cdf0e10cSrcweir else
446cdf0e10cSrcweir ((BibliographyLoader*)this)->m_xCursor = xRowSet.get();
447cdf0e10cSrcweir
448cdf0e10cSrcweir Reference< sdbcx::XColumnsSupplier > xSupplyCols(m_xCursor, UNO_QUERY);
449cdf0e10cSrcweir if (xSupplyCols.is())
450cdf0e10cSrcweir ((BibliographyLoader*)this)->m_xColumns = xSupplyCols->getColumns();
451cdf0e10cSrcweir }
452cdf0e10cSrcweir
453cdf0e10cSrcweir return m_xColumns;
454cdf0e10cSrcweir }
455cdf0e10cSrcweir /* -----------------17.12.99 12:29-------------------
456cdf0e10cSrcweir
457cdf0e10cSrcweir --------------------------------------------------*/
GetIdentifierColumn() const458cdf0e10cSrcweir Reference< sdb::XColumn > BibliographyLoader::GetIdentifierColumn() const
459cdf0e10cSrcweir {
460cdf0e10cSrcweir BibDataManager* pDatMan = GetDataManager();
461cdf0e10cSrcweir Reference< XNameAccess > xColumns = GetDataColumns();
462cdf0e10cSrcweir rtl::OUString sIdentifierColumnName = pDatMan->GetIdentifierMapping();
463cdf0e10cSrcweir
464cdf0e10cSrcweir Reference< sdb::XColumn > xReturn;
465cdf0e10cSrcweir if (xColumns.is() && xColumns->hasByName(sIdentifierColumnName))
466cdf0e10cSrcweir {
467cdf0e10cSrcweir xReturn = Reference< XColumn > (*(Reference< XInterface > *)
468cdf0e10cSrcweir xColumns->getByName(sIdentifierColumnName).getValue(), UNO_QUERY);
469cdf0e10cSrcweir }
470cdf0e10cSrcweir return xReturn;
471cdf0e10cSrcweir }
472cdf0e10cSrcweir
473cdf0e10cSrcweir /* -----------------06.12.99 15:05-------------------
474cdf0e10cSrcweir
475cdf0e10cSrcweir --------------------------------------------------*/
GetDataCursor() const476cdf0e10cSrcweir Reference< XResultSet > BibliographyLoader::GetDataCursor() const
477cdf0e10cSrcweir {
478cdf0e10cSrcweir if (!m_xCursor.is())
479cdf0e10cSrcweir GetDataColumns();
480cdf0e10cSrcweir if (m_xCursor.is())
481cdf0e10cSrcweir m_xCursor->first();
482cdf0e10cSrcweir return m_xCursor;
483cdf0e10cSrcweir }
484cdf0e10cSrcweir
485cdf0e10cSrcweir /*-- 17.11.99 12:51:38---------------------------------------------------
486cdf0e10cSrcweir
487cdf0e10cSrcweir -----------------------------------------------------------------------*/
lcl_AddProperty(Reference<XNameAccess> xColumns,const Mapping * pMapping,const String & rColumnName)488cdf0e10cSrcweir rtl::OUString lcl_AddProperty(Reference< XNameAccess > xColumns,
489cdf0e10cSrcweir const Mapping* pMapping, const String& rColumnName)
490cdf0e10cSrcweir {
491cdf0e10cSrcweir String sColumnName(rColumnName);
492cdf0e10cSrcweir if(pMapping)
493cdf0e10cSrcweir {
494cdf0e10cSrcweir for(sal_uInt16 nEntry = 0; nEntry < COLUMN_COUNT; nEntry++)
495cdf0e10cSrcweir {
496cdf0e10cSrcweir if(pMapping->aColumnPairs[nEntry].sLogicalColumnName == OUString(rColumnName))
497cdf0e10cSrcweir {
498cdf0e10cSrcweir sColumnName = pMapping->aColumnPairs[nEntry].sRealColumnName;
499cdf0e10cSrcweir break;
500cdf0e10cSrcweir }
501cdf0e10cSrcweir }
502cdf0e10cSrcweir }
503cdf0e10cSrcweir rtl::OUString uColumnName(sColumnName);
504cdf0e10cSrcweir rtl::OUString uRet;
505cdf0e10cSrcweir Reference< sdb::XColumn > xCol;
506cdf0e10cSrcweir if (xColumns->hasByName(uColumnName))
507cdf0e10cSrcweir xCol = Reference< sdb::XColumn > (*(Reference< XInterface > *)xColumns->getByName(uColumnName).getValue(), UNO_QUERY);
508cdf0e10cSrcweir if (xCol.is())
509cdf0e10cSrcweir uRet = xCol->getString();
510cdf0e10cSrcweir return uRet;
511cdf0e10cSrcweir }
512cdf0e10cSrcweir //-----------------------------------------------------------------------------
getByName(const rtl::OUString & rName)513cdf0e10cSrcweir Any BibliographyLoader::getByName(const rtl::OUString& rName) throw
514cdf0e10cSrcweir ( NoSuchElementException, WrappedTargetException, RuntimeException )
515cdf0e10cSrcweir {
516cdf0e10cSrcweir Any aRet;
517cdf0e10cSrcweir try
518cdf0e10cSrcweir {
519cdf0e10cSrcweir BibDataManager* pDatMan = ((BibliographyLoader*)this)->GetDataManager();
520cdf0e10cSrcweir Reference< XResultSet > xCursor = GetDataCursor();
521cdf0e10cSrcweir Reference< sdbcx::XColumnsSupplier > xSupplyCols(xCursor, UNO_QUERY);
522cdf0e10cSrcweir Reference< XNameAccess > xColumns;
523cdf0e10cSrcweir if (!xSupplyCols.is())
524cdf0e10cSrcweir return aRet;
525cdf0e10cSrcweir xColumns = xSupplyCols->getColumns();
526cdf0e10cSrcweir DBG_ASSERT(xSupplyCols.is(), "BibliographyLoader::getByName : invalid columns returned by the data cursor (may be the result set is not alive ?) !");
527cdf0e10cSrcweir if (!xColumns.is())
528cdf0e10cSrcweir return aRet;
529cdf0e10cSrcweir
530cdf0e10cSrcweir String sIdentifierMapping = pDatMan->GetIdentifierMapping();
531cdf0e10cSrcweir rtl::OUString sId = sIdentifierMapping;
532cdf0e10cSrcweir Reference< sdb::XColumn > xColumn;
533cdf0e10cSrcweir if (xColumns->hasByName(sId))
534cdf0e10cSrcweir xColumn = Reference< sdb::XColumn > (*(Reference< XInterface > *)xColumns->getByName(sId).getValue(), UNO_QUERY);
535cdf0e10cSrcweir if (xColumn.is())
536cdf0e10cSrcweir {
537cdf0e10cSrcweir do
538cdf0e10cSrcweir {
539cdf0e10cSrcweir if ((rName == xColumn->getString()) && !xColumn->wasNull())
540cdf0e10cSrcweir {
541cdf0e10cSrcweir Sequence<PropertyValue> aPropSequ(COLUMN_COUNT);
542cdf0e10cSrcweir PropertyValue* pValues = aPropSequ.getArray();
543cdf0e10cSrcweir BibConfig* pConfig = BibModul::GetConfig();
544cdf0e10cSrcweir BibDBDescriptor aBibDesc = BibModul::GetConfig()->GetBibliographyURL();
545cdf0e10cSrcweir const Mapping* pMapping = pConfig->GetMapping(aBibDesc);
546cdf0e10cSrcweir for(sal_uInt16 nEntry = 0; nEntry < COLUMN_COUNT; nEntry++)
547cdf0e10cSrcweir {
548cdf0e10cSrcweir const String sColName = pConfig->GetDefColumnName(
549cdf0e10cSrcweir nEntry);
550cdf0e10cSrcweir pValues[nEntry].Name = sColName;
551cdf0e10cSrcweir pValues[nEntry].Value <<= lcl_AddProperty(xColumns, pMapping, sColName);
552cdf0e10cSrcweir }
553cdf0e10cSrcweir aRet.setValue(&aPropSequ, ::getCppuType((Sequence<PropertyValue>*)0));
554cdf0e10cSrcweir
555cdf0e10cSrcweir break;
556cdf0e10cSrcweir }
557cdf0e10cSrcweir }
558cdf0e10cSrcweir while(xCursor->next());
559cdf0e10cSrcweir }
560cdf0e10cSrcweir }
561cdf0e10cSrcweir catch(const Exception&)
562cdf0e10cSrcweir {
563cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION();
564cdf0e10cSrcweir }
565cdf0e10cSrcweir return aRet;
566cdf0e10cSrcweir }
567cdf0e10cSrcweir /*-- 17.11.99 12:51:39---------------------------------------------------
568cdf0e10cSrcweir
569cdf0e10cSrcweir -----------------------------------------------------------------------*/
getElementNames(void)570cdf0e10cSrcweir Sequence< rtl::OUString > BibliographyLoader::getElementNames(void) throw ( RuntimeException )
571cdf0e10cSrcweir {
572cdf0e10cSrcweir Sequence< rtl::OUString > aRet(10);
573cdf0e10cSrcweir int nRealNameCount = 0;
574cdf0e10cSrcweir try
575cdf0e10cSrcweir {
576cdf0e10cSrcweir Reference< XResultSet > xCursor(GetDataCursor());
577cdf0e10cSrcweir Reference< sdb::XColumn > xIdColumn(GetIdentifierColumn());
578cdf0e10cSrcweir if (xIdColumn.is()) // implies xCursor.is()
579cdf0e10cSrcweir {
580cdf0e10cSrcweir do
581cdf0e10cSrcweir {
582cdf0e10cSrcweir rtl::OUString sTemp = xIdColumn->getString();
583cdf0e10cSrcweir if (sTemp.getLength() && !xIdColumn->wasNull())
584cdf0e10cSrcweir {
585cdf0e10cSrcweir int nLen = aRet.getLength();
586cdf0e10cSrcweir if(nLen == nRealNameCount)
587cdf0e10cSrcweir aRet.realloc(nLen + 10);
588cdf0e10cSrcweir rtl::OUString* pArray = aRet.getArray();
589cdf0e10cSrcweir pArray[nRealNameCount] = sTemp;
590cdf0e10cSrcweir nRealNameCount++;
591cdf0e10cSrcweir }
592cdf0e10cSrcweir }
593cdf0e10cSrcweir while (xCursor->next());
594cdf0e10cSrcweir }
595cdf0e10cSrcweir }
596cdf0e10cSrcweir catch(const Exception&)
597cdf0e10cSrcweir {
598cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION();
599cdf0e10cSrcweir }
600cdf0e10cSrcweir
601cdf0e10cSrcweir aRet.realloc(nRealNameCount);
602cdf0e10cSrcweir return aRet;
603cdf0e10cSrcweir }
604cdf0e10cSrcweir /*-- 17.11.99 12:51:39---------------------------------------------------
605cdf0e10cSrcweir
606cdf0e10cSrcweir -----------------------------------------------------------------------*/
hasByName(const rtl::OUString & rName)607cdf0e10cSrcweir sal_Bool BibliographyLoader::hasByName(const rtl::OUString& rName) throw ( RuntimeException )
608cdf0e10cSrcweir {
609cdf0e10cSrcweir sal_Bool bRet = sal_False;
610cdf0e10cSrcweir try
611cdf0e10cSrcweir {
612cdf0e10cSrcweir Reference< XResultSet > xCursor = GetDataCursor();
613cdf0e10cSrcweir Reference< sdb::XColumn > xIdColumn = GetIdentifierColumn();
614cdf0e10cSrcweir
615cdf0e10cSrcweir if (xIdColumn.is()) // implies xCursor.is()
616cdf0e10cSrcweir {
617cdf0e10cSrcweir do
618cdf0e10cSrcweir {
619cdf0e10cSrcweir rtl::OUString sCurrentId = xIdColumn->getString();
620cdf0e10cSrcweir if (!xIdColumn->wasNull() && (rName.compareTo(sCurrentId) == COMPARE_EQUAL))
621cdf0e10cSrcweir {
622cdf0e10cSrcweir bRet = sal_True;
623cdf0e10cSrcweir break;
624cdf0e10cSrcweir }
625cdf0e10cSrcweir }
626cdf0e10cSrcweir while(xCursor->next());
627cdf0e10cSrcweir }
628cdf0e10cSrcweir }
629cdf0e10cSrcweir catch(const Exception&)
630cdf0e10cSrcweir {
631cdf0e10cSrcweir DBG_UNHANDLED_EXCEPTION();
632cdf0e10cSrcweir }
633cdf0e10cSrcweir return bRet;
634cdf0e10cSrcweir }
635cdf0e10cSrcweir /*-- 17.11.99 12:51:39---------------------------------------------------
636cdf0e10cSrcweir
637cdf0e10cSrcweir -----------------------------------------------------------------------*/
getElementType(void)638cdf0e10cSrcweir Type BibliographyLoader::getElementType(void) throw ( RuntimeException )
639cdf0e10cSrcweir {
640cdf0e10cSrcweir return ::getCppuType((Sequence<PropertyValue>*)0);
641cdf0e10cSrcweir }
642cdf0e10cSrcweir /*-- 17.11.99 12:51:40---------------------------------------------------
643cdf0e10cSrcweir
644cdf0e10cSrcweir -----------------------------------------------------------------------*/
hasElements(void)645cdf0e10cSrcweir sal_Bool BibliographyLoader::hasElements(void) throw ( RuntimeException )
646cdf0e10cSrcweir {
647cdf0e10cSrcweir Reference< XResultSet > xCursor = GetDataCursor();
648cdf0e10cSrcweir Reference< XNameAccess > xColumns = GetDataColumns();
649cdf0e10cSrcweir return xColumns.is() && (xColumns->getElementNames().getLength() != 0);
650cdf0e10cSrcweir }
651cdf0e10cSrcweir
652cdf0e10cSrcweir /*-- 07.12.99 14:28:39---------------------------------------------------
653cdf0e10cSrcweir
654cdf0e10cSrcweir -----------------------------------------------------------------------*/
getPropertySetInfo(void)655cdf0e10cSrcweir Reference< XPropertySetInfo > BibliographyLoader::getPropertySetInfo(void) throw
656cdf0e10cSrcweir ( RuntimeException )
657cdf0e10cSrcweir {
658cdf0e10cSrcweir static SfxItemPropertyMapEntry aBibProps_Impl[] =
659cdf0e10cSrcweir {
660cdf0e10cSrcweir { MAP_CHAR_LEN("BibliographyDataFieldNames"), 0, &::getCppuType((Sequence<PropertyValue>*)0), PropertyAttribute::READONLY, 0},
661cdf0e10cSrcweir {0,0,0,0,0,0}
662cdf0e10cSrcweir };
663cdf0e10cSrcweir static Reference< XPropertySetInfo > xRet =
664cdf0e10cSrcweir SfxItemPropertySet(aBibProps_Impl).getPropertySetInfo();
665cdf0e10cSrcweir return xRet;
666cdf0e10cSrcweir }
667cdf0e10cSrcweir /*-- 07.12.99 14:28:39---------------------------------------------------
668cdf0e10cSrcweir
669cdf0e10cSrcweir -----------------------------------------------------------------------*/
setPropertyValue(const rtl::OUString &,const Any &)670cdf0e10cSrcweir void BibliographyLoader::setPropertyValue(const rtl::OUString& /*PropertyName*/,
671cdf0e10cSrcweir const Any& /*aValue*/)
672cdf0e10cSrcweir throw( UnknownPropertyException, PropertyVetoException,
673cdf0e10cSrcweir IllegalArgumentException, WrappedTargetException, RuntimeException)
674cdf0e10cSrcweir {
675cdf0e10cSrcweir throw UnknownPropertyException();
676cdf0e10cSrcweir //no changeable properties
677cdf0e10cSrcweir }
678cdf0e10cSrcweir /*-- 07.12.99 14:28:39---------------------------------------------------
679cdf0e10cSrcweir
680cdf0e10cSrcweir -----------------------------------------------------------------------*/
getPropertyValue(const rtl::OUString & rPropertyName)681cdf0e10cSrcweir Any BibliographyLoader::getPropertyValue(const rtl::OUString& rPropertyName)
682cdf0e10cSrcweir throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
683cdf0e10cSrcweir {
684cdf0e10cSrcweir Any aRet;
685cdf0e10cSrcweir static const sal_uInt16 aInternalMapping[] =
686cdf0e10cSrcweir {
687cdf0e10cSrcweir IDENTIFIER_POS , // BibliographyDataField_IDENTIFIER
688cdf0e10cSrcweir AUTHORITYTYPE_POS , // BibliographyDataField_BIBILIOGRAPHIC_TYPE
689cdf0e10cSrcweir ADDRESS_POS , // BibliographyDataField_ADDRESS
690cdf0e10cSrcweir ANNOTE_POS , // BibliographyDataField_ANNOTE
691cdf0e10cSrcweir AUTHOR_POS , // BibliographyDataField_AUTHOR
692cdf0e10cSrcweir BOOKTITLE_POS , // BibliographyDataField_BOOKTITLE
693cdf0e10cSrcweir CHAPTER_POS , // BibliographyDataField_CHAPTER
694cdf0e10cSrcweir EDITION_POS , // BibliographyDataField_EDITION
695cdf0e10cSrcweir EDITOR_POS , // BibliographyDataField_EDITOR
696cdf0e10cSrcweir HOWPUBLISHED_POS , // BibliographyDataField_HOWPUBLISHED
697cdf0e10cSrcweir INSTITUTION_POS , // BibliographyDataField_INSTITUTION
698cdf0e10cSrcweir JOURNAL_POS , // BibliographyDataField_JOURNAL
699cdf0e10cSrcweir MONTH_POS , // BibliographyDataField_MONTH
700cdf0e10cSrcweir NOTE_POS , // BibliographyDataField_NOTE
701cdf0e10cSrcweir NUMBER_POS , // BibliographyDataField_NUMBER
702cdf0e10cSrcweir ORGANIZATIONS_POS , // BibliographyDataField_ORGANIZATIONS
703cdf0e10cSrcweir PAGES_POS , // BibliographyDataField_PAGES
704cdf0e10cSrcweir PUBLISHER_POS , // BibliographyDataField_PUBLISHER
705cdf0e10cSrcweir SCHOOL_POS , // BibliographyDataField_SCHOOL
706cdf0e10cSrcweir SERIES_POS , // BibliographyDataField_SERIES
707cdf0e10cSrcweir TITLE_POS , // BibliographyDataField_TITLE
708cdf0e10cSrcweir REPORTTYPE_POS , // BibliographyDataField_REPORT_TYPE
709cdf0e10cSrcweir VOLUME_POS , // BibliographyDataField_VOLUME
710cdf0e10cSrcweir YEAR_POS , // BibliographyDataField_YEAR
711cdf0e10cSrcweir URL_POS , // BibliographyDataField_URL
712cdf0e10cSrcweir CUSTOM1_POS , // BibliographyDataField_CUSTOM1
713cdf0e10cSrcweir CUSTOM2_POS , // BibliographyDataField_CUSTOM2
714cdf0e10cSrcweir CUSTOM3_POS , // BibliographyDataField_CUSTOM3
715cdf0e10cSrcweir CUSTOM4_POS , // BibliographyDataField_CUSTOM4
716cdf0e10cSrcweir CUSTOM5_POS , // BibliographyDataField_CUSTOM5
717cdf0e10cSrcweir ISBN_POS //BibliographyDataField_ISBN
718cdf0e10cSrcweir };
719cdf0e10cSrcweir if(C2U("BibliographyDataFieldNames") == rPropertyName)
720cdf0e10cSrcweir {
721cdf0e10cSrcweir Sequence<PropertyValue> aSeq(COLUMN_COUNT);
722cdf0e10cSrcweir PropertyValue* pArray = aSeq.getArray();
723cdf0e10cSrcweir BibConfig* pConfig = BibModul::GetConfig();
724cdf0e10cSrcweir for(sal_uInt16 i = 0; i <= text::BibliographyDataField::ISBN ; i++)
725cdf0e10cSrcweir {
726cdf0e10cSrcweir pArray[i].Name = pConfig->GetDefColumnName(aInternalMapping[i]);
727cdf0e10cSrcweir pArray[i].Value <<= (sal_Int16) i;
728cdf0e10cSrcweir }
729cdf0e10cSrcweir aRet.setValue(&aSeq, ::getCppuType((Sequence<PropertyValue>*)0));
730cdf0e10cSrcweir }
731cdf0e10cSrcweir else
732cdf0e10cSrcweir throw UnknownPropertyException();
733cdf0e10cSrcweir return aRet;
734cdf0e10cSrcweir }
735cdf0e10cSrcweir /*-- 07.12.99 14:28:40---------------------------------------------------
736cdf0e10cSrcweir
737cdf0e10cSrcweir -----------------------------------------------------------------------*/
addPropertyChangeListener(const rtl::OUString &,const Reference<XPropertyChangeListener> &)738cdf0e10cSrcweir void BibliographyLoader::addPropertyChangeListener(
739cdf0e10cSrcweir const rtl::OUString& /*PropertyName*/, const Reference< XPropertyChangeListener > & /*aListener*/)
740cdf0e10cSrcweir throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
741cdf0e10cSrcweir {
742cdf0e10cSrcweir //no bound properties
743cdf0e10cSrcweir }
744cdf0e10cSrcweir /*-- 07.12.99 14:28:40---------------------------------------------------
745cdf0e10cSrcweir
746cdf0e10cSrcweir -----------------------------------------------------------------------*/
removePropertyChangeListener(const rtl::OUString &,const Reference<XPropertyChangeListener> &)747cdf0e10cSrcweir void BibliographyLoader::removePropertyChangeListener(
748cdf0e10cSrcweir const rtl::OUString& /*PropertyName*/, const Reference< XPropertyChangeListener > & /*aListener*/)
749cdf0e10cSrcweir throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
750cdf0e10cSrcweir {
751cdf0e10cSrcweir //no bound properties
752cdf0e10cSrcweir }
753cdf0e10cSrcweir /*-- 07.12.99 14:28:40---------------------------------------------------
754cdf0e10cSrcweir
755cdf0e10cSrcweir -----------------------------------------------------------------------*/
addVetoableChangeListener(const rtl::OUString &,const Reference<XVetoableChangeListener> &)756cdf0e10cSrcweir void BibliographyLoader::addVetoableChangeListener(
757cdf0e10cSrcweir const rtl::OUString& /*PropertyName*/, const Reference< XVetoableChangeListener > & /*aListener*/)
758cdf0e10cSrcweir throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
759cdf0e10cSrcweir {
760cdf0e10cSrcweir //no vetoable properties
761cdf0e10cSrcweir }
762cdf0e10cSrcweir /*-- 07.12.99 14:28:40---------------------------------------------------
763cdf0e10cSrcweir
764cdf0e10cSrcweir -----------------------------------------------------------------------*/
removeVetoableChangeListener(const rtl::OUString &,const Reference<XVetoableChangeListener> &)765cdf0e10cSrcweir void BibliographyLoader::removeVetoableChangeListener(
766cdf0e10cSrcweir const rtl::OUString& /*PropertyName*/, const Reference< XVetoableChangeListener > & /*aListener*/)
767cdf0e10cSrcweir throw( UnknownPropertyException, WrappedTargetException, RuntimeException )
768cdf0e10cSrcweir {
769cdf0e10cSrcweir //no vetoable properties
770cdf0e10cSrcweir }
771cdf0e10cSrcweir
772cdf0e10cSrcweir
773cdf0e10cSrcweir
774