summaryrefslogtreecommitdiff
path: root/dbaccess/source/ui/inc/directsql.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'dbaccess/source/ui/inc/directsql.hxx')
-rw-r--r--dbaccess/source/ui/inc/directsql.hxx159
1 files changed, 159 insertions, 0 deletions
diff --git a/dbaccess/source/ui/inc/directsql.hxx b/dbaccess/source/ui/inc/directsql.hxx
new file mode 100644
index 000000000000..2299d8a4656e
--- /dev/null
+++ b/dbaccess/source/ui/inc/directsql.hxx
@@ -0,0 +1,159 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org 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 version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _DBACCESS_UI_DIRECTSQL_HXX_
+#define _DBACCESS_UI_DIRECTSQL_HXX_
+
+#ifndef _SV_DIALOG_HXX
+#include <vcl/dialog.hxx>
+#endif
+#ifndef _SVEDIT_HXX
+#include <svtools/editsyntaxhighlighter.hxx>
+#endif
+#ifndef _SV_FIXED_HXX
+#include <vcl/fixed.hxx>
+#endif
+#ifndef _SV_LSTBOX_HXX
+#include <vcl/lstbox.hxx>
+#endif
+#ifndef _SV_BUTTON_HXX
+#include <vcl/button.hxx>
+#endif
+#ifndef _COMPHELPER_STLTYPES_HXX_
+#include <comphelper/stl_types.hxx>
+#endif
+#include <deque>
+
+#ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_
+#include <com/sun/star/sdbc/XConnection.hpp>
+#endif
+#ifndef _UNOTOOLS_EVENTLISTENERADAPTER_HXX_
+#include <unotools/eventlisteneradapter.hxx>
+#endif
+#ifndef _DBAUI_MODULE_DBU_HXX_
+#include "moduledbu.hxx"
+#endif
+#ifndef _OSL_MUTEX_HXX_
+#include <osl/mutex.hxx>
+#endif
+
+//........................................................................
+namespace dbaui
+{
+//........................................................................
+
+ //====================================================================
+ //= DirectSQLDialog
+ //====================================================================
+ class DirectSQLDialog
+ :public ModalDialog
+ ,public ::utl::OEventListenerAdapter
+ {
+ protected:
+ OModuleClient m_aModuleClient;
+ ::osl::Mutex m_aMutex;
+
+ FixedLine m_aFrame;
+ FixedText m_aSQLLabel;
+ MultiLineEditSyntaxHighlight m_aSQL;
+ PushButton m_aExecute;
+ FixedText m_aHistoryLabel;
+ ListBox* m_pSQLHistory;
+ FixedLine m_aStatusFrame;
+ MultiLineEdit m_aStatus;
+ FixedLine m_aButtonSeparator;
+ HelpButton m_aHelp;
+ PushButton m_aClose;
+
+ typedef ::std::deque< String > StringQueue;
+ StringQueue m_aStatementHistory; // previous statements
+ StringQueue m_aNormalizedHistory; // previous statements, normalized to be used in the list box
+
+ sal_Int32 m_nHistoryLimit;
+ sal_Int32 m_nStatusCount;
+
+ ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >
+ m_xConnection;
+
+ public:
+ DirectSQLDialog(
+ Window* _pParent,
+ const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxConn);
+ ~DirectSQLDialog();
+
+ /// number of history entries
+ sal_Int32 getHistorySize() const;
+
+ protected:
+ void executeCurrent();
+ void switchToHistory(sal_Int32 _nHistoryPos, sal_Bool _bUpdateListBox = sal_True);
+
+ // OEventListenerAdapter
+ virtual void _disposing( const ::com::sun::star::lang::EventObject& _rSource );
+
+ protected:
+ DECL_LINK( OnExecute, void* );
+ DECL_LINK( OnClose, void* );
+ DECL_LINK( OnListEntrySelected, void* );
+ DECL_LINK( OnStatementModified, void* );
+
+ private:
+ /// adds a statement to the statement history
+ void implAddToStatementHistory(const String& _rStatement);
+
+ /// ensures that our history has at most m_nHistoryLimit entries
+ void implEnsureHistoryLimit();
+
+ /// executes the statement given, adds the status to the status list
+ void implExecuteStatement(const String& _rStatement);
+
+ /// adds a status text to the status list
+ void addStatusText(const String& _rMessage);
+
+#ifdef DBG_UTIL
+ const sal_Char* impl_CheckInvariants() const;
+#endif
+ };
+
+ //====================================================================
+#ifdef DBG_UTIL
+#define CHECK_INVARIANTS(methodname) \
+ { \
+ const sal_Char* pError = impl_CheckInvariants(); \
+ if (pError) \
+ OSL_ENSURE(sal_False, (ByteString(methodname) += ByteString(": ") += ByteString(pError)).GetBuffer()); \
+ }
+#else
+#define CHECK_INVARIANTS(methodname)
+#endif
+
+//........................................................................
+} // namespace dbaui
+//........................................................................
+
+#endif // _DBACCESS_UI_DIRECTSQL_HXX_
+