User: ihi     
Date: 2007/04/16 09:28:27

Modified:
   dba/dbaccess/source/ui/misc/databaseobjectview.cxx

Log:
 INTEGRATION: CWS fwkdbdesign01 (1.3.46); FILE MERGED
 2007/02/27 13:13:52 as 1.3.46.3: warning free
 2007/02/27 08:55:52 as 1.3.46.2: #i74541# improve creation of 
designer-sub-frames
 2007/02/26 11:42:54 as 1.3.46.1: #i74541# create designer as sub frames of 
db-model-frame

File Changes:

Directory: /dba/dbaccess/source/ui/misc/
========================================

File [changed]: databaseobjectview.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/misc/databaseobjectview.cxx?r1=1.3&r2=1.4
Delta lines:  +48 -48
---------------------
--- databaseobjectview.cxx      7 Nov 2006 14:49:05 -0000       1.3
+++ databaseobjectview.cxx      16 Apr 2007 16:28:24 -0000      1.4
@@ -47,6 +47,9 @@
 #endif
 
 /** === begin UNO includes === **/
+#ifndef _COM_SUN_STAR_LANG_XSINGLESERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#endif
 #ifndef _COM_SUN_STAR_FRAME_XDISPATCHPROVIDER_HPP_
 #include <com/sun/star/frame/XDispatchProvider.hpp>
 #endif
@@ -65,6 +68,12 @@
 #ifndef _COM_SUN_STAR_SDB_APPLICATION_XTABLEUIPROVIDER_HPP_
 #include <com/sun/star/sdb/application/XTableUIProvider.hpp>
 #endif
+#ifndef _COM_SUN_STAR_BEANS_NAMEDVALUE_HPP_
+#include <com/sun/star/beans/NamedValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_AWT_RECTANGLE_HPP_
+#include <com/sun/star/awt/Rectangle.hpp>
+#endif
 /** === end UNO includes === **/
 
 #ifndef _COMPHELPER_EXTRACT_HXX_
@@ -98,14 +107,19 @@
        using namespace ::com::sun::star::frame;
        using namespace ::com::sun::star::lang;
        using namespace ::com::sun::star::beans;
+       using namespace ::com::sun::star::awt;
 
        //======================================================================
        //= DatabaseObjectView
        //======================================================================
        DatabaseObjectView::DatabaseObjectView( const Reference< 
XMultiServiceFactory >& _rxORB,
-            const Reference< XDatabaseDocumentUI >& _rxApplication, const 
::rtl::OUString& _rComponentURL )
-               :m_xORB( _rxORB )
-        ,m_xApplication( _rxApplication )
+            const Reference< XDatabaseDocumentUI >& _rxApplication, 
+                       const Reference< XFrame >& _rxParentFrame,
+                       const ::rtl::OUString& _rComponentURL )
+               :m_xORB         ( _rxORB         )
+               ,m_xParentFrame ( _rxParentFrame )
+        ,m_xFrameLoader (                )
+        ,m_xApplication ( _rxApplication )
         ,m_sComponentURL( _rComponentURL )
        {
                OSL_ENSURE( m_xORB.is(), 
"DatabaseObjectView::DatabaseObjectView: invalid service factory!" );
@@ -151,49 +165,34 @@
                        try
                        {
                                // get the desktop object
-                               sal_Int32 nFrameSearchFlag = 
FrameSearchFlag::SELF;
-                               ::rtl::OUString 
sTarget(RTL_CONSTASCII_USTRINGPARAM("_self"));
                                if ( !m_xFrameLoader.is() )
                                {
-                                       
m_xFrameLoader.set(m_xORB->createInstance(SERVICE_FRAME_DESKTOP),UNO_QUERY);
-                                       nFrameSearchFlag = 
FrameSearchFlag::TASKS | FrameSearchFlag::CREATE;
-                                       sTarget = 
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_blank"));
-                               }
-
-                               OSL_ENSURE( m_xFrameLoader.is(), 
"DatabaseObjectView::doDispatch: invalid frame loader!" );
+                                       Reference< XSingleServiceFactory > 
xFact(m_xORB->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.TaskCreator")),
 UNO_QUERY_THROW);
+                                       Sequence< Any > lArgs(2);
+                                       NamedValue      aProp;
+                    sal_Int32       nArg = 0;
 
-                               if ( m_xFrameLoader.is() )
-                               {
-                                       // create a new frame and remove it 
from the desktop, so we care for it
-                                       Reference<XFrame> xFrame = 
Reference<XFrame>(m_xFrameLoader,UNO_QUERY)->findFrame(sTarget,nFrameSearchFlag);
-                    /*
-                    ... no ... dont remove the frame from the desktop tree.
-                    Otherwhise it can happen that sometimes no active frame 
will be defined
-                    and some funstions behind the menu of this frame cant work.
+                                       aProp.Name    = 
::rtl::OUString::createFromAscii("ParentFrame");
+                                       aProp.Value <<= m_xParentFrame;
+                                       lArgs[nArg++] <<= aProp;
 
-                    see #124984# for further informations
-                    */
+                                       aProp.Name    = 
::rtl::OUString::createFromAscii("TopWindow");
+                                       aProp.Value <<= sal_True;
+                                       lArgs[nArg++] <<= aProp;
 
-                                       Reference<XFramesSupplier> 
xSup(m_xFrameLoader,UNO_QUERY);
-                                       if ( xSup.is() )
-                                       {
-                                               Reference<XFrames> xFrames = 
xSup->getFrames();
-                                               xFrames->remove(xFrame);
+                                       
m_xFrameLoader.set(xFact->createInstanceWithArguments(lArgs), UNO_QUERY_THROW);
                                        }
 
-                                       Reference<XComponentLoader> 
xFrameLoad(xFrame,UNO_QUERY);
-                                       if ( xFrameLoad.is() )
-                                       {
-                                               xReturn = 
xFrameLoad->loadComponentFromURL(
+                               Reference< XComponentLoader > 
xFrameLoader(m_xFrameLoader, UNO_QUERY_THROW);
+                               xReturn = xFrameLoader->loadComponentFromURL(
                                                        m_sComponentURL,
                                                        
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_self")),
-                                                       FrameSearchFlag::SELF,
+                                       0,
                                                        _rArgs
                                                );
+
                                                if ( xReturn.is() )
-                                                       
xReturn.set(xFrame,UNO_QUERY);
-                                       }
-                               }
+                                       xReturn.set(m_xFrameLoader,UNO_QUERY);
                        }
                        catch(Exception&)
                        {
@@ -235,8 +234,9 @@
        //======================================================================
        //----------------------------------------------------------------------
        QueryDesigner::QueryDesigner( const Reference< XMultiServiceFactory >& 
_rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication,
+               const Reference< XFrame >& _rxParentFrame,
         sal_Bool _bCreateView, sal_Bool _bPreferSQLView )
-               :DatabaseObjectView( _rxORB, _rxApplication, static_cast< 
::rtl::OUString >( URL_COMPONENT_QUERYDESIGN ) )
+               :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, 
static_cast< ::rtl::OUString >( URL_COMPONENT_QUERYDESIGN ) )
                ,m_bCreateView( _bCreateView )
                ,m_bPreferSQLView( _bPreferSQLView )
        {
@@ -271,8 +271,8 @@
        //= TableDesigner
        //======================================================================
        //----------------------------------------------------------------------
-       TableDesigner::TableDesigner( const Reference< XMultiServiceFactory >& 
_rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication )
-               :DatabaseObjectView( _rxORB, _rxApplication, static_cast< 
::rtl::OUString >( URL_COMPONENT_TABLEDESIGN ) )
+       TableDesigner::TableDesigner( const Reference< XMultiServiceFactory >& 
_rxORB, const Reference< XDatabaseDocumentUI >& _rxApplication, const 
Reference< XFrame >& _rxParentFrame )
+               :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, 
static_cast< ::rtl::OUString >( URL_COMPONENT_TABLEDESIGN ) )
        {
        }
 
@@ -341,9 +341,9 @@
        //= ResultSetBrowser
        //======================================================================
        //----------------------------------------------------------------------
-       ResultSetBrowser::ResultSetBrowser( const Reference< 
XMultiServiceFactory >& _rxORB, const Reference< XDatabaseDocumentUI >& 
_rxApplication,
+       ResultSetBrowser::ResultSetBrowser( const Reference< 
XMultiServiceFactory >& _rxORB, const Reference< XDatabaseDocumentUI >& 
_rxApplication, const Reference< XFrame >& _rxParentFrame,
             sal_Bool _bTable )
-               :DatabaseObjectView( _rxORB, _rxApplication, static_cast < 
::rtl::OUString >( URL_COMPONENT_DATASOURCEBROWSER ) )
+               :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, 
static_cast < ::rtl::OUString >( URL_COMPONENT_DATASOURCEBROWSER ) )
                ,m_bTable(_bTable)
        {
        }
@@ -390,8 +390,8 @@
        //= RelationDesigner
        //======================================================================
        //----------------------------------------------------------------------
-       RelationDesigner::RelationDesigner( const Reference< 
XMultiServiceFactory >& _rxORB, const Reference< XDatabaseDocumentUI >& 
_rxApplication )
-        :DatabaseObjectView( _rxORB, _rxApplication, static_cast< 
::rtl::OUString >( URL_COMPONENT_RELATIONDESIGN ) )
+       RelationDesigner::RelationDesigner( const Reference< 
XMultiServiceFactory >& _rxORB, const Reference< XDatabaseDocumentUI >& 
_rxApplication, const Reference< XFrame >& _rxParentFrame )
+        :DatabaseObjectView( _rxORB, _rxApplication, _rxParentFrame, 
static_cast< ::rtl::OUString >( URL_COMPONENT_RELATIONDESIGN ) )
        {
        }
 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to