1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef _BIB_GENERAL_HXX 25 #define _BIB_GENERAL_HXX 26 27 #include <com/sun/star/awt/XFocusListener.hpp> 28 #include <com/sun/star/awt/XControlContainer.hpp> 29 //#ifndef _COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HPP_ 30 //#include <com/sun/star/lang/XMultiServiceFactory.hpp> 31 //#endif 32 #include <com/sun/star/form/XBoundComponent.hpp> 33 #include <com/sun/star/sdbc/XRowSetListener.hpp> 34 #include <svtools/stdctrl.hxx> 35 36 #ifndef _LSTBOX_HXX //autogen 37 #include <vcl/lstbox.hxx> 38 #endif 39 #include <vcl/group.hxx> 40 #include <svtools/svmedit.hxx> 41 #include <vcl/tabpage.hxx> 42 #include <vcl/combobox.hxx> 43 #include <vcl/scrbar.hxx> 44 #include <cppuhelper/implbase1.hxx> // helper for implementations 45 #include "bibshortcuthandler.hxx" 46 47 48 class BibDataManager; 49 #define TYPE_COUNT 22 50 #define FIELD_COUNT 31 51 52 typedef cppu::WeakAggImplHelper1 < ::com::sun::star::awt::XFocusListener > BibGeneralPageBaseClass; 53 54 class BibGeneralPage: public BibGeneralPageBaseClass, public BibTabPage 55 { 56 Window aControlParentWin; 57 FixedText aIdentifierFT; 58 FixedText aAuthTypeFT; 59 FixedText aYearFT; 60 61 FixedText aAuthorFT; 62 FixedText aTitleFT; 63 64 FixedText aPublisherFT; 65 FixedText aAddressFT; 66 FixedText aISBNFT; 67 68 FixedText aChapterFT; 69 FixedText aPagesFT; 70 FixedLine aFirstFL; 71 72 FixedText aEditorFT; 73 FixedText aEditionFT; 74 75 FixedText aBooktitleFT; 76 FixedText aVolumeFT; 77 FixedText aHowpublishedFT; 78 79 FixedText aOrganizationsFT; 80 FixedText aInstitutionFT; 81 FixedText aSchoolFT; 82 83 FixedText aReportTypeFT; 84 FixedText aMonthFT; 85 FixedLine aSecondFL; 86 87 FixedText aJournalFT; 88 FixedText aNumberFT; 89 FixedText aSeriesFT; 90 91 FixedText aAnnoteFT; 92 FixedText aNoteFT; 93 FixedText aURLFT; 94 FixedLine aThirdFL; 95 96 FixedText aCustom1FT; 97 FixedText aCustom2FT; 98 FixedText aCustom3FT; 99 FixedText aCustom4FT; 100 FixedText aCustom5FT; 101 102 ScrollBar aHoriScroll; 103 ScrollBar aVertScroll; 104 105 FixedText* aFixedTexts[ FIELD_COUNT ]; 106 sal_Int16 nFT2CtrlMap[ FIELD_COUNT ]; 107 108 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindow > 109 aControls[ FIELD_COUNT ]; 110 111 Size aStdSize; 112 Point aBasePos; 113 114 String aBibTypeArr[ TYPE_COUNT ]; 115 String sErrorPrefix; 116 String sTableErrorString; 117 118 String sTypeColumnName; 119 120 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer > 121 xCtrlContnr; 122 123 ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > 124 xMgr; 125 126 ::com::sun::star::uno::Reference< ::com::sun::star::form::XBoundComponent > 127 xCurrentBoundComponent; 128 129 ::com::sun::star::uno::Reference< ::com::sun::star::form::XBoundComponent > 130 xLBModel; 131 132 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSetListener > 133 xPosListener; 134 135 136 BibDataManager* pDatMan; 137 138 ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlModel > 139 AddXControl( const String& rName, Point aPos, Size aSize, const rtl::OString& sHelpId, 140 sal_Int16& rIndex ); 141 142 void AddControlWithError( const rtl::OUString& rColumnName, const Point& rPos, 143 const Size& rSize, String& rErrorString, String aColumnUIName, 144 const rtl::OString& sHelpId, sal_uInt16 nIndexInFTArray ); 145 146 void AdjustScrollbars(); 147 148 DECL_LINK( ScrollHdl, ScrollBar* ); 149 150 protected: 151 virtual void Resize(); 152 void InitFixedTexts( void ); // create mnemonics and set text an all fixed texts 153 154 public: 155 BibGeneralPage(Window* pParent, BibDataManager* pDatMan); 156 virtual ~BibGeneralPage(); 157 158 inline const String& GetErrorString() const; 159 160 inline const ::com::sun::star::uno::Reference< ::com::sun::star::form::XBoundComponent >& 161 GetTypeListBoxModel() const; 162 inline const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& 163 GetControlContainer() const; 164 165 inline BibDataManager* GetDataManager(); 166 167 void CommitActiveControl(); 168 169 virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw( com::sun::star::uno::RuntimeException ); 170 171 void SAL_CALL focusGained( const ::com::sun::star::awt::FocusEvent& e ) throw( com::sun::star::uno::RuntimeException ); 172 void SAL_CALL focusLost( const ::com::sun::star::awt::FocusEvent& e ) throw( com::sun::star::uno::RuntimeException ); 173 174 void RemoveListeners(); 175 176 virtual void GetFocus(); 177 178 virtual sal_Bool HandleShortCutKey( const KeyEvent& rKeyEvent ); // returns true, if key was handled 179 }; 180 181 182 inline const String& BibGeneralPage::GetErrorString() const 183 { 184 return sTableErrorString; 185 } 186 187 inline const ::com::sun::star::uno::Reference< ::com::sun::star::form::XBoundComponent >& 188 BibGeneralPage::GetTypeListBoxModel() const 189 { 190 return xLBModel; 191 } 192 193 inline const ::com::sun::star::uno::Reference< ::com::sun::star::awt::XControlContainer >& 194 BibGeneralPage::GetControlContainer() const 195 { 196 return xCtrlContnr; 197 } 198 199 inline BibDataManager* BibGeneralPage::GetDataManager() 200 { 201 return pDatMan; 202 } 203 204 #endif 205 206 207