User: kz      
Date: 2008-06-25 12:36:33+0000
Modified:
   dba/dbaccess/source/ui/app/AppDetailPageHelper.cxx

Log:
 INTEGRATION: CWS dba30d (1.32.10); FILE MERGED
 2008/06/16 09:01:39 fs 1.32.10.10: corrected 
describeCurrentSelectionForControl to assert only when necessary
 2008/06/11 20:26:01 fs 1.32.10.9: renaming of some of the recently introduced 
css.sdb.application.DatabaseObjectContainer constants#
 2008/06/10 14:11:21 fs 1.32.10.8: #i10000#
 2008/06/10 14:08:33 fs 1.32.10.7: #i10000#
 2008/06/10 11:11:19 fs 1.32.10.6: #i10000#
 2008/06/10 11:05:19 fs 1.32.10.5: +describeCurrentSelectionForType
 2008/06/10 08:34:44 fs 1.32.10.4: DatabaseObjectFolder renamed to 
DatabaseObjectContainer
 2008/06/09 13:45:43 fs 1.32.10.3: #i80943# retrieve the proper selection for 
the context menu interceptors
 2008/06/01 21:02:32 fs 1.32.10.2: #i80943# more preparations for context menu 
interception, including some re-factoring
 2008/05/29 11:33:17 fs 1.32.10.1: in preparation of #i80943#: implement 
IContextMenuProvider

File Changes:

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

File [changed]: AppDetailPageHelper.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/dbaccess/source/ui/app/AppDetailPageHelper.cxx?r1=1.32&r2=1.33
Delta lines:  +214 -55
----------------------
--- AppDetailPageHelper.cxx     2008-05-05 15:52:11+0000        1.32
+++ AppDetailPageHelper.cxx     2008-06-25 12:36:31+0000        1.33
@@ -123,12 +123,11 @@
 #ifndef _COM_SUN_STAR_SDB_APPLICATION_XDATABASEDOCUMENTUI_HPP_
 #include <com/sun/star/sdb/application/XDatabaseDocumentUI.hpp>
 #endif
+#include <com/sun/star/sdb/application/DatabaseObject.hpp>
+#include <com/sun/star/sdb/application/DatabaseObjectContainer.hpp>
 #ifndef DBAUI_APPVIEW_HXX
 #include "AppView.hxx"
 #endif
-#ifndef DBAUI_IAPPELEMENTNOTIFICATION_HXX
-#include "IAppElementNotification.hxx"
-#endif
 #ifndef _DBA_DBACCESS_HELPID_HRC_
 #include "dbaccess_helpid.hrc"
 #endif
@@ -162,6 +161,10 @@
 #ifndef _TOOLS_DEBUG_HXX
 #include <tools/debug.hxx>
 #endif
+#ifndef _RTL_USTRBUF_HXX_
+#include <rtl/ustrbuf.hxx>
+#endif
+#include "IApplicationController.hxx"
 
 #include <com/sun/star/document/XDocumentProperties.hpp>
 
@@ -179,6 +182,12 @@
 using namespace ::com::sun::star::beans;
 using namespace ::com::sun::star;
 
+namespace dbaui
+{
+    namespace DatabaseObject = 
::com::sun::star::sdb::application::DatabaseObject;
+    namespace DatabaseObjectContainer = 
::com::sun::star::sdb::application::DatabaseObjectContainer;
+}
+
 namespace
 {
        SvLBoxEntry* lcl_findEntry_impl(DBTreeListBox& rTree,const 
::rtl::OUString& _rName,SvLBoxEntry* _pFirst)
@@ -320,7 +329,7 @@
        m_xWindow = VCLUnoHelper::GetInterface( m_pTablePreview );
 
        SetUniqueId(UID_APP_DETAILPAGE_HELPER);
-       for (int i=0; i < CONTROL_COUNT; ++i)
+       for (int i=0; i < E_ELEMENT_TYPE_COUNT; ++i)
                m_pLists[i] = NULL;
        ImplInitSettings();
 }
@@ -338,7 +347,7 @@
                OSL_ENSURE(0,"Exception thrown while disposing preview frame!");
        }
 
-       for (int i=0; i < CONTROL_COUNT; ++i)
+       for (int i=0; i < E_ELEMENT_TYPE_COUNT; ++i)
        {
                if ( m_pLists[i] )
                {
@@ -357,7 +366,7 @@
 int OAppDetailPageHelper::getVisibleControlIndex() const
 {
        int i = 0;
-       for (; i < CONTROL_COUNT ; ++i)
+       for (; i < E_ELEMENT_TYPE_COUNT ; ++i)
        {
                if ( m_pLists[i] && m_pLists[i]->IsVisible() )
                        break;
@@ -368,7 +377,7 @@
 void OAppDetailPageHelper::selectAll()
 {
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                m_pLists[nPos]->lockAutoSelect();
                m_pLists[nPos]->SelectAll(TRUE);
@@ -390,7 +399,7 @@
 {
        SvSortMode eSortMode = SortNone;
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                SvLBoxTreeList* pModel = m_pLists[nPos]->GetModel();
                eSortMode = pModel->GetSortMode();
@@ -401,21 +410,21 @@
 void OAppDetailPageHelper::sortDown()
 {
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
                sort(nPos,SortDescending);
 }
 // 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::sortUp()
 {
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
                sort(nPos,SortAscending);
 }
 // 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::getSelectionElementNames( ::std::vector< 
::rtl::OUString>& _rNames ) const
 {
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                DBTreeListBox& rTree = *m_pLists[nPos];
                sal_Int32 nCount = rTree.GetEntryCount();
@@ -427,7 +436,7 @@
                        if ( eType == E_TABLE )
                        {
                                if( rTree.GetChildCount(pEntry) == 0 )
-                                       _rNames.push_back(getQualifiedName( 
pEntry ) );
+                                       _rNames.push_back( getQualifiedName( 
pEntry ) );
                        }
                        else
                        {
@@ -444,11 +453,96 @@
                }
        }
 }
+
+// 
-----------------------------------------------------------------------------
+void OAppDetailPageHelper::describeCurrentSelectionForControl( const Control& 
_rControl, Sequence< NamedDatabaseObject >& _out_rSelectedObjects )
+{
+    enum ElementType eType = E_TABLE;
+       for ( size_t i=0; i < E_ELEMENT_TYPE_COUNT; eType = static_cast< 
ElementType >( ++i ) )
+       {
+        if ( m_pLists[eType] == &_rControl )
+        {
+            describeCurrentSelectionForType( eType, _out_rSelectedObjects );
+            return;
+        }
+       }
+    OSL_ENSURE( false, 
"OAppDetailPageHelper::describeCurrentSelectionForControl: invalid control!" );
+}
+
+// 
-----------------------------------------------------------------------------
+void OAppDetailPageHelper::describeCurrentSelectionForType( const ElementType 
_eType, Sequence< NamedDatabaseObject >& _out_rSelectedObjects )
+{
+    OSL_ENSURE( _eType < E_ELEMENT_TYPE_COUNT, 
"OAppDetailPageHelper::describeCurrentSelectionForType: invalid type!" );
+    DBTreeListBox* pList = m_pLists[ _eType ];
+    OSL_ENSURE( pList, "OAppDetailPageHelper::describeCurrentSelectionForType: 
"
+                       "You really should ensure this type has already been 
viewed before!" );
+    if ( !pList )
+        return;
+
+    ::std::vector< NamedDatabaseObject > aSelected;
+
+    SvLBoxEntry* pEntry = pList->FirstSelected();
+    while( pEntry )
+    {
+        NamedDatabaseObject aObject;
+        switch ( _eType )
+        {
+        case E_TABLE:
+        {
+            OTableTreeListBox& rTableTree = dynamic_cast< OTableTreeListBox& 
>( *pList );
+            aObject = rTableTree.describeObject( pEntry );
+        }
+        break;
+        case E_QUERY:
+            aObject.Type = DatabaseObject::QUERY;
+            aObject.Name = pList->GetEntryText( pEntry );
+            break;
+
+        case E_FORM:
+        case E_REPORT:
+        {
+            ::rtl::OUString sName = pList->GetEntryText(pEntry);
+            SvLBoxEntry* pParent = pList->GetParent(pEntry);
+            while ( pParent )
+            {
+                ::rtl::OUStringBuffer buffer;
+                buffer.append( pList->GetEntryText( pParent ) );
+                buffer.append( sal_Unicode( '/' ) );
+                buffer.append( sName );
+                sName = buffer.makeStringAndClear();
+
+                pParent = pList->GetParent( pParent );
+            }
+
+            if ( isLeaf( pEntry ) )
+                aObject.Type = ( _eType == E_FORM ) ? DatabaseObject::FORM : 
DatabaseObject::REPORT;
+            else
+                aObject.Type = ( _eType == E_FORM ) ? 
DatabaseObjectContainer::FORMS_FOLDER : DatabaseObjectContainer::REPORTS_FOLDER;
+            aObject.Name = sName;
+        }
+        break;
+        default:
+            OSL_ENSURE( false, 
"OAppDetailPageHelper::describeCurrentSelectionForType: unexpected type!" );
+            break;
+        }
+
+        if ( aObject.Name.getLength() )
+        {
+            aSelected.push_back( aObject );
+        }
+
+        pEntry = pList->NextSelected(pEntry);
+    }
+
+    _out_rSelectedObjects.realloc( aSelected.size() );
+    ::std::copy( aSelected.begin(), aSelected.end(), 
_out_rSelectedObjects.getArray() );
+}
+
 // 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::selectElements(const Sequence< ::rtl::OUString>& 
_aNames)
 {
     int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                DBTreeListBox& rTree = *m_pLists[nPos];
         rTree.SelectAll(FALSE);
@@ -468,7 +562,7 @@
        int nPos = getVisibleControlIndex();
        ::rtl::OUString sComposedName;
 
-       if ( nPos >= CONTROL_COUNT )
+       if ( nPos >= E_ELEMENT_TYPE_COUNT )
         return sComposedName;
 
     OSL_ENSURE(m_pLists[nPos],"Tables tree view is NULL! -> GPF");
@@ -510,7 +604,7 @@
 {
        sal_Int32 nCount = 0;
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                DBTreeListBox& rTree = *m_pLists[nPos];
                SvLBoxEntry* pEntry = rTree.FirstSelected();
@@ -527,7 +621,7 @@
 {
        sal_Int32 nCount = 0;
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                nCount = m_pLists[nPos]->GetEntryCount();
        }
@@ -563,28 +657,32 @@
 {
 }
 // 
-----------------------------------------------------------------------------
-sal_Bool OAppDetailPageHelper::isLeaf(SvLBoxEntry* _pEntry) const
+bool OAppDetailPageHelper::isLeaf(SvLBoxEntry* _pEntry) const
 {
-       int nPos = getVisibleControlIndex();
-       sal_Bool bLeafSelected = sal_False;
-       if ( nPos < CONTROL_COUNT && _pEntry )
-       {
-               bLeafSelected = 
reinterpret_cast<sal_IntPtr>(_pEntry->GetUserData()) != FOLDER_INDICATOR;
-       }
-       return bLeafSelected;
+    sal_Int32 nEntryType = reinterpret_cast< sal_IntPtr >( 
_pEntry->GetUserData() );
+    if  (   ( nEntryType == DatabaseObjectContainer::TABLES )
+        ||  ( nEntryType == DatabaseObjectContainer::CATALOG )
+        ||  ( nEntryType == DatabaseObjectContainer::SCHEMA )
+        ||  ( nEntryType == DatabaseObjectContainer::FORMS_FOLDER )
+        ||  ( nEntryType == DatabaseObjectContainer::REPORTS_FOLDER )
+        )
+        return false;
+
+       return true;
 }
+
 // 
-----------------------------------------------------------------------------
 sal_Bool OAppDetailPageHelper::isALeafSelected() const
 {
        int nPos = getVisibleControlIndex();
        sal_Bool bLeafSelected = sal_False;
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
        {
                DBTreeListBox& rTree = *m_pLists[nPos];
                SvLBoxEntry* pEntry = rTree.FirstSelected( );
                while( !bLeafSelected && pEntry )
                {
-                       bLeafSelected = 
reinterpret_cast<sal_IntPtr>(pEntry->GetUserData()) != FOLDER_INDICATOR;
+                       bLeafSelected = isLeaf( pEntry );
                        pEntry = rTree.NextSelected(pEntry);
                }
        }
@@ -595,7 +693,7 @@
 {
        SvLBoxEntry* pReturn = NULL;
        int nPos = getVisibleControlIndex();
-       if ( nPos < CONTROL_COUNT )
+       if ( nPos < E_ELEMENT_TYPE_COUNT )
                pReturn = m_pLists[nPos]->GetEntry( _aPosPixel,TRUE );
        return pReturn;
 }
@@ -694,7 +792,7 @@
        {
                if ( !m_pLists[_eType]->GetEntryCount() && _xContainer.is() )
                {
-                       fillNames( _xContainer, *m_pLists[ _eType ], nImageId, 
nImageIdH );
+                       fillNames( _xContainer, _eType, nImageId, nImageIdH, 
NULL );
 
                        m_pLists[_eType]->SelectAll(FALSE);
                }
@@ -724,11 +822,65 @@
         _pWindow->GrabFocus();
        Resize();
 }
+
+// 
-----------------------------------------------------------------------------
+namespace
+{
+    namespace DatabaseObject = 
::com::sun::star::sdb::application::DatabaseObject;
+    namespace DatabaseObjectContainer = 
::com::sun::star::sdb::application::DatabaseObjectContainer;
+
+    static sal_Int32 lcl_getFolderIndicatorForType( const ElementType _eType )
+    {
+        const sal_Int32 nFolderIndicator = 
+                ( _eType == E_FORM ) ? DatabaseObjectContainer::FORMS_FOLDER
+            :   ( _eType == E_REPORT ) ? 
DatabaseObjectContainer::REPORTS_FOLDER : -1;
+        return nFolderIndicator;
+    }
+}
+
 // 
-----------------------------------------------------------------------------
-void OAppDetailPageHelper::fillNames( const Reference< XNameAccess >& 
_xContainer, DBTreeListBox& _rList,
-                                      USHORT _nImageId, USHORT 
_nHighContrastImageId, SvLBoxEntry* _pParent )
+void OAppDetailPageHelper::fillNames( const Reference< XNameAccess >& 
_xContainer, const ElementType _eType,
+                                      const USHORT _nImageId, const USHORT 
_nHighContrastImageId, SvLBoxEntry* _pParent )
 {
-       fillTreeListNames( _xContainer, _rList, _nImageId, 
_nHighContrastImageId, _pParent, m_rBorderWin.getView()->getContainerListener() 
);
+       OSL_ENSURE(_xContainer.is(),"Data source is NULL! -> GPF");
+    OSL_ENSURE( ( _eType >= E_TABLE ) && ( _eType < E_ELEMENT_TYPE_COUNT ), 
"OAppDetailPageHelper::fillNames: invalid type!" );
+
+    DBTreeListBox* pList = m_pLists[ _eType ];
+    OSL_ENSURE( pList, "OAppDetailPageHelper::fillNames: you really should 
create the list before calling this!" );
+    if ( !pList )
+        return;
+
+       if ( _xContainer.is() && _xContainer->hasElements() )
+       {
+        const sal_Int32 nFolderIndicator = lcl_getFolderIndicatorForType( 
_eType );
+
+               Sequence< ::rtl::OUString> aSeq = 
_xContainer->getElementNames();
+               const ::rtl::OUString* pIter = aSeq.getConstArray();
+               const ::rtl::OUString* pEnd      = pIter + aSeq.getLength();
+               for(;pIter != pEnd;++pIter)
+               {
+                       SvLBoxEntry* pEntry = NULL;
+                       Reference<XNameAccess> 
xSubElements(_xContainer->getByName(*pIter),UNO_QUERY);
+                       if ( xSubElements.is() )
+                       {
+                pEntry = pList->InsertEntry( *pIter, _pParent, FALSE, 
LIST_APPEND, reinterpret_cast< void* >( nFolderIndicator ) );
+                getBorderWin().getView()->getAppController().containerFound( 
Reference< XContainer >( xSubElements, UNO_QUERY ) );
+                               fillNames( xSubElements, _eType, _nImageId, 
_nHighContrastImageId, pEntry );
+                       }
+                       else
+                       {
+                               pEntry = pList->InsertEntry( *pIter, _pParent );
+
+                Image aImage = Image( ModuleRes( _nImageId ) );
+                pList->SetExpandedEntryBmp( pEntry, aImage, BMP_COLOR_NORMAL );
+                pList->SetCollapsedEntryBmp( pEntry, aImage, BMP_COLOR_NORMAL 
);
+
+                Image aHCImage = Image( ModuleRes( _nHighContrastImageId ) );
+                pList->SetExpandedEntryBmp( pEntry, aHCImage, 
BMP_COLOR_HIGHCONTRAST );
+                pList->SetCollapsedEntryBmp( pEntry, aHCImage, 
BMP_COLOR_HIGHCONTRAST );
+                       }
+               }
+       }
 }
 // 
-----------------------------------------------------------------------------
 DBTreeListBox* OAppDetailPageHelper::createSimpleTree( ULONG _nHelpId, const 
Image& _rImage, const Image& _rImageHC )
@@ -763,8 +915,8 @@
        _pTreeView->setPasteHandler(LINK(this, OAppDetailPageHelper, 
OnPasteEntry));
        _pTreeView->setDeleteHandler(LINK(this, OAppDetailPageHelper, 
OnDeleteEntry));
 
-       
_pTreeView->setContextMenuActionListener(getBorderWin().getView()->getCommandController());
-       
_pTreeView->setControlActionListener(getBorderWin().getView()->getActionListener());
+       _pTreeView->setControlActionListener( 
&getBorderWin().getView()->getAppController() );
+       _pTreeView->setContextMenuProvider( 
&getBorderWin().getView()->getAppController() );
 
        return _pTreeView;
 }
@@ -772,7 +924,7 @@
 void OAppDetailPageHelper::clearPages()
 {
        showPreview(NULL);
-       for (size_t i=0; i < CONTROL_COUNT; ++i)
+       for (size_t i=0; i < E_ELEMENT_TYPE_COUNT; ++i)
        {
                if ( m_pLists[i] )
                        m_pLists[i]->Clear();
@@ -782,9 +934,9 @@
 sal_Bool OAppDetailPageHelper::isFilled() const
 {
        size_t i = 0;
-       for (; i < CONTROL_COUNT && !m_pLists[i]; ++i)
+       for (; i < E_ELEMENT_TYPE_COUNT && !m_pLists[i]; ++i)
                ;
-       return i != CONTROL_COUNT;
+       return i != E_ELEMENT_TYPE_COUNT;
 }
 // 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::elementReplaced(ElementType _eType
@@ -849,8 +1001,9 @@
                Reference<XNameAccess> xContainer(_rObject,UNO_QUERY);
                if ( xContainer.is() )
                {
-                       pRet = 
pTreeView->InsertEntry(_rName,pEntry,FALSE,LIST_APPEND,reinterpret_cast<void*>(FOLDER_INDICATOR));
-                       fillNames( xContainer, *pTreeView, nImageId, nImageIdH, 
pRet );
+            const sal_Int32 nFolderIndicator = lcl_getFolderIndicatorForType( 
_eType );
+            pRet = pTreeView->InsertEntry( _rName, pEntry, FALSE, LIST_APPEND, 
reinterpret_cast< void* >( nFolderIndicator ) );
+                       fillNames( xContainer, _eType, nImageId, nImageIdH, 
pRet );
                }
                else
                {
@@ -908,13 +1061,16 @@
 // 
-----------------------------------------------------------------------------
 IMPL_LINK(OAppDetailPageHelper, OnEntryDoubleClick, SvTreeListBox*, _pTree)
 {
-       bool bHandled = 
getBorderWin().getView()->getElementNotification()->onEntryDoubleClick(_pTree);
+    OSL_ENSURE( _pTree, "OAppDetailPageHelper, OnEntryDoubleClick: invalid 
callback!" );
+       bool bHandled = ( _pTree != NULL ) && 
getBorderWin().getView()->getAppController().onEntryDoubleClick( *_pTree );
     return bHandled ? 1L : 0L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK(OAppDetailPageHelper, OnDeSelectHdl, SvTreeListBox*, _pTree)
 {
-       
getBorderWin().getView()->getElementNotification()->onEntryDeSelect(_pTree);
+    OSL_ENSURE( _pTree, "OAppDetailPageHelper, OnDeSelectHdl: invalid 
callback!" );
+       if ( _pTree != NULL )
+        getBorderWin().getView()->getAppController().onEntryDeSelect( *_pTree 
);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
@@ -922,7 +1078,7 @@
 {
        if ( 1 == getSelectionCount() )
        {
-               
getBorderWin().getView()->getElementNotification()->onEntrySelect(_pEntry);
+               
getBorderWin().getView()->getAppController().onEntrySelect(_pEntry);
        }
        else
        {
@@ -933,25 +1089,25 @@
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnCutEntry, SvLBoxEntry*, _pEntry )
 {
-       getBorderWin().getView()->getElementNotification()->onCutEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onCutEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnCopyEntry, SvLBoxEntry*, _pEntry )
 {
-       
getBorderWin().getView()->getElementNotification()->onCopyEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onCopyEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnPasteEntry, SvLBoxEntry*, _pEntry )
 {
-       
getBorderWin().getView()->getElementNotification()->onPasteEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onPasteEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
 IMPL_LINK( OAppDetailPageHelper, OnDeleteEntry, SvLBoxEntry*, _pEntry )
 {
-       
getBorderWin().getView()->getElementNotification()->onDeleteEntry(_pEntry);
+       getBorderWin().getView()->getAppController().onDeleteEntry(_pEntry);
        return 1L;
 }
 // 
-----------------------------------------------------------------------------
@@ -1003,7 +1159,7 @@
        {
                m_ePreviewMode = _eMode;
 
-               
getBorderWin().getView()->getViewChangeListener()->previewChanged(static_cast<sal_Int32>(m_ePreviewMode));
+               
getBorderWin().getView()->getAppController().previewChanged(static_cast<sal_Int32>(m_ePreviewMode));
 
                sal_uInt16 nSelectedAction = SID_DB_APP_DISABLE_PREVIEW;
                switch ( m_ePreviewMode )
@@ -1015,7 +1171,7 @@
                                nSelectedAction = SID_DB_APP_VIEW_DOC_PREVIEW;
                                break;
                        case E_DOCUMENTINFO:
-                               if ( 
getBorderWin().getView()->getCommandController()->isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW)
 )
+                               if ( 
getBorderWin().getView()->getAppController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW)
 )
                                        nSelectedAction = 
SID_DB_APP_VIEW_DOCINFO_PREVIEW;
                                else
                                        m_ePreviewMode = E_PREVIEWNONE;
@@ -1034,7 +1190,7 @@
                                SvLBoxEntry* pEntry = pTree->GetSelectedEntry();
                                if ( pEntry )
                                {
-                                       
getBorderWin().getView()->getElementNotification()->onEntrySelect(pEntry);
+                                       
getBorderWin().getView()->getAppController().onEntrySelect(pEntry);
                                }
                        }
                }
@@ -1134,7 +1290,7 @@
                 Reference< XPropertySet > xFrameProps( m_xFrame, 
UNO_QUERY_THROW );
                 xFrameProps->setPropertyValue( ::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" ) ), makeAny(Reference< 
XLayoutManager >()) );
 
-                               Reference<XFramesSupplier> 
xSup(getBorderWin().getView()->getController()->getFrame(),UNO_QUERY);
+                               Reference<XFramesSupplier> 
xSup(getBorderWin().getView()->getAppController().getXController()->getFrame(),UNO_QUERY);
                                if ( xSup.is() )
                                {
                                        Reference<XFrames> xFrames = 
xSup->getFrames();
@@ -1146,7 +1302,7 @@
                        }
                }
 
-        Reference< XDatabaseDocumentUI > xApplication( 
getBorderWin().getView()->getController(), UNO_QUERY );
+        Reference< XDatabaseDocumentUI > xApplication( 
getBorderWin().getView()->getAppController().getXController(), UNO_QUERY );
                ::std::auto_ptr< DatabaseObjectView > pDispatcher( new 
ResultSetBrowser(
             getBorderWin().getView()->getORB(), xApplication, NULL, _bTable
         ) );
@@ -1196,7 +1352,6 @@
        m_aTBPreview.Update();
 
        // execute the menu
-       IController* pControler = 
getBorderWin().getView()->getCommandController();
        ::std::auto_ptr<PopupMenu> aMenu(new PopupMenu( ModuleRes( 
RID_MENU_APP_PREVIEW ) ));
 
        sal_uInt16 pActions[] = { SID_DB_APP_DISABLE_PREVIEW
@@ -1208,7 +1363,7 @@
        {
                
aMenu->CheckItem(pActions[i],m_aMenu->IsItemChecked(pActions[i]));
        }
-       aMenu->EnableItem( SID_DB_APP_VIEW_DOCINFO_PREVIEW, 
pControler->isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW) );
+       aMenu->EnableItem( SID_DB_APP_VIEW_DOCINFO_PREVIEW, 
getBorderWin().getView()->getAppController().isCommandEnabled(SID_DB_APP_VIEW_DOCINFO_PREVIEW)
 );
 
        // no disabled entries
        aMenu->RemoveDisabledEntries();
@@ -1222,19 +1377,23 @@
        {
                m_aTBPreview.SetItemText(SID_DB_APP_DISABLE_PREVIEW, 
aMenu->GetItemText(nSelectedAction));
                Resize();
-               
getBorderWin().getView()->getCommandController()->executeChecked(nSelectedAction,Sequence<PropertyValue>());
+               
getBorderWin().getView()->getAppController().executeChecked(nSelectedAction,Sequence<PropertyValue>());
        }
        return 0L;
 }
+
 // 
-----------------------------------------------------------------------------
 void OAppDetailPageHelper::KeyInput( const KeyEvent& rKEvt )
 {
+    SvTreeListBox* pCurrentView = getCurrentView();
+    OSL_PRECOND( pCurrentView, "OAppDetailPageHelper::KeyInput: how this?" );
+
        KeyFuncType eFunc = rKEvt.GetKeyCode().GetFunction(); (void)eFunc;
        USHORT          nCode = rKEvt.GetKeyCode().GetCode();
 
-       if ( KEY_RETURN == nCode )
+       if ( ( KEY_RETURN == nCode ) && pCurrentView )
        {
-               
getBorderWin().getView()->getElementNotification()->onEntryDoubleClick(getCurrentView());
+               
getBorderWin().getView()->getAppController().onEntryDoubleClick( *pCurrentView 
);
        }
        else
                Window::KeyInput(rKEvt);




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

Reply via email to