1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 28 #ifndef _DBAUI_PARAMDIALOG_HXX_ 29 #define _DBAUI_PARAMDIALOG_HXX_ 30 31 #ifndef _DBAUI_COMMON_TYPES_HXX_ 32 #include "commontypes.hxx" 33 #endif 34 35 #ifndef _DIALOG_HXX 36 #include <vcl/dialog.hxx> 37 #endif 38 #ifndef _BUTTON_HXX 39 #include <vcl/button.hxx> 40 #endif 41 #ifndef _FIXED_HXX 42 #include <vcl/fixed.hxx> 43 #endif 44 #ifndef _EDIT_HXX 45 #include <vcl/edit.hxx> 46 #endif 47 #ifndef _SV_GROUP_HXX 48 #include <vcl/group.hxx> 49 #endif 50 #ifndef _SV_LSTBOX_HXX 51 #include <vcl/lstbox.hxx> 52 #endif 53 54 #ifndef _COM_SUN_STAR_UTIL_XNUMBERFORMATTER_HPP_ 55 #include <com/sun/star/util/XNumberFormatter.hpp> 56 #endif 57 #ifndef _COM_SUN_STAR_CONTAINER_XINDEXACCESS_HPP_ 58 #include <com/sun/star/container/XIndexAccess.hpp> 59 #endif 60 #ifndef _COM_SUN_STAR_SDBC_XCONNECTION_HPP_ 61 #include <com/sun/star/sdbc/XConnection.hpp> 62 #endif 63 #ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ 64 #include <com/sun/star/lang/XMultiServiceFactory.hpp> 65 #endif 66 #ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_HPP_ 67 #include <com/sun/star/beans/PropertyValue.hpp> 68 #endif 69 #ifndef CONNECTIVITY_PREDICATEINPUT_HXX 70 #include <connectivity/predicateinput.hxx> 71 #endif 72 #ifndef SVX_QUERYDESIGNCONTEXT_HXX 73 #include "svx/ParseContext.hxx" 74 #endif 75 76 namespace connectivity 77 { 78 class OSQLParseNode; 79 } 80 81 //......................................................................... 82 namespace dbaui 83 { 84 //......................................................................... 85 86 //================================================================== 87 //= OParameterDialog 88 //================================================================== 89 class OParameterDialog 90 :public ModalDialog 91 ,public ::svxform::OParseContextClient 92 { 93 protected: 94 // the controls 95 FixedLine m_aNamesFrame; 96 ListBox m_aAllParams; 97 FixedText m_aValueFrame; 98 Edit m_aParam; 99 PushButton m_aTravelNext; 100 OKButton m_aOKBtn; 101 CancelButton m_aCancelBtn; 102 103 sal_uInt16 m_nCurrentlySelected; 104 105 ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > 106 m_xParams; 107 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > 108 m_xConnection; 109 ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatter > 110 m_xFormatter; 111 ::dbtools::OPredicateInputController 112 m_aPredicateInput; 113 114 ByteVector m_aVisitedParams; 115 Timer m_aResetVisitFlag; 116 // we reset the "visited flag" 1 second after and entry has been selected 117 118 sal_Bool m_bNeedErrorOnCurrent; 119 120 ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > 121 m_aFinalValues; /// the final values as entered by the user 122 123 public: 124 OParameterDialog(Window* _pParent, 125 const ::com::sun::star::uno::Reference< ::com::sun::star::container::XIndexAccess > & _rParamContainer, 126 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection > & _rxConnection, 127 const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxORB); 128 ~OParameterDialog(); 129 130 ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue > 131 getValues() const { return m_aFinalValues; } 132 133 134 protected: 135 void Construct(); 136 137 ::connectivity::OSQLParseNode* implPredicateTree(::rtl::OUString& _rErrorMessage, const UniString& _rStatement, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _rxField); 138 139 private: 140 DECL_LINK(OnVisitedTimeout, Timer*); 141 DECL_LINK(OnValueModified, Control*); 142 DECL_LINK(OnEntrySelected, ListBox*); 143 DECL_LINK(OnButtonClicked, PushButton*); 144 DECL_LINK(OnValueLoseFocus, Control*); 145 }; 146 147 //......................................................................... 148 } // namespace dbaui 149 //......................................................................... 150 151 #endif // _DBAUI_PARAMDIALOG_HXX_ 152 153