summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/browser/unodatbr.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ui/browser/unodatbr.cxx')
-rw-r--r--dbaccess/source/ui/browser/unodatbr.cxx69
1 files changed, 40 insertions, 29 deletions
diff --git a/dbaccess/source/ui/browser/unodatbr.cxx b/dbaccess/source/ui/browser/unodatbr.cxx
index ffc339ecdbe7..b8372e7a80a3 100644
--- a/dbaccess/source/ui/browser/unodatbr.cxx
+++ b/dbaccess/source/ui/browser/unodatbr.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: unodatbr.cxx,v $
*
- * $Revision: 1.108 $
+ * $Revision: 1.109 $
*
- * last change: $Author: oj $ $Date: 2001-09-20 12:56:17 $
+ * last change: $Author: oj $ $Date: 2001-09-25 13:24:38 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -542,6 +542,8 @@ sal_Bool SbaTableQueryBrowser::Construct(Window* pParent)
m_pTreeView->setCopyHandler(LINK(this, SbaTableQueryBrowser, OnCopyEntry));
m_pTreeView->setPasteHandler(LINK(this, SbaTableQueryBrowser, OnPasteEntry));
m_pTreeView->setDeleteHandler(LINK(this, SbaTableQueryBrowser, OnDeleteEntry));
+ m_pTreeView->setEditingHandler(LINK(this, SbaTableQueryBrowser, OnEditingEntry));
+ m_pTreeView->setEditedHandler(LINK(this, SbaTableQueryBrowser, OnEditedEntry));
m_pTreeView->getListBox()->setControlActionListener(this);
m_pTreeView->SetHelpId(HID_CTL_TREEVIEW);
@@ -3268,32 +3270,7 @@ void SbaTableQueryBrowser::implCreateObject( SvLBoxEntry* _pApplyTo, sal_uInt16
if (pQueryTextItem)
sCurrentObject = static_cast<SvLBoxString*>(pQueryTextItem)->GetText();
- DBTreeListModel::DBTreeListUserData* pData = static_cast<DBTreeListModel::DBTreeListUserData*>(_pApplyTo->GetUserData());
- if(!pData->xObject.is())
- {
- // the query has not been accessed before -> create it's user data
-
- Reference<XNameAccess> xNameAccess;
- if(ID_EDIT_TABLE == _nAction)
- {
- Reference<XTablesSupplier> xSup(xConnection,UNO_QUERY);
- if(xSup.is())
- xNameAccess = xSup->getTables();
- }
- else
- {
- Reference<XQueriesSupplier> xSup(xConnection,UNO_QUERY);
- if(xSup.is())
- xNameAccess = xSup->getQueries();
- }
-
- SvLBoxItem* pTextItem = _pApplyTo->GetFirstItem(SV_ITEM_ID_BOLDLBSTRING);
- if (pTextItem)
- sCurrentObject = static_cast<SvLBoxString*>(pTextItem)->GetText();
-
- if(xNameAccess.is() && xNameAccess->hasByName(sCurrentObject)) // remember the table or query object
- xNameAccess->getByName(sCurrentObject) >>= pData->xObject;
- }
+ ensureObjectExists(_pApplyTo);
}
ODesignAccess* pDispatcher = NULL;
@@ -3398,7 +3375,11 @@ void SbaTableQueryBrowser::implRemoveQuery( SvLBoxEntry* _pApplyTo )
}
}
}
-
+// -----------------------------------------------------------------------------
+void SbaTableQueryBrowser::implRenameEntry( SvLBoxEntry* _pApplyTo )
+{
+ m_pTreeView->getListBox()->EditEntry(_pApplyTo);
+}
// -----------------------------------------------------------------------------
void SbaTableQueryBrowser::implDropTable( SvLBoxEntry* _pApplyTo )
{
@@ -3589,6 +3570,7 @@ sal_Bool SbaTableQueryBrowser::requestContextMenu( const CommandEvent& _rEvent )
// 1.3 actions on existing tables
aContextMenu.EnableItem(ID_EDIT_TABLE, etTable == eType && bIsConnectionWriteAble);
aContextMenu.EnableItem(ID_DROP_TABLE, etTable == eType && bIsConnectionWriteAble);
+ aContextMenu.EnableItem(ID_RENAME_ENTRY, etTable == eType && bIsConnectionWriteAble);
aContextMenu.EnableItem(ID_TREE_TABLE_COPY, etTable == eType);
// these have to be disabled if the connection is readonly
if(!bIsConnectionWriteAble)
@@ -3607,6 +3589,7 @@ sal_Bool SbaTableQueryBrowser::requestContextMenu( const CommandEvent& _rEvent )
// 2.3 actions on existing tables
aContextMenu.EnableItem(ID_DROP_VIEW, bIsConnectionWriteAble);
+ aContextMenu.EnableItem(ID_RENAME_ENTRY, bIsConnectionWriteAble);
aContextMenu.EnableItem(ID_TREE_VIEW_COPY, sal_True);
// these have to be disabled if the connection is readonly
@@ -3629,6 +3612,7 @@ sal_Bool SbaTableQueryBrowser::requestContextMenu( const CommandEvent& _rEvent )
aContextMenu.EnableItem(ID_EDIT_QUERY_DESIGN, etQuery == eType);
aContextMenu.EnableItem(ID_DROP_QUERY, etQuery == eType);
aContextMenu.EnableItem(ID_TREE_QUERY_COPY, etQuery == eType);
+ aContextMenu.EnableItem(ID_RENAME_ENTRY, etQuery == eType);
}
break;
@@ -3708,6 +3692,9 @@ sal_Bool SbaTableQueryBrowser::requestContextMenu( const CommandEvent& _rEvent )
case ID_DROP_VIEW:
implDropTable( pEntry );
break;
+ case ID_RENAME_ENTRY:
+ implRenameEntry(pEntry);
+ break;
case ID_TREE_QUERY_COPY:
{
@@ -3901,6 +3888,30 @@ sal_Bool SbaTableQueryBrowser::implGetQuerySignature( ::rtl::OUString& _rCommand
return sal_False;
}
+// -----------------------------------------------------------------------------
+void SbaTableQueryBrowser::ensureObjectExists(SvLBoxEntry* _pApplyTo)
+{
+ // get the name of the object
+ DBTreeListModel::DBTreeListUserData* pData = static_cast<DBTreeListModel::DBTreeListUserData*>(_pApplyTo->GetUserData());
+ if(!pData->xObject.is())
+ {
+ // the object has not been accessed before -> create it's user data
+ SvLBoxEntry* pEntryParent = m_pTreeView->getListBox()->GetParent(_pApplyTo);
+ DBTreeListModel::DBTreeListUserData* pParentData = static_cast<DBTreeListModel::DBTreeListUserData*>(pEntryParent->GetUserData());
+ if(pParentData && pParentData->xObject.is())
+ {
+ Reference<XNameAccess> xNameAccess(pParentData->xObject,UNO_QUERY);
+
+ ::rtl::OUString sCurrentObject;
+ SvLBoxItem* pTextItem = _pApplyTo->GetFirstItem(SV_ITEM_ID_BOLDLBSTRING);
+ if (pTextItem)
+ sCurrentObject = static_cast<SvLBoxString*>(pTextItem)->GetText();
+
+ if(xNameAccess.is() && xNameAccess->hasByName(sCurrentObject)) // remember the table or query object
+ xNameAccess->getByName(sCurrentObject) >>= pData->xObject;
+ }
+ }
+}
// .........................................................................
} // namespace dbaui