summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dbaccess/source/ui/control/makefile.mk92
-rw-r--r--dbaccess/source/ui/control/marktree.cxx258
-rw-r--r--dbaccess/source/ui/control/tabletree.cxx367
-rw-r--r--dbaccess/source/ui/control/tabletree.hrc79
-rw-r--r--dbaccess/source/ui/control/tabletree.src184
-rw-r--r--dbaccess/source/ui/dlg/adminpages.cxx1344
-rw-r--r--dbaccess/source/ui/dlg/adminpages.hxx402
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.cxx540
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.hrc146
-rw-r--r--dbaccess/source/ui/dlg/dbadmin.src1435
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.cxx510
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.hrc26
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.hxx207
-rw-r--r--dbaccess/source/ui/dlg/dbfindex.src279
-rw-r--r--dbaccess/source/ui/dlg/dsitems.hxx103
-rw-r--r--dbaccess/source/ui/dlg/makefile.mk106
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.cxx552
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.hrc95
-rw-r--r--dbaccess/source/ui/dlg/sqlmessage.src322
-rw-r--r--dbaccess/source/ui/inc/charsets.hxx160
-rw-r--r--dbaccess/source/ui/inc/curledit.hxx116
-rw-r--r--dbaccess/source/ui/inc/dbu_resource.hrc143
-rw-r--r--dbaccess/source/ui/inc/localresaccess.hxx111
-rw-r--r--dbaccess/source/ui/inc/marktree.hxx110
-rw-r--r--dbaccess/source/ui/inc/moduledbu.hxx153
-rw-r--r--dbaccess/source/ui/inc/sqlmessage.hxx190
-rw-r--r--dbaccess/source/ui/inc/stringlistitem.hxx113
-rw-r--r--dbaccess/source/ui/inc/tabletree.hxx149
-rw-r--r--dbaccess/source/ui/misc/charsets.cxx216
-rw-r--r--dbaccess/source/ui/misc/dbumiscres.hrc82
-rw-r--r--dbaccess/source/ui/misc/dbumiscres.src143
-rw-r--r--dbaccess/source/ui/misc/dsntypes.cxx353
-rw-r--r--dbaccess/source/ui/misc/makefile.mk93
-rw-r--r--dbaccess/source/ui/misc/moduledbu.cxx177
-rw-r--r--dbaccess/source/ui/misc/stringlistitem.cxx125
-rw-r--r--dbaccess/source/ui/misc/uiservices.cxx150
36 files changed, 9631 insertions, 0 deletions
diff --git a/dbaccess/source/ui/control/makefile.mk b/dbaccess/source/ui/control/makefile.mk
new file mode 100644
index 000000000000..17983ab70630
--- /dev/null
+++ b/dbaccess/source/ui/control/makefile.mk
@@ -0,0 +1,92 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1 $
+#
+# last change: $Author: fs $ $Date: 2000-10-05 10:00:35 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (the "License"); You may not use this file
+# except in compliance with the License. You may obtain a copy of the
+# License at http://www.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+PRJINC=$(PRJ)$/source
+PRJNAME=dbaccess
+TARGET=uicontrols
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files -------------------------------------
+
+# ... resource files ............................
+
+SRCFILES = \
+ tabletree.src \
+ marktree.src
+
+# ... object files ............................
+
+SLOFILES= \
+ $(SLO)$/tabletree.obj \
+ $(SLO)$/marktree.obj \
+ $(SLO)$/curledit.obj
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/dbaccess/source/ui/control/marktree.cxx b/dbaccess/source/ui/control/marktree.cxx
new file mode 100644
index 000000000000..5d51c931719c
--- /dev/null
+++ b/dbaccess/source/ui/control/marktree.cxx
@@ -0,0 +1,258 @@
+/*************************************************************************
+ *
+ * $RCSfile: marktree.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:00:43 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_MARKTREE_HXX_
+#include "marktree.hxx"
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//========================================================================
+//= OMarkableTreeListBox
+//========================================================================
+//------------------------------------------------------------------------
+OMarkableTreeListBox::OMarkableTreeListBox( Window* pParent, WinBits nWinStyle ) : SvTreeListBox(pParent,nWinStyle)
+{
+ SetNodeBitmaps( Bitmap(ModuleRes(BMP_PLUSBUTTON)),Bitmap(ModuleRes(BMP_MINUSBUTTON)));
+ InitButtonData();
+}
+//------------------------------------------------------------------------
+OMarkableTreeListBox::OMarkableTreeListBox( Window* pParent, const ResId& rResId ) : SvTreeListBox(pParent,rResId)
+{
+ SetNodeBitmaps( Bitmap(ModuleRes(BMP_PLUSBUTTON)),Bitmap(ModuleRes(BMP_MINUSBUTTON)));
+ InitButtonData();
+}
+//------------------------------------------------------------------------
+OMarkableTreeListBox::~OMarkableTreeListBox()
+{
+ delete m_pCheckButton;
+}
+//------------------------------------------------------------------------
+void OMarkableTreeListBox::InitButtonData()
+{
+ m_pCheckButton = new SvLBoxButtonData();
+ m_pCheckButton->aBmps[SV_BMP_UNCHECKED] = Bitmap( ResId( BMP_CHECKBUTTON_UNCHECKED ) );
+ m_pCheckButton->aBmps[SV_BMP_CHECKED] = Bitmap( ResId( BMP_CHECKBUTTON_CHECKED ) );
+ m_pCheckButton->aBmps[SV_BMP_HICHECKED] = Bitmap( ResId( BMP_CHECKBUTTON_HICHECKED ) );
+ m_pCheckButton->aBmps[SV_BMP_HIUNCHECKED] = Bitmap( ResId( BMP_CHECKBUTTON_UNCHECKED ) );
+ m_pCheckButton->aBmps[SV_BMP_TRISTATE] = Bitmap( ResId( BMP_CHECKBUTTON_TRISTATE ) );
+ m_pCheckButton->aBmps[SV_BMP_HITRISTATE] = Bitmap( ResId( BMP_CHECKBUTTON_HITRISTATE ) );
+ EnableCheckButton( m_pCheckButton );
+}
+//------------------------------------------------------------------------
+void OMarkableTreeListBox::KeyInput( const KeyEvent& rKEvt )
+{
+ // nur wenn space
+ if (rKEvt.GetKeyCode().GetCode() == KEY_SPACE && !rKEvt.GetKeyCode().IsShift() && !rKEvt.GetKeyCode().IsMod1())
+ {
+ SvLBoxEntry* pHdlEntry = GetHdlEntry();
+ if(pHdlEntry)
+ {
+ SvButtonState eState = GetCheckButtonState( pHdlEntry);
+ if(eState == SV_BUTTON_CHECKED)
+ SetCheckButtonState( pHdlEntry,SV_BUTTON_UNCHECKED);
+ else
+ SetCheckButtonState( pHdlEntry,SV_BUTTON_CHECKED);
+
+ CheckButtonHdl();
+ }
+ else
+ SvTreeListBox::KeyInput(rKEvt);
+ }
+ else
+ SvTreeListBox::KeyInput(rKEvt);
+
+}
+//------------------------------------------------------------------------
+void OMarkableTreeListBox::CheckButtons()
+{
+ // Plausibilit"atspr"ufung
+ SvButtonState eState;
+ SvLBoxEntry* pEntry = GetModel()->First();
+ while(pEntry)
+ {
+ if(!GetModel()->HasChilds(pEntry))
+ {
+ sal_uInt16 nCheck=0;
+ sal_uInt16 nCount=0;
+ SvLBoxEntry* pChildEntry = pEntry;
+ while(pChildEntry)
+ {
+ if(GetCheckButtonState(pChildEntry) == SV_BUTTON_CHECKED)
+ nCheck++;
+ nCount++;
+ pChildEntry = GetModel()->NextSibling(pChildEntry);
+ }
+
+ if(nCheck && nCount != nCheck)
+ eState = SV_BUTTON_TRISTATE;
+ else if(nCheck)
+ eState = SV_BUTTON_CHECKED;
+ else
+ eState = SV_BUTTON_UNCHECKED;
+
+ SvLBoxEntry* pSchema = GetModel()->GetParent(pEntry);
+ if(pSchema)
+ {
+ pEntry = GetModel()->NextSibling(pSchema);
+ SetCheckButtonState( pSchema,eState);
+ }
+ else
+ pEntry = NULL; // wenn kein Schema dann sind bereits alle pEntry's durchlaufen worden
+ }
+ else
+ pEntry = GetModel()->Next(pEntry);
+ }
+
+ SvLBoxEntry* pCatalog = GetModel()->First();
+ SvLBoxEntry* pSchema = NULL;
+ if(GetModel()->HasChilds(pCatalog) && GetModel()->HasChilds(pSchema = GetModel()->Next(pCatalog)))
+ {
+ sal_uInt16 nCheck =0;
+ sal_uInt16 nTri =0;
+ sal_uInt16 nCount =0;
+ while(pSchema)
+ {
+ if((eState = GetCheckButtonState(pSchema)) == SV_BUTTON_TRISTATE)
+ break;
+
+ if(eState == SV_BUTTON_CHECKED)
+ nCheck++;
+ nCount++;
+ pSchema = GetModel()->NextSibling(pSchema);
+ }
+
+ if(eState != SV_BUTTON_TRISTATE)
+ {
+ if(nCheck && nCount == nCheck)
+ eState = SV_BUTTON_CHECKED;
+ else if(nCheck)
+ eState = SV_BUTTON_TRISTATE;
+ else
+ eState = SV_BUTTON_UNCHECKED;
+ }
+ SetCheckButtonState( pCatalog,eState);
+ }
+}
+//------------------------------------------------------------------------
+void OMarkableTreeListBox::CheckButtonHdl()
+{
+ SvLBoxEntry* pHdlEntry = GetHdlEntry();
+ SvButtonState eState = GetCheckButtonState( pHdlEntry);
+ if(GetModel()->HasChilds(pHdlEntry)) // Falls Kinder, dann diese auch checken
+ {
+ SvLBoxEntry* pChildEntry = GetModel()->Next(pHdlEntry);
+ SvLBoxEntry* pSiblingEntry = GetModel()->NextSibling(pHdlEntry);
+ while(pChildEntry && pChildEntry != pSiblingEntry)
+ {
+ SetCheckButtonState( pChildEntry,eState);
+ pChildEntry = GetModel()->Next(pChildEntry);
+ }
+ }
+
+ SvLBoxEntry* pEntry = IsSelected(pHdlEntry) ? FirstSelected() : NULL;
+ while(pEntry)
+ {
+ SetCheckButtonState( pEntry,eState);
+ if(GetModel()->HasChilds(pEntry)) // Falls Kinder, dann diese auch checken
+ {
+ SvLBoxEntry* pChildEntry = GetModel()->Next(pEntry);
+ SvLBoxEntry* pSiblingEntry = GetModel()->NextSibling(pEntry);
+ while(pChildEntry && pChildEntry != pSiblingEntry)
+ {
+ SetCheckButtonState( pChildEntry,eState);
+ pChildEntry = GetModel()->Next(pChildEntry);
+ }
+ }
+ pEntry = NextSelected(pEntry);
+ }
+ CheckButtons();
+}
+//------------------------------------------------------------------------
+SvLBoxEntry* OMarkableTreeListBox::GetEntryPosByName(const String& aName,SvLBoxEntry* pStart) const
+{
+ SvLBoxEntry* pEntry = pStart ? GetModel()->FirstChild(pStart) : GetModel()->First();
+ while(pEntry && !GetEntryText(pEntry).Equals(aName))
+ pEntry = GetModel()->Next(pEntry);
+
+ return pEntry;
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:22:30 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/control/tabletree.cxx b/dbaccess/source/ui/control/tabletree.cxx
new file mode 100644
index 000000000000..69c0e62a2219
--- /dev/null
+++ b/dbaccess/source/ui/control/tabletree.cxx
@@ -0,0 +1,367 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabletree.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:00:59 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_TABLETREE_HXX_
+#include "tabletree.hxx"
+#endif
+#ifndef _DBAUI_TABLETREE_HRC_
+#include "tabletree.hrc"
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _SV_MENU_HXX
+#include <vcl/menu.hxx>
+#endif
+#ifndef _CONNECTIVITY_DBTOOLS_HXX_
+#include <connectivity/dbtools.hxx>
+#endif
+#ifndef _DBASHARED_STRINGCONSTANTS_HRC_
+#include "stringconstants.hrc"
+#endif
+
+#ifndef _COM_SUN_STAR_SDBC_XDRIVERACCESS_HPP_
+#include <com/sun/star/sdbc/XDriverAccess.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBCX_XDATADEFINITIONSUPPLIER_HPP_
+#include <com/sun/star/sdbcx/XDataDefinitionSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBCX_XVIEWSSUPPLIER_HPP_
+#include <com/sun/star/sdbcx/XViewsSupplier.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBCX_XTABLESSUPPLIER_HPP_
+#include <com/sun/star/sdbcx/XTablesSupplier.hpp>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::sdbcx;
+using namespace ::com::sun::star::beans;
+using namespace ::com::sun::star::container;
+
+using namespace ::dbtools;
+using namespace ::dbaccess;
+
+//========================================================================
+//= OTableTreeListBox
+//========================================================================
+OTableTreeListBox::OTableTreeListBox( Window* pParent, WinBits nWinStyle )
+ :OMarkableTreeListBox(pParent,nWinStyle)
+ ,m_aTableImage(ResId(TABLE_TREE_ICON))
+ ,m_aViewImage(ResId(VIEW_TREE_ICON))
+{
+ SetDefaultExpandedEntryBmp(Image(ModuleRes(TABLEFOLDER_TREE_ICON)));
+ SetDefaultCollapsedEntryBmp(Image(ModuleRes(TABLEFOLDER_TREE_ICON)));
+}
+//------------------------------------------------------------------------
+OTableTreeListBox::OTableTreeListBox( Window* pParent, const ResId& rResId )
+ :OMarkableTreeListBox(pParent,rResId)
+ ,m_aTableImage(ModuleRes(TABLE_TREE_ICON))
+ ,m_aViewImage(ModuleRes(VIEW_TREE_ICON))
+{
+ SetDefaultExpandedEntryBmp(Image(ModuleRes(TABLEFOLDER_TREE_ICON)));
+ SetDefaultCollapsedEntryBmp(Image(ModuleRes(TABLEFOLDER_TREE_ICON)));
+}
+//------------------------------------------------------------------------
+void OTableTreeListBox::Command( const CommandEvent& rEvt )
+{
+ sal_Bool bHandled = sal_False;
+ switch( rEvt.GetCommand() )
+ {
+ case COMMAND_CONTEXTMENU:
+ {
+ // die Stelle, an der geklickt wurde
+ Point ptWhere;
+ if (rEvt.IsMouseEvent())
+ {
+ ptWhere = rEvt.GetMousePosPixel();
+ SvLBoxEntry* ptClickedOn = GetEntry(ptWhere);
+ if (ptClickedOn == NULL)
+ break;
+ if ( !IsSelected(ptClickedOn) )
+ {
+ SelectAll(sal_False);
+ Select(ptClickedOn, sal_True);
+ SetCurEntry(ptClickedOn);
+ }
+ }
+ else
+ ptWhere = GetEntryPos(GetCurEntry());
+
+
+ SvLBoxEntry* pCurrent = GetCurEntry();
+ if (!pCurrent)
+ break;
+
+ SvSortMode eSortMode = GetModel()->GetSortMode();
+ PopupMenu aContextMenu(ModuleRes(MENU_TABLETREE_POPUP));
+ switch( aContextMenu.Execute( this, ptWhere ) )
+ {
+ case MID_SORT_ASCENDING:
+ GetModel()->SetSortMode(SortAscending);
+ break;
+ case MID_SORT_DECENDING:
+ GetModel()->SetSortMode(SortDescending);
+ break;
+ }
+ if(eSortMode != GetModel()->GetSortMode())
+ GetModel()->Resort();
+ }
+ break;
+ default:
+ SvTreeListBox::Command( rEvt );
+ }
+}
+
+//------------------------------------------------------------------------
+Reference< XConnection > OTableTreeListBox::UpdateTableList(const ::rtl::OUString& _rConnectionURL, const Sequence< PropertyValue > _rProperties) throw(SQLException)
+{
+ Reference< XDatabaseMetaData > xMetaData;
+ Reference< XConnection > xConnection;
+
+ Reference< XNameAccess > xTables, xViews;
+ DBG_ASSERT(m_xORB.is(), "OTableTreeListBox::UpdateTableList : please use setServiceFactory to give me a service factory !");
+
+ String sCurrentActionError;
+ try
+ {
+ if (m_xORB.is())
+ {
+ // get the global DriverManager
+ Reference< XDriverAccess > xDriverManager;
+ sCurrentActionError = String(ModuleRes(STR_COULDNOTCREATE_DRIVERMANAGER));
+ // in case an error occures
+ sCurrentActionError.SearchAndReplaceAscii("(#servicename#)", (::rtl::OUString)SERVICE_SDBC_DRIVERMANAGER);
+ try
+ {
+ xDriverManager = Reference< XDriverAccess >(m_xORB->createInstance(SERVICE_SDBC_DRIVERMANAGER), UNO_QUERY);
+ DBG_ASSERT(xDriverManager.is(), "OTableTreeListBox::UpdateTableList : could not instantiate the driver manager, or it does not provide the necessary interface!");
+ }
+ catch (Exception& e)
+ {
+ // wrap the exception into an SQLException
+ SQLException aSQLWrapper(e.Message, m_xORB, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("S1000")), 0, Any());
+ throw aSQLWrapper;
+ }
+ if (!xDriverManager.is())
+ throw Exception();
+
+
+ sCurrentActionError = String(ModuleRes(STR_NOREGISTEREDDRIVER));
+ Reference< XDriver > xDriver = xDriverManager->getDriverByURL(_rConnectionURL);
+ if (!xDriver.is())
+ // will be caught and translated into an SQLContext exception
+ throw Exception();
+
+ // get the (very necessary) interface XDataDefinitionSupplier
+ sCurrentActionError = String(ModuleRes(STR_INVALIDREGISTEREDDRIVER));
+ Reference< XDataDefinitionSupplier > xDefinitionAccess;
+ xDefinitionAccess = Reference< XDataDefinitionSupplier >(xDriver, UNO_QUERY);
+ if (!xDefinitionAccess.is())
+ // will be caught and translated into an SQLContext exception
+ throw Exception();
+
+// sCurrentActionError = String(ModuleRes(STR_COULDNOTCONNECT_PLEASECHECK));
+// xConnection = xDriver->connect(_rConnectionURL, _rProperties);
+// // exceptions thrown by connect will be caught and re-routed
+// DBG_ASSERT(xConnection.is(), "OTableTreeListBox::UpdateTableList : got an invalid connection!");
+// // if no exception was thrown, the connection should be no-NULL)
+// if (!xConnection.is())
+// throw Exception();
+//
+// Reference< XTablesSupplier > xTableSupp;
+// Reference< XViewsSupplier > xViewSupp;
+// sCurrentActionError = String(ModuleRes(STR_NOTABLEINFO));
+// xMetaData = xConnection->getMetaData();
+//
+// // get the table supplier and the tables
+// xTableSupp = xDefinitionAccess->getDataDefinitionByConnection(xConnection);
+// if (!xTableSupp.is())
+// throw Exception();
+//
+// xTables = xTableSupp->getTables();
+//
+// // get the views supplier and the views
+// xViewSupp = Reference< XViewsSupplier >(xTableSupp, UNO_QUERY);
+// if (xViewSupp.is())
+// xViews = xViewSupp->getViews();
+ }
+ }
+ catch(RuntimeException&)
+ {
+ DBG_ERROR("OTableTreeListBox::UpdateTableList : caught an RuntimeException!");
+ }
+ catch(SQLException& e)
+ {
+ sCurrentActionError.SearchAndReplaceAscii("#connurl#", _rConnectionURL);
+ // prepend a string stating what we were doing and throw again
+ SQLContext aExtendedInfo = prependContextInfo(e, NULL, sCurrentActionError.GetBuffer());
+ throw aExtendedInfo;
+ }
+ catch(Exception&)
+ {
+ sCurrentActionError.SearchAndReplaceAscii("#connurl#", _rConnectionURL);
+ // a non-SQLException exception occured ... simply throw an SQLContext
+ SQLContext aExtendedInfo;
+ aExtendedInfo.Message = sCurrentActionError.GetBuffer();
+ throw aExtendedInfo;
+ }
+
+ UpdateTableList(xMetaData, xTables, xViews);
+ return xConnection;
+}
+
+//------------------------------------------------------------------------
+void OTableTreeListBox::UpdateTableList(const Reference< XDatabaseMetaData >& _rxConnMetaData, const Reference< XNameAccess > _rxTables, const Reference< XNameAccess > _rxViews)
+{
+ // throw away all the old stuff
+ Clear();
+
+ if (!_rxTables.is() && !_rxViews.is())
+ // nothing to do
+ return;
+
+ try
+ {
+ // get the table/view names
+ Sequence< ::rtl::OUString > aTables, aViews;
+ const ::rtl::OUString* pTables = NULL;
+ const ::rtl::OUString* pViews = NULL;
+ if (_rxTables.is())
+ {
+ aTables = _rxTables->getElementNames();
+ pTables = aTables.getConstArray();
+ }
+ if (_rxViews.is())
+ {
+ aViews = _rxViews->getElementNames();
+ pViews = aViews.getConstArray();
+ }
+
+ ::rtl::OUString sCatalog, sSchema, sName;
+ SvLBoxEntry* pCat = NULL;
+ SvLBoxEntry* pSchema = NULL;
+
+ // loop through both sequences
+ const ::rtl::OUString* pSwitchSequences = (pTables && pViews) ? pTables + aTables.getLength() - 1 : NULL;
+
+ sal_Int32 nOverallLen = aTables.getLength() + aViews.getLength();
+ const ::rtl::OUString* pCurrentTable = pTables ? pTables : pViews; // currently handled table or view name
+ sal_Bool bIsView = pTables ? sal_True : sal_False; // pCurrentTable points to a view name ?
+ for ( sal_Int32 i = 0;
+ i < nOverallLen;
+ ++i // inc the counter
+ , ( pSwitchSequences == pCurrentTable // did we reached the last table ?
+ ? bIsView = ((pCurrentTable = pViews) != NULL) // yes -> continue with the views, and set bIsView to sal_True
+ : ++pCurrentTable != NULL // no -> next table
+ ) // (!= NULL is to make this a boolean expression, so it should work under SUNPRO5, too)
+ )
+ {
+ pCat = pSchema = NULL;
+ // the image : table or view
+ Image& aImage = bIsView ? m_aViewImage : m_aTableImage;
+ // split the complete name into it's components
+ qualifiedNameComponents(_rxConnMetaData, *pCurrentTable, sCatalog, sSchema, sName);
+
+ if (sCatalog.getLength())
+ {
+ pCat = GetEntryPosByName(sCatalog);
+ if(!pCat)
+ pCat = InsertEntry(sCatalog);
+ }
+
+ if (sSchema.getLength())
+ {
+ pSchema = GetEntryPosByName(sSchema);
+ if(!pSchema)
+ pSchema = InsertEntry(sSchema, pCat);
+ }
+
+ InsertEntry(sName, aImage, aImage, pSchema ? pSchema : pCat);
+ }
+ }
+ catch(RuntimeException&)
+ {
+ DBG_ERROR("OTableTreeListBox::UpdateTableList : caught a RuntimeException!");
+ }
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:32:32 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/control/tabletree.hrc b/dbaccess/source/ui/control/tabletree.hrc
new file mode 100644
index 000000000000..02b77684f658
--- /dev/null
+++ b/dbaccess/source/ui/control/tabletree.hrc
@@ -0,0 +1,79 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabletree.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:01:06 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_TABLETREE_HRC_
+#define _DBAUI_TABLETREE_HRC_
+
+//------------------------------------------------------------------------
+//- menu ids
+
+#define MID_SORT_ASCENDING 1
+#define MID_SORT_DECENDING 2
+
+#endif // _DBAUI_TABLETREE_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:43:23 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/control/tabletree.src b/dbaccess/source/ui/control/tabletree.src
new file mode 100644
index 000000000000..61f8acdbfd38
--- /dev/null
+++ b/dbaccess/source/ui/control/tabletree.src
@@ -0,0 +1,184 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabletree.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:01:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_TABLETREE_HRC_
+#include "tabletree.hrc"
+#endif
+
+Image TABLE_TREE_ICON
+{
+ ImageBitmap = Bitmap { File = "sx03188.bmp"; };
+ MaskColor = Color { Red = 0xFFFF; Green = 0x0; Blue = 0xFFFF; };
+};
+
+Image VIEW_TREE_ICON
+{
+ ImageBitmap = Bitmap { File = "sx16670.bmp"; };
+ MaskColor = Color { Red = 0xFFFF; Green = 0x0; Blue = 0xFFFF; };
+};
+
+Image TABLEFOLDER_TREE_ICON
+{
+ ImageBitmap = Bitmap { File = "sx03187.bmp"; };
+ MaskColor = Color { Red = 0xFFFF; Green = 0x0; Blue = 0xFFFF; };
+};
+
+Menu MENU_TABLETREE_POPUP
+{
+ ItemList =
+ {
+ MenuItem
+ {
+ Identifier = MID_SORT_ASCENDING;
+ Text = "Aufsteigend Sortieren" ;
+ Text [ ENGLISH ] = "Functions" ;
+ Text[ english_us ] = "Sort Ascending";
+ Text[ portuguese ] = "Ordem ascendente";
+ Text[ russian ] = " ";
+ Text[ greek ] = " ";
+ Text[ dutch ] = "Oplopend sorteren";
+ Text[ french ] = "Tri croissant";
+ Text[ spanish ] = "Orden ascendente";
+ Text[ italian ] = "Disponi in ordine crescente";
+ Text[ danish ] = "Sorter stigende";
+ Text[ swedish ] = "Sortera stigande";
+ Text[ polish ] = "Sortuj rosnco";
+ Text[ portuguese_brazilian ] = "Functions";
+ Text[ japanese ] = "ɕבւ";
+ Text[ korean ] = " ";
+ Text[ chinese_simplified ] = "";
+ Text[ chinese_traditional ] = "VWƧ";
+ Text[ arabic ] = " ";
+ Text[ turkish ] = "Artan sralama";
+ Text[ language_user1 ] = " ";
+ };
+ MenuItem
+ {
+ Identifier = MID_SORT_DECENDING;
+ Text = "Absteigend Sortieren" ;
+ Text [ ENGLISH ] = "Functions" ;
+ Text[ english_us ] = "Sort Descending";
+ Text[ portuguese ] = "Ordem decrescente";
+ Text[ russian ] = " ";
+ Text[ greek ] = " ";
+ Text[ dutch ] = "Aflopend sorteren";
+ Text[ french ] = "Tri dcroissant";
+ Text[ spanish ] = "Orden descendente";
+ Text[ italian ] = "Disponi in ordine descrescente";
+ Text[ danish ] = "Sorter faldende";
+ Text[ swedish ] = "Sortera fallande";
+ Text[ polish ] = "Sortuj malejco";
+ Text[ portuguese_brazilian ] = "Functions";
+ Text[ japanese ] = "~ɕבւ";
+ Text[ korean ] = " ";
+ Text[ chinese_simplified ] = "";
+ Text[ chinese_traditional ] = "VUƧ";
+ Text[ arabic ] = " ";
+ Text[ turkish ] = "Azalan sralama";
+ Text[ language_user1 ] = " ";
+ };
+ };
+};
+
+String STR_COULDNOTCREATE_DRIVERMANAGER
+{
+ Text = "Es konnte keine Verbindung zum SDBC-Treiber-Manager (#servicename#) hergestellt werden.";
+ Text [ english ] = "The connection to the SDBC driver manager (#servicename#) could not be established.";
+ Text [ english_us ] = "The connection to the SDBC driver manager (#servicename#) could not be established.";
+};
+
+String STR_NOREGISTEREDDRIVER
+{
+ Text = "Es ist kein Treiber fr die URL #connurl# registriert!";
+ Text [ english ] = "There is no registered driver for the URL #connurl#";
+ Text [ english_us ] = "There is no registered driver for the URL #connurl#";
+};
+
+String STR_INVALIDREGISTEREDDRIVER
+{
+ Text = "Der registrierte Treiber fr die URL #connurl# unterstuetzt ein notwendiges Interface (com.sun.star.sdbc.XDataDefinitionSupplier) nicht.";
+ Text [ english ] = "The driver registered for the URL #connurl# does not support a required interface (com.sun.star.sdbc.XDataDefinitionSupplier).";
+ Text [ english_us ] = "The driver registered for the URL #connurl# does not support a required interface (com.sun.star.sdbc.XDataDefinitionSupplier).";
+};
+
+String STR_COULDNOTCONNECT_PLEASECHECK
+{
+ Text = "Es konnte keine Verbindung fr die URL #connurl# aufgebaut werden. Bitte ueberpruefen Sie die aktuellen Einstellungen.";
+ Text [ english ] = "A connection could not be established for URL #connurl#. Please check the current settings.";
+ Text [ english_us ] = "A connection could not be established for URL #connurl#. Please check the current settings.";
+};
+String STR_NOTABLEINFO
+{
+ Text = "Die Verbindung wurde erfolgreich hergestellt, aber es konnten keine Informationen ber Tabellen in der Datenbank ermittelt werden.";
+ Text [ english ] = "A connection was established sucessfully, but no informations about tables and/or views could be gathered.";
+ Text [ english_us ] = "A connection was established sucessfully, but no informations about tables and/or views could be gathered.";
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:36:13 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/adminpages.cxx b/dbaccess/source/ui/dlg/adminpages.cxx
new file mode 100644
index 000000000000..a1ee40d8029f
--- /dev/null
+++ b/dbaccess/source/ui/dlg/adminpages.cxx
@@ -0,0 +1,1344 @@
+/*************************************************************************
+ *
+ * $RCSfile: adminpages.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:04:12 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_ADMINPAGES_HXX_
+#include "adminpages.hxx"
+#endif
+#ifndef _DBAUI_DBADMIN_HRC_
+#include "dbadmin.hrc"
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBAUI_SQLMESSAGE_HXX_
+#include "sqlmessage.hxx"
+#endif
+#ifndef _SFXSTRITEM_HXX
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _DBAUI_DATASOURCEITEMS_HXX_
+#include "dsitems.hxx"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_DBFINDEX_HXX_
+#include "dbfindex.hxx"
+#endif
+#ifndef _DBAUI_LOCALRESACCESS_HXX_
+#include "localresaccess.hxx"
+#endif
+#ifndef _DBAUI_STRINGLISTITEM_HXX_
+#include "stringlistitem.hxx"
+#endif
+#ifndef _DBAUI_DBADMIN_HXX_
+#include "dbadmin.hxx"
+#endif
+#ifndef _DBHELPER_DBEXCEPTION_HXX_
+#include <connectivity/dbexception.hxx>
+#endif
+#ifndef _CONNECTIVITY_DBTOOLS_HXX_
+#include <connectivity/dbtools.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_SDB_SQLCONTEXT_HPP_
+#include <com/sun/star/sdb/SQLContext.hpp>
+#endif
+
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::sdb;
+using namespace ::com::sun::star::sdbc;
+using namespace ::com::sun::star::beans;
+using namespace ::dbtools;
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+#define FILL_STRING_ITEM(editcontrol, itemset, itemid, modifiedflag) \
+ if (editcontrol.GetText() != editcontrol.GetSavedValue()) \
+ { \
+ itemset.Put(SfxStringItem(itemid, editcontrol.GetText())); \
+ modifiedflag = sal_True; \
+ }
+
+//=========================================================================
+//= OGenericAdministrationPage
+//=========================================================================
+//-------------------------------------------------------------------------
+OGenericAdministrationPage::OGenericAdministrationPage(Window* _pParent, const ResId& _rId, const SfxItemSet& _rAttrSet)
+ :SfxTabPage(_pParent, _rId, _rAttrSet)
+{
+ SetExchangeSupport(sal_True);
+}
+
+//-------------------------------------------------------------------------
+int OGenericAdministrationPage::DeactivatePage(SfxItemSet* _pSet)
+{
+ if (_pSet)
+ {
+ if (!checkItems(*_pSet))
+ return KEEP_PAGE;
+ FillItemSet(*_pSet);
+ }
+
+ return LEAVE_PAGE;
+}
+
+//-------------------------------------------------------------------------
+void OGenericAdministrationPage::Reset(const SfxItemSet& _rCoreAttrs)
+{
+ implInitControls(_rCoreAttrs, sal_False);
+}
+
+//-------------------------------------------------------------------------
+void OGenericAdministrationPage::ActivatePage(const SfxItemSet& _rSet)
+{
+ implInitControls(_rSet, sal_True);
+}
+
+// -----------------------------------------------------------------------
+void OGenericAdministrationPage::getFlags(const SfxItemSet& _rSet, sal_Bool& _rValid, sal_Bool& _rReadonly)
+{
+ SFX_ITEMSET_GET(_rSet, pInvalid, SfxBoolItem, DSID_INVALID_SELECTION, sal_True);
+ _rValid = !pInvalid || !pInvalid->GetValue();
+ SFX_ITEMSET_GET(_rSet, pReadonly, SfxBoolItem, DSID_READONLY, sal_True);
+ _rReadonly = !_rValid || (pReadonly && pReadonly->GetValue());
+}
+
+// -----------------------------------------------------------------------
+IMPL_LINK(OGenericAdministrationPage, OnControlModified, Control*, EMPTYARG)
+{
+ callModifiedHdl();
+ return 0L;
+}
+
+//=========================================================================
+//= OGeneralPage
+//=========================================================================
+//-------------------------------------------------------------------------
+OGeneralPage::OGeneralPage(Window* pParent, const SfxItemSet& _rItems)
+ :OGenericAdministrationPage(pParent, ModuleRes(PAGE_GENERAL), _rItems)
+ ,m_aNameLabel (this, ResId(FT_DATASOURCENAME))
+ ,m_aName (this, ResId(ET_DATASOURCENAME))
+ ,m_aTypeBox (this, ResId(GB_CONNECTION))
+ ,m_aDatasourceTypeLabel (this, ResId(FT_DATATYPE))
+ ,m_aDatasourceType (this, ResId(LB_DATATYPE))
+ ,m_aConnectionLabel (this, ResId(FT_CONNECTURL))
+ ,m_aConnection (this, ResId(ET_CONNECTURL))
+ ,m_aBrowseConnection (this, ResId(PB_BROWSECONNECTION))
+ ,m_pCollection(NULL)
+ ,m_eCurrentSelection(DST_UNKNOWN)
+{
+ // fill the listbox with the UI descriptions for the possible types
+ // and remember the respective DSN prefixes
+ FreeResource();
+
+ // extract the datasource type collection from the item set
+ DbuTypeCollectionItem* pCollectionItem = PTR_CAST(DbuTypeCollectionItem, _rItems.GetItem(DSID_TYPECOLLECTION));
+ if (pCollectionItem)
+ m_pCollection = pCollectionItem->getCollection();
+
+ DBG_ASSERT(m_pCollection, "OGeneralPage::OGeneralPage : really need a DSN type collection !");
+
+ // initially fill the listbox
+ if (m_pCollection)
+ {
+ for ( ODsnTypeCollection::TypeIterator aTypeLoop = m_pCollection->begin();
+ aTypeLoop != m_pCollection->end();
+ ++aTypeLoop
+ )
+ {
+ DATASOURCE_TYPE eType = aTypeLoop.getType();
+ sal_uInt16 nPos = m_aDatasourceType.InsertEntry(aTypeLoop.getDisplayName());
+ m_aDatasourceType.SetEntryData(nPos, reinterpret_cast<void*>(eType));
+ }
+ }
+
+ // do some knittings
+ m_aDatasourceType.SetSelectHdl(LINK(this, OGeneralPage, OnDatasourceTypeSelected));
+ m_aName.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aConnection.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+}
+
+//-------------------------------------------------------------------------
+void OGeneralPage::initializeHistory()
+{
+ m_aSelectionHistory.clear();
+ if (m_pCollection)
+ {
+ for ( ODsnTypeCollection::TypeIterator aTypeLoop = m_pCollection->begin();
+ aTypeLoop != m_pCollection->end();
+ ++aTypeLoop
+ )
+ m_aSelectionHistory[aTypeLoop.getType()] = m_pCollection->getDatasourcePrefix(aTypeLoop.getType());
+ }
+
+}
+
+//-------------------------------------------------------------------------
+void OGeneralPage::onTypeSelected(DATASOURCE_TYPE _eType)
+{
+ sal_Bool bBrowseable = sal_False; // enable or disable the browse button ?
+
+ switch (_eType)
+ {
+ case DST_DBASE:
+ case DST_TEXT:
+ case DST_ADABAS:
+ case DST_ODBC:
+ bBrowseable = sal_True;
+ break;
+ default:
+ bBrowseable = sal_False;
+ break;
+ }
+
+ m_aBrowseConnection.Enable(bBrowseable);
+
+ // update the selection history
+ m_aSelectionHistory[m_eCurrentSelection] = m_aConnection.GetText();
+
+ // the the new URL text as indicated by the selection history
+ m_eCurrentSelection = _eType;
+ m_aConnection.SetText(m_aSelectionHistory[m_eCurrentSelection]);
+
+ if (m_aTypeSelectHandler.IsSet())
+ m_aTypeSelectHandler.Call(this);
+}
+
+//-------------------------------------------------------------------------
+void OGeneralPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+{
+ initializeHistory();
+
+ // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ sal_Bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ // if the selection is invalid, disable evrything
+ m_aNameLabel.Enable(bValid);
+ m_aName.Enable(bValid);
+ m_aTypeBox.Enable(bValid);
+ m_aDatasourceTypeLabel.Enable(bValid);
+ m_aDatasourceType.Enable(bValid);
+ m_aConnectionLabel.Enable(bValid);
+ m_aConnection.Enable(bValid);
+ m_aBrowseConnection.Enable(bValid);
+
+ String sConnectURL, sName;
+ if (bValid)
+ {
+ // collect some items and some values
+ SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
+ SFX_ITEMSET_GET(_rSet, pNameItem, SfxStringItem, DSID_NAME, sal_True);
+ DBG_ASSERT(pUrlItem, "OGeneralPage::implInitControls : missing the type attribute !");
+ DBG_ASSERT(pNameItem, "OGeneralPage::implInitControls : missing the name attribute !");
+ sConnectURL = pUrlItem->GetValue();
+ sName = pNameItem->GetValue();
+ }
+
+ // compare the DSN prefix with the registered ones
+ String sDisplayName;
+ DATASOURCE_TYPE eOldSelection = m_eCurrentSelection;
+ m_eCurrentSelection = DST_UNKNOWN;
+ if (m_pCollection && bValid)
+ {
+ m_eCurrentSelection = m_pCollection->getType(sConnectURL);
+ sDisplayName = m_pCollection->getTypeDisplayName(m_eCurrentSelection);
+ }
+
+ // select the correct datasource type
+ m_aDatasourceType.SelectEntry(sDisplayName);
+ if (_bSaveValue)
+ m_aDatasourceType.SaveValue();
+
+ // notify our listener that our type selection has changed (if so)
+ if (eOldSelection != m_eCurrentSelection)
+ onTypeSelected(m_eCurrentSelection);
+
+ m_aConnection.SetText(sConnectURL);
+ if (_bSaveValue)
+ m_aConnection.SaveValue();
+
+ // the datasource name
+ m_aName.SetText(sName);
+ if (_bSaveValue)
+ m_aName.SaveValue();
+}
+
+//-------------------------------------------------------------------------
+SfxTabPage* OGeneralPage::Create(Window* _pParent, const SfxItemSet& _rAttrSet)
+{
+ return ( new OGeneralPage( _pParent, _rAttrSet ) );
+}
+
+//-------------------------------------------------------------------------
+void OGeneralPage::Reset(const SfxItemSet& _rCoreAttrs)
+{
+ m_eCurrentSelection = DST_UNKNOWN;
+ // this ensures that our type selection link will be called, even if the new is is the same as the
+ // current one
+ OGenericAdministrationPage::Reset(_rCoreAttrs);
+}
+
+//-------------------------------------------------------------------------
+BOOL OGeneralPage::FillItemSet(SfxItemSet& _rCoreAttrs)
+{
+ sal_Bool bChangedSomething = sal_False;
+ if (m_aName.GetText() != m_aName.GetSavedValue())
+ {
+ _rCoreAttrs.Put(SfxStringItem(DSID_NAME, m_aName.GetText()));
+ bChangedSomething = sal_True;
+ }
+
+ if ((m_aConnection.GetText() != m_aConnection.GetSavedValue()) || (m_aDatasourceType.GetSavedValue() != m_aDatasourceType.GetSelectEntryPos()))
+ {
+ _rCoreAttrs.Put(SfxStringItem(DSID_CONNECTURL, m_aConnection.GetText()));
+ bChangedSomething = sal_True;
+ }
+
+ return bChangedSomething;
+}
+
+//-------------------------------------------------------------------------
+IMPL_LINK(OGeneralPage, OnDatasourceTypeSelected, ListBox*, _pBox)
+{
+ // get the type from the entry data
+ sal_Int16 nSelected = _pBox->GetSelectEntryPos();
+ DATASOURCE_TYPE eSelectedType = static_cast<DATASOURCE_TYPE>(reinterpret_cast<sal_Int32>(_pBox->GetEntryData(nSelected)));
+ // let the impl method do all the stuff
+ onTypeSelected(eSelectedType);
+ // tell the listener we were modified
+ callModifiedHdl();
+ // outta here
+ return 0L;
+}
+
+//========================================================================
+//= OCommonBehaviourTabPage
+//========================================================================
+OCommonBehaviourTabPage::OCommonBehaviourTabPage(Window* pParent, sal_uInt16 nResId, const SfxItemSet& _rCoreAttrs,
+ sal_uInt16 nControlFlags)
+
+ :OGenericAdministrationPage(pParent, ModuleRes(nResId), _rCoreAttrs)
+ ,m_pUserNameLabel(NULL)
+ ,m_pUserName(NULL)
+ ,m_pPasswordLabel(NULL)
+ ,m_pPassword(NULL)
+ ,m_pAskIfEmptyPwd(NULL)
+ ,m_pOptionsLabel(NULL)
+ ,m_pOptions(NULL)
+ ,m_pCharsetLabel(NULL)
+ ,m_pCharset(NULL)
+ ,m_nControlFlags(nControlFlags)
+{
+ if ((m_nControlFlags & CBTP_USE_UIDPWD) == CBTP_USE_UIDPWD)
+ {
+ m_pUserNameLabel = new FixedText(this, ResId(FT_USERNAME));
+ m_pUserName = new Edit(this, ResId(ET_USERNAME));
+ m_pUserName->SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_pPasswordLabel = new FixedText(this, ResId(FT_PASSWORD));
+ m_pPassword = new Edit(this, ResId(ET_PASSWORD));
+ m_pPassword->SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+
+ m_pAskIfEmptyPwd = new CheckBox(this, ResId(CB_ASK_WHEN_EMPTY_PWD));
+ m_pAskIfEmptyPwd->SetClickHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ }
+
+ if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
+ {
+ m_pOptionsLabel = new FixedText(this, ResId(FT_OPTIONS));
+ m_pOptions = new Edit(this, ResId(ET_OPTIONS));
+ m_pOptions->SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ }
+
+ if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
+ {
+ m_pCharsetLabel = new FixedText(this, ResId(FT_CHARSET));
+ m_pCharset = new ListBox(this, ResId(LB_CHARSET));
+ m_pCharset->SetSelectHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+
+ OCharsetCollection::CharsetIterator aLoop = m_aCharsets.begin();
+ while (aLoop != m_aCharsets.end())
+ {
+ m_pCharset->InsertEntry(aLoop.getName());
+ ++aLoop;
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+OCommonBehaviourTabPage::~OCommonBehaviourTabPage()
+{
+ DELETEZ(m_pUserNameLabel);
+ DELETEZ(m_pUserName);
+ DELETEZ(m_pPasswordLabel);
+ DELETEZ(m_pPassword);
+ DELETEZ(m_pAskIfEmptyPwd);
+
+ DELETEZ(m_pOptionsLabel);
+ DELETEZ(m_pOptions);
+
+ DELETEZ(m_pCharsetLabel);
+ DELETEZ(m_pCharset);
+}
+
+// -----------------------------------------------------------------------
+void OCommonBehaviourTabPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+{
+ // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ sal_Bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ // collect the items
+ SFX_ITEMSET_GET(_rSet, pUidItem, SfxStringItem, DSID_USER, sal_True);
+ SFX_ITEMSET_GET(_rSet, pPwdItem, SfxStringItem, DSID_PASSWORD, sal_True);
+ SFX_ITEMSET_GET(_rSet, pOptionsItem, SfxStringItem, DSID_ADDITIONALOPTIONS, sal_True);
+ SFX_ITEMSET_GET(_rSet, pCharsetItem, SfxStringItem, DSID_CHARSET, sal_True);
+ SFX_ITEMSET_GET(_rSet, pAllowEmptyPwd, SfxBoolItem, DSID_ASKFOREMPTYPWD, sal_True);
+
+ // forward the values to the controls
+ if (bValid)
+ {
+ if ((m_nControlFlags & CBTP_USE_UIDPWD) == CBTP_USE_UIDPWD)
+ {
+ m_pUserName->SetText(pUidItem->GetValue());
+ m_pPassword->SetText(pPwdItem->GetValue());
+ m_pAskIfEmptyPwd->Check(pAllowEmptyPwd->GetValue());
+
+ m_pUserName->ClearModifyFlag();
+ m_pPassword->ClearModifyFlag();
+
+ if (_bSaveValue)
+ {
+ m_pUserName->SaveValue();
+ m_pPassword->SaveValue();
+ m_pAskIfEmptyPwd->SaveValue();
+ }
+
+ m_pUserName->SetModifyHdl(LINK(this, OCommonBehaviourTabPage, OnPasswordModified));
+ m_pPassword->SetModifyHdl(LINK(this, OCommonBehaviourTabPage, OnPasswordModified));
+ LINK(this, OCommonBehaviourTabPage, OnPasswordModified).Call(m_pAskIfEmptyPwd);
+ // for the initial state
+ }
+
+ if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
+ {
+ m_pOptions->SetText(pOptionsItem->GetValue());
+ m_pOptions->ClearModifyFlag();
+ if (_bSaveValue)
+ m_pOptions->SaveValue();
+ }
+
+ if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
+ {
+ m_pCharset->SelectEntry(m_aCharsets.KeyToName(pCharsetItem->GetValue()));
+ if (_bSaveValue)
+ m_pCharset->SaveValue();
+ }
+ }
+
+ if (bReadonly)
+ {
+ if ((m_nControlFlags & CBTP_USE_UIDPWD) == CBTP_USE_UIDPWD)
+ {
+ m_pUserNameLabel->Disable();
+ m_pUserName->Disable();
+ m_pPasswordLabel->Disable();
+ m_pPassword->Disable();
+ m_pAskIfEmptyPwd->Disable();
+ }
+
+ if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
+ {
+ m_pOptionsLabel->Disable();
+ m_pOptions->Disable();
+ }
+
+ if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
+ {
+ m_pCharsetLabel->Disable();
+ m_pCharset->Disable();
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+sal_Bool OCommonBehaviourTabPage::FillItemSet(SfxItemSet& _rSet)
+{
+ sal_Bool bChangedSomething = sal_False;
+ if ((m_nControlFlags & CBTP_USE_UIDPWD) == CBTP_USE_UIDPWD)
+ {
+ if (m_pUserName->GetText() != m_pUserName->GetSavedValue())
+ {
+ String strUserId(m_pUserName->GetText());
+ _rSet.Put(SfxStringItem(DSID_USER, strUserId));
+ bChangedSomething = sal_True;
+ }
+
+ if (m_pPassword->GetText() != m_pPassword->GetSavedValue())
+ {
+ String strPassword(m_pPassword->GetText());
+ _rSet.Put(SfxStringItem(DSID_PASSWORD, strPassword));
+ bChangedSomething = sal_True;
+ }
+
+ if (m_pAskIfEmptyPwd->IsChecked() != m_pAskIfEmptyPwd->GetSavedValue())
+ _rSet.Put(SfxBoolItem(DSID_ASKFOREMPTYPWD, m_pAskIfEmptyPwd->IsChecked()));
+ }
+
+ if ((m_nControlFlags & CBTP_USE_OPTIONS) == CBTP_USE_OPTIONS)
+ {
+ if( m_pOptions->GetText() != m_pOptions->GetSavedValue() )
+ {
+ String strOptions = m_pOptions->GetText();
+ _rSet.Put(SfxStringItem(DSID_ADDITIONALOPTIONS, strOptions));
+ bChangedSomething = sal_True;
+ }
+ }
+
+ if ((m_nControlFlags & CBTP_USE_CHARSET) == CBTP_USE_CHARSET)
+ {
+ if (m_pCharset->GetSelectEntryPos() != m_pCharset->GetSavedValue())
+ {
+ _rSet.Put(SfxStringItem(DSID_CHARSET, m_aCharsets.NameToKey(m_pCharset->GetSelectEntry())));
+ bChangedSomething = sal_True;
+ }
+ }
+
+ return bChangedSomething;
+}
+
+//------------------------------------------------------------------------
+IMPL_LINK( OCommonBehaviourTabPage, OnPasswordModified, Control*, pControl)
+{
+ DBG_ASSERT((m_nControlFlags & CBTP_USE_UIDPWD) == CBTP_USE_UIDPWD, "OCommonBehaviourTabPage::OnPasswordModified : wrong mode, will probably crash!");
+
+ m_pAskIfEmptyPwd->Enable((m_pUserName->GetText().Len() > 0) && (m_pPassword->GetText().Len() == 0));
+ return 0L;
+}
+
+//========================================================================
+//= ODbaseDetailsPage
+//========================================================================
+//------------------------------------------------------------------------
+ODbaseDetailsPage::ODbaseDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
+ :OCommonBehaviourTabPage(pParent, PAGE_DBASE, _rCoreAttrs, CBTP_USE_CHARSET)
+ ,m_aFrame (this, ResId(GB_DBASE_MAIN))
+ ,m_aShowDeleted (this, ResId(CB_SHOWDELETEDROWS))
+ ,m_aLongTableNames (this, ResId(CB_ALLOWLONGNAMES))
+ ,m_aIndexes (this, ResId(PB_INDICIES))
+{
+ m_aIndexes.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked));
+ m_aShowDeleted.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked));
+ m_aLongTableNames.SetClickHdl(LINK(this, ODbaseDetailsPage, OnButtonClicked));
+
+ // correct the z-order which is mixed-up because the base class constructed some controls before we did
+ m_pCharset->SetZOrder(&m_aLongTableNames, WINDOW_ZORDER_BEHIND);
+
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+ODbaseDetailsPage::~ODbaseDetailsPage()
+{
+}
+
+// -----------------------------------------------------------------------
+SfxTabPage* ODbaseDetailsPage::Create( Window* pParent, const SfxItemSet& _rAttrSet )
+{
+ return ( new ODbaseDetailsPage( pParent, _rAttrSet ) );
+}
+
+// -----------------------------------------------------------------------
+void ODbaseDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+{
+ OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
+
+ // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ sal_Bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ // get the DSN string (needed for the index dialog)
+ SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
+ SFX_ITEMSET_GET(_rSet, pTypesItem, DbuTypeCollectionItem, DSID_TYPECOLLECTION, sal_True);
+ ODsnTypeCollection* pTypeCollection = pTypesItem ? pTypesItem->getCollection() : NULL;
+ SfxItemState eState = _rSet.GetItemState(DSID_TYPECOLLECTION);
+ if (pTypeCollection && pUrlItem && (SFX_ITEM_DEFAULT != eState))
+ m_sDsn = pTypeCollection->cutPrefix(pUrlItem->GetValue());
+
+ // get the other relevant items
+ SFX_ITEMSET_GET(_rSet, pDeletedItem, SfxBoolItem, DSID_SHOWDELETEDROWS, sal_True);
+ SFX_ITEMSET_GET(_rSet, pLongNameItem, SfxBoolItem, DSID_ALLOWLONGTABLENAMES, sal_True);
+ sal_Bool bDeleted = sal_False, bLongNames = sal_False;
+ if (bValid)
+ {
+ bDeleted = pDeletedItem->GetValue();
+ bLongNames = pLongNameItem->GetValue();
+ }
+ m_aShowDeleted.Check(pDeletedItem->GetValue());
+ m_aLongTableNames.Check(pLongNameItem->GetValue());
+
+ if (_bSaveValue)
+ {
+ m_aShowDeleted.SaveValue();
+ m_aLongTableNames.SaveValue();
+ }
+
+ if (bReadonly)
+ {
+ m_aShowDeleted.Disable();
+ m_aLongTableNames.Disable();
+ }
+}
+
+// -----------------------------------------------------------------------
+sal_Bool ODbaseDetailsPage::FillItemSet( SfxItemSet& _rSet )
+{
+ sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
+
+ if( m_aShowDeleted.IsChecked() != m_aShowDeleted.GetSavedValue() )
+ {
+ _rSet.Put( SfxBoolItem(DSID_SHOWDELETEDROWS, m_aShowDeleted.IsChecked() ) );
+ bChangedSomething = sal_True;
+ }
+
+ if( m_aLongTableNames.IsChecked() != m_aLongTableNames.GetSavedValue() )
+ {
+ _rSet.Put( SfxBoolItem(DSID_ALLOWLONGTABLENAMES, m_aLongTableNames.IsChecked() ) );
+ bChangedSomething = sal_True;
+ }
+
+ return bChangedSomething;
+}
+
+//------------------------------------------------------------------------
+IMPL_LINK( ODbaseDetailsPage, OnButtonClicked, Button*, pButton )
+{
+ if (&m_aIndexes == pButton)
+ {
+ ODbaseIndexDialog aIndexDialog(this, m_sDsn);
+ aIndexDialog.Execute();
+ }
+ else
+ // it was one of the checkboxes -> we count as modified from now on
+ callModifiedHdl();
+
+ return 0;
+}
+
+//========================================================================
+//= OJdbcDetailsPage
+//========================================================================
+OJdbcDetailsPage::OJdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
+ :OCommonBehaviourTabPage(pParent, PAGE_JDBC, _rCoreAttrs, CBTP_USE_UIDPWD | CBTP_USE_CHARSET)
+
+ ,m_aDriverLabel (this, ResId(FT_JDBCDRIVERCLASS))
+ ,m_aDriver (this, ResId(ET_JDBCDRIVERCLASS))
+ ,m_aJdbcUrlLabel (this, ResId(FT_CONNECTURL))
+ ,m_aJdbcUrl (this, ResId(ET_CONNECTURL))
+ ,m_aSeparator1 (this, ResId(FL_SEPARATOR1))
+{
+ m_aDriver.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aJdbcUrl.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+
+ m_pUserName->SetZOrder(&m_aJdbcUrl, WINDOW_ZORDER_BEHIND);
+ m_pPassword->SetZOrder(m_pUserName, WINDOW_ZORDER_BEHIND);
+ m_pAskIfEmptyPwd->SetZOrder(m_pPassword, WINDOW_ZORDER_BEHIND);
+ m_pCharset->SetZOrder(m_pAskIfEmptyPwd, WINDOW_ZORDER_BEHIND);
+
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+OJdbcDetailsPage::~OJdbcDetailsPage()
+{
+}
+
+// -----------------------------------------------------------------------
+SfxTabPage* OJdbcDetailsPage::Create( Window* pParent, const SfxItemSet& _rAttrSet )
+{
+ return ( new OJdbcDetailsPage( pParent, _rAttrSet ) );
+}
+
+// -----------------------------------------------------------------------
+void OJdbcDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+{
+ OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
+
+ // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ sal_Bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ SFX_ITEMSET_GET(_rSet, pJdbcDrvItem, SfxStringItem, DSID_JDBCDRIVERCLASS, sal_True);
+ SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
+
+ String sDriver, sURL;
+ if (bValid)
+ {
+ sDriver = pJdbcDrvItem->GetValue();
+ sURL = pUrlItem->GetValue();
+ }
+ m_aDriver.SetText(sDriver);
+ m_aJdbcUrl.SetText(sURL);
+
+ m_aDriver.ClearModifyFlag();
+ m_aJdbcUrl.ClearModifyFlag();
+
+ if (_bSaveValue)
+ {
+ m_aDriver.SaveValue();
+ m_aJdbcUrl.SaveValue();
+ }
+
+ if (bReadonly)
+ {
+ m_aDriverLabel.Disable();
+ m_aDriver.Disable();
+ m_aJdbcUrlLabel.Disable();
+ m_aJdbcUrl.Disable();
+ }
+}
+
+// -----------------------------------------------------------------------
+sal_Bool OJdbcDetailsPage::FillItemSet( SfxItemSet& _rSet )
+{
+ sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(_rSet);
+
+ FILL_STRING_ITEM(m_aDriver, _rSet, DSID_JDBCDRIVERCLASS, bChangedSomething);
+ FILL_STRING_ITEM(m_aJdbcUrl, _rSet, DSID_CONNECTURL, bChangedSomething);
+
+ return bChangedSomething;
+}
+
+//========================================================================
+//= OOdbcDetailsPage
+//========================================================================
+OOdbcDetailsPage::OOdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
+ :OCommonBehaviourTabPage(pParent, PAGE_ODBC, _rCoreAttrs, CBTP_USE_UIDPWD | CBTP_USE_CHARSET | CBTP_USE_OPTIONS)
+ ,m_aSeparator1 (this, ResId(FL_SEPARATOR1))
+{
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+SfxTabPage* OOdbcDetailsPage::Create( Window* pParent, const SfxItemSet& _rAttrSet )
+{
+ return ( new OOdbcDetailsPage( pParent, _rAttrSet ) );
+}
+
+//========================================================================
+//= OAdabasDetailsPage
+//========================================================================
+OAdabasDetailsPage::OAdabasDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
+ :OCommonBehaviourTabPage(pParent, PAGE_ODBC, _rCoreAttrs, CBTP_USE_UIDPWD | CBTP_USE_CHARSET)
+ // Yes, we're using the resource for the ODBC page here. It contains two controls which we don't use
+ // and except that it's excatly what we need here.
+ ,m_aSeparator1 (this, ResId(FL_SEPARATOR1))
+{
+ // move the charset related control some pixel up (as they are positioned as if above them there are the option
+ // controls, which is the case for the ODBC page only)
+ Size aMovesize(LogicToPixel(Size(0, 15), MAP_APPFONT));
+ Point aPos = m_pCharsetLabel->GetPosPixel();
+ m_pCharsetLabel->SetPosPixel(Point(aPos.X(), aPos.Y() - aMovesize.Height()));
+ aPos = m_pCharset->GetPosPixel();
+ m_pCharset->SetPosPixel(Point(aPos.X(), aPos.Y() - aMovesize.Height()));
+
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+SfxTabPage* OAdabasDetailsPage::Create( Window* pParent, const SfxItemSet& _rAttrSet )
+{
+ return ( new OAdabasDetailsPage( pParent, _rAttrSet ) );
+}
+
+//========================================================================
+//= OTextDetailsPage
+//========================================================================
+//------------------------------------------------------------------------
+OTextDetailsPage::OTextDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
+ :OCommonBehaviourTabPage(pParent, PAGE_TEXT, _rCoreAttrs, CBTP_USE_CHARSET)
+
+ ,m_aHeader (this, ResId(CB_HEADER))
+ ,m_aFieldSeparatorLabel (this, ResId(FT_FIELDSEPARATOR))
+ ,m_aFieldSeparator (this, ResId(CM_FIELDSEPARATOR))
+ ,m_aTextSeparatorLabel (this, ResId(FT_TEXTSEPARATOR))
+ ,m_aTextSeparator (this, ResId(CM_TEXTSEPARATOR))
+ ,m_aDecimalSeparatorLabel (this, ResId(FT_DECIMALSEPARATOR))
+ ,m_aDecimalSeparator (this, ResId(CM_DECIMALSEPARATOR))
+ ,m_aThousandsSeparatorLabel (this, ResId(FT_THOUSANDSSEPARATOR))
+ ,m_aThousandsSeparator (this, ResId(CM_THOUSANDSSEPARATOR))
+ ,m_aSeparator1 (this, ResId(FL_SEPARATOR1))
+ ,m_aExtensionLabel (this, ResId(FT_EXTENSION))
+ ,m_aExtension (this, ResId(CM_EXTENSION))
+
+ ,m_aFieldSeparatorList (ResId(STR_FIELDSEPARATORLIST))
+ ,m_aTextSeparatorList (ResId(STR_TEXTSEPARATORLIST))
+{
+ xub_StrLen nCnt = m_aFieldSeparatorList.GetTokenCount( '\t' );
+ for( xub_StrLen i=0 ; i<nCnt ; i+=2 )
+ m_aFieldSeparator.InsertEntry( m_aFieldSeparatorList.GetToken( i, '\t' ) );
+
+ nCnt = m_aTextSeparatorList.GetTokenCount( '\t' );
+ for( i=0 ; i<nCnt ; i+=2 )
+ m_aTextSeparator.InsertEntry( m_aTextSeparatorList.GetToken( i, '\t' ) );
+
+ // set the modify handlers
+ m_aHeader.SetClickHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aFieldSeparator.SetUpdateDataHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aFieldSeparator.SetSelectHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aTextSeparator.SetUpdateDataHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aTextSeparator.SetSelectHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aExtension.SetSelectHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+
+ m_aFieldSeparator.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aTextSeparator.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aDecimalSeparator.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aThousandsSeparator.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+ m_aExtension.SetModifyHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+
+
+ m_pCharset->SetZOrder(&m_aExtension, WINDOW_ZORDER_BEHIND);
+
+ FreeResource();
+}
+
+// -----------------------------------------------------------------------
+OTextDetailsPage::~OTextDetailsPage()
+{
+}
+
+// -----------------------------------------------------------------------
+SfxTabPage* OTextDetailsPage::Create( Window* pParent, const SfxItemSet& _rAttrSet )
+{
+ return ( new OTextDetailsPage( pParent, _rAttrSet ) );
+}
+
+// -----------------------------------------------------------------------
+void OTextDetailsPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+{
+ OCommonBehaviourTabPage::implInitControls(_rSet, _bSaveValue);
+
+ // first check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ sal_Bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ SFX_ITEMSET_GET(_rSet, pDelItem, SfxUInt16Item, DSID_FIELDDELIMITER, sal_True);
+ SFX_ITEMSET_GET(_rSet, pStrItem, SfxUInt16Item, DSID_TEXTDELIMITER, sal_True);
+ SFX_ITEMSET_GET(_rSet, pDecdelItem, SfxUInt16Item, DSID_DECIMALDELIMITER, sal_True);
+ SFX_ITEMSET_GET(_rSet, pThodelItem, SfxUInt16Item, DSID_THOUSANDSDELIMITER, sal_True);
+ SFX_ITEMSET_GET(_rSet, pExtensionItem, SfxStringItem, DSID_TEXTFILEEXTENSION, sal_True);
+ SFX_ITEMSET_GET(_rSet, pHdrItem, SfxBoolItem, DSID_TEXTFILEHEADER, sal_True);
+
+ if (bValid)
+ {
+ m_aHeader.Check( pHdrItem->GetValue() );
+
+ SetSeparator(m_aFieldSeparator, m_aFieldSeparatorList, pDelItem->GetValue());
+ SetSeparator(m_aTextSeparator, m_aTextSeparatorList, pStrItem->GetValue());
+
+ m_aDecimalSeparator.SetText(sal_Unicode(pDecdelItem->GetValue()));
+ m_aThousandsSeparator.SetText(sal_Unicode(pThodelItem->GetValue()));
+ m_aExtension.SetText(pExtensionItem->GetValue());
+ }
+
+ if (_bSaveValue)
+ {
+ m_aHeader.SaveValue();
+ m_aFieldSeparator.SaveValue();
+ m_aTextSeparator.SaveValue();
+ m_aDecimalSeparator.SaveValue();
+ m_aThousandsSeparator.SaveValue();
+ m_aExtension.SaveValue();
+ }
+
+ if (bReadonly)
+ {
+ m_aHeader.Disable();
+ m_aFieldSeparatorLabel.Disable();
+ m_aFieldSeparator.Disable();
+ m_aTextSeparatorLabel.Disable();
+ m_aTextSeparator.Disable();
+ m_aDecimalSeparatorLabel.Disable();
+ m_aDecimalSeparator.Disable();
+ m_aThousandsSeparatorLabel.Disable();
+ m_aThousandsSeparator.Disable();
+ m_aExtensionLabel.Disable();
+ m_aExtension.Disable();
+ }
+}
+// -----------------------------------------------------------------------
+sal_Bool OTextDetailsPage::checkItems(const SfxItemSet& _rSet)
+{
+ OLocalResourceAccess aStringResAccess(PAGE_TEXT, RSC_TABPAGE);
+ // for accessing the strings which are local to our own resource block
+
+ String aErrorText;
+ Control* pErrorWin = NULL;
+ // if (!m_aFieldSeparator.GetText().Len())
+ // bug (#42168) if this line is compiled under OS2 (in a product environent)
+ // -> use a temporary variable
+ String aDelText(m_aFieldSeparator.GetText());
+ if(!aDelText.Len())
+ { // Kein FeldTrenner
+ aErrorText = String(ResId(STR_DELIMITER_MISSING));
+ aErrorText.SearchAndReplaceAscii("#1",m_aFieldSeparatorLabel.GetText());
+ pErrorWin = &m_aFieldSeparator;
+ }
+ else if (!m_aDecimalSeparator.GetText().Len())
+ { // kein Decimaltrenner
+ aErrorText = String(ResId(STR_DELIMITER_MISSING));
+ aErrorText.SearchAndReplaceAscii("#1",m_aDecimalSeparatorLabel.GetText());
+ pErrorWin = &m_aDecimalSeparator;
+ }
+ else if (m_aTextSeparator.GetText() == m_aFieldSeparator.GetText())
+ { // Feld und TextTrenner duerfen nicht gleich sein
+ aErrorText = String(ResId(STR_DELIMITER_MUST_DIFFER));
+ aErrorText.SearchAndReplaceAscii("#1",m_aTextSeparatorLabel.GetText());
+ aErrorText.SearchAndReplaceAscii("#2",m_aFieldSeparatorLabel.GetText());
+ pErrorWin = &m_aTextSeparator;
+ }
+ else if (m_aDecimalSeparator.GetText() == m_aThousandsSeparator.GetText())
+ { // Tausender und DecimalTrenner duerfen nicht gleich sein
+ aErrorText = String(ResId(STR_DELIMITER_MUST_DIFFER));
+ aErrorText.SearchAndReplaceAscii("#1",m_aDecimalSeparatorLabel.GetText());
+ aErrorText.SearchAndReplaceAscii("#2",m_aThousandsSeparatorLabel.GetText());
+ pErrorWin = &m_aDecimalSeparator;
+ }
+ else if (m_aFieldSeparator.GetText() == m_aThousandsSeparator.GetText())
+ { // Tausender und FeldTrenner duerfen nicht gleich sein
+ aErrorText = String(ResId(STR_DELIMITER_MUST_DIFFER));
+ aErrorText.SearchAndReplaceAscii("#1",m_aFieldSeparatorLabel.GetText());
+ aErrorText.SearchAndReplaceAscii("#2",m_aThousandsSeparatorLabel.GetText());
+ pErrorWin = &m_aFieldSeparator;
+ }
+ else if (m_aFieldSeparator.GetText() == m_aDecimalSeparator.GetText())
+ { // Zehner und FeldTrenner duerfen nicht gleich sein
+ aErrorText = String(ResId(STR_DELIMITER_MUST_DIFFER));
+ aErrorText.SearchAndReplaceAscii("#1",m_aFieldSeparatorLabel.GetText());
+ aErrorText.SearchAndReplaceAscii("#2",m_aDecimalSeparatorLabel.GetText());
+ pErrorWin = &m_aFieldSeparator;
+ }
+ else if (m_aTextSeparator.GetText() == m_aThousandsSeparator.GetText())
+ { // Tausender und TextTrenner duerfen nicht gleich sein
+ aErrorText = String(ResId(STR_DELIMITER_MUST_DIFFER));
+ aErrorText.SearchAndReplaceAscii("#1",m_aTextSeparatorLabel.GetText());
+ aErrorText.SearchAndReplaceAscii("#2",m_aThousandsSeparatorLabel.GetText());
+ pErrorWin = &m_aTextSeparator;
+ }
+ else if (m_aTextSeparator.GetText() == m_aDecimalSeparator.GetText())
+ { // Zehner und TextTrenner duerfen nicht gleich sein
+ aErrorText = String(ResId(STR_DELIMITER_MUST_DIFFER));
+ aErrorText.SearchAndReplaceAscii("#1",m_aTextSeparatorLabel.GetText());
+ aErrorText.SearchAndReplaceAscii("#2",m_aDecimalSeparatorLabel.GetText());
+ pErrorWin = &m_aTextSeparator;
+ }
+ else if ( (m_aExtension.GetText().Search('*') != STRING_NOTFOUND)
+ ||
+ (m_aExtension.GetText().Search('?') != STRING_NOTFOUND)
+ )
+ {
+ aErrorText = String(ResId(STR_NO_WILDCARDS));
+ aErrorText.SearchAndReplaceAscii("#1",m_aExtensionLabel.GetText());
+ pErrorWin = &m_aExtension;
+ }
+ else
+ return sal_True;
+
+ aErrorText.EraseAllChars('~');
+ ErrorBox(NULL, WB_OK, aErrorText).Execute();
+ pErrorWin->GrabFocus();
+ return 0;
+}
+
+// -----------------------------------------------------------------------
+sal_Bool OTextDetailsPage::FillItemSet( SfxItemSet& rSet )
+{
+ sal_Bool bChangedSomething = OCommonBehaviourTabPage::FillItemSet(rSet);
+
+ if( m_aHeader.IsChecked() != m_aHeader.GetSavedValue() )
+ {
+ rSet.Put( SfxBoolItem(DSID_TEXTFILEHEADER, m_aHeader.IsChecked() ) );
+ bChangedSomething = sal_True;
+ }
+
+ if( m_aFieldSeparator.GetText() != m_aFieldSeparator.GetSavedValue() )
+ {
+ rSet.Put( SfxUInt16Item(DSID_FIELDDELIMITER, GetSeparator( m_aFieldSeparator, m_aFieldSeparatorList) ) );
+ bChangedSomething = sal_True;
+ }
+ if( m_aTextSeparator.GetText() != m_aTextSeparator.GetSavedValue() )
+ {
+ rSet.Put( SfxUInt16Item(DSID_TEXTDELIMITER, GetSeparator( m_aTextSeparator, m_aTextSeparatorList) ) );
+ bChangedSomething = sal_True;
+ }
+
+ if( m_aDecimalSeparator.GetText() != m_aDecimalSeparator.GetSavedValue() )
+ {
+ rSet.Put( SfxUInt16Item(DSID_DECIMALDELIMITER, (sal_uInt16)(m_aDecimalSeparator.GetText().GetChar(0)) ) );
+ bChangedSomething = sal_True;
+ }
+ if( m_aThousandsSeparator.GetText() != m_aThousandsSeparator.GetSavedValue() )
+ {
+ rSet.Put( SfxUInt16Item(DSID_THOUSANDSDELIMITER, (sal_uInt16)(m_aThousandsSeparator.GetText().GetChar(0)) ) );
+ bChangedSomething = sal_True;
+ }
+ if( m_aExtension.GetText() != m_aExtension.GetSavedValue() )
+ {
+ rSet.Put( SfxStringItem(DSID_TEXTFILEEXTENSION, m_aExtension.GetText()));
+ bChangedSomething = sal_True;
+ }
+
+ return bChangedSomething;
+}
+
+//------------------------------------------------------------------------
+sal_uInt16 OTextDetailsPage::GetSeparator( const ComboBox& rBox, const String& rList )
+{
+ char nTok = '\t';
+ sal_uInt16 nRet(0);
+ sal_uInt16 nPos(rBox.GetEntryPos( rBox.GetText() ));
+
+ if( nPos == COMBOBOX_ENTRY_NOTFOUND )
+ return (sal_uInt16)(rBox.GetText().GetChar(0));
+ else
+ return (sal_uInt16)rList.GetToken((nPos*2)+1, nTok ).ToInt32();
+}
+
+//------------------------------------------------------------------------
+void OTextDetailsPage::SetSeparator( ComboBox& rBox, const String& rList, sal_uInt16 nVal )
+{
+ char nTok = '\t';
+ xub_StrLen nCnt(rList.GetTokenCount( nTok ));
+ xub_StrLen i;
+
+ for( i=0 ; i<nCnt ; i+=2 )
+ {
+ sal_uInt16 nTVal(rList.GetToken( i+1, nTok ).ToInt32());
+
+ if( nTVal == nVal )
+ {
+ rBox.SetText( rList.GetToken( i, nTok ) );
+ break;
+ }
+ }
+
+ if( i >= nCnt )
+ {
+ rBox.SetText( (sal_Unicode)nVal );
+ }
+}
+
+//========================================================================
+//= OTableSubscriptionPage
+//========================================================================
+//------------------------------------------------------------------------
+OTableSubscriptionPage::OTableSubscriptionPage( Window* pParent, const SfxItemSet& _rCoreAttrs )
+ :OGenericAdministrationPage( pParent, ModuleRes(PAGE_TABLESUBSCRIPTION), _rCoreAttrs )
+ ,m_aTablesListLabel (this, ResId(FT_TABLESUBSCRIPTION))
+ ,m_aTablesList (this, ResId(CTL_TABLESUBSCRIPTION))
+ ,m_aIncludeAllTables (this, ResId(PB_ADDALLTABLES))
+ ,m_bCheckedAll (sal_True)
+{
+ m_aIncludeAllTables.SetClickHdl( LINK(this, OTableSubscriptionPage, AddAllClickHdl) );
+ m_aIncludeAllTables.SetText( ResId(STR_CHECK_ALL) );
+
+ // initialize the TabListBox
+ m_aTablesList.SetSelectionMode( MULTIPLE_SELECTION );
+ m_aTablesList.SetDragDropMode( 0 );
+ m_aTablesList.EnableInplaceEditing( sal_False );
+ m_aTablesList.SetWindowBits(WB_BORDER | WB_HASLINES | WB_HASLINESATROOT | WB_SORT | WB_HASBUTTONS | WB_HSCROLL |WB_HASBUTTONSATROOT);
+
+ m_aTablesList.Clear();
+
+ FreeResource();
+
+ m_aTablesList.SetCheckButtonHdl(LINK(this, OGenericAdministrationPage, OnControlModified));
+}
+
+//------------------------------------------------------------------------
+OTableSubscriptionPage::~OTableSubscriptionPage()
+{
+}
+
+//------------------------------------------------------------------------
+SfxTabPage* OTableSubscriptionPage::Create( Window* pParent, const SfxItemSet& rAttrSet )
+{
+ return ( new OTableSubscriptionPage( pParent, rAttrSet ) );
+}
+
+//------------------------------------------------------------------------
+void OTableSubscriptionPage::implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue)
+{
+ // check whether or not the selection is invalid or readonly (invalid implies readonly, but not vice versa)
+ sal_Bool bValid, bReadonly;
+ getFlags(_rSet, bValid, bReadonly);
+
+ m_aTablesList.Enable(!bReadonly);
+ m_aTablesListLabel.Enable(!bReadonly);
+ m_aIncludeAllTables.Enable(!bReadonly);
+
+ // the PropertyValues for the current dialog settings
+ Sequence< PropertyValue > aConnectionParams = ODbAdminDialog::toDriverParams(_rSet);
+ // the current DSN
+ String sURL;
+ SFX_ITEMSET_GET(_rSet, pUrlItem, SfxStringItem, DSID_CONNECTURL, sal_True);
+ if (bValid)
+ sURL = pUrlItem->GetValue();
+
+ // fill the table list with this connection information
+ Reference< XConnection > xConn;
+ Reference< XDatabaseMetaData > xMeta;
+ SQLExceptionInfo aErrorInfo;
+ try
+ {
+ xConn = m_aTablesList.UpdateTableList(sURL, aConnectionParams);
+ }
+ catch (SQLContext& e) { aErrorInfo = SQLExceptionInfo(e); }
+ catch (SQLWarning& e) { aErrorInfo = SQLExceptionInfo(e); }
+ catch (SQLException& e) { aErrorInfo = SQLExceptionInfo(e); }
+
+ if (aErrorInfo.isValid())
+ {
+ // establishing the connection failed. Show an error window and exit.
+ OSQLMessageBox(GetParent(), aErrorInfo, WB_OK | WB_DEF_OK, OSQLMessageBox::Error).Execute();
+ m_aTablesList.Enable(sal_False);
+ m_aTablesListLabel.Enable(sal_False);
+ m_aIncludeAllTables.Enable(sal_False);
+ m_aTablesList.Clear();
+ return;
+ }
+
+ // in addition, we need some infos about the connection used
+ m_sCatalogSeparator = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".")); // (default)
+ m_bCatalogAtStart = sal_True; // (default)
+ try
+ {
+ if (xConn.is())
+ xMeta = xConn->getMetaData();
+ if (xMeta.is())
+ {
+ m_sCatalogSeparator = xMeta->getCatalogSeparator();
+ m_bCatalogAtStart = xMeta->isCatalogAtStart();
+ }
+ }
+ catch(SQLException&)
+ {
+ DBG_ERROR("OTableSubscriptionPage::implInitControls : could not retrieve the qualifier separator for the used connection !");
+ }
+
+ m_bCheckedAll = sal_True;
+ // get the current table filter
+ SFX_ITEMSET_GET(_rSet, pTableFilter, OStringListItem, DSID_TABLEFILTER, sal_True);
+ Sequence< ::rtl::OUString > aTableFilter;
+ if (pTableFilter)
+ aTableFilter = pTableFilter->getList();
+
+ if (!aTableFilter.getLength())
+ { // unfortunally, we don't know what this means: It could be that the user unchecked _all_ the tables,
+ // because he/she does not want to see any of them, or the user did _check_ all of them.
+ CheckAll();
+ }
+ else
+ { // check the ones which are in the list
+ String aListBoxTable;
+ ::rtl::OUString aCatalog,aSchema,aName;
+
+ const ::rtl::OUString* pIncludeTable = aTableFilter.getConstArray();
+ for (sal_Int32 i=0; i<aTableFilter.getLength(); ++i, ++pIncludeTable)
+ {
+ if (xMeta.is())
+ qualifiedNameComponents(xMeta, pIncludeTable->getStr(), aCatalog, aSchema, aName);
+ else
+ aName = pIncludeTable->getStr();
+
+ SvLBoxEntry* pCatalog = m_aTablesList.GetEntryPosByName(aCatalog);
+ SvLBoxEntry* pSchema = m_aTablesList.GetEntryPosByName(aSchema,pCatalog);
+ SvLBoxEntry* pEntry = m_aTablesList.GetEntryPosByName(aName,pSchema);
+
+ if(pEntry)
+ m_aTablesList.SetCheckButtonState(pEntry, SV_BUTTON_CHECKED);
+ }
+ m_aTablesList.CheckButtons();
+ m_bCheckedAll = sal_False;
+ }
+
+ m_aIncludeAllTables.Enable(0 != m_aTablesList.GetEntryCount());
+}
+
+//------------------------------------------------------------------------
+void OTableSubscriptionPage::CheckAll( sal_Bool bCheck )
+{
+ SvButtonState eState = bCheck ? SV_BUTTON_CHECKED : SV_BUTTON_UNCHECKED;
+ SvLBoxEntry* pEntry = m_aTablesList.GetModel()->First();
+ while(pEntry)
+ {
+ m_aTablesList.SetCheckButtonState( pEntry, eState);
+ pEntry = m_aTablesList.GetModel()->Next(pEntry);
+ }
+
+ {
+ OLocalResourceAccess aStringResAccess(PAGE_TABLESUBSCRIPTION, RSC_TABPAGE);
+ m_aIncludeAllTables.SetText(bCheck ? ResId(STR_CHECK_NONE) : ResId(STR_CHECK_ALL));
+ }
+
+ m_bCheckedAll = bCheck;
+}
+
+//------------------------------------------------------------------------
+sal_Bool OTableSubscriptionPage::FillItemSet( SfxItemSet& _rCoreAttrs )
+{
+ /////////////////////////////////////////////////////////////////////////
+ // create the output string which contains all the table names
+ sal_uInt16 nEntryCount = 0;
+ sal_uInt16 nChecked = 0;
+
+ Sequence< ::rtl::OUString > aTableFilter;
+ static const ::rtl::OUString sDot(RTL_CONSTASCII_USTRINGPARAM("."));
+
+ ::rtl::OUString sComposedName;
+ SvLBoxEntry* pEntry = m_aTablesList.GetModel()->First();
+ while(pEntry)
+ {
+ if(m_aTablesList.GetCheckButtonState(pEntry) == SV_BUTTON_CHECKED && !m_aTablesList.GetModel()->HasChilds(pEntry))
+ { // checked and a leaf, which means it's no catalog, not schema, but a real table
+ ::rtl::OUString sCatalog;
+ if(m_aTablesList.GetModel()->HasParent(pEntry))
+ {
+ SvLBoxEntry* pSchema = m_aTablesList.GetModel()->GetParent(pEntry);
+ if(m_aTablesList.GetModel()->HasParent(pSchema))
+ {
+ SvLBoxEntry* pCatalog = m_aTablesList.GetModel()->GetParent(pSchema);
+ if (m_bCatalogAtStart)
+ {
+ sComposedName += m_aTablesList.GetEntryText( pCatalog );
+ sComposedName += m_sCatalogSeparator;
+ }
+ else
+ {
+ sCatalog += m_sCatalogSeparator;
+ sCatalog += m_aTablesList.GetEntryText( pCatalog );
+ }
+ }
+ sComposedName += m_aTablesList.GetEntryText( pSchema );
+ sComposedName += sDot;
+ }
+ sComposedName += m_aTablesList.GetEntryText( pEntry );
+ if (!m_bCatalogAtStart)
+ sComposedName += sCatalog;
+
+ // need some space
+ sal_Int32 nOldLen = aTableFilter.getLength();
+ aTableFilter.realloc(nOldLen + 1);
+ // add the new name
+ aTableFilter[nOldLen] = sComposedName;
+ // reset the composed name
+ sComposedName = String();
+
+ nChecked++;
+ }
+
+ if(!m_aTablesList.GetModel()->HasChilds(pEntry))
+ nEntryCount++;
+ pEntry = m_aTablesList.GetModel()->Next(pEntry);
+ }
+
+ if (nChecked == nEntryCount)
+ aTableFilter.realloc(0);
+ // TODO : have no possibility to distinguish between "all" and "none"
+
+ //////////////////////////////////////////////////////////////////////
+ // put this string into the set
+ _rCoreAttrs.Put( OStringListItem(DSID_TABLEFILTER, aTableFilter) );
+ return sal_True;
+}
+
+//------------------------------------------------------------------------
+IMPL_LINK( OTableSubscriptionPage, AddAllClickHdl, PushButton*, pButton )
+{
+ CheckAll( !m_bCheckedAll );
+ callModifiedHdl();
+ return 0L;
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 11:47:18 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/adminpages.hxx b/dbaccess/source/ui/dlg/adminpages.hxx
new file mode 100644
index 000000000000..ef2cf90ad140
--- /dev/null
+++ b/dbaccess/source/ui/dlg/adminpages.hxx
@@ -0,0 +1,402 @@
+/*************************************************************************
+ *
+ * $RCSfile: adminpages.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:04:22 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_ADMINPAGES_HXX_
+#define _DBAUI_ADMINPAGES_HXX_
+
+#ifndef _SFXTABDLG_HXX
+#include <sfx2/tabdlg.hxx>
+#endif
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_LSTBOX_HXX
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_EDIT_HXX
+#include <vcl/edit.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/imagebtn.hxx>
+#endif
+#ifndef _SV_GROUP_HXX
+#include <vcl/group.hxx>
+#endif
+#ifndef _SV_COMBOBOX_HXX
+#include <vcl/combobox.hxx>
+#endif
+#ifndef _DBAUI_DSNTYPES_HXX_
+#include "dsntypes.hxx"
+#endif
+#ifndef _DBAUI_CHARSETS_HXX_
+#include "charsets.hxx"
+#endif
+#ifndef _DBAUI_CURLEDIT_HXX_
+#include "curledit.hxx"
+#endif
+#ifndef _DBAUI_TABLETREE_HXX_
+#include "tabletree.hxx"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OGenericAdministrationPage
+//=========================================================================
+class OGenericAdministrationPage : public SfxTabPage
+{
+protected:
+ Link m_aModifiedHandler; /// to be called if something on the page has been modified
+
+public:
+ OGenericAdministrationPage(Window* _pParent, const ResId& _rId, const SfxItemSet& _rAttrSet);
+
+ /// set a handler which gets called every time something on the page has been modified
+ void SetModifiedHandler(const Link& _rHandler) { m_aModifiedHandler = _rHandler; }
+
+protected:
+ /// default implementation: call FillItemSet, call checkItems,
+ virtual int DeactivatePage(SfxItemSet* pSet);
+ /// default implementation: call implInitControls with the given item set and _bSaveValue = sal_False
+ virtual void Reset(const SfxItemSet& _rCoreAttrs);
+ /// default implementation: call implInitControls with the given item set and _bSaveValue = sal_True
+ virtual void ActivatePage(const SfxItemSet& _rSet);
+
+protected:
+ void callModifiedHdl() const { if (m_aModifiedHandler.IsSet()) m_aModifiedHandler.Call((void*)this); }
+
+ /// called from within DeactivatePage. The page is allowed to be deactivated if this method returns sal_True
+ virtual sal_Bool checkItems(const SfxItemSet& _rSet) { return sal_True; }
+
+ /** called from within Reset and ActivatePage, use to initialize the controls with the items from the given set
+ @param _bSaveValue if set to sal_True, the implementation should call SaveValue on all relevant controls
+ */
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue) { }
+
+ /// analyze the invalid and the readonly flag which may be present in the set
+ void getFlags(const SfxItemSet& _rSet, sal_Bool& _rValid, sal_Bool& _rReadonly);
+
+protected:
+ /** This link be used for controls where the tabpage does not need to take any special action when the control
+ is modified. The implementation just calls callModifiedHdl.
+ */
+ DECL_LINK(OnControlModified, Control*);
+};
+
+//=========================================================================
+//= OGeneralPage
+//=========================================================================
+/**
+*/
+class OGeneralPage : public OGenericAdministrationPage
+{
+ OGeneralPage(Window* pParent, const SfxItemSet& _rItems);
+
+private:
+ // dialog controls
+ FixedText m_aNameLabel;
+ Edit m_aName;
+ GroupBox m_aTypeBox;
+ FixedText m_aDatasourceTypeLabel;
+ ListBox m_aDatasourceType;
+ FixedText m_aConnectionLabel;
+ OConnectionURLEdit m_aConnection;
+ PushButton m_aBrowseConnection;
+
+ ODsnTypeCollection* m_pCollection; /// the DSN type collection instance
+ DECLARE_STL_MAP(DATASOURCE_TYPE, String, ::std::less< DATASOURCE_TYPE >, SelectionHistory);
+ DATASOURCE_TYPE m_eCurrentSelection; /// currently selected type
+ SelectionHistory m_aSelectionHistory; /// last selected ConnectURLs for all types
+
+ Link m_aTypeSelectHandler; /// to be called if a new type is selected
+
+public:
+ static SfxTabPage* Create(Window* pParent, const SfxItemSet& _rAttrSet);
+
+ /// set a handler which gets called every time the user selects a new type
+ void SetTypeSelectHandler(const Link& _rHandler) { m_aTypeSelectHandler = _rHandler; }
+ /// get the currently selected datasource type
+ DATASOURCE_TYPE GetSelectedType() const { return m_eCurrentSelection; }
+
+protected:
+ // SfxTabPage overridables
+ virtual BOOL FillItemSet(SfxItemSet& _rCoreAttrs);
+ virtual void Reset(const SfxItemSet& _rCoreAttrs);
+
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
+
+protected:
+ void onTypeSelected(DATASOURCE_TYPE _eType);
+ void initializeHistory();
+
+ DECL_LINK(OnDatasourceTypeSelected, ListBox*);
+ DECL_LINK(OnEditModified, Edit*);
+};
+
+
+//=========================================================================
+//= OCommonBehaviourTabPage
+//=========================================================================
+#define CBTP_NONE 0x0000
+#define CBTP_USE_UIDPWD 0x0001
+#define CBTP_USE_CHARSET 0x0002
+#define CBTP_USE_OPTIONS 0x0004
+
+/** eases the implementation of tab pages handling user/password and/or character
+ set and/or generic options input
+ <BR>
+ The controls to be used habe to be defined within the resource, as usual, but
+ this class does all the handling necessary.
+*/
+class OCommonBehaviourTabPage : public OGenericAdministrationPage
+{
+protected:
+ FixedText* m_pUserNameLabel;
+ Edit* m_pUserName;
+ FixedText* m_pPasswordLabel;
+ Edit* m_pPassword;
+ CheckBox* m_pAskIfEmptyPwd;
+
+ FixedText* m_pOptionsLabel;
+ Edit* m_pOptions;
+
+ FixedText* m_pCharsetLabel;
+ ListBox* m_pCharset;
+
+ OCharsetCollection m_aCharsets;
+
+ USHORT m_nControlFlags;
+
+public:
+ virtual BOOL FillItemSet (SfxItemSet& _rCoreAttrs);
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
+
+protected:
+ OCommonBehaviourTabPage(Window* pParent, USHORT nResId, const SfxItemSet& _rCoreAttrs, USHORT nControlFlags);
+ // nControlFlags ist eine Kombination der CBTP_xxx-Konstanten
+ virtual ~OCommonBehaviourTabPage();
+
+private:
+ DECL_LINK(OnPasswordModified, Control*);
+};
+
+//========================================================================
+//= ODbaseDetailsPage
+//========================================================================
+class ODbaseDetailsPage : public OCommonBehaviourTabPage
+{
+public:
+ static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet );
+ virtual BOOL FillItemSet ( SfxItemSet& _rCoreAttrs );
+
+private:
+ GroupBox m_aFrame;
+ CheckBox m_aShowDeleted;
+ CheckBox m_aLongTableNames;
+ PushButton m_aIndexes;
+
+ String m_sDsn;
+
+protected:
+ ODbaseDetailsPage(Window* pParent, const SfxItemSet& _rCoreAttrs);
+ ~ODbaseDetailsPage();
+
+protected:
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
+
+private:
+ DECL_LINK( OnButtonClicked, Button * );
+};
+
+//========================================================================
+//= OJdbcDetailsPage
+//========================================================================
+class OJdbcDetailsPage : public OCommonBehaviourTabPage
+{
+public:
+ static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet );
+ virtual BOOL FillItemSet ( SfxItemSet& _rCoreAttrs );
+
+private:
+ FixedText m_aDriverLabel;
+ Edit m_aDriver;
+ FixedText m_aJdbcUrlLabel;
+ OConnectionURLEdit m_aJdbcUrl;
+ FixedLine m_aSeparator1;
+
+ OJdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
+ ~OJdbcDetailsPage();
+
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
+};
+
+//========================================================================
+//= OOdbcDetailsPage
+//========================================================================
+class OOdbcDetailsPage : public OCommonBehaviourTabPage
+{
+public:
+ static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet );
+
+private:
+ FixedLine m_aSeparator1;
+
+ OOdbcDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
+};
+
+//========================================================================
+//= OAdabasDetailsPage
+//========================================================================
+class OAdabasDetailsPage : public OCommonBehaviourTabPage
+{
+public:
+ static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet );
+
+private:
+ FixedLine m_aSeparator1;
+
+ OAdabasDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
+};
+
+//========================================================================
+//= OTextDetailsPage
+//========================================================================
+class OTextDetailsPage : public OCommonBehaviourTabPage
+{
+public:
+ static SfxTabPage* Create( Window* pParent, const SfxItemSet& _rAttrSet );
+ virtual BOOL FillItemSet ( SfxItemSet& _rCoreAttrs );
+
+private:
+ CheckBox m_aHeader;
+ FixedText m_aFieldSeparatorLabel;
+ ComboBox m_aFieldSeparator;
+ FixedText m_aTextSeparatorLabel;
+ ComboBox m_aTextSeparator;
+ FixedText m_aDecimalSeparatorLabel;
+ ComboBox m_aDecimalSeparator;
+ FixedText m_aThousandsSeparatorLabel;
+ ComboBox m_aThousandsSeparator;
+ FixedLine m_aSeparator1;
+ FixedText m_aExtensionLabel;
+ ComboBox m_aExtension;
+
+ String m_aFieldSeparatorList;
+ String m_aTextSeparatorList;
+
+ OTextDetailsPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
+ ~OTextDetailsPage();
+
+private:
+ USHORT GetSeparator( const ComboBox& rBox, const String& rList );
+ void SetSeparator( ComboBox& rBox, const String& rList, USHORT nVal );
+
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
+ virtual sal_Bool checkItems(const SfxItemSet& _rSet);
+};
+
+//========================================================================
+//= OTableSubscriptionPage
+//========================================================================
+class OTableSubscriptionPage : public OGenericAdministrationPage
+{
+private:
+ OTableTreeListBox m_aTablesList;
+ FixedText m_aTablesListLabel;
+ PushButton m_aIncludeAllTables;
+ sal_Bool m_bCheckedAll : 1;
+ sal_Bool m_bCatalogAtStart : 1;
+ ::rtl::OUString m_sCatalogSeparator;
+
+public:
+ static SfxTabPage* Create( Window* _pParent, const SfxItemSet& _rAttrSet);
+ virtual BOOL FillItemSet(SfxItemSet& _rCoreAttrs);
+
+ void setServiceFactory(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > _rxORB)
+ { m_aTablesList.setServiceFactory(_rxORB); }
+
+private:
+ OTableSubscriptionPage( Window* pParent, const SfxItemSet& _rCoreAttrs );
+ ~OTableSubscriptionPage();
+
+ void CheckAll( BOOL bCheck=TRUE );
+ DECL_LINK( AddAllClickHdl, PushButton* );
+ // plausibility check
+
+ virtual void implInitControls(const SfxItemSet& _rSet, sal_Bool _bSaveValue);
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_ADMINPAGES_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 11:46:15 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dbadmin.cxx b/dbaccess/source/ui/dlg/dbadmin.cxx
new file mode 100644
index 000000000000..20d00a136d7a
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbadmin.cxx
@@ -0,0 +1,540 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbadmin.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:04:31 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DBADMIN_HXX_
+#include "dbadmin.hxx"
+#endif
+#ifndef _DBAUI_DBADMIN_HRC_
+#include "dbadmin.hrc"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBAUI_DATASOURCEITEMS_HXX_
+#include "dsitems.hxx"
+#endif
+#ifndef _SFXSTRITEM_HXX
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _SFXENUMITEM_HXX
+#include <svtools/eitem.hxx>
+#endif
+#ifndef _SFXINTITEM_HXX
+#include <svtools/intitem.hxx>
+#endif
+#ifndef _VCL_STDTEXT_HXX
+#include <vcl/stdtext.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX
+#include <vcl/msgbox.hxx>
+#endif
+#ifndef _COM_SUN_STAR_UNO_XNAMINGSERVICE_HPP_
+#include <com/sun/star/uno/XNamingService.hpp>
+#endif
+#ifndef _DBASHARED_STRINGCONSTANTS_HRC_
+#include "stringconstants.hrc"
+#endif
+#ifndef _CPPUHELPER_EXTRACT_HXX_
+#include <cppuhelper/extract.hxx>
+#endif
+#ifndef _DBAUI_ADMINPAGES_HXX_
+#include "adminpages.hxx"
+#endif
+#ifndef _DBAUI_LOCALRESACCESS_HXX_
+#include "localresaccess.hxx"
+#endif
+#ifndef _DBAUI_STRINGLISTITEM_HXX_
+#include "stringlistitem.hxx"
+#endif
+
+#define MODIFIED_MARKER " (*)"
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+using namespace dbaccess;
+using namespace com::sun::star::uno;
+using namespace com::sun::star::lang;
+using namespace com::sun::star::beans;
+using namespace com::sun::star::container;
+
+//=========================================================================
+//= ODbAdminDialog
+//=========================================================================
+//-------------------------------------------------------------------------
+ODbAdminDialog::ODbAdminDialog(Window* _pParent, SfxItemSet* _pItems, const Reference< XMultiServiceFactory >& _rxORB)
+ :SfxTabDialog(_pParent, ModuleRes(DLG_DATABASE_ADMINISTRATION), _pItems)
+ ,m_aSelector(this, ResId(WND_DATASOURCESELECTOR))
+ ,m_xORB(_rxORB)
+{
+ // add the initial tab pages
+ AddTabPage(PAGE_GENERAL, String(ResId(STR_PAGETITLE_GENERAL)), OGeneralPage::Create, NULL);
+ AddTabPage(PAGE_TABLESUBSCRIPTION, String(ResId(STR_PAGETITLE_TABLESUBSCRIPTION)), OTableSubscriptionPage::Create, NULL);
+
+ // no local resources needed anymore
+ FreeResource();
+
+ // register the view window
+ SetViewWindow(&m_aSelector);
+ SetViewAlign(WINDOWALIGN_LEFT);
+
+ // do some knittings
+ m_aSelector.m_aDatasourceList.SetSelectHdl(LINK(this, ODbAdminDialog, OnDatasourceSelected));
+
+ // concretize some items in our set which are independent of a concret selected datasource
+// GetInputSetImpl()->Put(DbuTypeCollectionItem(DSID_TYPECOLLECTION, m_pCollection));
+
+ // create the DatabaseContext service
+ DBG_ASSERT(m_xORB.is(), "ODbAdminDialog::ODbAdminDialog : need a service factory !");
+ try
+ {
+ m_xDatabaseContext = Reference< XNameAccess >(m_xORB->createInstance(SERVICE_SDB_DATABASECONTEXT), UNO_QUERY);
+ }
+ catch(Exception&)
+ {
+ }
+
+ ::rtl::OUString sInitialSelection; // will be the initial selection
+
+ if (!m_xDatabaseContext.is())
+ {
+ ShowServiceNotAvailableError(_pParent, String(SERVICE_SDB_DATABASECONTEXT), sal_True);
+ }
+ else
+ {
+ // fill the listbox with the names of the registered datasources
+ Sequence< ::rtl::OUString > aDatasources = m_xDatabaseContext->getElementNames();
+ const ::rtl::OUString* pDatasources = aDatasources.getConstArray();
+ for (sal_Int32 i=0; i<aDatasources.getLength(); ++i, ++pDatasources)
+ {
+ sal_Int16 nPos = m_aSelector.m_aDatasourceList.InsertEntry(*pDatasources);
+ m_aSelector.m_aDatasourceList.SetEntryData(nPos, reinterpret_cast<void*>(sal_False));
+ // the entry data is the modified flags
+ }
+
+ if (!aDatasources.getLength())
+ {
+ WarningBox(_pParent, ModuleRes(ERR_NOREGISTEREDDATASOURCES)).Execute();
+ }
+ else
+ sInitialSelection = aDatasources[0];
+ }
+ // TODO : get the initial selection from the configuration
+
+ implSelectDatasource(sInitialSelection);
+}
+
+//-------------------------------------------------------------------------
+ODbAdminDialog::~ODbAdminDialog()
+{
+ SetInputSet(NULL);
+ DELETEZ(pExampleSet);
+}
+
+//-------------------------------------------------------------------------
+Sequence< PropertyValue > ODbAdminDialog::toDriverParams(const SfxItemSet& _rSet)
+{
+ // TODO
+ return Sequence< PropertyValue >();
+}
+
+//-------------------------------------------------------------------------
+void ODbAdminDialog::toDialogItems(const Sequence< PropertyValue >& _rProperties, SfxItemSet& _rOutSet)
+{
+ // TODO
+}
+
+//-------------------------------------------------------------------------
+void ODbAdminDialog::PageCreated(USHORT _nId, SfxTabPage& _rPage)
+{
+ // register ourself as modified listener
+ static_cast<OGenericAdministrationPage&>(_rPage).SetModifiedHandler(LINK(this, ODbAdminDialog, OnDatasourceModifed));
+
+ // some registrations which depend on the type of the page
+ switch (_nId)
+ {
+ case PAGE_GENERAL:
+ static_cast<OGeneralPage&>(_rPage).SetTypeSelectHandler(LINK(this, ODbAdminDialog, OnTypeSelected));
+ break;
+ case PAGE_TABLESUBSCRIPTION:
+ static_cast<OTableSubscriptionPage&>(_rPage).setServiceFactory(m_xORB);
+ break;
+ }
+
+ SfxTabDialog::PageCreated(_nId, _rPage);
+}
+
+//-------------------------------------------------------------------------
+SfxItemSet* ODbAdminDialog::createItemSet(SfxItemSet*& _rpSet, SfxItemPool*& _rpPool, SfxPoolItem**& _rppDefaults, ODsnTypeCollection* _pTypeCollection)
+{
+ // just to be sure ....
+ _rpSet = NULL;
+ _rpPool = NULL;
+ _rppDefaults = NULL;
+
+ // create and initialize the defaults
+ _rppDefaults = new SfxPoolItem*[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1];
+ SfxPoolItem** pCounter = _rppDefaults; // want to modify this without affecting the out param _rppDefaults
+ *pCounter++ = new SfxStringItem(DSID_NAME, String());
+ *pCounter++ = new SfxStringItem(DSID_CONNECTURL, String());
+ *pCounter++ = new OStringListItem(DSID_TABLEFILTER, Sequence< ::rtl::OUString >());
+ *pCounter++ = new DbuTypeCollectionItem(DSID_TYPECOLLECTION, _pTypeCollection);
+ *pCounter++ = new SfxBoolItem(DSID_INVALID_SELECTION, sal_False);
+ *pCounter++ = new SfxBoolItem(DSID_READONLY, sal_False);
+ *pCounter++ = new SfxStringItem(DSID_USER, String());
+ *pCounter++ = new SfxStringItem(DSID_PASSWORD, String());
+ *pCounter++ = new SfxStringItem(DSID_ADDITIONALOPTIONS, String());
+ *pCounter++ = new SfxStringItem(DSID_CHARSET, String());
+ *pCounter++ = new SfxBoolItem(DSID_ASKFOREMPTYPWD, sal_False);
+ *pCounter++ = new SfxBoolItem(DSID_SHOWDELETEDROWS, sal_False);
+ *pCounter++ = new SfxBoolItem(DSID_ALLOWLONGTABLENAMES, sal_False);
+ *pCounter++ = new SfxStringItem(DSID_JDBCDRIVERCLASS, String());
+ *pCounter++ = new SfxUInt16Item(DSID_FIELDDELIMITER, ';');
+ *pCounter++ = new SfxUInt16Item(DSID_TEXTDELIMITER, '"');
+ *pCounter++ = new SfxUInt16Item(DSID_DECIMALDELIMITER, '.');
+ *pCounter++ = new SfxUInt16Item(DSID_THOUSANDSDELIMITER, ',');
+ *pCounter++ = new SfxStringItem(DSID_TEXTFILEEXTENSION, String::CreateFromAscii("txt"));
+ *pCounter++ = new SfxBoolItem(DSID_TEXTFILEHEADER, sal_True);
+
+ // create the pool
+ static SfxItemInfo __READONLY_DATA aItemInfos[DSID_LAST_ITEM_ID - DSID_FIRST_ITEM_ID + 1] =
+ {
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ {0,0},
+ };
+
+ _rpPool = new SfxItemPool(String::CreateFromAscii("DSAItemPool"), DSID_FIRST_ITEM_ID, DSID_LAST_ITEM_ID,
+ aItemInfos, _rppDefaults);
+ _rpPool->FreezeIdRanges();
+
+ // and, finally, the set
+ _rpSet = new SfxItemSet(*_rpPool, sal_True);
+
+ return _rpSet;
+}
+
+//-------------------------------------------------------------------------
+void ODbAdminDialog::destroyItemSet(SfxItemSet*& _rpSet, SfxItemPool*& _rpPool, SfxPoolItem**& _rppDefaults)
+{
+ // _first_ delete the set (refering the pool)
+ if (_rpSet)
+ {
+ delete _rpSet;
+ _rpSet = NULL;
+ }
+
+ // delete the pool
+ if (_rpPool)
+ {
+ _rpPool->ReleaseDefaults(sal_True);
+ // the "true" means delete the items, too
+ delete _rpPool;
+ _rpPool = NULL;
+ }
+
+ // reset the defaults ptr
+ _rppDefaults = NULL;
+ // no need to explicitly delete the defaults, this has been done by the ReleaseDefaults
+}
+
+//-------------------------------------------------------------------------
+IMPL_LINK(ODbAdminDialog, OnDatasourceSelected, ListBox*, _pBox)
+{
+ sal_Int16 nSelected = _pBox->GetSelectEntryPos();
+ sal_Bool bModified = reinterpret_cast<sal_Bool>(_pBox->GetEntryData(nSelected));
+
+ // if the entry is modified, we have to remove the modified marker to get the correct name
+ String sSelected = _pBox->GetEntry(nSelected);
+
+ if (bModified)
+ implSelectDatasource(sSelected.Copy(0, sSelected.Len() - (sizeof(MODIFIED_MARKER) - 1)));
+ else
+ implSelectDatasource(sSelected);
+ return 0L;
+}
+
+//-------------------------------------------------------------------------
+IMPL_LINK(ODbAdminDialog, OnDatasourceModifed, SfxTabPage*, _pTabPage)
+{
+ // check if the currently selected entry is already marked as modified
+ sal_Int16 nSelected = m_aSelector.m_aDatasourceList.GetSelectEntryPos();
+ sal_Bool bModified = reinterpret_cast<sal_Bool>(m_aSelector.m_aDatasourceList.GetEntryData(nSelected));
+ if (bModified)
+ // yes -> nothing to do
+ return 0L;
+
+ // no -> append the modified marker to the text
+ // (unfortunally the ListBox does not have an operation such as SetEntryText ...)
+ m_aSelector.m_aDatasourceList.SetUpdateMode(sal_False);
+ String sText = m_aSelector.m_aDatasourceList.GetEntry(nSelected);
+ m_aSelector.m_aDatasourceList.RemoveEntry(nSelected);
+ sText.AppendAscii(MODIFIED_MARKER);
+ nSelected = m_aSelector.m_aDatasourceList.InsertEntry(sText, nSelected);
+ m_aSelector.m_aDatasourceList.SelectEntryPos (nSelected, sal_True);
+ m_aSelector.m_aDatasourceList.SetUpdateMode(sal_True);
+
+ // mark it as modified
+ m_aSelector.m_aDatasourceList.SetEntryData(nSelected, reinterpret_cast<void*>(sal_True));
+
+ return 0L;
+}
+
+//-------------------------------------------------------------------------
+IMPL_LINK(ODbAdminDialog, OnTypeSelected, OGeneralPage*, _pTabPage)
+{
+ // remove all current detail pages
+ while (m_aCurrentDetailPages.size())
+ {
+ RemoveTabPage(m_aCurrentDetailPages.top());
+ m_aCurrentDetailPages.pop();
+ }
+
+ // open our own resource block, as the page titles are strings local to this block
+ OLocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG);
+
+ // and insert the new ones
+ switch (_pTabPage->GetSelectedType())
+ {
+ case DST_DBASE:
+ AddTabPage(PAGE_DBASE, String(ResId(STR_PAGETITLE_DBASE)), ODbaseDetailsPage::Create, 0, sal_False, 1);
+ m_aCurrentDetailPages.push(PAGE_DBASE);
+ break;
+ case DST_JDBC:
+ AddTabPage(PAGE_JDBC, String(ResId(STR_PAGETITLE_JDBC)), OJdbcDetailsPage::Create, 0, sal_False, 1);
+ m_aCurrentDetailPages.push(PAGE_JDBC);
+ break;
+ case DST_TEXT:
+ AddTabPage(PAGE_TEXT, String(ResId(STR_PAGETITLE_TEXT)), OTextDetailsPage::Create, 0, sal_False, 1);
+ m_aCurrentDetailPages.push(PAGE_TEXT);
+ break;
+ case DST_ODBC:
+ AddTabPage(PAGE_ODBC, String(ResId(STR_PAGETITLE_ODBC)), OOdbcDetailsPage::Create, 0, sal_False, 1);
+ m_aCurrentDetailPages.push(PAGE_ODBC);
+ break;
+ case DST_ADABAS:
+ AddTabPage(PAGE_ADABAS, String(ResId(STR_PAGETITLE_ADABAS)), OAdabasDetailsPage::Create, 0, sal_False, 1);
+ m_aCurrentDetailPages.push(PAGE_ADABAS);
+ break;
+ }
+
+ return 0L;
+}
+
+//-------------------------------------------------------------------------
+void ODbAdminDialog::implSelectDatasource(const ::rtl::OUString& _rRegisteredName)
+{
+ DBG_ASSERT(m_xDatabaseContext.is(), "ODbAdminDialog::implSelectDatasource : have no database context!");
+ Reference< XPropertySet > xDatasource;
+ try
+ {
+ if (m_xDatabaseContext.is() && _rRegisteredName.getLength())
+ ::cppu::extractInterface(xDatasource, m_xDatabaseContext->getByName(_rRegisteredName));
+ }
+ catch(NoSuchElementException&)
+ {
+ DBG_ERROR("ODbAdminDialog::implSelectDatasource : did not find the element with the given name!");
+ }
+ catch(WrappedTargetException&)
+ {
+ DBG_ERROR("ODbAdminDialog::implSelectDatasource : caught a WrappedTargetException!");
+ }
+ if (!xDatasource.is())
+ {
+ m_aSelector.m_aDatasourceList.SelectEntryPos(m_aSelector.m_aDatasourceList.GetSelectEntryPos(), sal_False);
+ }
+ else
+ m_aSelector.m_aDatasourceList.SelectEntry(_rRegisteredName);
+
+ // the selection is valid if and only if we have a datasource now
+ GetInputSetImpl()->Put(SfxBoolItem(DSID_INVALID_SELECTION, !xDatasource.is()));
+ // (sal_False tells the tab pages to disable and reset all their controls, which is different
+ // from "just set them to readonly")
+
+ // reset the pages
+ resetPages(xDatasource);
+}
+
+//-------------------------------------------------------------------------
+void ODbAdminDialog::resetPages(const Reference< XPropertySet >& _rxDatasource)
+{
+ // remove all tab pages (except the general one)
+ // remove all current detail pages
+ while (m_aCurrentDetailPages.size())
+ {
+ RemoveTabPage(m_aCurrentDetailPages.top());
+ m_aCurrentDetailPages.pop();
+ }
+ // remove the table/query tab pages
+ RemoveTabPage(PAGE_TABLESUBSCRIPTION);
+
+ // extract all relevant data from the property set
+ ::rtl::OUString sNewConnectURL, sName;
+ try
+ {
+ if (_rxDatasource.is())
+ {
+ _rxDatasource->getPropertyValue(PROPERTY_URL) >>= sNewConnectURL;
+ _rxDatasource->getPropertyValue(PROPERTY_NAME) >>= sName;
+ }
+ }
+ catch(Exception&)
+ {
+ DBG_ERROR("ODbAdminDialog::toDialogItems : could not extract all the relevant datasource properties!");
+ }
+
+ GetInputSetImpl()->Put(SfxStringItem(DSID_CONNECTURL, sNewConnectURL));
+ GetInputSetImpl()->Put(SfxStringItem(DSID_NAME, sName));
+
+ // propagate this set as our new input set and reset the example set
+ SetInputSet(GetInputSetImpl());
+ delete pExampleSet;
+ pExampleSet = new SfxItemSet(*GetInputSetImpl());
+
+ // and again, add the non-details tab pages
+ {
+ OLocalResourceAccess aDummy(DLG_DATABASE_ADMINISTRATION, RSC_TABDIALOG);
+ AddTabPage(PAGE_TABLESUBSCRIPTION, String(ResId(STR_PAGETITLE_TABLESUBSCRIPTION)), OTableSubscriptionPage::Create, NULL);
+ }
+
+ // propagate the new data to the general tab page the general tab page
+ SfxTabPage* pGeneralPage = GetTabPage(PAGE_GENERAL);
+ if (pGeneralPage)
+ pGeneralPage->Reset(*GetInputSetImpl());
+ // if this is NULL, the page has not been created yet, which means we're called before the
+ // dialog was displayed (probably from inside the ctor)
+}
+
+//=========================================================================
+//= ODatasourceSelector
+//=========================================================================
+//-------------------------------------------------------------------------
+ODatasourceSelector::ODatasourceSelector(Window* _pParent, const ResId& _rResId)
+ :Window(_pParent, _rResId)
+ ,m_aBorderWindow (this, ResId(WND_SELECTORBORDER))
+ ,m_aTitle (this, ResId(FT_SELECTOR_TITLE))
+ ,m_aDatasourceList (this, ResId(LB_DATASOURCES))
+{
+ FreeResource();
+
+ m_aDatasourceList.SetZOrder(NULL, WINDOW_ZORDER_FIRST);
+
+ m_aDatasourceList.EnableClipSiblings(sal_True);
+ m_aBorderWindow.EnableClipSiblings(sal_True);
+}
+
+//-------------------------------------------------------------------------
+ODatasourceSelector::~ODatasourceSelector()
+{
+}
+
+//-------------------------------------------------------------------------
+void ODatasourceSelector::Resize()
+{
+ Window::Resize();
+ // set the border window to the same size weself have
+ Size aSize = GetSizePixel();
+ m_aBorderWindow.SetSizePixel(aSize);
+
+ // resize the text field
+ sal_Int32 nTextHeight = LogicToPixel(Size(0, GetTextHeight())).Height();
+ nTextHeight += 4; // leave a margin
+ m_aTitle.SetPosPixel(Point(2, 2 + 2));
+ m_aTitle.SetSizePixel(Size(aSize.Width() - 4, nTextHeight));
+
+ // resize the listbox accordingly
+ m_aDatasourceList.SetPosPixel(Point(2, 4 + nTextHeight));
+ m_aDatasourceList.SetSizePixel(Size(aSize.Width() - 4, aSize.Height() - 4 - nTextHeight));
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 20.09.00 10:55:58 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dbadmin.hrc b/dbaccess/source/ui/dlg/dbadmin.hrc
new file mode 100644
index 000000000000..5fe02a748d60
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbadmin.hrc
@@ -0,0 +1,146 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbadmin.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:04:46 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DBADMIN_HRC_
+#define _DBAUI_DBADMIN_HRC_
+
+//========================================================================
+// control ids
+
+#define FT_DATATYPE 1
+#define FT_CONNECTURL 2
+#define FT_SELECTOR_TITLE 3
+#define FT_DATASOURCENAME 4
+#define FT_USERNAME 5
+#define FT_PASSWORD 6
+#define FT_OPTIONS 7
+#define FT_CHARSET 8
+#define FT_JDBCDRIVERCLASS 9
+#define FT_FIELDSEPARATOR 10
+#define FT_TEXTSEPARATOR 11
+#define FT_DECIMALSEPARATOR 12
+#define FT_THOUSANDSSEPARATOR 13
+#define FT_EXTENSION 14
+#define FT_TABLESUBSCRIPTION 15
+
+#define LB_DATATYPE 1
+#define LB_DATASOURCES 2
+#define LB_CHARSET 3
+
+#define ET_CONNECTURL 1
+#define ET_DATASOURCENAME 2
+#define ET_USERNAME 3
+#define ET_PASSWORD 4
+#define ET_OPTIONS 5
+#define ET_JDBCDRIVERCLASS 6
+
+#define PB_BROWSECONNECTION 1
+#define PB_INDICIES 2
+#define PB_ADDALLTABLES 3
+
+#define GB_CONNECTION 1
+#define GB_DBASE_MAIN 2
+
+#define CB_ASK_WHEN_EMPTY_PWD 1
+#define CB_SHOWDELETEDROWS 2
+#define CB_ALLOWLONGNAMES 3
+#define CB_HEADER 4
+
+#define FL_SEPARATOR1 1
+
+#define CM_FIELDSEPARATOR 1
+#define CM_TEXTSEPARATOR 2
+#define CM_DECIMALSEPARATOR 3
+#define CM_THOUSANDSSEPARATOR 4
+#define CM_EXTENSION 5
+
+#define WND_DATASOURCESELECTOR 1
+#define WND_SELECTORBORDER 2
+
+#define CTL_TABLESUBSCRIPTION 1
+
+//========================================================================
+// string ids (relative to other resources, that's why not necessarily unique)
+
+#define STR_PAGETITLE_GENERAL 1
+#define STR_PAGETITLE_DBASE 2
+#define STR_PAGETITLE_JDBC 3
+#define STR_PAGETITLE_ODBC 4
+#define STR_PAGETITLE_ADABAS 5
+#define STR_PAGETITLE_TEXT 6
+#define STR_PAGETITLE_TABLESUBSCRIPTION 7
+#define STR_FIELDSEPARATORLIST 8
+#define STR_TEXTSEPARATORLIST 9
+#define STR_DELIMITER_MISSING 10
+#define STR_DELIMITER_MUST_DIFFER 11
+#define STR_NO_WILDCARDS 12
+#define STR_CHECK_ALL 13
+#define STR_CHECK_NONE 14
+
+#endif // _DBAUI_DBADMIN_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 20.09.00 11:42:05 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dbadmin.src b/dbaccess/source/ui/dlg/dbadmin.src
new file mode 100644
index 000000000000..eb704014df1e
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbadmin.src
@@ -0,0 +1,1435 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbadmin.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:05:05 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+
+#ifndef _DBAUI_DBADMIN_HRC_
+#include "dbadmin.hrc"
+#endif
+
+//-------------------------------------------------------------------------
+TabDialog DLG_DATABASE_ADMINISTRATION
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE;
+
+ Window WND_DATASOURCESELECTOR
+ {
+ Pos = MAP_APPFONT ( 0, 0 ) ;
+ Size = MAP_APPFONT ( 80, 200 ) ;
+ ClipChildren = TRUE;
+
+ // the following window is just to have a border. In a tab dialog, we can't use a window with border
+ // directly as view window
+ Window WND_SELECTORBORDER
+ {
+ Pos = MAP_APPFONT ( 0, 0 ) ;
+ Size = MAP_APPFONT ( 80, 200 ) ;
+ Border = TRUE;
+ };
+ FixedText FT_SELECTOR_TITLE
+ {
+ Pos = MAP_APPFONT ( 2, 2 ) ;
+ Size = MAP_APPFONT ( 76, 20 ) ;
+ Center = TRUE;
+
+ Text = "Datenquellen";
+ Text [ english ] = "Data sources";
+ };
+ ListBox LB_DATASOURCES
+ {
+ SVLook = TRUE;
+ Pos = MAP_APPFONT ( 2, 22 ) ;
+ Size = MAP_APPFONT ( 76, 196 ) ;
+ };
+ };
+
+ TabControl 1
+ {
+ OutputSize = TRUE ;
+ };
+
+ Text = "Datenquellen verwalten" ;
+ Text [ english ] = "Datasource administration" ;
+ Text [ english_us ] = "Datasource administration" ;
+
+ //.........................................................................
+ String STR_PAGETITLE_GENERAL
+ {
+ Text = "Allgemein" ;
+ Text [ english ] = "General" ;
+ Text [ norwegian ] = "Generell" ;
+ Text [ italian ] = "Generale" ;
+ Text [ portuguese_brazilian ] = "Geral" ;
+ Text [ portuguese ] = "Geral" ;
+ Text [ finnish ] = "Yleiset" ;
+ Text [ danish ] = "Generelt" ;
+ Text [ french ] = "Gnral" ;
+ Text [ swedish ] = "Allmnt" ;
+ Text [ dutch ] = "Algemeen" ;
+ Text [ spanish ] = "General" ;
+ Text [ english_us ] = "General" ;
+ Text[ chinese_simplified ] = "";
+ Text[ russian ] = "";
+ Text[ polish ] = "Oglne";
+ Text[ japanese ] = "S";
+ Text[ chinese_traditional ] = "@";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "Ϲ";
+ Text[ turkish ] = "Genel";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_PAGETITLE_DBASE
+ {
+ Text = "dBase" ;
+ Text [ ENGLISH ] = "dBase" ;
+ Text [ norwegian ] = "dBase" ;
+ Text [ italian ] = "dBase" ;
+ Text [ portuguese_brazilian ] = "dBase" ;
+ Text [ portuguese ] = "dBase" ;
+ Text [ finnish ] = "dBase" ;
+ Text [ danish ] = "dBase" ;
+ Text [ french ] = "dBase" ;
+ Text [ swedish ] = "dBase" ;
+ Text [ dutch ] = "dBase" ;
+ Text [ spanish ] = "dBase" ;
+ Text [ english_us ] = "dBase" ;
+ Text[ chinese_simplified ] = "dBase";
+ Text[ russian ] = "dBase";
+ Text[ polish ] = "dBase";
+ Text[ japanese ] = "dBase";
+ Text[ chinese_traditional ] = "dBase";
+ Text[ arabic ] = "dBase";
+ Text[ greek ] = "dBase";
+ Text[ korean ] = "dBase";
+ Text[ turkish ] = "dBase";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_PAGETITLE_JDBC
+ {
+ Text = "JDBC" ;
+ Text [ ENGLISH ] = "JDBC" ;
+ Text [ norwegian ] = "JDBC" ;
+ Text [ italian ] = "JDBC" ;
+ Text [ portuguese_brazilian ] = "JDBC" ;
+ Text [ portuguese ] = "JDBC" ;
+ Text [ finnish ] = "JDBC" ;
+ Text [ danish ] = "JDBC" ;
+ Text [ french ] = "JDBC" ;
+ Text [ swedish ] = "JDBC" ;
+ Text [ dutch ] = "JDBC" ;
+ Text [ spanish ] = "JDBC" ;
+ Text [ english_us ] = "JDBC" ;
+ Text[ chinese_simplified ] = "JDBC";
+ Text[ russian ] = "JDBC";
+ Text[ polish ] = "JDBC";
+ Text[ japanese ] = "JDBC";
+ Text[ chinese_traditional ] = "JDBC";
+ Text[ arabic ] = "JDBC";
+ Text[ greek ] = "JDBC";
+ Text[ korean ] = "JDBC";
+ Text[ turkish ] = "JDBC";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_PAGETITLE_ODBC
+ {
+ Text = "ODBC" ;
+ Text [ ENGLISH ] = "ODBC" ;
+ Text [ norwegian ] = "ODBC" ;
+ Text [ italian ] = "ODBC" ;
+ Text [ portuguese_brazilian ] = "ODBC" ;
+ Text [ portuguese ] = "ODBC" ;
+ Text [ finnish ] = "ODBC" ;
+ Text [ danish ] = "ODBC" ;
+ Text [ french ] = "ODBC" ;
+ Text [ swedish ] = "ODBC" ;
+ Text [ dutch ] = "ODBC" ;
+ Text [ spanish ] = "ODBC" ;
+ Text [ english_us ] = "ODBC" ;
+ Text[ chinese_simplified ] = "ODBC";
+ Text[ russian ] = "ODBC";
+ Text[ polish ] = "ODBC";
+ Text[ japanese ] = "ODBC";
+ Text[ chinese_traditional ] = "ODBC";
+ Text[ arabic ] = "ODBC";
+ Text[ greek ] = "ODBC";
+ Text[ korean ] = "ODBC";
+ Text[ turkish ] = "ODBC";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_PAGETITLE_ADABAS
+ {
+ Text = "Adabas D" ;
+ Text[ENGLISH] = "Adabas D" ;
+ Text[ english_us ] = "Adabas D";
+ Text[ portuguese ] = "Adabas D";
+ Text[ russian ] = "Adabas D";
+ Text[ greek ] = "Adabas D";
+ Text[ dutch ] = "Adabas D";
+ Text[ french ] = "Adabas D";
+ Text[ spanish ] = "Adabas D";
+ Text[ italian ] = "Adabas D";
+ Text[ danish ] = "Adabas D";
+ Text[ swedish ] = "Adabas D";
+ Text[ polish ] = "Adabas D";
+ Text[ portuguese_brazilian ] = "Adabas D";
+ Text[ japanese ] = "Adabas D";
+ Text[ korean ] = "Adabas D";
+ Text[ chinese_simplified ] = "Adabas D";
+ Text[ chinese_traditional ] = "Adabas D";
+ Text[ arabic ] = "Adabas D";
+ Text[ turkish ] = "Adabas D";
+ };
+ String STR_PAGETITLE_TEXT
+ {
+ Text = "Text" ;
+ Text [ ENGLISH ] = "Text" ;
+ Text [ norwegian ] = "Text" ;
+ Text [ italian ] = "Testo" ;
+ Text [ portuguese_brazilian ] = "Texto" ;
+ Text [ portuguese ] = "Texto" ;
+ Text [ finnish ] = "Teksti" ;
+ Text [ danish ] = "Tekst" ;
+ Text [ french ] = "Texte" ;
+ Text [ swedish ] = "Text" ;
+ Text [ dutch ] = "Tekst" ;
+ Text [ spanish ] = "Texto" ;
+ Text [ english_us ] = "Text" ;
+ Text[ chinese_simplified ] = "";
+ Text[ russian ] = "";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷";
+ Text[ chinese_traditional ] = "r";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "ؽƮ";
+ Text[ turkish ] = "Metin";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_PAGETITLE_TABLESUBSCRIPTION
+ {
+ Text = "Tabellen" ;
+ Text [ ENGLISH ] = "Tables" ;
+ Text [ portuguese ] = "Tabelas" ;
+ Text [ english_us ] = "Tables" ;
+ Text [ portuguese_brazilian ] = "Tabellen" ;
+ Text [ swedish ] = "Tabeller" ;
+ Text [ danish ] = "Tabeller" ;
+ Text [ italian ] = "Tabelle" ;
+ Text [ spanish ] = "Tablas" ;
+ Text [ french ] = "Tables" ;
+ Text [ dutch ] = "Tabellen" ;
+ Text[ chinese_simplified ] = "";
+ Text[ russian ] = "";
+ Text[ polish ] = "Tabele";
+ Text[ japanese ] = "ð";
+ Text[ chinese_traditional ] = "";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "̺";
+ Text[ turkish ] = "Tablolar";
+ Text[ language_user1 ] = " ";
+ };
+};
+
+//-------------------------------------------------------------------------
+TabPage PAGE_GENERAL
+{
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+
+ FixedText FT_DATASOURCENAME
+ {
+ Pos = MAP_APPFONT ( 6 , 7 ) ;
+ Size = MAP_APPFONT ( 74 , 10 ) ;
+ Text = "~Name:";
+ Text [ english ] = "~Name:";
+ Text [ english_us ] = "~Name:";
+ };
+
+ Edit ET_DATASOURCENAME
+ {
+ Pos = MAP_APPFONT ( 90 , 6 ) ;
+ Size = MAP_APPFONT ( 164 , 12 ) ;
+ TabStop = TRUE ;
+ Border = TRUE ;
+ };
+
+ GroupBox GB_CONNECTION
+ {
+ Pos = MAP_APPFONT ( 6 , 24 ) ;
+ Size = MAP_APPFONT ( 248 , 48 ) ;
+ Text = "Verbindung" ;
+ Text [ english ] = "Connection" ;
+ Text [ english_us ] = "Connection" ;
+ };
+
+ FixedText FT_DATATYPE
+ {
+ Pos = MAP_APPFONT ( 10 , 35 ) ;
+ Size = MAP_APPFONT ( 70 , 10 ) ;
+ Text = "Datenbank~typ:" ;
+ Text [ english ] = "Database ~type:" ;
+ Text [ english_us ] = "Database ~type:" ;
+ Text [ dutch ] = "Databasetype:" ;
+ Text [ italian ] = "Tipo di database:" ;
+ Text [ spanish ] = "Tipo de base de datos:" ;
+ Text [ french ] = "Type de B.D.:" ;
+ Text [ swedish ] = "Databastyp:" ;
+ Text [ danish ] = "Databasetype:" ;
+ Text [ portuguese ] = "Tipo da base de dados:" ;
+ Text [ portuguese_brazilian ] = "Datenbanktyp:" ;
+ Text [ chinese_simplified ] = "ݿ";
+ Text [ russian ] = " ";
+ Text [ polish ] = "Typ bazy danych";
+ Text [ japanese ] = "ްް ";
+ Text [ chinese_traditional ] = "Ʈw";
+ Text [ arabic ] = " ";
+ Text [ greek ] = " ";
+ Text [ korean ] = "ͺ̽ Ÿ";
+ Text [ turkish ] = "Veritaban tipi";
+ Text [ language_user1 ] = " ";
+ };
+ ListBox LB_DATATYPE
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 90, 33 ) ;
+ Size = MAP_APPFONT ( 60, 60 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ FixedText FT_CONNECTURL
+ {
+ Pos = MAP_APPFONT ( 10 , 53 ) ;
+ Size = MAP_APPFONT ( 70 , 10 ) ;
+ Text = "D~atenquelle URL:" ;
+ Text [ english ] = "~Data source URL:" ;
+ Text [ english_us ] = "~Data source URL:" ;
+ };
+ Edit ET_CONNECTURL
+ {
+ Pos = MAP_APPFONT ( 90 , 52 ) ;
+ Size = MAP_APPFONT ( 104 , 12 ) ;
+ TabStop = TRUE ;
+ Border = TRUE ;
+ };
+ PushButton PB_BROWSECONNECTION
+ {
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( 198 , 51 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ Text = "D~urchsuchen..." ;
+ Text [ english ] = "~Search..." ;
+ Text [ english_us ] = "~Browse..." ;
+ Text [ italian ] = "S~foglia..." ;
+ Text [ spanish ] = "E~xaminar..." ;
+ Text [ french ] = "Parcourir..." ;
+ Text [ dutch ] = "~Doorzoeken..." ;
+ Text [ swedish ] = "Geno~msk..." ;
+ Text [ danish ] = "Gennemse..." ;
+ Text [ portuguese_brazilian ] = "Durchsuchen..." ;
+ Text [ portuguese ] = "~Pesquisar..." ;
+ Text[ chinese_simplified ] = "...";
+ Text[ russian ] = "...";
+ Text[ polish ] = "Przegldaj...";
+ Text[ japanese ] = "...";
+ Text[ chinese_traditional ] = "s...";
+ Text[ arabic ] = "...";
+ Text[ greek ] = "...";
+ Text[ korean ] = "Ž...";
+ Text[ turkish ] = "Tara...";
+ Text[ language_user1 ] = " ";
+ };
+};
+
+//.........................................................................
+TabPage PAGE_DBASE
+{
+ SVLook = TRUE ;
+ Hide = TRUE;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+
+ GroupBox GB_DBASE_MAIN
+ {
+ Pos = MAP_APPFONT ( 6 , 6 ) ;
+ Size = MAP_APPFONT ( 248 , 55 ) ;
+ };
+
+ CheckBox CB_SHOWDELETEDROWS
+ {
+ Pos = MAP_APPFONT ( 76 , 12 ) ;
+ Size = MAP_APPFONT ( 127 , 10 ) ;
+ TabStop = TRUE ;
+ Text = "I~naktive Datenstze anzeigen" ;
+ Text [ english ] = "Show deleted records" ;
+ Text [ NORWEGIAN ] = "Show deleted records" ;
+ Text [ DANISH ] = "Vis inaktive dataposter" ;
+ Text [ ENGLISH_US ] = "Display inactive records" ;
+ Text [ SPANISH ] = "Mostrar registros inacti~vos" ;
+ Text [ FINNISH ] = "Nyt poistetut tietueet" ;
+ Text [ FRENCH ] = "Afficher les enregistrements ~dsactivs" ;
+ Text [ ITALIAN ] = "~Mostra record inattivi" ;
+ Text [ DUTCH ] = "I~nactieve records weergeven" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Mostrar registros apagados" ;
+ Text [ SWEDISH ] = "Visa i~naktiva dataposter" ;
+ Text [ PORTUGUESE ] = "Mostrar registos i~nactivos" ;
+ Text[ chinese_simplified ] = "ʾݼ¼";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Poka nieaktywne rekordy";
+ Text[ japanese ] = "èނłȂںނ\\";
+ Text[ chinese_traditional ] = "Jƶ";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = "Ȱ ڵ ÷";
+ Text[ turkish ] = "Etkin olmayan kaytlar grntle";
+ Text[ language_user1 ] = " ";
+ };
+ CheckBox CB_ALLOWLONGNAMES
+ {
+ Pos = MAP_APPFONT ( 76 , 26 ) ;
+ Size = MAP_APPFONT ( 127 , 10 ) ;
+ TabStop = TRUE ;
+ Text= "~Lange Tabellennamen";
+ Text[ italian ] = "~Nomi di tabella lunghi";
+ Text[ portuguese_brazilian ] = "Lange Tabellennamen";
+ Text[ portuguese ] = "Nomes de tabelas ~longos";
+ Text[ danish ] = "Lange tabelnavn";
+ Text[ french ] = "Noms de tables longs";
+ Text[ swedish ] = "~Lnga tabellnamn";
+ Text[ dutch ] = "~Lange tabelnamen";
+ Text[ spanish ] = "Nombres de ta~bla largos";
+ Text[ english_us ] = "Long table names";
+ Text[ chinese_simplified ] = "";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Dugie nazwy tabeli";
+ Text[ japanese ] = "\\";
+ Text [ english ] = "Long table names" ;
+ Text[ chinese_traditional ] = "W";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ~ ";
+ Text[ korean ] = " ̺ ";
+ Text[ turkish ] = "Uzun tablo adlar";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_CHARSET
+ {
+ Pos = MAP_APPFONT ( 12 , 43 ) ;
+ Size = MAP_APPFONT ( 57 , 10 ) ;
+ Text = "~Zeichensatz" ;
+ Text [ english ] = "~Character set" ;
+ Text [ NORWEGIAN ] = "~Character set" ;
+ Text [ DANISH ] = "Tegnst" ;
+ Text [ ENGLISH_US ] = "~Character set" ;
+ Text [ SPANISH ] = "J~uego de caracteres" ;
+ Text [ FINNISH ] = "~Merkist" ;
+ Text [ FRENCH ] = "~Jeu de caractres" ;
+ Text [ ITALIAN ] = "~Tipo di carattere" ;
+ Text [ DUTCH ] = "~Tekenset" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "~Conjunto de caracteres" ;
+ Text [ SWEDISH ] = "Te~ckenuppsttning" ;
+ Text [ PORTUGUESE ] = "~Conjunto de caracteres" ;
+ Text[ chinese_simplified ] = "(~C)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Zbir znakw";
+ Text[ japanese ] = "(~C)";
+ Text[ chinese_traditional ] = "r(~C)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = " Ʈ(~C)";
+ Text[ turkish ] = "Karakter kmesi";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_CHARSET
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 76 , 41 ) ;
+ Size = MAP_APPFONT ( 105 , 60 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ CurPos = 0 ;
+ };
+ PushButton PB_INDICIES
+ {
+ Pos = MAP_APPFONT ( 199 , 115 ) ;
+ Size = MAP_APPFONT ( 55 , 14 ) ;
+ TabStop = TRUE ;
+ Text= "~Indizes...";
+ Text [ english ] = "Indexes..." ;
+ Text[ chinese_traditional ] = "лx...";
+ Text[ arabic ] = "...";
+ Text[ greek ] = "~...";
+ Text[ korean ] = "ε";
+ Text[ turkish ] = "Dizinler...";
+ Text[ language_user1 ] = " ";
+ Text[ italian ] = "I~ndici...";
+ Text[ portuguese_brazilian ] = "Indizes";
+ Text[ portuguese ] = "~ndices...";
+ Text[ danish ] = "Indeks...";
+ Text[ french ] = "Index...";
+ Text[ swedish ] = "~Index...";
+ Text[ dutch ] = "~Indicies...";
+ Text[ spanish ] = "~ndices...";
+ Text[ english_us ] = "Indexes...";
+ Text[ chinese_simplified ] = "־...";
+ Text[ russian ] = "...";
+ Text[ polish ] = "Indeksy...";
+ Text[ japanese ] = "ޯ...";
+ };
+};
+
+//.........................................................................
+TabPage PAGE_JDBC
+{
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+ FixedText FT_JDBCDRIVERCLASS
+ {
+ Pos = MAP_APPFONT ( 6 , 7 ) ;
+ Size = MAP_APPFONT ( 71 , 10 ) ;
+ Text = "~JDBC Treiberklasse" ;
+ Text [ ENGLISH ] = "~JDBC driverclass" ;
+ Text [ english_us ] = "~JDBC driver class" ;
+ Text [ portuguese_brazilian ] = "~JDBC Treiberklasse" ;
+ Text [ swedish ] = "~JDBC-drivrutinsklass" ;
+ Text [ danish ] = "JDBC-driverklasse" ;
+ Text [ italian ] = "~Classe di driver JDBC" ;
+ Text [ spanish ] = "~Clase de controlador JDBC" ;
+ Text [ french ] = "~Classe du pilote JDBC" ;
+ Text [ dutch ] = "Driverklasse ~JDBC" ;
+ Text [ portuguese ] = "Classe do controlador ~JDBC" ;
+ Text[ chinese_simplified ] = "~JDBC ";
+ Text[ russian ] = " ~JDBC";
+ Text[ polish ] = "Klasa sterownika JDBC";
+ Text[ japanese ] = "JDBC ײ޸׽(~J)";
+ Text[ chinese_traditional ] = "~JDBC Xʵ{";
+ Text[ arabic ] = " JDBC";
+ Text[ greek ] = " ~JDBC";
+ Text[ korean ] = "JDBC ̹ Ŭ(~J)";
+ Text[ turkish ] = "~JDBC src snf";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_JDBCDRIVERCLASS
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 90 , 6 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_CONNECTURL
+ {
+ Pos = MAP_APPFONT ( 6 , 22 ) ;
+ Size = MAP_APPFONT ( 51 , 10 ) ;
+ Text = "U~RL" ;
+ Text [ ENGLISH ] = "U~RL" ;
+ Text [ english_us ] = "U~RL" ;
+ Text [ portuguese_brazilian ] = "U~RL" ;
+ Text [ swedish ] = "U~RL" ;
+ Text [ danish ] = "URL" ;
+ Text [ italian ] = "U~RL" ;
+ Text [ spanish ] = "U~RL" ;
+ Text [ french ] = "U~RL" ;
+ Text [ dutch ] = "U~RL" ;
+ Text [ portuguese ] = "U~RL" ;
+ Text[ chinese_simplified ] = "U~RL";
+ Text[ russian ] = "U~RL";
+ Text[ polish ] = "URL";
+ Text[ japanese ] = "U~RL";
+ Text[ chinese_traditional ] = "U~RL";
+ Text[ arabic ] = "U~RL";
+ Text[ greek ] = "URL";
+ Text[ korean ] = "URL(~R)";
+ Text[ turkish ] = "U~RL";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_CONNECTURL
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 90 , 21 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_USERNAME
+ {
+ Pos = MAP_APPFONT ( 6 , 37 ) ;
+ Size = MAP_APPFONT ( 51 , 10 ) ;
+ Text = "~Benutzername" ;
+ Text [ ENGLISH ] = "~Username" ;
+ Text [ NORWEGIAN ] = "~Username" ;
+ Text [ DANISH ] = "Brugernavn" ;
+ Text [ ENGLISH_US ] = "~User name" ;
+ Text [ SPANISH ] = "N~ombre del usuario" ;
+ Text [ FINNISH ] = "~Kyttjtunnus" ;
+ Text [ FRENCH ] = "Nom d'~utilisateur" ;
+ Text [ ITALIAN ] = "Nome ~utente" ;
+ Text [ DUTCH ] = "Naam ~gebruiker" ;
+ Text [ SWEDISH ] = "~Anvndarnamn" ;
+ Text [ PORTUGUESE ] = "Nome do ~utilizador" ;
+ Text [ portuguese_brazilian ] = "~Benutzername" ;
+ Text[ chinese_simplified ] = "ʹ(~U)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Nazwisko uytk.";
+ Text[ japanese ] = "հް(~U)";
+ Text[ chinese_traditional ] = "ϥΪ(~U)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = "ڸ(~U)";
+ Text[ turkish ] = "Kullanc ad";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_USERNAME
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 90 , 36 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_PASSWORD
+ {
+ Pos = MAP_APPFONT ( 6 , 52 ) ;
+ Size = MAP_APPFONT ( 51 , 10 ) ;
+ Text = "~Passwort" ;
+ Text [ ENGLISH ] = "~Password" ;
+ Text [ NORWEGIAN ] = "~Passord" ;
+ Text [ DANISH ] = "Adgangskode" ;
+ Text [ ENGLISH_US ] = "~Password" ;
+ Text [ SPANISH ] = "~Contrasea" ;
+ Text [ FINNISH ] = "~Salasana" ;
+ Text [ FRENCH ] = "~Mot de passe" ;
+ Text [ ITALIAN ] = "~Password" ;
+ Text [ DUTCH ] = "~Wachtwoord" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "~Senha" ;
+ Text [ SWEDISH ] = "~Lsenord" ;
+ Text [ PORTUGUESE ] = "~Senha" ;
+ Text[ chinese_simplified ] = "(~P)";
+ Text[ russian ] = "";
+ Text[ polish ] = "Haso";
+ Text[ japanese ] = "߽ܰ(~P)";
+ Text[ chinese_traditional ] = "KX(~P)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = "н(~P)";
+ Text[ turkish ] = "ifre";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_PASSWORD
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 90 , 51 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ PassWord = TRUE ;
+ };
+ CheckBox CB_ASK_WHEN_EMPTY_PWD
+ {
+ Pos = MAP_APPFONT ( 90 , 66 ) ;
+ Size = MAP_APPFONT ( 105 , 10 ) ;
+ Text = "beim ffnen ~fragen";
+ Text [ ENGLISH ] = "beim ffnen ~fragen";
+ Text[ italian ] = "Chiedi all'apertura";
+ Text[ portuguese_brazilian ] = "beim ffnen ~fragen";
+ Text[ portuguese ] = "~Perguntar ao abrir";
+ Text[ danish ] = "sprg ved bning";
+ Text[ french ] = "~Requte l'ouverture";
+ Text[ swedish ] = "~frga vid ppnandet";
+ Text[ dutch ] = "bij openen ~vragen";
+ Text[ spanish ] = "preguntar al ~abrir";
+ Text[ english_us ] = "Request when opened";
+ Text[ chinese_simplified ] = "ڴʱѯ";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Pytaj przy otwieraniu";
+ Text[ japanese ] = "Jۂɐq˂";
+ Text[ chinese_traditional ] = "b}Үɸ߰";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = " û";
+ Text[ turkish ] = "Aarken sor";
+ Text[ language_user1 ] = " ";
+ };
+ FixedLine FL_SEPARATOR1
+ {
+ Pos = MAP_APPFONT ( 6 , 79 ) ;
+ Size = MAP_APPFONT ( 248 , 1 ) ;
+ };
+ FixedText FT_CHARSET
+ {
+ Pos = MAP_APPFONT ( 6 , 85 ) ;
+ Size = MAP_APPFONT ( 51 , 10 ) ;
+ Text = "~Zeichensatz" ;
+ Text [ ENGLISH ] = "~Character set" ;
+ Text [ NORWEGIAN ] = "~Character set" ;
+ Text [ DANISH ] = "Tegnst" ;
+ Text [ ENGLISH_US ] = "~Character set" ;
+ Text [ SPANISH ] = "J~uego de caracteres" ;
+ Text [ FINNISH ] = "~Merkist" ;
+ Text [ FRENCH ] = "~Jeu de caractres" ;
+ Text [ ITALIAN ] = "Ti~po di carattere" ;
+ Text [ DUTCH ] = "~Tekenset" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "~Conjunto de caracteres" ;
+ Text [ SWEDISH ] = "Te~ckenuppsttning" ;
+ Text [ PORTUGUESE ] = "~Conjunto de caracteres" ;
+ Text[ chinese_simplified ] = "(~C)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Zbir znakw";
+ Text[ japanese ] = "(~C)";
+ Text[ chinese_traditional ] = "r(~C)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = " Ʈ(~C)";
+ Text[ turkish ] = "Karakter kmesi";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_CHARSET
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 90 , 85 ) ;
+ Size = MAP_APPFONT ( 105 , 60 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ CurPos = 0 ;
+ };
+};
+
+//.........................................................................
+TabPage PAGE_ODBC
+{
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ Hide = TRUE;
+ FixedText FT_USERNAME
+ {
+ Pos = MAP_APPFONT ( 6 , 7 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "~Benutzername" ;
+ Text [ ENGLISH ] = "~Username" ;
+ Text [ NORWEGIAN ] = "~Username" ;
+ Text [ DANISH ] = "Brugernavn" ;
+ Text [ ENGLISH_US ] = "~User name" ;
+ Text [ SPANISH ] = "N~ombre del usuario" ;
+ Text [ FINNISH ] = "~Kyttjtunnus" ;
+ Text [ FRENCH ] = "Nom d'~utilisateur" ;
+ Text [ ITALIAN ] = "Nome ~utente" ;
+ Text [ DUTCH ] = "Naam ~gebruiker" ;
+ Text [ SWEDISH ] = "~Anvndarnamn" ;
+ Text [ PORTUGUESE ] = "Nome do ~utilizador" ;
+ Text [ portuguese_brazilian ] = "~Benutzername" ;
+ Text[ chinese_simplified ] = "ʹ(~U)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Nazwisko uytk.";
+ Text[ japanese ] = "հް(~U)";
+ Text[ chinese_traditional ] = "ϥΪ(~U)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = "ڸ(~U)";
+ Text[ turkish ] = "Kullanc ad";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_USERNAME
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 110 , 6 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_PASSWORD
+ {
+ Pos = MAP_APPFONT ( 6 , 22 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "~Passwort" ;
+ Text [ ENGLISH ] = "~Password" ;
+ Text [ NORWEGIAN ] = "~Passord" ;
+ Text [ DANISH ] = "Adgangskode" ;
+ Text [ ENGLISH_US ] = "~Password" ;
+ Text [ SPANISH ] = "~Contrasea" ;
+ Text [ FINNISH ] = "~Salasana" ;
+ Text [ FRENCH ] = "~Mot de passe" ;
+ Text [ ITALIAN ] = "~Password" ;
+ Text [ DUTCH ] = "~Wachtwoord" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "~Senha" ;
+ Text [ SWEDISH ] = "~Lsenord" ;
+ Text [ PORTUGUESE ] = "~Senha" ;
+ Text[ chinese_simplified ] = "(~P)";
+ Text[ russian ] = "";
+ Text[ polish ] = "Haso";
+ Text[ japanese ] = "߽ܰ(~P)";
+ Text[ chinese_traditional ] = "KX(~P)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = "н(~P)";
+ Text[ turkish ] = "ifre";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_PASSWORD
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 110 , 21 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ PassWord = TRUE ;
+ };
+ CheckBox CB_ASK_WHEN_EMPTY_PWD
+ {
+ Pos = MAP_APPFONT ( 110 , 36 ) ;
+ Size = MAP_APPFONT ( 105 , 10 ) ;
+ Text = "beim ffnen ~fragen";
+ Text [ ENGLISH ] = "beim ffnen ~fragen";
+ Text[ italian ] = "Chiedi all'apertura";
+ Text[ portuguese_brazilian ] = "beim ffnen ~fragen";
+ Text[ portuguese ] = "~Perguntar ao abrir";
+ Text[ danish ] = "sprg ved bning";
+ Text[ french ] = "~Requte l'ouverture";
+ Text[ swedish ] = "~frga vid ppnandet";
+ Text[ dutch ] = "bij openen ~vragen";
+ Text[ spanish ] = "preguntar al ~abrir";
+ Text[ english_us ] = "Request when opened";
+ Text[ chinese_simplified ] = "ڴʱѯ";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Pytaj przy otwieraniu";
+ Text[ japanese ] = "Jۂɐq˂";
+ Text[ chinese_traditional ] = "b}Үɸ߰";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = " û";
+ Text[ turkish ] = "Aarken sor";
+ Text[ language_user1 ] = " ";
+ };
+ FixedLine FL_SEPARATOR1
+ {
+ Pos = MAP_APPFONT ( 6 , 49 ) ;
+ Size = MAP_APPFONT ( 248 , 1 ) ;
+ };
+ FixedText FT_OPTIONS
+ {
+ Pos = MAP_APPFONT ( 6 , 55 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "~Treibereinstellungen" ;
+ Text [ ENGLISH ] = "ODBC ~options" ;
+ Text [ NORWEGIAN ] = "ODBC ~options" ;
+ Text [ DANISH ] = "Driverindstillinger" ;
+ Text [ ENGLISH_US ] = "Driver settings" ;
+ Text [ SPANISH ] = "Opciones del ~controlador" ;
+ Text [ FINNISH ] = "ODBC-~mritykset" ;
+ Text [ FRENCH ] = "Paramtres du pilote" ;
+ Text [ ITALIAN ] = "Imposta~zioni drive" ;
+ Text [ DUTCH ] = "~Driveropties" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "ODBC opes" ;
+ Text [ SWEDISH ] = "Drivru~tinsinstllningar" ;
+ Text [ PORTUGUESE ] = "Definies do ~controlador" ;
+ Text[ chinese_simplified ] = "趨";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Opcje sterownika";
+ Text[ japanese ] = "ײނ̐ݒ";
+ Text[ chinese_traditional ] = "]wXʵ{";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ~ ";
+ Text[ korean ] = "̹ ";
+ Text[ turkish ] = "Src ayarlar";
+ Text[ language_user1 ] = " ";
+ };
+ Edit ET_OPTIONS
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 110 , 54 ) ;
+ Size = MAP_APPFONT ( 105 , 12 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_CHARSET
+ {
+ Pos = MAP_APPFONT ( 6 , 70 ) ;
+ Size = MAP_APPFONT ( 100 , 10 ) ;
+ Text = "~Zeichensatz" ;
+ Text [ ENGLISH ] = "~Character set" ;
+ Text [ NORWEGIAN ] = "~Character set" ;
+ Text [ DANISH ] = "Tegnst" ;
+ Text [ ENGLISH_US ] = "~Character set" ;
+ Text [ SPANISH ] = "J~uego de caracteres" ;
+ Text [ FINNISH ] = "~Merkist" ;
+ Text [ FRENCH ] = "~Jeu de caractres" ;
+ Text [ ITALIAN ] = "~Tipo di carattere" ;
+ Text [ DUTCH ] = "~Tekenset" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "~Conjunto de caracteres" ;
+ Text [ SWEDISH ] = "~Teckenuppsttning" ;
+ Text [ PORTUGUESE ] = "~Conjunto de caracteres" ;
+ Text[ chinese_simplified ] = "(~C)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Zbir znakw";
+ Text[ japanese ] = "(~C)";
+ Text[ chinese_traditional ] = "r(~C)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = " Ʈ(~C)";
+ Text[ turkish ] = "Karakter kmesi";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_CHARSET
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 110 , 69 ) ;
+ Size = MAP_APPFONT ( 105 , 60 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ CurPos = 0 ;
+ };
+};
+
+//.........................................................................
+TabPage PAGE_TEXT
+{
+ SVLook = TRUE ;
+ Hide = TRUE;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ CheckBox CB_HEADER
+ {
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( 125 , 6 ) ;
+ Size = MAP_APPFONT ( 150 , 10 ) ;
+ Text = "~Text beinhaltet Kopfzeile" ;
+ Text [ ENGLISH ] = "Header record" ;
+ Text [ NORWEGIAN ] = "Header record" ;
+ Text [ DANISH ] = "Teksten indeholder sidehoved" ;
+ Text [ ENGLISH_US ] = "Text contains a header" ;
+ Text [ SPANISH ] = "Te~xto contiene encabezamiento" ;
+ Text [ FINNISH ] = "Otsikkotietue" ;
+ Text [ FRENCH ] = "Texte avec en-tte" ;
+ Text [ ITALIAN ] = "T~esto contiene riga d'intestazione" ;
+ Text [ DUTCH ] = "~Tekst bevat koptekst" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Registro do cabealho" ;
+ Text [ SWEDISH ] = "~Text innehller sidhuvud" ;
+ Text [ PORTUGUESE ] = "~Texto tem cabealho" ;
+ Text[ chinese_simplified ] = "ĺҳü";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Tekst zawiera nagwek";
+ Text[ japanese ] = "ͯނ܂";
+ Text[ chinese_traditional ] = "t";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = " ؽƮ";
+ Text[ turkish ] = "Metin stbilgi ieriyor";
+ Text[ language_user1 ] = " ";
+ };
+ FixedText FT_FIELDSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 6 , 21 ) ;
+ Size = MAP_APPFONT ( 119 , 10 ) ;
+ Text = "~Feldtrenner" ;
+ Text [ ENGLISH ] = "Field delimiter" ;
+ Text [ NORWEGIAN ] = "Field delimiter" ;
+ Text [ DANISH ] = "Feltseparator" ;
+ Text [ ENGLISH_US ] = "Field separator" ;
+ Text [ SPANISH ] = "~Separador de campo" ;
+ Text [ FINNISH ] = "Kenttien erotin" ;
+ Text [ FRENCH ] = "Sparateur de champ" ;
+ Text [ ITALIAN ] = "~Separatore di campo" ;
+ Text [ DUTCH ] = "~Veldscheidingsteken" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Delimitador de campo" ;
+ Text [ SWEDISH ] = "~Fltavgrnsare" ;
+ Text [ PORTUGUESE ] = "~Separador de campo" ;
+ Text[ chinese_simplified ] = "ֶηָ";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Separator pola";
+ Text[ japanese ] = "̨ނ̋؂L";
+ Text[ chinese_traditional ] = "j";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = "ʵ ";
+ Text[ turkish ] = "Alan ayrcs";
+ Text[ language_user1 ] = " ";
+ };
+ ComboBox CM_FIELDSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 125 , 19 ) ;
+ Size = MAP_APPFONT ( 48 , 60 ) ;
+ Text = ";" ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ FixedText FT_TEXTSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 6 , 38 ) ;
+ Size = MAP_APPFONT ( 119 , 10 ) ;
+ Text = "T~exttrenner" ;
+ Text [ ENGLISH ] = "String delimiter" ;
+ Text [ NORWEGIAN ] = "String delimiter" ;
+ Text [ DANISH ] = "Tekstseparator" ;
+ Text [ ENGLISH_US ] = "Text separator" ;
+ Text [ SPANISH ] = "Separador de te~xto" ;
+ Text [ FINNISH ] = "Merkkijonojen erotin" ;
+ Text [ FRENCH ] = "Sparateur de texte" ;
+ Text [ ITALIAN ] = "S~eparatore di testo" ;
+ Text [ DUTCH ] = "T~ekstafbrekingsteken" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Delimitador de cadeia" ;
+ Text [ SWEDISH ] = "T~extavgrnsare" ;
+ Text [ PORTUGUESE ] = "Separador de t~exto" ;
+ Text[ chinese_simplified ] = "ַָ";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Separator tekstu";
+ Text[ japanese ] = "÷Ă̋؂L";
+ Text[ chinese_traditional ] = "rj";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ~";
+ Text[ korean ] = "ؽƮ ";
+ Text[ turkish ] = "Metin ayrcs";
+ Text[ language_user1 ] = " ";
+ };
+ ComboBox CM_TEXTSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 125 , 36 ) ;
+ Size = MAP_APPFONT ( 48 , 60 ) ;
+ Text = "\"" ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ FixedText FT_DECIMALSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 6 , 55 ) ;
+ Size = MAP_APPFONT ( 119 , 10 ) ;
+ Text = "~Dezimaltrennzeichen" ;
+ Text [ ENGLISH ] = "~Decimal point" ;
+ Text [ NORWEGIAN ] = "~Decimal point" ;
+ Text [ DANISH ] = "Decimalkomma" ;
+ Text [ ENGLISH_US ] = "Decimal separator" ;
+ Text [ SPANISH ] = "Separa~dor decimal" ;
+ Text [ FINNISH ] = "~Desimaalierotin" ;
+ Text [ FRENCH ] = "Sparateur de dcimale" ;
+ Text [ ITALIAN ] = "Car. di separaz. decimali" ;
+ Text [ DUTCH ] = "~Decimaalteken" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Ponto decimal" ;
+ Text [ SWEDISH ] = "~Decimaltecken" ;
+ Text [ PORTUGUESE ] = "Separador de ~decimais" ;
+ Text[ chinese_simplified ] = "С";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Separator dziesitny";
+ Text[ japanese ] = "_";
+ Text[ language_user1 ] = "LS: Access sagt \"s?arateur d?imal*";
+ Text[ chinese_traditional ] = "pIŸ";
+ Text[ arabic ] = " ";
+ Text[ greek ] = " ";
+ Text[ korean ] = "Ҽ ";
+ Text[ turkish ] = "Ondalk ayrcs";
+ };
+ ComboBox CM_DECIMALSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 125 , 53 ) ;
+ Size = MAP_APPFONT ( 32 , 60 ) ;
+ Text = ";" ;
+ TabStop = TRUE ;
+ MaxTextLength = 1 ;
+ DropDown = TRUE ;
+ StringList =
+ {
+ "." ;
+ "," ;
+ ";" ;
+ ":" ;
+ };
+ };
+ FixedText FT_THOUSANDSSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 6 , 72 ) ;
+ Size = MAP_APPFONT ( 119 , 10 ) ;
+ Text = "T~ausendertrennzeichen" ;
+ Text [ ENGLISH ] = "Decimal point" ;
+ Text [ NORWEGIAN ] = "Decimal point" ;
+ Text [ DANISH ] = "Tusindtalsseparator" ;
+ Text [ ENGLISH_US ] = "Thousands separator" ;
+ Text [ SPANISH ] = "Separad~or de miles" ;
+ Text [ FINNISH ] = "Desimaalierotin" ;
+ Text [ FRENCH ] = "Sparateur de milliers" ;
+ Text [ ITALIAN ] = "Car. di separaz. migliaia" ;
+ Text [ DUTCH ] = "~Scheidingsteken voor duizendtallen" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "Ponto decimal" ;
+ Text [ SWEDISH ] = "Tusent~alsavgrnsare" ;
+ Text [ PORTUGUESE ] = "Separador de ~milhares" ;
+ Text[ chinese_simplified ] = "ǧλָ";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Separator tysiczny";
+ Text[ japanese ] = "猅؂";
+ Text[ language_user1 ] = "LS: auch laut Access";
+ Text[ chinese_traditional ] = "dj";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = "õ ";
+ Text[ turkish ] = "Binlik ayrcs";
+ };
+ ComboBox CM_THOUSANDSSEPARATOR
+ {
+ Pos = MAP_APPFONT ( 125 , 70 ) ;
+ Size = MAP_APPFONT ( 32 , 44 ) ;
+ Text = "." ;
+ TabStop = TRUE ;
+ MaxTextLength = 1 ;
+ DropDown = TRUE ;
+ StringList =
+ {
+ "," ;
+ "." ;
+ };
+ };
+ FixedLine FL_SEPARATOR1
+ {
+ Pos = MAP_APPFONT ( 6 , 87 ) ;
+ Size = MAP_APPFONT ( 248 , 1 ) ;
+ };
+ FixedText FT_EXTENSION
+ {
+ Pos = MAP_APPFONT ( 6 , 93 ) ;
+ Size = MAP_APPFONT ( 119 , 10 ) ;
+ Text = "E~rweiterung" ;
+ Text [ ENGLISH ] = "Extension" ;
+ Text [ english_us ] = "Extension" ;
+ Text [ italian ] = "Est~ensione" ;
+ Text [ spanish ] = "E~xtensin" ;
+ Text [ french ] = "Extension" ;
+ Text [ dutch ] = "V~ergroting" ;
+ Text [ swedish ] = "Utknin~g" ;
+ Text [ danish ] = "Filtypenavn" ;
+ Text [ portuguese_brazilian ] = "Erweiterung" ;
+ Text [ portuguese ] = "~Extenso" ;
+ Text[ chinese_simplified ] = "չ";
+ Text[ russian ] = "";
+ Text[ polish ] = "Rozszerzenie";
+ Text[ japanese ] = "gq";
+ Text[ chinese_traditional ] = "Xi";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "";
+ Text[ korean ] = "Ȯ";
+ Text[ turkish ] = "Uzant";
+ Text[ language_user1 ] = " ";
+ };
+ ComboBox CM_EXTENSION
+ {
+ Pos = MAP_APPFONT ( 125 , 91 ) ;
+ Size = MAP_APPFONT ( 32 , 44 ) ;
+ Text = "txt" ;
+ TabStop = TRUE ;
+ MaxTextLength = 3 ;
+ DropDown = TRUE ;
+ StringList =
+ {
+ "csv" ;
+ "sdf" ;
+ "txt" ;
+ };
+ };
+ FixedText FT_CHARSET
+ {
+ Pos = MAP_APPFONT ( 6 , 110 ) ;
+ Size = MAP_APPFONT ( 119 , 10 ) ;
+ Text = "~Zeichensatz" ;
+ Text [ ENGLISH ] = "~Character set" ;
+ Text [ NORWEGIAN ] = "~Character set" ;
+ Text [ DANISH ] = "Tegnst" ;
+ Text [ ENGLISH_US ] = "~Character set" ;
+ Text [ SPANISH ] = "J~uego de caracteres" ;
+ Text [ FINNISH ] = "~Merkist" ;
+ Text [ FRENCH ] = "~Jeu de caractres" ;
+ Text [ ITALIAN ] = "~Tipo di carattere" ;
+ Text [ DUTCH ] = "~Tekenset" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = "~Conjunto de caracteres" ;
+ Text [ SWEDISH ] = "~Teckenuppsttning" ;
+ Text [ PORTUGUESE ] = "~Conjunto de caracteres" ;
+ Text[ chinese_simplified ] = "(~C)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Zbir znakw";
+ Text[ japanese ] = "(~C)";
+ Text[ chinese_traditional ] = "r(~C)";
+ Text[ arabic ] = " ";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = " Ʈ(~C)";
+ Text[ turkish ] = "Karakter kmesi";
+ Text[ language_user1 ] = " ";
+ };
+ ListBox LB_CHARSET
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 125 , 108 ) ;
+ Size = MAP_APPFONT ( 61 , 60 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ CurPos = 0 ;
+ };
+
+ String STR_FIELDSEPARATORLIST
+ {
+ Text = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Leer}\t32" ;
+ Text [ ENGLISH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Space}\t32" ;
+ Text [ NORWEGIAN ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Space}\t32" ;
+ Text [ DANISH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{tom}\t32" ;
+ Text [ ENGLISH_US ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{empty}\t32" ;
+ Text [ SPANISH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{vaco}\t32" ;
+ Text [ FINNISH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Space}\t32" ;
+ Text [ FRENCH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Espace}\t32" ;
+ Text [ ITALIAN ] = ";\t59\t,\t44\t:\t58\t{tab}\t9\t{spazio}\t32" ;
+ Text [ DUTCH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{leeg}\t32" ;
+ Text [ PORTUGUESE_BRAZILIAN ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Space}\t32" ;
+ Text [ SWEDISH ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{tom}\t32" ;
+ Text [ PORTUGUESE ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{vazio}\t32" ;
+ Text[ chinese_simplified ] = ";\t59\t,\t44\t:\t58\t{Ʊ}\t9\t{հ}\t32";
+ Text[ russian ] = ";\t59\t,\t44\t:\t58\t{Ta}\t9\t{}\t32";
+ Text[ polish ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Pusty}\t32";
+ Text[ japanese ] = ";\t59\t,\t44\t:\t58\t{}\t9\t{}\t32";
+ Text[ chinese_traditional ] = ";\t59\t,\t44\t:\t58\t{s}\t9\t{ť}\t32";
+ Text[ arabic ] = ";\t59\t,\t44\t:\t58\t{ }\t9\t{\t32";
+ Text[ greek ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{}\t32";
+ Text[ korean ] = ";\t59\t,\t44\t:\t58\t{}\t9\t{}\t32";
+ Text[ turkish ] = ";\t59\t,\t44\t:\t58\t{Tab}\t9\t{Bo}\t32";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_TEXTSEPARATORLIST
+ {
+ Text = "\"\t34\t'\t39" ;
+ };
+ String STR_DELIMITER_MISSING
+ {
+ Text = "#1 muss angegeben sein." ;
+ Text [ English ] = "#1 must be set." ;
+ Text [ english_us ] = "#1 must be set." ;
+ Text [ portuguese ] = "#1 tem que ser especificado." ;
+ Text [ portuguese_brazilian ] = "#1 mu angegeben sein." ;
+ Text [ swedish ] = "#1 mste anges." ;
+ Text [ danish ] = "#1 skal vre angivet." ;
+ Text [ italian ] = "#1 deve essere digitato." ;
+ Text [ spanish ] = "#1 debe indicarse." ;
+ Text [ french ] = "#1 doit tre spcifi." ;
+ Text [ dutch ] = "#1 moet aangegeven zijn." ;
+ Text[ chinese_simplified ] = " #1 ";
+ Text[ russian ] = "#1 .";
+ Text[ polish ] = "#1 musi by podane.";
+ Text[ japanese ] = "#1͎w肳ĂȂ΂Ȃ܂B";
+ Text[ chinese_traditional ] = "w#1 C";
+ Text[ arabic ] = " #1.";
+ Text[ greek ] = "#1 .";
+ Text[ korean ] = "#1 ݵ Ǿ մϴ.";
+ Text[ turkish ] = "#1 belirlenmi olmal.";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_DELIMITER_MUST_DIFFER
+ {
+ Text = "#1 und #2 mssen unterschiedlich sein." ;
+ Text [ English ] = "#1 and #2 delimeter must differ." ;
+ Text [ english_us ] = "#1 and #2 must differ." ;
+ Text [ portuguese ] = "#1 e #2 tm que ser diferentes." ;
+ Text [ portuguese_brazilian ] = "#1 und #2 mssen unterschiedlich sein." ;
+ Text [ swedish ] = "#1 och #2 mste vara olika." ;
+ Text [ danish ] = "#1 og #2 skal vre forskellige." ;
+ Text [ italian ] = "#1 e #2 devono essere diversi." ;
+ Text [ spanish ] = "#1 y #2 tienen que ser diferentes." ;
+ Text [ french ] = "#1 et #2 doivent diffrer." ;
+ Text [ dutch ] = "#1 en #2 moeten verschillend zijn." ;
+ Text[ chinese_simplified ] = "#1 #2 벻ͬ";
+ Text[ russian ] = "#1 #2 .";
+ Text[ polish ] = "#1 i #2 musz by rne.";
+ Text[ japanese ] = "#1#2͈قȂĂȂ΂܂܂B";
+ Text[ chinese_traditional ] = "#1 M #2 ۦPC";
+ Text[ arabic ] = " #1 #2 .";
+ Text[ greek ] = "#1 #2 .";
+ Text[ korean ] = "#1 #2 ݵ ٸ.";
+ Text[ turkish ] = "#1 ve #2 farkl olmal.";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_NO_WILDCARDS
+ {
+ Text = "Platzhalter wie *,? sind in der #1 nicht mglich." ;
+ Text [ English ] = "Wildcards (?,*) in #1 are not allowed." ;
+ Text [ english_us ] = "Wildcards (?,*) in #1 are not allowed." ;
+ Text [ portuguese ] = "Caracteres polivalentes como *,? no so admitidos emr #1." ;
+ Text [ portuguese_brazilian ] = "Platzhalter wie *,? sind in der #1 nicht mglich." ;
+ Text [ swedish ] = "Jokertecken som *,? r inte tilltna i #1." ;
+ Text [ danish ] = "Jokertegn som *,? er ikke mulige i #1." ;
+ Text [ italian ] = "Segnaposto quali *,? non sono possibili in #1." ;
+ Text [ spanish ] = "Comodines como *,? no estn permitidos en #1." ;
+ Text [ french ] = "L'utilisation de substituants (?,*) dans #1 n'est pas permise." ;
+ Text [ dutch ] = "Plaatsvervangers zoals *,? zijn in de #1 niet mogelijk." ;
+ Text[ chinese_simplified ] = "#1 ܹͨ '*,?' ";
+ Text[ russian ] = " , *,? #1 .";
+ Text[ polish ] = "Symboli wieloznacznych jak *,? nie mona uy w #1.";
+ Text[ japanese ] = "*,?̂悤ܲ޶ނ #1ł͒ʗp܂B";
+ Text[ chinese_traditional ] = "#1 tqt '*,?' C";
+ Text[ arabic ] = " *,? #1.";
+ Text[ greek ] = " (?,*) #1.";
+ Text[ korean ] = "#1 ȣ ? * ɼ ϴ.";
+ Text[ turkish ] = "*,? gibi deikenler #1 iin kullanlamaz.";
+ Text[ language_user1 ] = " ";
+ };
+};
+//.........................................................................
+TabPage PAGE_TABLESUBSCRIPTION
+{
+ SVLook = TRUE ;
+ Hide = TRUE;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 260 , 135 ) ;
+ FixedText FT_TABLESUBSCRIPTION
+ {
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( 6 , 6 ) ;
+ Size = MAP_APPFONT ( 248 , 12 ) ;
+ Text = "~Whlen Sie die Tabellen aus, die angezeigt werden sollen:" ;
+ Text [ ENGLISH ] = "Choose the tables that should be displayed:" ;
+ Text [ english_us ] = "Select the tables to be displayed:" ;
+ Text [ portuguese_brazilian ] = "Whlen Sie die Tabellen aus, die angezeigt werden sollen:" ;
+ Text [ swedish ] = "V~lj ut tabellerna som skall visas:" ;
+ Text [ danish ] = "Vlg de tabeller, som skal vises:" ;
+ Text [ italian ] = "Scegliere le tabelle da visualizzare:" ;
+ Text [ spanish ] = "Seleccione las tablas q~ue deban verse:" ;
+ Text [ french ] = "Slectionnez les tables afficher :" ;
+ Text [ dutch ] = "~Kies de tabellen die moeten worden weergegeven:" ;
+ Text [ portuguese ] = "~Seleccione as tabelas a visualizar:" ;
+ Text[ chinese_simplified ] = "ѡҪʾı";
+ Text[ russian ] = " , :";
+ Text[ polish ] = "Wybierz tabele, ktre maj by wywietlone:";
+ Text[ japanese ] = "\\ðقIĂ:";
+ Text[ chinese_traditional ] = "бzܤ@ӭnܪG";
+ Text[ arabic ] = " :";
+ Text[ greek ] = " :";
+ Text[ korean ] = " ̺ :";
+ Text[ turkish ] = "Grntlenecek tablolar sein:";
+ Text[ language_user1 ] = " ";
+ };
+ Control CTL_TABLESUBSCRIPTION
+ {
+ Pos = MAP_APPFONT ( 6 , 20 ) ;
+ Size = MAP_APPFONT ( 192 , 109 ) ;
+ Border = TRUE ;
+ TabStop = TRUE ;
+ };
+ PushButton PB_ADDALLTABLES
+ {
+ TabStop = TRUE ;
+ Pos = MAP_APPFONT ( 204 , 20 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ };
+ String STR_CHECK_ALL
+ {
+ Text = "~Alle" ;
+ Text [ English ] = "All" ;
+ Text [ portuguese ] = "~Todas" ;
+ Text [ english_us ] = "~All" ;
+ Text [ portuguese_brazilian ] = "Alle" ;
+ Text [ swedish ] = "~Alla" ;
+ Text [ danish ] = "Alle" ;
+ Text [ italian ] = "Tutte" ;
+ Text [ spanish ] = "To~das" ;
+ Text [ french ] = "Toutes" ;
+ Text [ dutch ] = "~Alle" ;
+ Text[ chinese_simplified ] = "ȫ(~A)";
+ Text[ russian ] = "";
+ Text[ polish ] = "Wszystkie";
+ Text[ japanese ] = "ׂ(~A)";
+ Text[ chinese_traditional ] = "(~A)";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "ü(~A)";
+ Text[ turkish ] = "Tm";
+ Text[ language_user1 ] = " ";
+ };
+ String STR_CHECK_NONE
+ {
+ Text = "~Keine" ;
+ Text [ English ] = "None" ;
+ Text [ portuguese ] = "~Nenhuma" ;
+ Text [ english_us ] = "~None" ;
+ Text [ portuguese_brazilian ] = "Keine" ;
+ Text [ swedish ] = "In~ga" ;
+ Text [ danish ] = "Ingen" ;
+ Text [ italian ] = "Nessuna" ;
+ Text [ spanish ] = "~Ninguna" ;
+ Text [ french ] = "Aucune" ;
+ Text [ dutch ] = "~Geen" ;
+ Text[ chinese_simplified ] = "(~N)";
+ Text[ russian ] = "";
+ Text[ polish ] = "Brak";
+ Text[ japanese ] = "Ȃ(~N)";
+ Text[ chinese_traditional ] = "L(~N)";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "(~N)";
+ Text[ turkish ] = "Hibiri";
+ Text[ language_user1 ] = " ";
+ };
+};
+
+
+WarningBox ERR_NOREGISTEREDDATASOURCES
+{
+ Message = "Es sind augenblicklich keine Datenquellen registriert.";
+ Message [ english ] = "Currently, there are no registered data sources.";
+ Message [ english_us ] = "Currently, there are no registered data sources.";
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 20.09.00 10:58:47 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dbfindex.cxx b/dbaccess/source/ui/dlg/dbfindex.cxx
new file mode 100644
index 000000000000..59c7bd71f26e
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbfindex.cxx
@@ -0,0 +1,510 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbfindex.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:05:22 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DBFINDEX_HXX_
+#include "dbfindex.hxx"
+#endif
+
+#ifndef _FSYS_HXX //autogen
+#include <tools/fsys.hxx>
+#endif
+#ifndef _CONFIG_HXX //autogen
+#include <vcl/config.hxx>
+#endif
+#ifndef _SFXAPP_HXX //autogen
+#include <sfx2/app.hxx>
+#endif
+
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_DBF_INDEXES_HRC_
+#include "dbfindex.hrc"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+const ByteString aGroupIdent("dbase III");
+
+//////////////////////////////////////////////////////////////////////////
+// Klasse ODbaseIndexDialog
+ODbaseIndexDialog::ODbaseIndexDialog( Window * pParent, String aDataSrcName )
+ : ModalDialog( pParent, ModuleRes(DLG_DBASE_INDEXES) ),
+ aPB_OK( this, ResId( PB_OK ) ),
+ aPB_CANCEL( this, ResId( PB_CANCEL ) ),
+ aPB_HELP( this, ResId( PB_HELP ) ),
+ m_FT_Tables( this, ResId( FT_TABLES ) ),
+ aCB_Tables( this, ResId( CB_TABLES ) ),
+ m_GB_Indexes( this, ResId( GB_INDEXES ) ),
+ m_FT_TableIndexes( this, ResId( FT_TABLEINDEXES ) ),
+ aLB_TableIndexes( this, ResId( LB_TABLEINDEXES ) ),
+ m_FT_AllIndexes( this, ResId( FT_ALLINDEXES ) ),
+ aLB_FreeIndexes( this, ResId( LB_FREEINDEXES ) ),
+ aPB_Add( this, ResId( PB_ADD ) ),
+ aPB_Remove( this, ResId( PB_REMOVE ) ),
+ aPB_AddAll( this, ResId( PB_ADDALL ) ),
+ aPB_RemoveAll( this, ResId( PB_REMOVEALL ) ),
+ m_aDSN(aDataSrcName)
+{
+ aCB_Tables.SetSelectHdl( LINK(this, ODbaseIndexDialog, TableSelectHdl) );
+ aPB_Add.SetClickHdl( LINK(this, ODbaseIndexDialog, AddClickHdl) );
+ aPB_Remove.SetClickHdl( LINK(this, ODbaseIndexDialog, RemoveClickHdl) );
+ aPB_AddAll.SetClickHdl( LINK(this, ODbaseIndexDialog, AddAllClickHdl) );
+ aPB_RemoveAll.SetClickHdl( LINK(this, ODbaseIndexDialog, RemoveAllClickHdl) );
+ aPB_OK.SetClickHdl( LINK(this, ODbaseIndexDialog, OKClickHdl) );
+
+ Init();
+ SetCtrls();
+ FreeResource();
+}
+
+ODbaseIndexDialog::~ODbaseIndexDialog()
+{
+}
+
+sal_Bool ODbaseIndexDialog::GetTable(const String& _rName, TableInfoListIterator& _rPosition)
+{
+ for ( _rPosition = m_aTableInfoList.begin();
+ _rPosition != m_aTableInfoList.end();
+ ++_rPosition
+ )
+ {
+ if (m_bCaseSensitiv)
+ {
+ if (_rPosition->aTableName.Equals(_rName))
+ return sal_True;
+ }
+ else
+ {
+ if (_rPosition->aTableName.EqualsIgnoreCaseAscii(_rName))
+ return sal_True;
+ }
+ }
+ return sal_False;
+}
+
+OTableIndex ODbaseIndexDialog::implRemoveIndex(const String& _rName, TableIndexList& _rList, ListBox& _rDisplay)
+{
+ OTableIndex aReturn;
+
+ sal_Int32 nPos = 0;
+ for ( TableIndexListIterator aSearch = _rList.begin();
+ aSearch != _rList.end();
+ ++aSearch, ++nPos
+ )
+ {
+ if ( m_bCaseSensitiv ? aSearch->GetIndexFileName().Equals(_rName) : aSearch->GetIndexFileName().EqualsIgnoreCaseAscii(_rName) )
+ {
+ aReturn = *aSearch;
+
+ _rList.erase(aSearch);
+ _rDisplay.RemoveEntry( _rName );
+
+ // adjust selection if necessary
+ if (nPos == _rList.size())
+ _rDisplay.SelectEntryPos((sal_uInt16)nPos-1);
+ else
+ _rDisplay.SelectEntryPos((sal_uInt16)nPos);
+
+ break;
+ }
+ }
+
+ DBG_ASSERT(aSearch != _rList.end(), "ODbaseIndexDialog::RemoveFreeIndex : did not find the index!");
+ return aReturn;
+}
+
+void ODbaseIndexDialog::implInsertIndex(const OTableIndex& _rIndex, TableIndexList& _rList, ListBox& _rDisplay)
+{
+ _rList.push_front( _rIndex );
+ _rDisplay.InsertEntry( _rIndex.GetIndexFileName() );
+ _rDisplay.SelectEntryPos(0);
+}
+
+OTableIndex ODbaseIndexDialog::RemoveTableIndex( const String& _rTableName, const String& _rIndexName )
+{
+ OTableIndex aReturn;
+
+ // does the table exist ?
+ TableInfoListIterator aTablePos;
+ if (!GetTable(_rTableName, aTablePos))
+ return aReturn;
+
+ return implRemoveIndex(_rIndexName, aTablePos->aIndexList, aLB_TableIndexes);
+}
+
+void ODbaseIndexDialog::InsertTableIndex( const String& _rTableName, const OTableIndex& _rIndex )
+{
+ TableInfoListIterator aTablePos;
+ if (!GetTable(_rTableName, aTablePos))
+ return;
+
+ implInsertIndex(_rIndex, aTablePos->aIndexList, aLB_TableIndexes);
+}
+
+IMPL_LINK( ODbaseIndexDialog, OKClickHdl, PushButton*, pButton )
+{
+ // let all tables write their INF file
+
+ for ( ConstTableInfoListIterator aLoop = m_aTableInfoList.begin();
+ aLoop != m_aTableInfoList.end();
+ ++aLoop
+ )
+ aLoop->WriteInfFile(m_aDSN);
+
+ EndDialog();
+ return 0;
+}
+
+IMPL_LINK( ODbaseIndexDialog, AddClickHdl, PushButton*, pButton )
+{
+ String aSelection = aLB_FreeIndexes.GetSelectEntry();
+ String aTableName = aCB_Tables.GetText();
+ OTableIndex aIndex = RemoveFreeIndex( aSelection );
+ InsertTableIndex( aTableName, aIndex );
+ return 0;
+}
+
+IMPL_LINK( ODbaseIndexDialog, RemoveClickHdl, PushButton*, pButton )
+{
+ String aSelection = aLB_TableIndexes.GetSelectEntry();
+ String aTableName = aCB_Tables.GetText();
+ OTableIndex aIndex = RemoveTableIndex( aTableName, aSelection );
+ InsertFreeIndex( aIndex );
+
+ return 0;
+}
+
+IMPL_LINK( ODbaseIndexDialog, AddAllClickHdl, PushButton*, pButton )
+{
+ sal_uInt16 nCnt = aLB_FreeIndexes.GetEntryCount();
+ String aTableName = aCB_Tables.GetText();
+ String aEntry;
+
+ for( sal_uInt16 nPos = 0; nPos < nCnt; ++nPos )
+ InsertTableIndex( aTableName, RemoveFreeIndex( aLB_FreeIndexes.GetEntry(0) ) );
+
+ return 0;
+}
+
+IMPL_LINK( ODbaseIndexDialog, RemoveAllClickHdl, PushButton*, pButton )
+{
+ sal_uInt16 nCnt = aLB_TableIndexes.GetEntryCount();
+ String aTableName = aCB_Tables.GetText();
+ String aEntry;
+
+ for( sal_uInt16 nPos = 0; nPos < nCnt; ++nPos )
+ InsertFreeIndex( RemoveTableIndex( aTableName, aLB_TableIndexes.GetEntry(0) ) );
+
+ return 0;
+}
+
+IMPL_LINK( ODbaseIndexDialog, TableSelectHdl, ComboBox*, pComboBox )
+{
+ // search the table
+ TableInfoListIterator aTablePos;
+ if (!GetTable(pComboBox->GetText(), aTablePos))
+ return 0L;
+
+ // fill the listbox for the indexes
+ aLB_TableIndexes.Clear();
+ for ( ConstTableIndexListIterator aLoop = aTablePos->aIndexList.begin();
+ aLoop != aTablePos->aIndexList.end();
+ ++aLoop
+ )
+ aLB_TableIndexes.InsertEntry( aLoop->GetIndexFileName() );
+
+ if ( aTablePos->aIndexList.size() )
+ aLB_TableIndexes.SelectEntryPos(0);
+
+ return 0;
+}
+
+void ODbaseIndexDialog::Init()
+{
+ ///////////////////////////////////////////////////////////////////////////
+ // Alle Indizes werden erst einmal zur Liste der freien Indizes hinzugefuegt.
+ // Dann wird fuer jede Tabelle in der Inf-Datei nachgeschaut, welche Indizes sie besitzt.
+ // Diese Indizes werden aus der Liste der freien Indizes entfernt
+ // und in die Indexliste der Tabelle eingetragen
+
+ ///////////////////////////////////////////////////////////////////////////
+ // substitute $(INST)
+ m_aDSN = SFX_APP()->GetIniManager()->SubstPathVars( m_aDSN );
+
+ ///////////////////////////////////////////////////////////////////////////
+ // if the string does not contain a path, cut the string
+ DirEntry aInitEntry( m_aDSN );
+ FileStat aFileStat(aInitEntry); // do not combine - bug in VC++ 2.0!
+
+ if (aFileStat.IsKind(FSYS_KIND_WILD))
+ m_aDSN = (DirEntry(m_aDSN).GetPath()).GetFull();
+ else if (aFileStat.IsKind(FSYS_KIND_DIR))
+ m_aDSN = DirEntry(m_aDSN).GetFull();
+ else if (aFileStat.IsKind(FSYS_KIND_FILE))
+ m_aDSN = (DirEntry(m_aDSN).GetPath()).GetFull();
+
+ ///////////////////////////////////////////////////////////////////////////
+ // first assume for all indexes they're free
+ DirEntry aDirEntry( m_aDSN );
+
+ m_bCaseSensitiv = aDirEntry.IsCaseSensitive();
+
+ aDirEntry += String::CreateFromAscii("*.ndx");
+ Dir* pDir = new Dir( aDirEntry, FSYS_KIND_FILE,FSYS_SORT_NAME | FSYS_SORT_ASCENDING | FSYS_SORT_END );
+
+ sal_uInt16 nCount = pDir->Count();
+ String aEntry;
+
+ for( sal_uInt16 nCurPos = 0; nCurPos < nCount; nCurPos++ )
+ {
+ aEntry = (*pDir)[nCurPos].GetName();
+ m_aFreeIndexList.push_back( OTableIndex(aEntry) );
+ }
+
+ ///////////////////////////////////////////////////////////////////////////
+ // fill the table list
+ aDirEntry.SetExtension(String::CreateFromAscii("dbf"));
+ delete pDir;
+ pDir = new Dir( aDirEntry, FSYS_KIND_FILE,FSYS_SORT_NAME | FSYS_SORT_ASCENDING | FSYS_SORT_END );
+
+ nCount = pDir->Count();
+ if(!nCount)
+ {
+ aPB_OK.Disable(sal_True);
+ m_GB_Indexes.Disable(sal_True);
+ m_FT_TableIndexes.Disable(sal_True);
+ aLB_TableIndexes.Disable(sal_True);
+ m_FT_AllIndexes.Disable(sal_True);
+ aLB_FreeIndexes.Disable(sal_True);
+ aPB_Add.Disable(sal_True);
+ aPB_Remove.Disable(sal_True);
+ aPB_AddAll.Disable(sal_True);
+ aPB_RemoveAll.Disable(sal_True);
+ }
+
+ for( nCurPos = 0; nCurPos < nCount; nCurPos++ )
+ {
+ // add the table to the list
+ aEntry = (*pDir)[nCurPos].GetName();
+ m_aTableInfoList.push_back( OTableInfo(aEntry) );
+ OTableInfo& rTabInfo = m_aTableInfoList.back();
+
+ // open the INF file
+ String aTableName = (*pDir)[nCurPos].GetBase();
+ String aFileName = m_aDSN;
+ aFileName += DirEntry::GetAccessDelimiter();
+ aFileName += aTableName;
+ aFileName.AppendAscii(".inf");
+ Config aInfFile( aFileName );
+ aInfFile.SetGroup( aGroupIdent );
+
+ ///////////////////////////////////////////////////////////////////////////
+ // fill the indexes list
+ ByteString aNDX;
+ sal_uInt16 nKeyCnt = aInfFile.GetKeyCount();
+ ByteString aKeyName;
+
+ for( sal_uInt16 nKey = 0; nKey < nKeyCnt; nKey++ )
+ {
+ // does the key point to an index file ?
+ aKeyName = aInfFile.GetKeyName( nKey );
+ aNDX = aKeyName.Copy(0,3);
+
+ // yes -> add to the tables index list
+ if (aNDX == "NDX" )
+ {
+ aEntry = String(aInfFile.ReadKey(aKeyName), gsl_getSystemTextEncoding());
+ rTabInfo.aIndexList.push_back( OTableIndex( aEntry ) );
+
+ // and remove it from the free index list
+ RemoveFreeIndex( aEntry );
+ }
+
+ }
+
+ }
+
+ delete pDir;
+}
+
+void ODbaseIndexDialog::SetCtrls()
+{
+ // ComboBox Tabellen
+ for ( ConstTableInfoListIterator aLoop = m_aTableInfoList.begin();
+ aLoop != m_aTableInfoList.end();
+ ++aLoop
+ )
+ aCB_Tables.InsertEntry( aLoop->aTableName );
+
+ // Den ersten Datensatz ins Edit stellen
+ if( m_aTableInfoList.size() )
+ {
+ const OTableInfo& rTabInfo = m_aTableInfoList.front();
+ aCB_Tables.SetText( rTabInfo.aTableName );
+
+ // ListBox der Tabellenindizes aufbauen
+ for ( ConstTableIndexListIterator aIndex = rTabInfo.aIndexList.begin();
+ aIndex != rTabInfo.aIndexList.begin();
+ ++aIndex
+ )
+ aLB_TableIndexes.InsertEntry( aIndex->GetIndexFileName() );
+
+ if( rTabInfo.aIndexList.size() )
+ aLB_TableIndexes.SelectEntryPos( 0 );
+
+ }
+
+ // ListBox freie Indizes
+ for ( ConstTableIndexListIterator aFree = m_aFreeIndexList.begin();
+ aFree != m_aFreeIndexList.begin();
+ ++aFree
+ )
+ aLB_FreeIndexes.InsertEntry( aFree->GetIndexFileName() );
+
+ if( m_aFreeIndexList.size() )
+ aLB_FreeIndexes.SelectEntryPos( 0 );
+
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Klasse OTableInfo
+void OTableInfo::WriteInfFile( const String& rDSN ) const
+{
+ // INF-Datei oeffnen
+ xub_StrLen nLen = aTableName.Len();
+ String aName = aTableName.Copy( 0,(nLen-4) ); // Extension ausblenden
+ String aFileName = rDSN;
+ aFileName += '\\';
+ aFileName += aName;
+ aFileName.AppendAscii(".inf");
+ Config aInfFile( aFileName );
+ aInfFile.SetGroup( aGroupIdent );
+
+ // Erst einmal alle Tabellenindizes loeschen
+ ByteString aNDX;
+ sal_uInt16 nKeyCnt = aInfFile.GetKeyCount();
+ ByteString aKeyName;
+ ByteString aEntry;
+ sal_uInt16 nKey = 0;
+
+ while( nKey < nKeyCnt )
+ {
+ // Verweist der Key auf ein Indexfile?...
+ aKeyName = aInfFile.GetKeyName( nKey );
+ aNDX = aKeyName.Copy(0,3);
+
+ //...wenn ja, Indexfile loeschen, nKey steht dann auf nachfolgendem Key
+ if( aNDX == "NDX" )
+ {
+ aInfFile.DeleteKey(aKeyName);
+ nKeyCnt--;
+ }
+ else
+ nKey++;
+
+ }
+
+ // Jetzt alle gespeicherten Indizes hinzufuegen
+ sal_uInt16 nPos = 0;
+ for ( ConstTableIndexListIterator aIndex = aIndexList.begin();
+ aIndex != aIndexList.end();
+ ++aIndex, ++nPos
+ )
+ {
+ aKeyName = "NDX";
+ if( nPos > 0 ) // Erster Index erhaelt keine Ziffer
+ aKeyName += ByteString::CreateFromInt32( nPos );
+ aInfFile.WriteKey( aKeyName, ByteString(aIndex->GetIndexFileName(), gsl_getSystemTextEncoding()) );
+ }
+
+ aInfFile.Flush();
+
+ // Falls nur noch [dbase] in INF-File steht, Datei loeschen
+ DirEntry aDirEntry( aFileName );
+ FileStat aFileStat( aDirEntry );
+ sal_uInt32 nFileSize = aFileStat.GetSize();
+ xub_StrLen nGroupIdLen = aGroupIdent.Len();
+
+ if( (xub_StrLen)nFileSize == (nGroupIdLen+4) )
+ aDirEntry.Kill();
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 15:54:26 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dbfindex.hrc b/dbaccess/source/ui/dlg/dbfindex.hrc
new file mode 100644
index 000000000000..1bd2ae819851
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbfindex.hrc
@@ -0,0 +1,26 @@
+#ifndef _DBAUI_DBF_INDEXES_HRC_
+#define _DBAUI_DBF_INDEXES_HRC_
+
+#define CB_TABLES 1
+
+#define FT_TABLES 1
+#define FT_TABLEINDEXES 2
+#define FT_ALLINDEXES 3
+
+#define GB_INDEXES 1
+
+#define LB_TABLEINDEXES 1
+#define LB_FREEINDEXES 2
+
+#define PB_OK 1
+#define PB_CANCEL 1
+#define PB_HELP 1
+
+#define PB_ADD 1
+#define PB_REMOVE 2
+#define PB_ADDALL 3
+#define PB_REMOVEALL 4
+
+
+#endif //_DBAUI_DBF_INDEXES_HRC_
+
diff --git a/dbaccess/source/ui/dlg/dbfindex.hxx b/dbaccess/source/ui/dlg/dbfindex.hxx
new file mode 100644
index 000000000000..95a20916397d
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbfindex.hxx
@@ -0,0 +1,207 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbfindex.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:05:38 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DBFINDEX_HXX_
+#define _DBAUI_DBFINDEX_HXX_
+
+#ifndef _DIALOG_HXX //autogen
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _BUTTON_HXX //autogen
+#include <vcl/button.hxx>
+#endif
+#ifndef _COMBOBOX_HXX //autogen
+#include <vcl/combobox.hxx>
+#endif
+#ifndef _LSTBOX_HXX //autogen
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef __SGI_STL_LIST
+#include <stl/list>
+#endif
+#ifndef _UTL_STLTYPES_HXX_
+#include <unotools/stl_types.hxx>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OTableIndex
+//=========================================================================
+/// represents a single dbf index
+class OTableIndex
+{
+private:
+ String aIndexFileName;
+
+public:
+ OTableIndex() { }
+ OTableIndex( const OTableIndex& _rSource) : aIndexFileName(_rSource.aIndexFileName) { }
+ OTableIndex( const String& rFileName ) : aIndexFileName( rFileName ) { }
+
+ void SetIndexFileName( const String& rFileName ) { aIndexFileName = rFileName; }
+ String GetIndexFileName() const { return aIndexFileName; }
+};
+
+//-------------------------------------------------------------------------
+typedef ::std::list< OTableIndex > TableIndexList;
+DECLARE_STL_ITERATORS(TableIndexList);
+
+//=========================================================================
+//= OTableInfo
+//=========================================================================
+class ODbaseIndexDialog;
+/** holds the INF file of a table
+*/
+class OTableInfo
+{
+ friend class ODbaseIndexDialog;
+private:
+ String aTableName;
+ TableIndexList aIndexList;
+
+public:
+ OTableInfo() { }
+ OTableInfo( const String& rName ) : aTableName(rName) { }
+
+ void WriteInfFile( const String& rDSN ) const;
+};
+
+//-------------------------------------------------------------------------
+typedef ::std::list< OTableInfo > TableInfoList;
+DECLARE_STL_ITERATORS(TableInfoList);
+
+//////////////////////////////////////////////////////////////////////////
+// IndexDialog
+class ODbaseIndexDialog : public ModalDialog
+{
+protected:
+ OKButton aPB_OK;
+ CancelButton aPB_CANCEL;
+ HelpButton aPB_HELP;
+
+ FixedText m_FT_Tables;
+ ComboBox aCB_Tables;
+
+ GroupBox m_GB_Indexes;
+
+ FixedText m_FT_TableIndexes;
+ ListBox aLB_TableIndexes;
+
+ FixedText m_FT_AllIndexes;
+ ListBox aLB_FreeIndexes;
+
+ PushButton aPB_Add;
+ PushButton aPB_Remove;
+ PushButton aPB_AddAll;
+ PushButton aPB_RemoveAll;
+
+ DECL_LINK( TableSelectHdl, ComboBox* );
+ DECL_LINK( AddClickHdl, PushButton* );
+ DECL_LINK( RemoveClickHdl, PushButton* );
+ DECL_LINK( AddAllClickHdl, PushButton* );
+ DECL_LINK( RemoveAllClickHdl, PushButton* );
+ DECL_LINK( OKClickHdl, PushButton* );
+
+ String m_aDSN;
+ TableInfoList m_aTableInfoList;
+ TableIndexList m_aFreeIndexList;
+ BOOL m_bCaseSensitiv;
+
+ void Init();
+ void SetCtrls();
+ sal_Bool GetTable(const String& rName, TableInfoListIterator& _rPosition);
+
+ OTableIndex implRemoveIndex(const String& _rName, TableIndexList& _rList, ListBox& _rDisplay);
+ void implInsertIndex(const OTableIndex& _rIndex, TableIndexList& _rList, ListBox& _rDisplay);
+
+ OTableIndex RemoveFreeIndex( const String& _rName ) { return implRemoveIndex(_rName, m_aFreeIndexList, aLB_FreeIndexes); }
+ void InsertFreeIndex( const OTableIndex& _rIndex ) { implInsertIndex(_rIndex, m_aFreeIndexList, aLB_FreeIndexes); }
+ OTableIndex RemoveTableIndex( const String& _rTableName, const String& _rIndexName );
+ void InsertTableIndex( const String& _rTableName, const OTableIndex& _rIndex );
+
+public:
+ ODbaseIndexDialog( Window * pParent, String aDataSrcName );
+ virtual ~ODbaseIndexDialog();
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_DBFINDEX_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 15:49:08 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dbfindex.src b/dbaccess/source/ui/dlg/dbfindex.src
new file mode 100644
index 000000000000..e3f5feb0b09a
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dbfindex.src
@@ -0,0 +1,279 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbfindex.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:05:48 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DBF_INDEXES_HRC_
+#include "dbfindex.hrc"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+
+#define WIN_X 202
+#define WIN_Y 168
+
+ModalDialog DLG_DBASE_INDEXES
+{
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( WIN_X , WIN_Y ) ;
+ Text = "Indizes" ;
+ Text [ english ] = "Indexes" ;
+ Text [ italian ] = "Indici" ;
+ Text [ portuguese ] = "ndices" ;
+ Text [ french ] = "Index" ;
+ Text [ dutch ] = "Indices" ;
+ Text [ spanish ] = "ndices" ;
+ Text [ english_us ] = "Indexes" ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ OKButton PB_OK
+ {
+ Pos = MAP_APPFONT ( 6 , WIN_Y - 20 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ CancelButton PB_CANCEL
+ {
+ Pos = MAP_APPFONT ( 59 , WIN_Y - 20 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ HelpButton PB_HELP
+ {
+ Pos = MAP_APPFONT ( WIN_X - 56 , WIN_Y - 20 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_TABLES
+ {
+ Pos = MAP_APPFONT ( 8 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 10 ) ;
+ Text = "~Tabelle:" ;
+ Text [ english ] = "Table:" ;
+ Text [ english_us ] = "~Table:" ;
+ Text [ spanish ] = "~Tabla:" ;
+ Text [ french ] = "~Table :" ;
+ Text [ italian ] = "Tabella:" ;
+ Text [ dutch ] = "~Tabel:" ;
+ Text [ portuguese ] = "~Tabela:" ;
+ Text [ portuguese_brazilian ] = "Tabelle:" ;
+ Text [ danish ] = "Tabel:" ;
+ Text [ swedish ] = "~Tabell:" ;
+ Text[ chinese_simplified ] = "(~T)";
+ Text[ russian ] = ":";
+ Text[ polish ] = "Tabela:";
+ Text[ japanese ] = "ð(~T):";
+ Text[ chinese_traditional ] = "(~T)G";
+ Text[ arabic ] = ":";
+ Text[ greek ] = "~:";
+ Text[ korean ] = "ǥ:(~T)";
+ Text[ turkish ] = "Tablo:";
+ };
+ ComboBox CB_TABLES
+ {
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 62 , 5 ) ;
+ Size = MAP_APPFONT ( 134 , 12 ) ;
+ TabStop = TRUE ;
+ DropDown = TRUE ;
+ };
+ GroupBox GB_INDEXES
+ {
+ Pos = MAP_APPFONT ( 6 , 22 ) ;
+ Size = MAP_APPFONT ( WIN_X - 12 , 120 ) ;
+ Text = "Zuweisung" ;
+ Text [ english ] = "Assignment" ;
+ Text [ english_us ] = "Assignment" ;
+ Text[ portuguese ] = "Atribuio";
+ Text[ russian ] = "";
+ Text[ greek ] = "";
+ Text[ dutch ] = "Toewijzing";
+ Text[ french ] = "Assignement";
+ Text[ spanish ] = "Asignacin";
+ Text[ italian ] = "Assegnazione";
+ Text[ danish ] = "Tildeling";
+ Text[ swedish ] = "Tilldelning";
+ Text[ polish ] = "Przydzia";
+ Text[ portuguese_brazilian ] = "Assignment";
+ Text[ japanese ] = "Kp";
+ Text[ korean ] = "";
+ Text[ chinese_simplified ] = "ָ";
+ Text[ chinese_traditional ] = "w";
+ Text[ arabic ] = "";
+ Text[ turkish ] = "Atama";
+ };
+ FixedText FT_TABLEINDEXES
+ {
+ Pos = MAP_APPFONT ( 12 , 33 ) ;
+ Size = MAP_APPFONT ( 83 , 10 ) ;
+ Text = "T~abellenindizes:" ;
+ Text [ english ] = "Table indexes:" ;
+ Text [ english_us ] = "T~able indexes:" ;
+ Text [ spanish ] = "ndices de ta~bla:" ;
+ Text [ french ] = "~Index de table :" ;
+ Text [ italian ] = "Indici t~abella:" ;
+ Text [ dutch ] = "Tabel~indices:" ;
+ Text [ portuguese ] = "~ndices de tabelas:" ;
+ Text [ portuguese_brazilian ] = "Tabellenindizes:" ;
+ Text [ swedish ] = "T~abellindex:" ;
+ Text [ danish ] = "Tabelindeks:" ;
+ Text[ chinese_simplified ] = "־(~A)";
+ Text[ russian ] = " :";
+ Text[ polish ] = "Indeksy tabeli:";
+ Text[ japanese ] = "ðق̲ޯ:";
+ Text[ chinese_traditional ] = "лxG";
+ Text[ arabic ] = " :";
+ Text[ greek ] = "~ :";
+ Text[ korean ] = "ǥ :(~A)";
+ Text[ turkish ] = "Tablo dizinleri:";
+ };
+ ListBox LB_TABLEINDEXES
+ {
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 46 ) ;
+ Size = MAP_APPFONT ( 73 , 90 ) ;
+ TabStop = TRUE ;
+ };
+ FixedText FT_ALLINDEXES
+ {
+ Pos = MAP_APPFONT ( 117 , 33 ) ;
+ Size = MAP_APPFONT ( 73 , 10 ) ;
+ Text = "~Freie Indizes:" ;
+ Text [ english ] = "Free Indexes:" ;
+ Text [ english_us ] = "~Free indexes:" ;
+ Text [ spanish ] = "ndices lib~res:" ;
+ Text [ french ] = "Index ~libres" ;
+ Text [ italian ] = "Indici liberi:" ;
+ Text [ dutch ] = "~Vrije indices" ;
+ Text [ portuguese ] = "ndices ~livres" ;
+ Text [ portuguese_brazilian ] = "Freie Indizes" ;
+ Text [ swedish ] = "~Fria index:" ;
+ Text [ danish ] = "Frie indeks:" ;
+ Text[ chinese_simplified ] = "ɱ־(~F)";
+ Text[ russian ] = " ";
+ Text[ polish ] = "Wolne indeksy";
+ Text[ japanese ] = "ذ ޯ";
+ Text[ chinese_traditional ] = "ۥѼлx(~F)G";
+ Text[ arabic ] = " :";
+ Text[ greek ] = "~ ";
+ Text[ korean ] = " (~F)";
+ Text[ turkish ] = "Bo dizinler:";
+ };
+ ListBox LB_FREEINDEXES
+ {
+ Border = TRUE ;
+ SVLook = TRUE ;
+ Pos = MAP_APPFONT ( 117 , 46 ) ;
+ Size = MAP_APPFONT ( 73 , 90 ) ;
+ TabStop = TRUE ;
+ };
+ PushButton PB_ADD
+ {
+ Pos = MAP_APPFONT ( 91 , 60 ) ;
+ Size = MAP_APPFONT ( 20 , 14 ) ;
+ Text = "<-" ;
+ TabStop = TRUE ;
+ };
+ PushButton PB_ADDALL
+ {
+ Pos = MAP_APPFONT ( 91 , 77 ) ;
+ Size = MAP_APPFONT ( 20 , 14 ) ;
+ Text = "~<<=" ;
+ TabStop = TRUE ;
+ };
+ PushButton PB_REMOVE
+ {
+ Pos = MAP_APPFONT ( 91 , 98 ) ;
+ Size = MAP_APPFONT ( 20 , 14 ) ;
+ Text = "->" ;
+ TabStop = TRUE ;
+ };
+ PushButton PB_REMOVEALL
+ {
+ Pos = MAP_APPFONT ( 91, 114 ) ;
+ Size = MAP_APPFONT ( 20 , 14 ) ;
+ Text = "=~>>" ;
+ TabStop = TRUE ;
+ };
+
+ Text [ portuguese_brazilian ] = "Indizes" ;
+ Text [ swedish ] = "Index" ;
+ Text [ danish ] = "Indeks" ;
+ Text[ chinese_simplified ] = "־";
+ Text[ russian ] = "";
+ Text[ polish ] = "Indeksy";
+ Text[ japanese ] = "ޯ";
+ Text[ chinese_traditional ] = "лx";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "ε";
+ Text[ turkish ] = "Dizinler";
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 17:03:30 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/dsitems.hxx b/dbaccess/source/ui/dlg/dsitems.hxx
new file mode 100644
index 000000000000..28a2194241c0
--- /dev/null
+++ b/dbaccess/source/ui/dlg/dsitems.hxx
@@ -0,0 +1,103 @@
+/*************************************************************************
+ *
+ * $RCSfile: dsitems.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:05:55 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DATASOURCEITEMS_HXX_
+#define _DBAUI_DATASOURCEITEMS_HXX_
+
+//========================================================================
+//= item ids for the data source administration dialog
+
+#define DSID_NAME 1
+#define DSID_CONNECTURL 2
+#define DSID_TABLEFILTER 3
+#define DSID_TYPECOLLECTION 4
+#define DSID_INVALID_SELECTION 5
+#define DSID_READONLY 6
+#define DSID_USER 7
+#define DSID_PASSWORD 8
+#define DSID_ADDITIONALOPTIONS 9
+#define DSID_CHARSET 10
+#define DSID_ASKFOREMPTYPWD 11
+#define DSID_SHOWDELETEDROWS 12
+#define DSID_ALLOWLONGTABLENAMES 13
+#define DSID_JDBCDRIVERCLASS 14
+#define DSID_FIELDDELIMITER 15
+#define DSID_TEXTDELIMITER 16
+#define DSID_DECIMALDELIMITER 17
+#define DSID_THOUSANDSDELIMITER 18
+#define DSID_TEXTFILEEXTENSION 19
+#define DSID_TEXTFILEHEADER 20
+
+//========================================================================
+//= item range. Adjust this if you introduce new items above
+
+#define DSID_FIRST_ITEM_ID DSID_NAME
+#define DSID_LAST_ITEM_ID DSID_TEXTFILEHEADER
+
+#endif // _DBAUI_DATASOURCEITEMS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 22.09.00 08:10:45 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/makefile.mk b/dbaccess/source/ui/dlg/makefile.mk
new file mode 100644
index 000000000000..fe4fad571ba0
--- /dev/null
+++ b/dbaccess/source/ui/dlg/makefile.mk
@@ -0,0 +1,106 @@
+ #########################################################################
+ #
+ # $RCSfile: makefile.mk,v $
+ #
+ # $Revision: 1.1 $
+ #
+ # last change: $Author: fs $ $Date: 2000-10-05 10:06:31 $
+ #
+ # The Contents of this file are made available subject to the terms of
+ # either of the following licenses
+ #
+ # - GNU Lesser General Public License Version 2.1
+ # - Sun Industry Standards Source License Version 1.1
+ #
+ # Sun Microsystems Inc., October, 2000
+ #
+ # GNU Lesser General Public License Version 2.1
+ # =============================================
+ # Copyright 2000 by Sun Microsystems, Inc.
+ # 901 San Antonio Road, Palo Alto, CA 94303, USA
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+ # License version 2.1, as published by the Free Software Foundation.
+ #
+ # This library is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ # Lesser General Public License for more details.
+ #
+ # You should have received a copy of the GNU Lesser General Public
+ # License along with this library; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ # MA 02111-1307 USA
+ #
+ #
+ # Sun Industry Standards Source License Version 1.1
+ # =================================================
+ # The contents of this file are subject to the Sun Industry Standards
+ # Source License Version 1.1 (the "License"); You may not use this file
+ # except in compliance with the License. You may obtain a copy of the
+ # License at http://www.openoffice.org/license.html.
+ #
+ # Software provided under this License is provided on an "AS IS" basis,
+ # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ # See the License for the specific provisions governing your rights and
+ # obligations concerning the Software.
+ #
+ # The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ #
+ # Copyright: 2000 by Sun Microsystems, Inc.
+ #
+ # All Rights Reserved.
+ #
+ # Contributor(s): _______________________________________
+ #
+ #
+ ########################################################################/
+
+PRJ=..$/..$/..
+PRJINC=$(PRJ)$/source
+PRJNAME=dbaccess
+TARGET=uidlg
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files -------------------------------------
+
+# ... resource files ............................
+
+BMP_IN=$(PRJ)$/res
+
+SRCFILES = \
+ dbadmin.src \
+ dbfindex.src \
+ sqlmessage.src
+
+# ... object files ............................
+
+SLOFILES= \
+ $(SLO)$/adminpages.obj \
+ $(SLO)$/genericunodialog.obj \
+ $(SLO)$/dbadmin.obj \
+ $(SLO)$/unoadmin.obj \
+ $(SLO)$/unosqlmessage.obj \
+ $(SLO)$/sqlmessage.obj \
+ $(SLO)$/dbfindex.obj
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
+
+ #########################################################################
+ # history:
+ # $Log: not supported by cvs2svn $
+ #
+ # Revision 1.0 20.09.00 10:58:55 fs
+ ########################################################################/
+
diff --git a/dbaccess/source/ui/dlg/sqlmessage.cxx b/dbaccess/source/ui/dlg/sqlmessage.cxx
new file mode 100644
index 000000000000..4c7d24e4fcb1
--- /dev/null
+++ b/dbaccess/source/ui/dlg/sqlmessage.cxx
@@ -0,0 +1,552 @@
+/*************************************************************************
+ *
+ * $RCSfile: sqlmessage.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:06:44 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_SQLMESSAGE_HXX_
+#include "sqlmessage.hxx"
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_SQLMESSAGE_HRC_
+#include "sqlmessage.hrc"
+#endif
+#ifndef _COM_SUN_STAR_SDBC_SQLEXCEPTION_HPP_
+#include <com/sun/star/sdbc/SQLException.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDB_SQLCONTEXT_HPP_
+#include <com/sun/star/sdb/SQLContext.hpp>
+#endif
+#ifndef _SV_GROUP_HXX //autogen
+#include <vcl/group.hxx>
+#endif
+#ifndef _SVTREEBOX_HXX
+#include <svtools/svtreebx.hxx>
+#endif
+#ifndef _SVEDIT_HXX //autogen
+#include <svtools/svmedit.hxx>
+#endif
+#ifndef _DBHELPER_DBEXCEPTION_HXX_
+#include <connectivity/dbexception.hxx>
+#endif
+#ifndef _SV_MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+#define BUTTONID_MORE BUTTONID_RETRY + 1
+
+#define DLG_LIMIT 320 // max dialog size
+#define BTN_HEIGHT 14
+#define BTN_WIDTH 50
+#define BORDER_HEIGHT 6 // default distance control - dialog
+#define BORDER_WIDTH 6 // default distance control - dialog
+
+using namespace dbtools;
+using namespace com::sun::star::sdb;
+using namespace com::sun::star::sdbc;
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//==============================================================================
+class OExceptionChainDialog : public ModalDialog
+{
+ GroupBox m_aFrame;
+ FixedText m_aListLabel;
+ SvTreeListBox m_aExceptionList;
+ FixedText m_aDescLabel;
+ MultiLineEdit m_aExceptionText;
+ OKButton m_aOK;
+
+public:
+ OExceptionChainDialog(Window* pParent, const ::com::sun::star::uno::Any& _rStart);
+ ~OExceptionChainDialog();
+
+protected:
+ DECL_LINK(OnExceptionSelected, void*);
+};
+
+//------------------------------------------------------------------------------
+OExceptionChainDialog::OExceptionChainDialog(Window* pParent, const ::com::sun::star::uno::Any& _rStart)
+ :ModalDialog(pParent, ModuleRes(DLG_SQLEXCEPTIONCHAIN))
+ ,m_aFrame (this, ResId(GB_DETAILS))
+ ,m_aListLabel (this, ResId(FT_ERRORLIST))
+ ,m_aExceptionList (this, ResId(CTL_ERRORLIST))
+ ,m_aDescLabel (this, ResId(FT_DESCRIPTION))
+ ,m_aExceptionText (this, ResId(ME_DESCRIPTION))
+ ,m_aOK (this, ResId(PB_OK))
+{
+ String sErrorLabel(ResId(STR_EXCEPTION_ERROR));
+ String sWarningLabel(ResId(STR_EXCEPTION_WARNING));
+ String sInfoLabel(ResId(STR_EXCEPTION_INFO));
+ String sDetailsLabel(ResId(STR_EXCEPTION_DETAILS));
+ String sStatusLabel(ResId(STR_EXCEPTION_STATUS));
+ String sErrorCodeLabel(ResId(STR_EXCEPTION_ERRORCODE));
+
+ FreeResource();
+
+ m_aExceptionList.SetSelectionMode(SINGLE_SELECTION);
+ m_aExceptionList.SetDragDropMode(0);
+ m_aExceptionList.EnableInplaceEditing(sal_False);
+ m_aExceptionList.SetWindowBits(WB_HASLINES | WB_HASLINESATROOT | WB_HASBUTTONS | WB_HASBUTTONSATROOT | WB_HSCROLL);
+
+ m_aExceptionList.SetSelectHdl(LINK(this, OExceptionChainDialog, OnExceptionSelected));
+ Image aCollapsedImage(Bitmap(ModuleRes(BMP_PLUSBUTTON)));
+ Image aExpandedImage(Bitmap(ModuleRes(BMP_MINUSBUTTON)));
+ m_aExceptionList.SetNodeBitmaps(aCollapsedImage, aExpandedImage);
+
+ m_aExceptionText.SetReadOnly(sal_True);
+
+ SQLExceptionInfo aInfo(_rStart);
+ DBG_ASSERT(aInfo.isValid(), "OExceptionChainDialog::OExceptionChainDialog : invalid chain start !");
+ SQLExceptionIteratorHelper aIter(( const ::com::sun::star::sdbc::SQLException*)aInfo);
+
+ Image aErrorImage(BMP_EXCEPTION_ERROR),
+ aWarningImage(BMP_EXCEPTION_WARNING),
+ m_aInfoImage(BMP_EXCEPTION_INFO);
+
+ while (aIter.hasMoreElements())
+ {
+ SQLExceptionInfo aCurrent(*aIter.next());
+ if (aCurrent.isValid())
+ {
+ const ::com::sun::star::sdbc::SQLException* pCurrentException = (const ::com::sun::star::sdbc::SQLException*)aCurrent;
+ SvLBoxEntry* pListEntry = NULL;
+ ::com::sun::star::sdbc::SQLException* pUserData;
+ switch (aCurrent.getType())
+ {
+ case SQLExceptionInfo::SQL_EXCEPTION:
+ pListEntry = m_aExceptionList.InsertEntry(sErrorLabel, aErrorImage, aErrorImage);
+ pUserData = new ::com::sun::star::sdbc::SQLException(*(const ::com::sun::star::sdbc::SQLException*)aCurrent);
+ if (pUserData->SQLState.getLength())
+ {
+ UniString sTitle(sStatusLabel);
+ sTitle.AppendAscii(" : ");
+ sTitle += pUserData->SQLState.getStr();
+ SvLBoxEntry* pSQLstateEntry = m_aExceptionList.InsertEntry(sTitle, aErrorImage, aErrorImage, pListEntry);
+ pSQLstateEntry->SetUserData(pUserData);
+ m_aExceptionList.Expand(pListEntry);
+ }
+ if (pUserData->ErrorCode != 0)
+ {
+ UniString sTitle(sErrorCodeLabel);
+ sTitle.AppendAscii(" : ");
+ sTitle += pUserData->ErrorCode;
+ SvLBoxEntry* pErrorCodeEntry = m_aExceptionList.InsertEntry(sTitle, aErrorImage, aErrorImage, pListEntry);
+ pErrorCodeEntry->SetUserData(pUserData);
+ m_aExceptionList.Expand(pListEntry);
+ }
+ break;
+ case SQLExceptionInfo::SQL_WARNING:
+ pListEntry = m_aExceptionList.InsertEntry(sWarningLabel, aWarningImage, aWarningImage);
+ pUserData = new ::com::sun::star::sdbc::SQLWarning(*(const ::com::sun::star::sdbc::SQLWarning*)aCurrent);
+ break;
+ case SQLExceptionInfo::SQL_CONTEXT:
+ {
+ pListEntry = m_aExceptionList.InsertEntry(sInfoLabel, m_aInfoImage, m_aInfoImage);
+ pUserData = new SQLContext(*(const SQLContext*)aCurrent);
+ if (((const SQLContext*)aCurrent)->Details.getLength())
+ {
+ SvLBoxEntry* pDetailsEntry = m_aExceptionList.InsertEntry(sDetailsLabel, m_aInfoImage, m_aInfoImage, pListEntry);
+ pDetailsEntry->SetUserData(pUserData);
+ m_aExceptionList.Expand(pListEntry);
+ }
+ }
+ break;
+ default:
+ DBG_ERROR("OExceptionChainDialog::OExceptionChainDialog : valid ::com::sun::star::sdbc::SQLException but unknown type !");
+ break;
+ }
+ if (pListEntry)
+ pListEntry->SetUserData(pUserData);
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+OExceptionChainDialog::~OExceptionChainDialog()
+{
+ SvLBoxEntry* pLoop = m_aExceptionList.First();
+ while (pLoop)
+ {
+ if (!m_aExceptionList.GetParent(pLoop))
+ // it's not the "details" entry for an SQLContext object
+ delete (::com::sun::star::sdbc::SQLException*)pLoop->GetUserData();
+ pLoop = m_aExceptionList.Next(pLoop);
+ }
+}
+
+//------------------------------------------------------------------------------
+IMPL_LINK(OExceptionChainDialog, OnExceptionSelected, void*, EMPTYARG)
+{
+ SvLBoxEntry* pSelected = m_aExceptionList.FirstSelected();
+ DBG_ASSERT(!pSelected || !m_aExceptionList.NextSelected(pSelected), "OExceptionChainDialog::OnExceptionSelected : multi selection ?");
+
+ if (!pSelected)
+ m_aExceptionText.SetText(UniString());
+ else
+ {
+ SQLExceptionInfo aInfo(*(const ::com::sun::star::sdbc::SQLException*)pSelected->GetUserData());
+ ::rtl::OUString aText = ((const ::com::sun::star::sdbc::SQLException*)aInfo)->Message;
+
+ if (m_aExceptionList.GetParent(pSelected))
+ if (aInfo.isKindOf(SQLExceptionInfo::SQL_CONTEXT))
+ // Context-Details
+ aText = ((const SQLContext*)aInfo)->Details;
+ else
+ // all other children get the text of the parent
+ aText = ((const ::com::sun::star::sdbc::SQLException*)aInfo)->Message;
+
+ m_aExceptionText.SetText(aText);
+ }
+
+ return 0L;
+}
+
+//------------------------------------------------------------------------------
+void OSQLMessageBox::Construct(const UniString& rTitle,
+ const UniString& rMessage,
+ WinBits nStyle,
+ MessageType eImage)
+{
+ SetText(String::CreateFromAscii("StarBase"));
+ SetSizePixel(LogicToPixel(Size(220, 30),MAP_APPFONT));
+
+ m_aInfoImage.SetPosSizePixel(LogicToPixel(Point(6, 6),MAP_APPFONT),
+ LogicToPixel(Size(20, 20),MAP_APPFONT));
+ m_aInfoImage.Show();
+
+ m_aTitle.SetPosSizePixel(LogicToPixel(Point(45, 6),MAP_APPFONT),
+ LogicToPixel(Size(169, 20),MAP_APPFONT));
+
+ Font aFont = m_aTitle.GetFont();
+ aFont.SetWeight(WEIGHT_SEMIBOLD);
+ m_aTitle.SetFont(aFont);
+ m_aTitle.Show();
+
+ m_aMessage.SetPosSizePixel(LogicToPixel(Point(45, 29),MAP_APPFONT),
+ LogicToPixel(Size(169, 1),MAP_APPFONT));
+ m_aMessage.Show();
+
+ m_pInfoButton = NULL;
+
+ // Image festlegen
+ switch (eImage)
+ {
+ case Info:
+ m_aInfoImage.SetImage(InfoBox::GetStandardImage());
+ break;
+ case Warning:
+ m_aInfoImage.SetImage(WarningBox::GetStandardImage());
+ break;
+ case Error:
+ m_aInfoImage.SetImage(ErrorBox::GetStandardImage());
+ break;
+ case Query:
+ m_aInfoImage.SetImage(QueryBox::GetStandardImage());
+ break;
+ }
+
+ // Title setzen
+ m_aTitle.SetText(rTitle);
+
+ // Ermitteln der Hoehe des Textfeldes und des Dialogs
+ Size aBorderSize = LogicToPixel(Size(BORDER_WIDTH, BORDER_HEIGHT),MAP_APPFONT);
+ Rectangle aDlgRect(GetPosPixel(),GetSizePixel());
+ Rectangle aMessageRect(m_aMessage.GetPosPixel(),m_aMessage.GetSizePixel());
+ Rectangle aTextRect =
+ GetTextRect(aMessageRect,rMessage, TEXT_DRAW_WORDBREAK |
+ TEXT_DRAW_MULTILINE | TEXT_DRAW_LEFT);
+
+ long nHText = aTextRect.Bottom() > aMessageRect.Bottom() ? aTextRect.Bottom() - aMessageRect.Bottom() : 0;
+
+ aDlgRect.Bottom() += nHText + 2 * aBorderSize.Height();
+ aMessageRect.Bottom() += nHText;
+
+ // Dialog anpassen
+ SetSizePixel(aDlgRect.GetSize());
+ SetPageSizePixel(aDlgRect.GetSize());
+
+ // Message Text anpassen und setzen
+ m_aMessage.SetSizePixel(aMessageRect.GetSize());
+ m_aMessage.SetText(rMessage);
+
+ // Buttons anlegen
+ long nBtnCount = (m_sInfo.Len() != 0) ? 1 : 0;
+ sal_Bool bHelp = sal_False; //aHelpBtn.IsVisible();
+
+ sal_uInt16 nDefId = 0;
+
+ if (nStyle & WB_DEF_YES)
+ nDefId = BUTTONID_YES;
+ else if (nStyle & WB_DEF_NO)
+ nDefId = BUTTONID_NO;
+ else if (nStyle & WB_DEF_CANCEL)
+ nDefId = BUTTONID_CANCEL;
+ else if (nStyle & WB_DEF_RETRY)
+ nDefId = BUTTONID_RETRY;
+ else
+ nDefId = BUTTONID_OK;
+
+ if (nStyle & WB_YES_NO_CANCEL)
+ {
+ if (nStyle & WB_DEF_YES)
+ AddButton(BUTTON_YES,BUTTONID_YES,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_YES,BUTTONID_YES,0);
+
+ if (nStyle & WB_DEF_NO)
+ AddButton(BUTTON_NO,BUTTONID_NO,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_NO,BUTTONID_NO, 0);
+
+ if (nStyle & WB_DEF_CANCEL)
+ AddButton(BUTTON_CANCEL,BUTTONID_CANCEL,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_CANCEL,BUTTONID_CANCEL, 0);
+ }
+ else if (nStyle & WB_OK_CANCEL)
+ {
+ if (nStyle & WB_DEF_CANCEL)
+ {
+ AddButton(BUTTON_OK,BUTTONID_OK,0);
+ AddButton(BUTTON_CANCEL,BUTTONID_CANCEL,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ }
+ else
+ {
+ AddButton(BUTTON_OK,BUTTONID_OK,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ AddButton(BUTTON_CANCEL,BUTTONID_CANCEL,0);
+ }
+ }
+ else if (nStyle & WB_YES_NO)
+ {
+ if (nStyle & WB_DEF_YES)
+ AddButton(BUTTON_YES,BUTTONID_YES,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_YES,BUTTONID_YES,0);
+
+ if (nStyle & WB_DEF_NO)
+ AddButton(BUTTON_NO,BUTTONID_NO,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_NO,BUTTONID_NO, 0);
+ }
+ else if (nStyle & WB_RETRY_CANCEL)
+ {
+ if (nStyle & WB_DEF_RETRY)
+ AddButton(BUTTON_RETRY,BUTTONID_RETRY,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_YES,BUTTONID_YES,0);
+
+ if (nStyle & WB_DEF_CANCEL)
+ AddButton(BUTTON_CANCEL,BUTTONID_CANCEL,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ else
+ AddButton(BUTTON_CANCEL,BUTTONID_CANCEL, 0);
+ }
+ else
+ {
+ DBG_ASSERT(WB_OK & nStyle, "kein Button gesetzt");
+ AddButton(BUTTON_OK,BUTTONID_OK,BUTTONDIALOG_DEFBUTTON|BUTTONDIALOG_FOCUSBUTTON);
+ }
+
+ sal_Bool bAtLeastTwo = m_aNextChainElement.hasValue() && ((::com::sun::star::sdbc::SQLException*)m_aNextChainElement.getValue())->NextException.getValue();
+ if (bAtLeastTwo)
+ {
+ m_pInfoButton = new PushButton(this);
+ m_pInfoButton->SetText(Button::GetStandardText(BUTTON_MORE));
+ m_pInfoButton->SetClickHdl(LINK(this,OSQLMessageBox,ButtonClickHdl));
+ m_pInfoButton->Show();
+ AddButton(m_pInfoButton, BUTTONID_MORE, 0);
+ }
+}
+
+//------------------------------------------------------------------------------
+void OSQLMessageBox::Construct(const SQLExceptionInfo& _rException, WinBits _nStyle, MessageType _eImage)
+{
+ const SQLException* pFirst = NULL;
+ if (_rException.isKindOf(SQLExceptionInfo::SQL_EXCEPTION))
+ pFirst = (const SQLException*)_rException;
+
+ // get the first two strings in the chain
+ String sTitle, sMessage;
+ if (pFirst)
+ {
+ sTitle = pFirst->Message;
+ // we assume this to be not empty, so in reall we're searching the only te second string, the first
+ // one is always the Message of the first exception)
+
+ if (_rException.isKindOf(SQLExceptionInfo::SQL_CONTEXT))
+ { // take the detailed message
+ const SQLContext* pContext = (const SQLContext*)_rException;
+ sMessage = pContext->Details.getStr();
+ }
+
+ if (!sMessage.Len())
+ {
+ // loop through all the remaining exceptions
+ SQLExceptionIteratorHelper aIter((const SQLException*)pFirst);
+ // note that this leaves aIter in a state where it's current exception is only an SQLException,
+ // even if _rException was more than this. But this is irrelevant here, as we always handled
+ // this first chain element
+ while (aIter.hasMoreElements())
+ {
+ SQLExceptionInfo aInfo(*aIter.next());
+ if (aInfo.isValid())
+ { // first take the normal message of the exception
+ const SQLException* pException = (const SQLException*)aInfo;
+ sMessage = pException->Message.getStr();
+ // the, if necessary and possible, the details
+ if (aInfo.isKindOf(SQLExceptionInfo::SQL_CONTEXT))
+ { // check if we have a detailed message
+ const SQLContext* pContext = (const SQLContext*)aInfo;
+ sMessage = pContext->Details.getStr();
+ }
+ }
+ }
+ }
+ }
+
+ if (!sMessage.Len())
+ { // use the only string we have as message and an default title
+ sMessage = sTitle;
+ sTitle = ModuleRes(STR_GENERAL_SDB_ERROR);
+ }
+
+ Construct(sTitle, sMessage, _nStyle, _eImage);
+}
+
+//------------------------------------------------------------------------------
+OSQLMessageBox::OSQLMessageBox(Window* _pParent, const UniString& _rTitle, const ::com::sun::star::sdbc::SQLException& _rError, WinBits _nStyle,
+ MessageType _eImage)
+ :ButtonDialog(_pParent,WB_HORZ | WB_STDDIALOG)
+ ,m_aInfoImage(this)
+ ,m_aTitle(this,WB_WORDBREAK | WB_LEFT)
+ ,m_aMessage(this,WB_WORDBREAK | WB_LEFT)
+ ,m_pInfoButton(NULL)
+ ,m_aNextChainElement(SQLExceptionInfo(_rError).get())
+{
+ Construct(_rTitle, _rError.Message, _nStyle, _eImage);
+}
+
+//------------------------------------------------------------------------------
+OSQLMessageBox::OSQLMessageBox(Window* _pParent, const ::com::sun::star::sdbc::SQLException& _rError, WinBits _nStyle, MessageType _eImage)
+ :ButtonDialog(_pParent,WB_HORZ | WB_STDDIALOG)
+ ,m_aInfoImage(this)
+ ,m_aTitle(this,WB_WORDBREAK | WB_LEFT)
+ ,m_aMessage(this,WB_WORDBREAK | WB_LEFT)
+ ,m_pInfoButton(NULL)
+ ,m_aNextChainElement(SQLExceptionInfo(_rError).get())
+{
+ Construct(SQLExceptionInfo(_rError), _nStyle, _eImage);
+}
+
+//------------------------------------------------------------------------------
+OSQLMessageBox::OSQLMessageBox(Window* _pParent, const SQLExceptionInfo& _rException, WinBits _nStyle, MessageType _eImage)
+ :ButtonDialog(_pParent,WB_HORZ | WB_STDDIALOG)
+ ,m_aInfoImage(this)
+ ,m_aTitle(this,WB_WORDBREAK | WB_LEFT)
+ ,m_aMessage(this,WB_WORDBREAK | WB_LEFT)
+ ,m_pInfoButton(NULL)
+{
+ Construct(_rException, _nStyle, _eImage);
+}
+
+//------------------------------------------------------------------------------
+OSQLMessageBox::OSQLMessageBox(Window* pParent, const UniString& rTitle, const UniString& rMessage, WinBits nStyle, MessageType eImage)
+ :ButtonDialog(pParent,WB_HORZ | WB_STDDIALOG)
+ ,m_aInfoImage(this)
+ ,m_aTitle(this,WB_WORDBREAK | WB_LEFT)
+ ,m_aMessage(this,WB_WORDBREAK | WB_LEFT)
+ ,m_pInfoButton(NULL)
+{
+ Construct(rTitle, rMessage, nStyle, eImage);
+}
+
+//------------------------------------------------------------------------------
+OSQLMessageBox::~OSQLMessageBox()
+{
+ delete m_pInfoButton;
+}
+
+//--------------------------------------------------------------------------
+IMPL_LINK( OSQLMessageBox, ButtonClickHdl, Button *, pButton )
+{
+ OExceptionChainDialog aDlg(GetParent(), m_aNextChainElement);
+ Hide();
+ aDlg.Execute();
+ Show();
+ return 0;
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 02.10.00 12:37:20 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/sqlmessage.hrc b/dbaccess/source/ui/dlg/sqlmessage.hrc
new file mode 100644
index 000000000000..4dc59c1ff32c
--- /dev/null
+++ b/dbaccess/source/ui/dlg/sqlmessage.hrc
@@ -0,0 +1,95 @@
+/*************************************************************************
+ *
+ * $RCSfile: sqlmessage.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:07:00 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_SQLMESSAGE_HRC_
+#define _DBAUI_SQLMESSAGE_HRC_
+
+#define FT_ERRORLIST 1
+#define FT_DESCRIPTION 2
+
+#define ED_TEXT 1
+
+#define GB_DATA 1
+#define GB_DETAILS 2
+
+#define PB_OK 1
+#define PB_CANCEL 2
+
+#define CTL_ERRORLIST 1
+
+#define ME_DESCRIPTION 1
+
+#define STR_EXCEPTION_ERROR 1
+#define STR_EXCEPTION_WARNING 2
+#define STR_EXCEPTION_INFO 3
+#define STR_EXCEPTION_DETAILS 4
+#define STR_EXCEPTION_STATUS 5
+#define STR_EXCEPTION_ERRORCODE 6
+
+#endif // _DBAUI_SQLMESSAGE_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 02.10.00 12:44:05 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/dlg/sqlmessage.src b/dbaccess/source/ui/dlg/sqlmessage.src
new file mode 100644
index 000000000000..7f9431148939
--- /dev/null
+++ b/dbaccess/source/ui/dlg/sqlmessage.src
@@ -0,0 +1,322 @@
+/*************************************************************************
+ *
+ * $RCSfile: sqlmessage.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:07:13 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_SQLMESSAGE_HRC_
+#include "sqlmessage.hrc"
+#endif
+
+//-------------------------------------------------------------------------
+Image BMP_EXCEPTION_ERROR
+{
+ ImageBitmap = Bitmap { File = "exerror.bmp"; };
+ MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; };
+};
+
+Image BMP_EXCEPTION_WARNING
+{
+ ImageBitmap = Bitmap { File = "exwarning.bmp"; };
+ MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; };
+};
+
+Image BMP_EXCEPTION_INFO
+{
+ ImageBitmap = Bitmap { File = "exinfo.bmp"; };
+ MaskColor = Color { Red = 0xff00 ; Green = 0x0000 ; Blue = 0xff00 ; };
+};
+
+ModalDialog DLG_SQLMESSAGE
+{
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 238 , 101 ) ;
+ Text = "Text" ;
+ Text [ ENGLISH ] = "Text" ;
+ Text [ norwegian ] = "Text" ;
+ Text [ italian ] = "Testo" ;
+ Text [ portuguese_brazilian ] = "Texto" ;
+ Text [ portuguese ] = "Texto" ;
+ Text [ finnish ] = "Teksti" ;
+ Text [ danish ] = "Tekst" ;
+ Text [ french ] = "Texte" ;
+ Text [ swedish ] = "Text" ;
+ Text [ dutch ] = "Tekst" ;
+ Text [ spanish ] = "Texto" ;
+ Text [ english_us ] = "Text" ;
+ MultiLineEdit ED_TEXT
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 12 , 14 ) ;
+ Size = MAP_APPFONT ( 153 , 76 ) ;
+ TabStop = TRUE ;
+ };
+ GroupBox GB_DATA
+ {
+ Pos = MAP_APPFONT ( 6 , 3 ) ;
+ Size = MAP_APPFONT ( 165 , 92 ) ;
+ Text = "Text" ;
+ Text [ ENGLISH ] = "Text" ;
+ Text [ norwegian ] = "Text" ;
+ Text [ italian ] = "Testo" ;
+ Text [ portuguese_brazilian ] = "Texto" ;
+ Text [ portuguese ] = "Texto" ;
+ Text [ finnish ] = "Teksti" ;
+ Text [ danish ] = "Tekst" ;
+ Text [ french ] = "Texte" ;
+ Text [ swedish ] = "Text" ;
+ Text [ dutch ] = "Tekst" ;
+ Text [ spanish ] = "Texto" ;
+ Text [ english_us ] = "Text" ;
+ Text[ chinese_simplified ] = "";
+ Text[ russian ] = "";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷";
+ Text[ chinese_traditional ] = "r";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "ؽƮ";
+ Text[ turkish ] = "Metin";
+ Text[ language_user1 ] = " ";
+ };
+ OKButton PB_OK
+ {
+ Pos = MAP_APPFONT ( 181 , 6 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+ CancelButton PB_CANCEL
+ {
+ Pos = MAP_APPFONT ( 181 , 23 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ };
+ Text[ chinese_simplified ] = "";
+ Text[ russian ] = "";
+ Text[ polish ] = "Tekst";
+ Text[ japanese ] = "÷";
+ Text[ chinese_traditional ] = "r";
+ Text[ arabic ] = "";
+ Text[ greek ] = "";
+ Text[ korean ] = "ؽƮ";
+ Text[ turkish ] = "Metin";
+ Text[ language_user1 ] = " ";
+
+ String STR_EXCEPTION_ERROR
+ {
+ Text = "Fehler";
+ Text [ english ] = "Error";
+ Text [ english_us ] = "Error";
+ };
+ String STR_EXCEPTION_WARNING
+ {
+ Text = "Warnung";
+ Text [ english ] = "Warning";
+ Text [ english_us ] = "Warning";
+ };
+ String STR_EXCEPTION_INFO
+ {
+ Text = "Information";
+ Text [ english ] = "Information";
+ Text [ english_us ] = "Information";
+ };
+ String STR_EXCEPTION_DETAILS
+ {
+ Text = "Details";
+ Text [ english ] = "Details";
+ Text [ english_us ] = "Details";
+ };
+ String STR_EXCEPTION_STATUS
+ {
+ Text = "SQL-Status";
+ Text [ english ] = "SQL State";
+ Text [ english_us ] = "SQL State";
+ };
+ String STR_EXCEPTION_ERRORCODE
+ {
+ Text = "Fehler-Code";
+ Text [ english ] = "Error code";
+ Text [ english_us ] = "Error code";
+ };
+};
+
+ModalDialog DLG_SQLEXCEPTIONCHAIN
+{
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 280 , 150 ) ;
+ Text = "StarBase" ;
+
+ GroupBox GB_DETAILS
+ {
+ Pos = MAP_APPFONT ( 6, 3 ) ;
+ Size = MAP_APPFONT ( 268, 121 ) ;
+ Text = "Details";
+ Text [ english ] = "details";
+ Text [ english_us ] = "Details";
+ Text[ portuguese ] = "Detalhes";
+ Text[ russian ] = "";
+ Text[ greek ] = "";
+ Text[ dutch ] = "Details";
+ Text[ french ] = "Dtails";
+ Text[ spanish ] = "Detalles";
+ Text[ italian ] = "Dettagli";
+ Text[ danish ] = "Detaljer";
+ Text[ swedish ] = "Detaljer";
+ Text[ polish ] = "Szczegy";
+ Text[ portuguese_brazilian ] = "details";
+ Text[ japanese ] = "ڍ";
+ Text[ korean ] = "ڼ";
+ Text[ chinese_simplified ] = "ϸ";
+ Text[ chinese_traditional ] = "Ӹ`";
+ Text[ arabic ] = "";
+ Text[ turkish ] = "Ayrntlar";
+ };
+ FixedText FT_ERRORLIST
+ {
+ Pos = MAP_APPFONT ( 12, 12 ) ;
+ Size = MAP_APPFONT ( 125, 10 ) ;
+ Text = "~Fehlerliste:";
+ Text [ english ] = "error ~list:";
+ Text [ english_us ] = "Error ~list:";
+ Group = TRUE;
+ Text[ portuguese ] = "~Lista de erros:";
+ Text[ russian ] = " :";
+ Text[ greek ] = " :";
+ Text[ dutch ] = "Lijst met ~fouten:";
+ Text[ french ] = "~Liste d'erreurs :";
+ Text[ spanish ] = "Lista de ~errores:";
+ Text[ italian ] = "Lista errori:";
+ Text[ danish ] = "~Fejlliste:";
+ Text[ swedish ] = "~Fellista:";
+ Text[ polish ] = "~Lista bdw:";
+ Text[ portuguese_brazilian ] = "error ~list:";
+ Text[ japanese ] = "װؽ:";
+ Text[ korean ] = " (~L)";
+ Text[ chinese_simplified ] = "е";
+ Text[ chinese_traditional ] = "~MG";
+ Text[ arabic ] = " :";
+ Text[ turkish ] = "Hata listesi:";
+ };
+ Control CTL_ERRORLIST
+ {
+ Pos = MAP_APPFONT ( 12, 25 ) ;
+ Size = MAP_APPFONT ( 125, 93 ) ;
+ Border = TRUE;
+ TabStop = TRUE;
+ };
+ FixedText FT_DESCRIPTION
+ {
+ Pos = MAP_APPFONT ( 143, 12 ) ;
+ Size = MAP_APPFONT ( 125, 10 ) ;
+ Text = "~Beschreibung:";
+ Text [ english ] = "~description:";
+ Text [ english_us ] = "~Description:";
+ Group = TRUE;
+ Text[ portuguese ] = "~Descrio:";
+ Text[ russian ] = ":";
+ Text[ greek ] = ":";
+ Text[ dutch ] = "~beschrijving:";
+ Text[ french ] = "~description :";
+ Text[ spanish ] = "~Descripcin:";
+ Text[ italian ] = "Descrizione:";
+ Text[ danish ] = "~Beskrivelse:";
+ Text[ swedish ] = "~Beskrivning:";
+ Text[ polish ] = "~Opis:";
+ Text[ portuguese_brazilian ] = "~description:";
+ Text[ japanese ] = ":";
+ Text[ korean ] = ":(~D)";
+ Text[ chinese_simplified ] = "˵";
+ Text[ chinese_traditional ] = "yzG";
+ Text[ arabic ] = ":";
+ Text[ turkish ] = "Aklama:";
+ };
+ MultiLineEdit ME_DESCRIPTION
+ {
+ Border = TRUE ;
+ Pos = MAP_APPFONT ( 143 , 25 ) ;
+ Size = MAP_APPFONT ( 125 , 93 ) ;
+ TabStop = TRUE ;
+ VScroll = TRUE ;
+ };
+ OKButton PB_OK
+ {
+ Pos = MAP_APPFONT ( 115 , 130 ) ;
+ Size = MAP_APPFONT ( 50 , 14 ) ;
+ TabStop = TRUE ;
+ DefButton = TRUE ;
+ };
+};
+
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 02.10.00 12:43:18 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/charsets.hxx b/dbaccess/source/ui/inc/charsets.hxx
new file mode 100644
index 000000000000..f3448a80ceca
--- /dev/null
+++ b/dbaccess/source/ui/inc/charsets.hxx
@@ -0,0 +1,160 @@
+/*************************************************************************
+ *
+ * $RCSfile: charsets.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:07:57 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_CHARSETS_HXX_
+#define _DBAUI_CHARSETS_HXX_
+
+#ifndef _STRING_HXX
+#include <tools/string.hxx>
+#endif
+#ifndef _TOOLS_RC_HXX
+#include <tools/rc.hxx>
+#endif
+#ifndef _UTL_STLTYPES_HXX_
+#include <unotools/stl_types.hxx>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OCharsetCollection
+//=========================================================================
+class OCharsetCollection : public Resource
+{
+private:
+ DECLARE_STL_VECTOR(String, StringVector);
+ StringVector m_aKeyList;
+ StringVector m_aNameList;
+
+#ifdef DBG_UTIL
+ sal_Int32 m_nLivingIterators; /// just for debugging reasons, counts the living iterators
+#endif
+
+protected:
+ String implLookUp(const String& _rKey, const StringVector& _rKeys, const StringVector& _rValues) const;
+
+public:
+ class CharsetIterator;
+ friend class OCharsetCollection::CharsetIterator;
+
+ OCharsetCollection();
+ ~OCharsetCollection();
+
+ String KeyToName(const String& _rKey) const { return implLookUp(_rKey, m_aKeyList, m_aNameList); }
+ String NameToKey(const String& _rName) const { return implLookUp(_rName, m_aNameList, m_aKeyList); }
+
+ /// get access to the first element of the charset collection
+ CharsetIterator begin() const;
+ /// get access to the (last + 1st) element of the charset collection
+ CharsetIterator end() const;
+};
+
+//-------------------------------------------------------------------------
+//- OCharsetCollection::CharsetIterator
+//-------------------------------------------------------------------------
+class OCharsetCollection::CharsetIterator
+{
+ friend class OCharsetCollection;
+
+ friend bool operator==(const CharsetIterator& lhs, const CharsetIterator& rhs);
+ friend bool operator!=(const CharsetIterator& lhs, const CharsetIterator& rhs) { return !(lhs == rhs); }
+
+protected:
+ const OCharsetCollection* m_pContainer;
+ sal_Int32 m_nPosition;
+
+public:
+ CharsetIterator(const CharsetIterator& _rSource);
+ ~CharsetIterator();
+
+ String getKey() const;
+ String getName() const;
+
+ /// prefix increment
+ const CharsetIterator& operator++();
+ /// postfix increment
+ const CharsetIterator operator++(int) { CharsetIterator hold(*this); ++*this; return hold; }
+
+ /// prefix decrement
+ const CharsetIterator& operator--();
+ /// postfix decrement
+ const CharsetIterator operator--(int) { CharsetIterator hold(*this); --*this; return hold; }
+
+protected:
+ CharsetIterator(const OCharsetCollection* _pContainer, sal_Int32 _nInitialPos = 0);
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_CHARSETS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 12:16:37 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/curledit.hxx b/dbaccess/source/ui/inc/curledit.hxx
new file mode 100644
index 000000000000..17f59d481a28
--- /dev/null
+++ b/dbaccess/source/ui/inc/curledit.hxx
@@ -0,0 +1,116 @@
+/*************************************************************************
+ *
+ * $RCSfile: curledit.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:07 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_CURLEDIT_HXX_
+#define _DBAUI_CURLEDIT_HXX_
+
+#ifndef _SV_EDIT_HXX
+#include <vcl/edit.hxx>
+#endif
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _DBAUI_DSNTYPES_HXX_
+#include "dsntypes.hxx"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OConnectionURLEdit
+//=========================================================================
+/** an edit control which may be used to edit connection URLs like
+ "sdbc:odbc:" or "jdbc:". It prevents the user from editing this prefix,
+ though it is normally shown.
+*/
+class OConnectionURLEdit : public Edit
+{
+ ODsnTypeCollection m_aTypeCollection;
+ FixedText* m_pForcedPrefix;
+
+public:
+ OConnectionURLEdit(Window* pParent, WinBits nStyle = WB_BORDER);
+ OConnectionURLEdit(Window* pParent, const ResId& rResId);
+ ~OConnectionURLEdit();
+
+public:
+ // Edit overridables
+ virtual void SetText(const String& _rStr);
+ virtual void SetText(const String& _rStr, const Selection& _rNewSelection);
+ virtual String GetText() const;
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_CURLEDIT_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:11:23 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/dbu_resource.hrc b/dbaccess/source/ui/inc/dbu_resource.hrc
new file mode 100644
index 000000000000..c4cff08b9633
--- /dev/null
+++ b/dbaccess/source/ui/inc/dbu_resource.hrc
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbu_resource.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:18 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBU_RESOURCE_HRC_
+#define _DBU_RESOURCE_HRC_
+
+//========================================================================
+// dialog ids
+
+#define DLG_DATABASE_ADMINISTRATION 1000
+#define DLG_DBASE_INDEXES 1001
+#define DLG_SQLMESSAGE 1002
+#define DLG_SQLEXCEPTIONCHAIN 1003
+
+//========================================================================
+// tab pages
+
+#define PAGE_GENERAL 1000
+#define PAGE_DBASE 1001
+#define PAGE_JDBC 1002
+#define PAGE_ODBC 1003
+#define PAGE_TEXT 1004
+#define PAGE_ADABAS 1005
+#define PAGE_TABLESUBSCRIPTION 1006
+
+//========================================================================
+// error boxes
+
+#define ERR_NOREGISTEREDDATASOURCES 1000
+
+//========================================================================
+// bitmaps
+
+#define BMP_PLUSBUTTON 1000
+#define BMP_MINUSBUTTON 1001
+#define BMP_CHECKBUTTON_UNCHECKED 1002
+#define BMP_CHECKBUTTON_CHECKED 1003
+#define BMP_CHECKBUTTON_HICHECKED 1004
+#define BMP_CHECKBUTTON_HIUNCHECKED 1005
+#define BMP_CHECKBUTTON_TRISTATE 1006
+#define BMP_CHECKBUTTON_HITRISTATE 1007
+
+//========================================================================
+// images
+
+#define TABLE_TREE_ICON 1000
+#define VIEW_TREE_ICON 1001
+#define TABLEFOLDER_TREE_ICON 1002
+#define BMP_EXCEPTION_ERROR 1003
+#define BMP_EXCEPTION_WARNING 1004
+#define BMP_EXCEPTION_INFO 1005
+
+//========================================================================
+// image lists
+
+//========================================================================
+// menues
+
+#define MENU_TABLETREE_POPUP 256
+
+//========================================================================
+// strings
+
+#define STR_COULDNOTCREATE_DRIVERMANAGER 256
+#define STR_NOREGISTEREDDRIVER 257
+#define STR_INVALIDREGISTEREDDRIVER 258
+#define STR_COULDNOTCONNECT_PLEASECHECK 259
+#define STR_NOTABLEINFO 260
+#define STR_GENERAL_SDB_ERROR 261
+
+//========================================================================
+// untyped resources
+
+#define RSC_DATASOURCE_TYPES 256
+#define RSC_CHARSETS 257
+
+#endif // _DBU_RESOURCE_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 25.09.00 08:50:32 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/localresaccess.hxx b/dbaccess/source/ui/inc/localresaccess.hxx
new file mode 100644
index 000000000000..8e82441ab932
--- /dev/null
+++ b/dbaccess/source/ui/inc/localresaccess.hxx
@@ -0,0 +1,111 @@
+/*************************************************************************
+ *
+ * $RCSfile: localresaccess.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:35 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_LOCALRESACCESS_HXX_
+#define _DBAUI_LOCALRESACCESS_HXX_
+
+#ifndef _TOOLS_RC_HXX
+#include <tools/rc.hxx>
+#endif
+#ifndef _TOOLS_RCID_H
+#include <tools/rcid.h>
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OLocalResourceAccess
+//=========================================================================
+/** helper class for acessing local resources
+*/
+class OLocalResourceAccess : public Resource
+{
+public:
+ OLocalResourceAccess(sal_uInt16 _nId, RESOURCE_TYPE _rType)
+ :Resource(ModuleRes(_nId).SetRT(_rType).SetAutoRelease(sal_False))
+ {
+ }
+ ~OLocalResourceAccess()
+ {
+ OModule::getResManager()->Increment(OModule::getResManager()->GetRemainSize());
+ FreeResource();
+ }
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_LOCALRESACCESS_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 10:43:07 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/marktree.hxx b/dbaccess/source/ui/inc/marktree.hxx
new file mode 100644
index 000000000000..cb678408232b
--- /dev/null
+++ b/dbaccess/source/ui/inc/marktree.hxx
@@ -0,0 +1,110 @@
+/*************************************************************************
+ *
+ * $RCSfile: marktree.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:43 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_MARKTREE_HXX_
+#define _DBAUI_MARKTREE_HXX_
+
+#ifndef _SVTREEBOX_HXX
+#include <svtools/svtreebx.hxx>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//========================================================================
+//= OMarkableTreeListBox
+//========================================================================
+/** a tree list box where all entries can be marked (with a checkbox) and
+ unmarked. In addition, inner nodes know a third state which applies
+ if some, but not all of their descendants are marked.
+*/
+class OMarkableTreeListBox : public SvTreeListBox
+{
+ SvLBoxButtonData* m_pCheckButton;
+public:
+ OMarkableTreeListBox( Window* pParent, WinBits nWinStyle=0 );
+ OMarkableTreeListBox( Window* pParent, const ResId& rResId );
+ ~OMarkableTreeListBox();
+
+ virtual void KeyInput( const KeyEvent& rKEvt );
+ virtual void CheckButtonHdl();
+ void CheckButtons();
+ SvLBoxEntry* GetEntryPosByName(const String& aName,SvLBoxEntry* pStart=NULL) const;
+
+private:
+ void InitButtonData();
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_MARKTREE_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:19:31 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/moduledbu.hxx b/dbaccess/source/ui/inc/moduledbu.hxx
new file mode 100644
index 000000000000..e1c2fb853acf
--- /dev/null
+++ b/dbaccess/source/ui/inc/moduledbu.hxx
@@ -0,0 +1,153 @@
+/*************************************************************************
+ *
+ * $RCSfile: moduledbu.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:51 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#define _DBAUI_MODULE_DBU_HXX_
+
+#ifndef _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+#ifndef _TOOLS_RESID_HXX
+#include <tools/resid.hxx>
+#endif
+
+class ResMgr;
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OModule
+//=========================================================================
+class OModuleImpl;
+class OModule
+{
+ friend class OModuleClient;
+
+private:
+ OModule();
+ // not implemented. OModule is a static class
+
+protected:
+ static ::osl::Mutex s_aMutex; /// access safety
+ static sal_Int32 s_nClients; /// number of registered clients
+ static OModuleImpl* s_pImpl; /// impl class. lives as long as at least one client for the module is registered
+
+public:
+ /// get the vcl res manager of the module
+ static ResMgr* getResManager();
+
+protected:
+ /// register a client for the module
+ static void registerClient();
+ /// revoke a client for the module
+ static void revokeClient();
+
+private:
+ /** ensure that the impl class exists
+ @precond m_aMutex is guarded when this method gets called
+ */
+ static void ensureImpl();
+};
+
+//=========================================================================
+//= OModuleClient
+//=========================================================================
+/** base class for objects which uses any global module-specific ressources
+*/
+class OModuleClient
+{
+private:
+ class ResId;
+ // with this, nobody derived from this class can use a ResId (without qualifying the global scope explicitly)
+ // if you're derived from this class and want to use ressources, please use ModuleRes (see below)
+
+public:
+ OModuleClient() { OModule::registerClient(); }
+ ~OModuleClient() { OModule::revokeClient(); }
+};
+
+//=========================================================================
+//= ModuleRes
+//=========================================================================
+/** specialized ResId, using the ressource manager provided by the global module
+*/
+class ModuleRes : public ::ResId
+{
+public:
+ ModuleRes(USHORT _nId) : ResId(_nId, OModule::getResManager()) { }
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_MODULE_DBU_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 20.09.00 15:26:10 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/sqlmessage.hxx b/dbaccess/source/ui/inc/sqlmessage.hxx
new file mode 100644
index 000000000000..52c9ce16d662
--- /dev/null
+++ b/dbaccess/source/ui/inc/sqlmessage.hxx
@@ -0,0 +1,190 @@
+/*************************************************************************
+ *
+ * $RCSfile: sqlmessage.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:05 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_SQLMESSAGE_HXX_
+#define _DBAUI_SQLMESSAGE_HXX_
+
+#ifndef _BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_BTNDLG_HXX
+#include <vcl/btndlg.hxx>
+#endif
+#ifndef _COM_SUN_STAR_UNO_ANY_HXX_
+#include <com/sun/star/uno/Any.hxx>
+#endif
+
+// some forwards
+namespace com { namespace sun { namespace star {
+ namespace sdb {
+ class SQLContext;
+ }
+ namespace sdbc {
+ class SQLException;
+ }
+} } }
+namespace dbtools
+{
+ class SQLExceptionInfo;
+}
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//==================================================================
+// OSQLMessageBox
+//==================================================================
+class OSQLMessageBox : public ButtonDialog
+{
+ FixedImage m_aInfoImage;
+ FixedText m_aTitle;
+ FixedText m_aMessage;
+
+ UniString m_sInfo;
+ ::com::sun::star::uno::Any m_aNextChainElement;
+ PushButton* m_pInfoButton;
+
+public:
+ enum MessageType
+ {
+ Info,
+ Error,
+ Warning,
+ Query
+ };
+
+public:
+ /** display a SQLException
+ <p/>
+ @param _rTitle main message
+ @param _rError detailed message, may contain an exception chain to be displayed on an user request
+ */
+ OSQLMessageBox(Window* _pParent,
+ const UniString& _rTitle,
+ const ::com::sun::star::sdbc::SQLException& _rError,
+ WinBits _nStyle = WB_OK | WB_DEF_OK,
+ MessageType _eImage = Info);
+
+ /** display an SQLException with auto-recognizing a main and a detailed message
+ <p/>
+ The first two messages from the exception chain are used as main and detailed message (recognizing the
+ detailed field of an <type scope="com::sun::star::sdb">SQLContext</type>).
+ <br/>
+ If only one message is present, a default title ("error reading ...") is used
+ */
+ OSQLMessageBox(Window* _pParent,
+ const ::com::sun::star::sdbc::SQLException& _rError,
+ WinBits _nStyle = WB_OK | WB_DEF_OK,
+ MessageType _eImage = Info);
+
+ /** display an SQLException with auto-recognizing a main and a detailed message
+ <p/>
+ The first two messages from the exception chain are used as main and detailed message (recognizing the
+ detailed field of an <type scope="com::sun::star::sdb">SQLContext</type>).
+ <br/>
+ If only one message is present, a default title ("error reading ...") is used
+ */
+ OSQLMessageBox(Window* _pParent,
+ const dbtools::SQLExceptionInfo& _rException,
+ WinBits _nStyle = WB_OK | WB_DEF_OK,
+ MessageType _eImage = Info);
+
+ /** display a database related error message
+ <p/>
+ @param rTitle the title to display
+ @param rMessage the detailed message to display
+ */
+ OSQLMessageBox(Window* pParent,
+ const UniString& rTitle,
+ const UniString& rMessage,
+ WinBits nStyle = WB_OK | WB_DEF_OK,
+ MessageType eImage = Info);
+
+ ~OSQLMessageBox();
+
+private:
+ void Construct(const dbtools::SQLExceptionInfo& _rException, WinBits nStyle, MessageType eImage);
+ void Construct(const UniString& rTitle,
+ const UniString& rMessage,
+ WinBits nStyle,
+ MessageType eImage);
+
+ DECL_LINK(ButtonClickHdl, Button* );
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_SQLMESSAGE_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 02.10.00 12:29:04 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/stringlistitem.hxx b/dbaccess/source/ui/inc/stringlistitem.hxx
new file mode 100644
index 000000000000..dda37099ba06
--- /dev/null
+++ b/dbaccess/source/ui/inc/stringlistitem.hxx
@@ -0,0 +1,113 @@
+/*************************************************************************
+ *
+ * $RCSfile: stringlistitem.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:14 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_STRINGLISTITEM_HXX_
+#define _DBAUI_STRINGLISTITEM_HXX_
+
+#ifndef _SFXPOOLITEM_HXX
+#include <svtools/poolitem.hxx>
+#endif
+
+#ifndef _COM_SUN_STAR_UNO_SEQUENCE_HXX_
+#include <com/sun/star/uno/Sequence.hxx>
+#endif
+#ifndef _RTL_USTRING_
+#include <rtl/ustring>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OStringListItem
+//=========================================================================
+/** <type>SfxPoolItem</type> which transports a sequence of <type scope="rtl">OUString</type>'s
+*/
+class OStringListItem : public SfxPoolItem
+{
+ ::com::sun::star::uno::Sequence< ::rtl::OUString > m_aList;
+
+public:
+ TYPEINFO();
+ OStringListItem(sal_Int16 nWhich, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& _rList);
+ OStringListItem(const OStringListItem& _rSource);
+
+ virtual int operator==(const SfxPoolItem& _rItem) const;
+ virtual SfxPoolItem* Clone(SfxItemPool* _pPool = NULL) const;
+
+ ::com::sun::star::uno::Sequence< ::rtl::OUString > getList() const { return m_aList; }
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_STRINGLISTITEM_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 02.10.00 10:57:48 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/inc/tabletree.hxx b/dbaccess/source/ui/inc/tabletree.hxx
new file mode 100644
index 000000000000..54eb6be6473a
--- /dev/null
+++ b/dbaccess/source/ui/inc/tabletree.hxx
@@ -0,0 +1,149 @@
+/*************************************************************************
+ *
+ * $RCSfile: tabletree.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:23 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_TABLETREE_HXX_
+#define _DBAUI_TABLETREE_HXX_
+
+#ifndef _DBAUI_MARKTREE_HXX_
+#include "marktree.hxx"
+#endif
+
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_
+#include <com/sun/star/beans/PropertyValue.hpp>
+#endif
+#ifndef _COM_SUN_STAR_CONTAINER_XNAMEACCESS_HPP_
+#include <com/sun/star/container/XNameAccess.hpp>
+#endif
+#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XDATABASEMETADATA_HPP_
+#include <com/sun/star/sdbc/XDatabaseMetaData.hpp>
+#endif
+#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
+#include <com/sun/star/sdbc/XConnection.hpp>
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//========================================================================
+//= OTableTreeListBox
+//========================================================================
+class OTableTreeListBox : public OMarkableTreeListBox
+{
+protected:
+ Image m_aTableImage;
+ Image m_aViewImage;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xORB;
+
+public:
+ OTableTreeListBox( Window* pParent, WinBits nWinStyle = NULL );
+ OTableTreeListBox( Window* pParent, const ResId& rResId );
+
+ void setServiceFactory(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > _rxORB)
+ { m_xORB = _rxORB; }
+
+ /** fill the table list with the tables belonging to the connection described by the parameters
+ <BR>
+ The given URL is used to obtain a <type scope="com.sun.star.sdbc">Driver</type> object which can
+ handle it. After this, the driver is asked (<type scope="com.sun.star.sdbcx">XDataDefinitionSupplier</type>)
+ for a <type scope="com.sun.star.sdbcx">DatabaseDefinition</type> object for the connection.
+ @return the connection which was created for the given URL and the given params.
+ @throws <type scope="com::sun::star::sdbc">SQLException</type> if no connection could be created
+ */
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >
+ UpdateTableList(
+ const ::rtl::OUString& _rConnectionURL,
+ const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > _rProperties)
+ throw(::com::sun::star::sdbc::SQLException);
+
+ /** fill the table list with the tables and views determined by the two given containers
+ @param _rxConnMetaData meta data describing the connection where you got the object names from. Must not be NULL.
+ Used to split the full qualified names into it's parts.
+ @param _rxTables table container. May be NULL.
+ @param _rxView view container. May be NULL.
+ */
+ virtual void UpdateTableList(
+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XDatabaseMetaData >& _rxConnMetaData,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > _rxTables,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess > _rxView);
+
+protected:
+ virtual void Command( const CommandEvent& rEvt );
+};
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+#endif // _DBAUI_TABLETREE_HXX_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 28.09.00 13:15:45 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/charsets.cxx b/dbaccess/source/ui/misc/charsets.cxx
new file mode 100644
index 000000000000..0aa0ed5ede04
--- /dev/null
+++ b/dbaccess/source/ui/misc/charsets.cxx
@@ -0,0 +1,216 @@
+/*************************************************************************
+ *
+ * $RCSfile: charsets.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:39 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_CHARSETS_HXX_
+#include "charsets.hxx"
+#endif
+#ifndef _TOOLS_DEBUG_HXX
+#include <tools/debug.hxx>
+#endif
+#ifndef _DBU_MISCRES_HRC_
+#include "dbumiscres.hrc"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OCharsetCollection
+//=========================================================================
+//-------------------------------------------------------------------------
+OCharsetCollection::OCharsetCollection()
+ :Resource(RSC_CHARSETS)
+#ifdef DBG_UTIL
+ ,m_nLivingIterators(0)
+#endif
+{
+ String aNameList = String(ResId(STR_CHARSETKEYS));
+ String aKeyList = String(ResId(STR_CHARSETNAMES));
+
+ DBG_ASSERT(aNameList.GetTokenCount(';') == aKeyList.GetTokenCount(';'),
+ "OCharsetCollection::OCharsetCollection : invalid resources !");
+ String sCurrentType;
+ for (sal_Int32 i=0; i<aKeyList.GetTokenCount(); ++i)
+ {
+ m_aNameList.push_back(aNameList.GetToken(i));
+ m_aKeyList.push_back(aKeyList.GetToken(i));
+ }
+
+ FreeResource();
+}
+
+//-------------------------------------------------------------------------
+OCharsetCollection::~OCharsetCollection()
+{
+ DBG_ASSERT(0 == m_nLivingIterators, "OCharsetCollection::~OCharsetCollection : there are still living iterator objects!");
+}
+
+//-------------------------------------------------------------------------
+OCharsetCollection::CharsetIterator OCharsetCollection::begin() const
+{
+ return CharsetIterator(this, 0);
+}
+
+//-------------------------------------------------------------------------
+OCharsetCollection::CharsetIterator OCharsetCollection::end() const
+{
+ return CharsetIterator(this, m_aNameList.size());
+}
+
+// -----------------------------------------------------------------------
+String OCharsetCollection::implLookUp(const String& _rKey, const StringVector& _rKeys, const StringVector& _rValues) const
+{
+ DBG_ASSERT(_rKeys.size() == _rValues.size(), "OCharsetCollection::implLookUp : invalid arrays!");
+ ConstStringVectorIterator aKeySearch = _rKeys.begin();
+ ConstStringVectorIterator aValue = _rValues.begin();
+ for (;aKeySearch != _rKeys.end(); ++aKeySearch, ++aValue)
+ if (aKeySearch->EqualsIgnoreCaseAscii(*aValue))
+ return *aValue;
+
+ return String();
+}
+
+//=========================================================================
+//= OCharsetCollection::CharsetIterator
+//=========================================================================
+//-------------------------------------------------------------------------
+OCharsetCollection::CharsetIterator::CharsetIterator(const OCharsetCollection* _pContainer, sal_Int32 _nInitialPos)
+ :m_pContainer(_pContainer)
+ ,m_nPosition(_nInitialPos)
+{
+ DBG_ASSERT(m_pContainer, "OCharsetCollection::CharsetIterator::CharsetIterator : invalid container!");
+#ifdef DBG_UTIL
+ ++const_cast<OCharsetCollection*>(m_pContainer)->m_nLivingIterators;
+#endif
+}
+
+//-------------------------------------------------------------------------
+OCharsetCollection::CharsetIterator::CharsetIterator(const CharsetIterator& _rSource)
+ :m_pContainer(_rSource.m_pContainer)
+ ,m_nPosition(_rSource.m_nPosition)
+{
+#ifdef DBG_UTIL
+ ++const_cast<OCharsetCollection*>(m_pContainer)->m_nLivingIterators;
+#endif
+}
+
+//-------------------------------------------------------------------------
+OCharsetCollection::CharsetIterator::~CharsetIterator()
+{
+#ifdef DBG_UTIL
+ --const_cast<OCharsetCollection*>(m_pContainer)->m_nLivingIterators;
+#endif
+}
+
+//-------------------------------------------------------------------------
+String OCharsetCollection::CharsetIterator::getKey() const
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aKeyList.size(), "OCharsetCollection::CharsetIterator::getKey : invalid position!");
+ return m_pContainer->m_aKeyList[m_nPosition];
+}
+
+//-------------------------------------------------------------------------
+String OCharsetCollection::CharsetIterator::getName() const
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aNameList.size(), "OCharsetCollection::CharsetIterator::getName : invalid position!");
+ return m_pContainer->m_aNameList[m_nPosition];
+}
+
+//-------------------------------------------------------------------------
+const OCharsetCollection::CharsetIterator& OCharsetCollection::CharsetIterator::operator++()
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aKeyList.size(), "OCharsetCollection::CharsetIterator::operator++ : invalid position!");
+ if (m_nPosition < m_pContainer->m_aKeyList.size())
+ ++m_nPosition;
+ return *this;
+}
+
+//-------------------------------------------------------------------------
+const OCharsetCollection::CharsetIterator& OCharsetCollection::CharsetIterator::operator--()
+{
+ DBG_ASSERT(m_nPosition >= 0, "OCharsetCollection::CharsetIterator::operator-- : invalid position!");
+ if (m_nPosition >= 0)
+ --m_nPosition;
+ return *this;
+}
+
+//-------------------------------------------------------------------------
+bool operator==(const OCharsetCollection::CharsetIterator& lhs, const OCharsetCollection::CharsetIterator& rhs)
+{
+ return (lhs.m_pContainer == rhs.m_pContainer) && (lhs.m_nPosition == rhs.m_nPosition);
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 12:18:36 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/dbumiscres.hrc b/dbaccess/source/ui/misc/dbumiscres.hrc
new file mode 100644
index 000000000000..50c934a21f0e
--- /dev/null
+++ b/dbaccess/source/ui/misc/dbumiscres.hrc
@@ -0,0 +1,82 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbumiscres.hrc,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:08:49 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBU_MISCRES_HRC_
+#define _DBU_MISCRES_HRC_
+
+//========================================================================
+// string ids (relative to other resources, that's why not unique)
+
+#define STR_CONNTYPES 1
+#define STR_CONNUINAMES 2
+
+#define STR_CHARSETKEYS 1
+#define STR_CHARSETNAMES 2
+
+#endif // _DBU_MISCRES_HRC_
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 08:24:38 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/dbumiscres.src b/dbaccess/source/ui/misc/dbumiscres.src
new file mode 100644
index 000000000000..62f4bab23711
--- /dev/null
+++ b/dbaccess/source/ui/misc/dbumiscres.src
@@ -0,0 +1,143 @@
+/*************************************************************************
+ *
+ * $RCSfile: dbumiscres.src,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:02 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBU_MISCRES_HRC_
+#include "dbumiscres.hrc"
+#endif
+
+//-------------------------------------------------------------------------
+Bitmap BMP_PLUSBUTTON
+{
+ File = "plus.bmp";
+};
+
+Bitmap BMP_MINUSBUTTON
+{
+ File = "minus.bmp";
+};
+
+//-------------------------------------------------------------------------
+Resource RSC_DATASOURCE_TYPES
+{
+ String STR_CONNTYPES
+ {
+ Text = "sdbc:adabas:;jdbc:;sdbc:odbc:;sdbc:dbase:;sdbc:text:" ;
+ };
+ String STR_CONNUINAMES
+ {
+ Text = "Adabas;JDBC;ODBC;dBase;Text" ;
+ Text [ english ] = "Adabas;JDBC;ODBC;dBase;Text" ;
+ Text [ english_us ] = "Adabas;JDBC;ODBC;dBase;Text" ;
+ };
+};
+
+Resource RSC_CHARSETS
+{
+ String STR_CHARSETKEYS
+ {
+ Text = "ANSI;MAC;DOS;IBMPC;IBMPC_437;IBMPC_850;IBMPC_860;IBMPC_861;IBMPC_863;IBMPC_865;SYSTEM" ;
+ };
+ String STR_CHARSETNAMES
+ {
+ Text = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System" ;
+ Text [ english ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System" ;
+ Text [ english_us ] = "Ansi;Mac;DOS;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System" ;
+ Text [ norwegian ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System" ;
+ Text [ italian ] = "Ansi;Mac;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Sistema" ;
+ Text [ portuguese_brazilian ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Sistema" ;
+ Text [ portuguese ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Sistema" ;
+ Text [ finnish ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Jrjestelm" ;
+ Text [ danish ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System" ;
+ Text [ french ] = "Ansi;Mac;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Systme" ;
+ Text [ swedish ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System" ;
+ Text [ dutch ] = "Ansi;Mac;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Systeem" ;
+ Text [ spanish ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Sistema" ;
+ Text[ chinese_simplified ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);ϵͳ";
+ Text[ russian ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);";
+ Text[ polish ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System";
+ Text[ japanese ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);";
+ Text[ chinese_traditional ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);t";
+ Text[ arabic ] = "Ansi;Mac;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);";
+ Text[ greek ] = "Ansi;Mac;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);";
+ Text[ korean ] = "Ansi;Mac;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);System";
+ Text[ turkish ] = "Ansi;Mac;Dos;IBMPC;IBMPC (437);IBMPC (850);IBMPC (860);IBMPC (861);IBMPC (863);IBMPC (865);Sistem";
+ Text[ language_user1 ] = " ";
+ };
+};
+
+//-------------------------------------------------------------------------
+String STR_GENERAL_SDB_ERROR
+{
+ Text = "Fehler bei der Verbindung mit der Datenquelle";
+ Text [ english ] = "Error while connecting to the data source";
+ Text [ english_us ] = "Error while connecting to the data source";
+};
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 08:26:13 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/dsntypes.cxx b/dbaccess/source/ui/misc/dsntypes.cxx
new file mode 100644
index 000000000000..420e12ac8687
--- /dev/null
+++ b/dbaccess/source/ui/misc/dsntypes.cxx
@@ -0,0 +1,353 @@
+/*************************************************************************
+ *
+ * $RCSfile: dsntypes.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:11 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_DSNTYPES_HXX_
+#include "dsntypes.hxx"
+#endif
+#ifndef _DBU_RESOURCE_HRC_
+#include "dbu_resource.hrc"
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _DBU_MISCRES_HRC_
+#include "dbumiscres.hrc"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= ODsnTypeCollection
+//=========================================================================
+//-------------------------------------------------------------------------
+ODsnTypeCollection::ODsnTypeCollection()
+ :Resource(ModuleRes(RSC_DATASOURCE_TYPES))
+#ifdef DBG_UTIL
+ ,m_nLivingIterators(0)
+#endif
+{
+ String sConnectionTypes = String(ResId(STR_CONNTYPES));
+ String sConnectionTypeNames = String(ResId(STR_CONNUINAMES));
+ DBG_ASSERT(sConnectionTypes.GetTokenCount(';') == sConnectionTypeNames.GetTokenCount(';'),
+ "ODsnTypeCollection::ODsnTypeCollection : invalid resources !");
+ String sCurrentType;
+ for (sal_Int32 i=0; i<sConnectionTypeNames.GetTokenCount(); ++i)
+ {
+ m_aDsnTypesDisplayNames.push_back(sConnectionTypeNames.GetToken(i));
+
+ sCurrentType = sConnectionTypes.GetToken(i);
+ m_aDsnPrefixes.push_back(sCurrentType);
+ m_aDsnTypes.push_back(implDetermineType(sCurrentType));
+ }
+ FreeResource();
+}
+
+//-------------------------------------------------------------------------
+ODsnTypeCollection::~ODsnTypeCollection()
+{
+ DBG_ASSERT(0 == m_nLivingIterators, "ODsnTypeCollection::~ODsnTypeCollection : there are still living iterator objects!");
+}
+
+//-------------------------------------------------------------------------
+DATASOURCE_TYPE ODsnTypeCollection::getType(const String& _rDsn)
+{
+ return implDetermineType(_rDsn);
+}
+
+//-------------------------------------------------------------------------
+String ODsnTypeCollection::getTypeDisplayName(DATASOURCE_TYPE _eType)
+{
+ String sDisplayName;
+
+ sal_Int32 nIndex = implDetermineTypeIndex(_eType);
+ if ((nIndex >= 0) && (nIndex < m_aDsnTypesDisplayNames.size()))
+ sDisplayName = m_aDsnTypesDisplayNames[nIndex];
+
+ return sDisplayName;
+}
+
+//-------------------------------------------------------------------------
+String ODsnTypeCollection::getDatasourcePrefix(DATASOURCE_TYPE _eType)
+{
+ String sPrefix;
+ sal_Int32 nIndex = implDetermineTypeIndex(_eType);
+ if ((nIndex >= 0) && (nIndex < m_aDsnPrefixes.size()))
+ sPrefix = m_aDsnPrefixes[nIndex];
+
+ return sPrefix;
+}
+
+//-------------------------------------------------------------------------
+String ODsnTypeCollection::cutPrefix(const String& _rDsn)
+{
+ DATASOURCE_TYPE eType = getType(_rDsn);
+ String sPrefix = getDatasourcePrefix(eType);
+ return _rDsn.Copy(sPrefix.Len());
+}
+
+//-------------------------------------------------------------------------
+String ODsnTypeCollection::getTypeDisplayName(const String& _rDsn)
+{
+ return getTypeDisplayName(implDetermineType(_rDsn));
+}
+
+//-------------------------------------------------------------------------
+DATASOURCE_TYPE ODsnTypeCollection::implDetermineType(const String& _rDsn)
+{
+ sal_Int32 nSeparator = _rDsn.Search((sal_Unicode)':');
+ if (STRING_NOTFOUND == nSeparator)
+ {
+ // there should be at least one such separator
+ DBG_ERROR("ODsnTypeCollection::implDetermineType : missing the colon !");
+ return DST_UNKNOWN;
+ }
+
+ if (_rDsn.EqualsIgnoreCaseAscii("jdbc", 0, nSeparator))
+ return DST_JDBC;
+
+ nSeparator = _rDsn.Search((sal_Unicode)':', nSeparator + 1);
+ if (STRING_NOTFOUND == nSeparator)
+ {
+ // at the moment only jdbc is allowed to have just one separator
+ DBG_ERROR("ODsnTypeCollection::implDetermineType : missing the second colon !");
+ return DST_UNKNOWN;
+ }
+
+ if (_rDsn.EqualsIgnoreCaseAscii("sdbc:adabas", 0, nSeparator))
+ return DST_ADABAS;
+ if (_rDsn.EqualsIgnoreCaseAscii("sdbc:odbc", 0, nSeparator))
+ return DST_ODBC;
+ if (_rDsn.EqualsIgnoreCaseAscii("sdbc:dbase", 0, nSeparator))
+ return DST_DBASE;
+ if (_rDsn.EqualsIgnoreCaseAscii("sdbc:text", 0, nSeparator))
+ return DST_TEXT;
+
+ DBG_ERROR("ODsnTypeCollection::implDetermineType : unrecognized data source type !");
+ return DST_UNKNOWN;
+}
+
+//-------------------------------------------------------------------------
+sal_Int32 ODsnTypeCollection::implDetermineTypeIndex(DATASOURCE_TYPE _eType)
+{
+ DBG_ASSERT(
+ (m_aDsnTypesDisplayNames.size() == m_aDsnPrefixes.size())
+ && (m_aDsnTypesDisplayNames.size() == m_aDsnTypes.size()),
+ "ODsnTypeCollection::implDetermineTypeIndex : inconsistent structures !");
+
+ // the type of the datasource described by the DSN string
+ if (DST_UNKNOWN == _eType)
+ {
+ DBG_ERROR("ODsnTypeCollection::implDetermineTypeIndex : invalid argument !");
+ return -1;
+ }
+
+ // search this type in our arrays
+ sal_Int32 nIndex = 0;
+ ConstTypeVectorIterator aSearch = m_aDsnTypes.begin();
+
+ for (; aSearch != m_aDsnTypes.end(); ++nIndex, ++aSearch)
+ if (*aSearch == _eType)
+ return nIndex;
+
+ DBG_ERROR("ODsnTypeCollection::implDetermineTypeIndex : recognized the DSN schema, but did not find the type!");
+ return -1;
+}
+
+//-------------------------------------------------------------------------
+sal_Int32 ODsnTypeCollection::implDetermineTypeIndex(const String& _rDsn)
+{
+ return implDetermineTypeIndex(implDetermineType(_rDsn));
+}
+
+//-------------------------------------------------------------------------
+ODsnTypeCollection::TypeIterator ODsnTypeCollection::begin() const
+{
+ return TypeIterator(this, 0);
+}
+
+//-------------------------------------------------------------------------
+ODsnTypeCollection::TypeIterator ODsnTypeCollection::end() const
+{
+ return TypeIterator(this, m_aDsnTypes.size());
+}
+
+//=========================================================================
+//= ODsnTypeCollection::TypeIterator
+//=========================================================================
+//-------------------------------------------------------------------------
+ODsnTypeCollection::TypeIterator::TypeIterator(const ODsnTypeCollection* _pContainer, sal_Int32 _nInitialPos)
+ :m_pContainer(_pContainer)
+ ,m_nPosition(_nInitialPos)
+{
+ DBG_ASSERT(m_pContainer, "ODsnTypeCollection::TypeIterator::TypeIterator : invalid container!");
+#ifdef DBG_UTIL
+ ++const_cast<ODsnTypeCollection*>(m_pContainer)->m_nLivingIterators;
+#endif
+}
+
+//-------------------------------------------------------------------------
+ODsnTypeCollection::TypeIterator::TypeIterator(const TypeIterator& _rSource)
+ :m_pContainer(_rSource.m_pContainer)
+ ,m_nPosition(_rSource.m_nPosition)
+{
+#ifdef DBG_UTIL
+ ++const_cast<ODsnTypeCollection*>(m_pContainer)->m_nLivingIterators;
+#endif
+}
+
+//-------------------------------------------------------------------------
+ODsnTypeCollection::TypeIterator::~TypeIterator()
+{
+#ifdef DBG_UTIL
+ --const_cast<ODsnTypeCollection*>(m_pContainer)->m_nLivingIterators;
+#endif
+}
+
+//-------------------------------------------------------------------------
+DATASOURCE_TYPE ODsnTypeCollection::TypeIterator::getType() const
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aDsnTypes.size(), "ODsnTypeCollection::TypeIterator::getType : invalid position!");
+ return m_pContainer->m_aDsnTypes[m_nPosition];
+}
+
+//-------------------------------------------------------------------------
+String ODsnTypeCollection::TypeIterator::getPrefix() const
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aDsnPrefixes.size(), "ODsnTypeCollection::TypeIterator::getPrefix : invalid position!");
+ return m_pContainer->m_aDsnPrefixes[m_nPosition];
+}
+
+//-------------------------------------------------------------------------
+String ODsnTypeCollection::TypeIterator::getDisplayName() const
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aDsnTypesDisplayNames.size(), "ODsnTypeCollection::TypeIterator::getDisplayName : invalid position!");
+ return m_pContainer->m_aDsnTypesDisplayNames[m_nPosition];
+}
+
+//-------------------------------------------------------------------------
+const ODsnTypeCollection::TypeIterator& ODsnTypeCollection::TypeIterator::operator++()
+{
+ DBG_ASSERT(m_nPosition < m_pContainer->m_aDsnTypes.size(), "ODsnTypeCollection::TypeIterator::operator++ : invalid position!");
+ if (m_nPosition < m_pContainer->m_aDsnTypes.size())
+ ++m_nPosition;
+ return *this;
+}
+
+//-------------------------------------------------------------------------
+const ODsnTypeCollection::TypeIterator& ODsnTypeCollection::TypeIterator::operator--()
+{
+ DBG_ASSERT(m_nPosition >= 0, "ODsnTypeCollection::TypeIterator::operator-- : invalid position!");
+ if (m_nPosition >= 0)
+ --m_nPosition;
+ return *this;
+}
+
+//-------------------------------------------------------------------------
+bool operator==(const ODsnTypeCollection::TypeIterator& lhs, const ODsnTypeCollection::TypeIterator& rhs)
+{
+ return (lhs.m_pContainer == rhs.m_pContainer) && (lhs.m_nPosition == rhs.m_nPosition);
+}
+
+//=========================================================================
+//= DbuTypeCollectionItem
+//=========================================================================
+TYPEINIT1(DbuTypeCollectionItem, SfxPoolItem);
+//-------------------------------------------------------------------------
+DbuTypeCollectionItem::DbuTypeCollectionItem(sal_Int16 _nWhich, ODsnTypeCollection* _pCollection)
+ :SfxPoolItem(_nWhich)
+ ,m_pCollection(_pCollection)
+{
+}
+
+//-------------------------------------------------------------------------
+DbuTypeCollectionItem::DbuTypeCollectionItem(const DbuTypeCollectionItem& _rSource)
+ :SfxPoolItem(_rSource)
+ ,m_pCollection(_rSource.getCollection())
+{
+}
+
+//-------------------------------------------------------------------------
+int DbuTypeCollectionItem::operator==(const SfxPoolItem& _rItem) const
+{
+ DbuTypeCollectionItem* pCompare = PTR_CAST(DbuTypeCollectionItem, &_rItem);
+ return pCompare && (pCompare->getCollection() == getCollection());
+}
+
+//-------------------------------------------------------------------------
+SfxPoolItem* DbuTypeCollectionItem::Clone(SfxItemPool* _pPool) const
+{
+ return new DbuTypeCollectionItem(*this);
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 26.09.00 08:05:35 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/makefile.mk b/dbaccess/source/ui/misc/makefile.mk
new file mode 100644
index 000000000000..43432234352a
--- /dev/null
+++ b/dbaccess/source/ui/misc/makefile.mk
@@ -0,0 +1,93 @@
+#*************************************************************************
+#
+# $RCSfile: makefile.mk,v $
+#
+# $Revision: 1.1 $
+#
+# last change: $Author: fs $ $Date: 2000-10-05 10:09:20 $
+#
+# The Contents of this file are made available subject to the terms of
+# either of the following licenses
+#
+# - GNU Lesser General Public License Version 2.1
+# - Sun Industry Standards Source License Version 1.1
+#
+# Sun Microsystems Inc., October, 2000
+#
+# GNU Lesser General Public License Version 2.1
+# =============================================
+# Copyright 2000 by Sun Microsystems, Inc.
+# 901 San Antonio Road, Palo Alto, CA 94303, USA
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License version 2.1, as published by the Free Software Foundation.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+#
+# Sun Industry Standards Source License Version 1.1
+# =================================================
+# The contents of this file are subject to the Sun Industry Standards
+# Source License Version 1.1 (the "License"); You may not use this file
+# except in compliance with the License. You may obtain a copy of the
+# License at http://www.openoffice.org/license.html.
+#
+# Software provided under this License is provided on an "AS IS" basis,
+# WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+# WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+# MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+# See the License for the specific provisions governing your rights and
+# obligations concerning the Software.
+#
+# The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+#
+# Copyright: 2000 by Sun Microsystems, Inc.
+#
+# All Rights Reserved.
+#
+# Contributor(s): _______________________________________
+#
+#
+#
+#*************************************************************************
+
+PRJ=..$/..$/..
+PRJINC=$(PRJ)$/source
+PRJNAME=dbaccess
+TARGET=uimisc
+
+ENABLE_EXCEPTIONS=TRUE
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Files -------------------------------------
+
+# ... resource files ............................
+
+SRCFILES = \
+ dbumiscres.src
+
+# ... object files ............................
+
+SLOFILES= \
+ $(SLO)$/stringlistitem.obj \
+ $(SLO)$/charsets.obj \
+ $(SLO)$/dsntypes.obj \
+ $(SLO)$/uiservices.obj \
+ $(SLO)$/moduledbu.obj
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
diff --git a/dbaccess/source/ui/misc/moduledbu.cxx b/dbaccess/source/ui/misc/moduledbu.cxx
new file mode 100644
index 000000000000..b00aa2dcb66a
--- /dev/null
+++ b/dbaccess/source/ui/misc/moduledbu.cxx
@@ -0,0 +1,177 @@
+/*************************************************************************
+ *
+ * $RCSfile: moduledbu.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:28 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+
+#ifndef _TOOLS_RESMGR_HXX
+#include <tools/resmgr.hxx>
+#endif
+#ifndef _SOLAR_HRC
+#include <svtools/solar.hrc>
+#endif
+
+#define ENTER_MOD_METHOD() \
+ ::osl::MutexGuard aGuard(s_aMutex); \
+ ensureImpl()
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+//=========================================================================
+//= OModuleImpl
+//=========================================================================
+/** implementation for <type>OModule</type>. not threadsafe, has to be guarded by it's owner
+*/
+class OModuleImpl
+{
+ ResMgr* m_pRessources;
+
+public:
+ /// ctor
+ OModuleImpl();
+ ~OModuleImpl();
+
+ /// get the manager for the ressources of the module
+ ResMgr* getResManager();
+};
+
+//-------------------------------------------------------------------------
+OModuleImpl::OModuleImpl()
+ :m_pRessources(NULL)
+{
+}
+
+//-------------------------------------------------------------------------
+OModuleImpl::~OModuleImpl()
+{
+ if (m_pRessources)
+ delete m_pRessources;
+}
+
+//-------------------------------------------------------------------------
+ResMgr* OModuleImpl::getResManager()
+{
+ // note that this method is not threadsafe, which counts for the whole class !
+
+ if (!m_pRessources)
+ {
+ // create a manager with a fixed prefix
+ ByteString aMgrName = ByteString( "dbu" );
+ aMgrName += ByteString::CreateFromInt32(SOLARUPD); // current build number
+ m_pRessources = ResMgr::CreateResMgr(aMgrName.GetBuffer());
+ }
+ return m_pRessources;
+}
+
+//=========================================================================
+//= OModule
+//=========================================================================
+::osl::Mutex OModule::s_aMutex;
+sal_Int32 OModule::s_nClients = 0;
+OModuleImpl* OModule::s_pImpl = NULL;
+//-------------------------------------------------------------------------
+ResMgr* OModule::getResManager()
+{
+ ENTER_MOD_METHOD();
+ return s_pImpl->getResManager();
+}
+
+//-------------------------------------------------------------------------
+void OModule::registerClient()
+{
+ ::osl::MutexGuard aGuard(s_aMutex);
+ ++s_nClients;
+}
+
+//-------------------------------------------------------------------------
+void OModule::revokeClient()
+{
+ ::osl::MutexGuard aGuard(s_aMutex);
+ if (!--s_nClients && s_pImpl)
+ {
+ delete s_pImpl;
+ s_pImpl = NULL;
+ }
+}
+
+//-------------------------------------------------------------------------
+void OModule::ensureImpl()
+{
+ if (s_pImpl)
+ return;
+ s_pImpl = new OModuleImpl();
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 20.09.00 16:16:54 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/stringlistitem.cxx b/dbaccess/source/ui/misc/stringlistitem.cxx
new file mode 100644
index 000000000000..d6d041258282
--- /dev/null
+++ b/dbaccess/source/ui/misc/stringlistitem.cxx
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * $RCSfile: stringlistitem.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:37 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _DBAUI_STRINGLISTITEM_HXX_
+#include "stringlistitem.hxx"
+#endif
+
+//.........................................................................
+namespace dbaui
+{
+//.........................................................................
+
+using namespace ::com::sun::star::uno;
+
+//=========================================================================
+//= OStringListItem
+//=========================================================================
+TYPEINIT1(OStringListItem, SfxPoolItem);
+//-------------------------------------------------------------------------
+OStringListItem::OStringListItem(sal_Int16 _nWhich, const Sequence< ::rtl::OUString >& _rList)
+ :SfxPoolItem(_nWhich)
+ ,m_aList(_rList)
+{
+}
+
+//-------------------------------------------------------------------------
+OStringListItem::OStringListItem(const OStringListItem& _rSource)
+ :SfxPoolItem(_rSource)
+ ,m_aList(_rSource.m_aList)
+{
+}
+
+//-------------------------------------------------------------------------
+int OStringListItem::operator==(const SfxPoolItem& _rItem) const
+{
+ const OStringListItem* pCompare = PTR_CAST(OStringListItem, &_rItem);
+ if ((!pCompare) || (pCompare->m_aList.getLength() != m_aList.getLength()))
+ return 0;
+
+ // compare all strings individually
+ const ::rtl::OUString* pMyStrings = m_aList.getConstArray();
+ const ::rtl::OUString* pCompareStrings = pCompare->m_aList.getConstArray();
+
+ for (sal_Int32 i=0; i<m_aList.getLength(); ++i, ++pMyStrings, ++pCompareStrings)
+ if (!pMyStrings->equals(*pCompareStrings))
+ return 0;
+
+ return 1;
+}
+
+//-------------------------------------------------------------------------
+SfxPoolItem* OStringListItem::Clone(SfxItemPool* /* _pPool */) const
+{
+ return new OStringListItem(*this);
+}
+
+//.........................................................................
+} // namespace dbaui
+//.........................................................................
+
+/*************************************************************************
+ * history:
+ * $Log: not supported by cvs2svn $
+ *
+ * Revision 1.0 02.10.00 11:02:21 fs
+ ************************************************************************/
+
diff --git a/dbaccess/source/ui/misc/uiservices.cxx b/dbaccess/source/ui/misc/uiservices.cxx
new file mode 100644
index 000000000000..f3cdc4d6a2cd
--- /dev/null
+++ b/dbaccess/source/ui/misc/uiservices.cxx
@@ -0,0 +1,150 @@
+/*************************************************************************
+ *
+ * $RCSfile: uiservices.cxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: fs $ $Date: 2000-10-05 10:09:48 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRUNTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRUNTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc..
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifndef _CPPUHELPER_FACTORY_HXX_
+#include <cppuhelper/factory.hxx>
+#endif
+#ifndef _OSL_DIAGNOSE_H_
+#include <osl/diagnose.h>
+#endif
+#ifndef _DBA_REGISTRATION_HELPER_HXX_
+#include "registrationhelper.hxx"
+#endif
+
+/********************************************************************************************/
+
+using namespace ::rtl;
+using namespace ::com::sun::star::uno;
+using namespace ::com::sun::star::lang;
+using namespace ::com::sun::star::registry;
+
+//***************************************************************************************
+//
+// registry functions
+extern "C" void SAL_CALL createRegistryInfo_ODatabaseAdministrationDialog();
+extern "C" void SAL_CALL createRegistryInfo_OSQLMessageDialog();
+
+//***************************************************************************************
+//
+// Die vorgeschriebene C-Api muss erfuellt werden!
+// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
+//
+extern "C" void SAL_CALL createRegistryInfo()
+{
+ static sal_Bool bInit = sal_False;
+ if (!bInit)
+ {
+ createRegistryInfo_ODatabaseAdministrationDialog();
+ createRegistryInfo_OSQLMessageDialog();
+ bInit = sal_True;
+ }
+}
+
+//---------------------------------------------------------------------------------------
+
+extern "C" void SAL_CALL component_getImplementationEnvironment(
+ const sal_Char **ppEnvTypeName,
+ uno_Environment **ppEnv
+ )
+{
+ createRegistryInfo();
+ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" sal_Bool SAL_CALL component_writeInfo(
+ void* pServiceManager,
+ void* pRegistryKey
+ )
+{
+ if (pRegistryKey)
+ try
+ {
+ return OModuleRegistration::writeComponentInfos(
+ static_cast<XMultiServiceFactory*>(pServiceManager),
+ static_cast<XRegistryKey*>(pRegistryKey));
+ }
+ catch (InvalidRegistryException& )
+ {
+ OSL_ASSERT("DBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
+ }
+
+ return sal_False;
+}
+
+//---------------------------------------------------------------------------------------
+extern "C" void* SAL_CALL component_getFactory(
+ const sal_Char* pImplementationName,
+ void* pServiceManager,
+ void* pRegistryKey)
+{
+ Reference< XInterface > xRet;
+ if (pServiceManager && pImplementationName)
+ {
+ xRet = OModuleRegistration::getComponentFactory(
+ ::rtl::OUString::createFromAscii(pImplementationName),
+ static_cast< XMultiServiceFactory* >(pServiceManager));
+ }
+
+ if (xRet.is())
+ xRet->acquire();
+ return xRet.get();
+};