1*96de5490SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*96de5490SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*96de5490SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*96de5490SAndrew Rist * distributed with this work for additional information 6*96de5490SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*96de5490SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*96de5490SAndrew Rist * "License"); you may not use this file except in compliance 9*96de5490SAndrew Rist * with the License. You may obtain a copy of the License at 10cdf0e10cSrcweir * 11*96de5490SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12cdf0e10cSrcweir * 13*96de5490SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*96de5490SAndrew Rist * software distributed under the License is distributed on an 15*96de5490SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*96de5490SAndrew Rist * KIND, either express or implied. See the License for the 17*96de5490SAndrew Rist * specific language governing permissions and limitations 18*96de5490SAndrew Rist * under the License. 19cdf0e10cSrcweir * 20*96de5490SAndrew Rist *************************************************************/ 21*96de5490SAndrew Rist 22*96de5490SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_dbaccess.hxx" 26cdf0e10cSrcweir #ifndef DBAUI_OQueryTabWinUndoAct_HXX 27cdf0e10cSrcweir #include "QueryTabWinUndoAct.hxx" 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #ifndef _OSL_DIAGNOSE_H_ 30cdf0e10cSrcweir #include <osl/diagnose.h> 31cdf0e10cSrcweir #endif 32cdf0e10cSrcweir #ifndef DBAUI_QUERY_TABLEWINDOW_HXX 33cdf0e10cSrcweir #include "QTableWindow.hxx" 34cdf0e10cSrcweir #endif 35cdf0e10cSrcweir #ifndef DBAUI_QUERY_TABLEWINDOWDATA_HXX 36cdf0e10cSrcweir #include "QTableWindowData.hxx" 37cdf0e10cSrcweir #endif 38cdf0e10cSrcweir #ifndef DBAUI_TABLECONNECTION_HXX 39cdf0e10cSrcweir #include "TableConnection.hxx" 40cdf0e10cSrcweir #endif 41cdf0e10cSrcweir #ifndef DBAUI_TABLECONNECTIONDATA_HXX 42cdf0e10cSrcweir #include "TableConnectionData.hxx" 43cdf0e10cSrcweir #endif 44cdf0e10cSrcweir #ifndef DBAUI_QUERYDESIGNFIELDUNDOACT_HXX 45cdf0e10cSrcweir #include "QueryDesignFieldUndoAct.hxx" 46cdf0e10cSrcweir #endif 47cdf0e10cSrcweir #ifndef DBAUI_QUERYTABLEVIEW_HXX 48cdf0e10cSrcweir #include "QueryTableView.hxx" 49cdf0e10cSrcweir #endif 50cdf0e10cSrcweir 51cdf0e10cSrcweir 52cdf0e10cSrcweir using namespace dbaui; 53cdf0e10cSrcweir DBG_NAME(OQueryDesignFieldUndoAct) 54cdf0e10cSrcweir OQueryDesignFieldUndoAct::OQueryDesignFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, sal_uInt16 nCommentID) 55cdf0e10cSrcweir : OCommentUndoAction(nCommentID) 56cdf0e10cSrcweir , pOwner(pSelBrwBox) 57cdf0e10cSrcweir , m_nColumnPostion(BROWSER_INVALIDID) 58cdf0e10cSrcweir { 59cdf0e10cSrcweir DBG_CTOR(OQueryDesignFieldUndoAct,NULL); 60cdf0e10cSrcweir } 61cdf0e10cSrcweir // ----------------------------------------------------------------------------- 62cdf0e10cSrcweir OQueryDesignFieldUndoAct::~OQueryDesignFieldUndoAct() 63cdf0e10cSrcweir { 64cdf0e10cSrcweir DBG_DTOR(OQueryDesignFieldUndoAct,NULL); 65cdf0e10cSrcweir pOwner = NULL; 66cdf0e10cSrcweir } 67cdf0e10cSrcweir // ----------------------------------------------------------------------------- 68cdf0e10cSrcweir 69cdf0e10cSrcweir DBG_NAME(OQueryTabWinUndoAct ) 70cdf0e10cSrcweir // ------------------------------------------------------------------------------------------------ 71cdf0e10cSrcweir OQueryTabWinUndoAct::OQueryTabWinUndoAct(OQueryTableView* pOwner, sal_uInt16 nCommentID) 72cdf0e10cSrcweir :OQueryDesignUndoAction(pOwner, nCommentID) 73cdf0e10cSrcweir ,m_pTabWin(NULL) 74cdf0e10cSrcweir { 75cdf0e10cSrcweir DBG_CTOR(OQueryTabWinUndoAct ,NULL); 76cdf0e10cSrcweir } 77cdf0e10cSrcweir //============================================================================== 78cdf0e10cSrcweir OQueryTabWinUndoAct::~OQueryTabWinUndoAct() 79cdf0e10cSrcweir { 80cdf0e10cSrcweir DBG_DTOR(OQueryTabWinUndoAct ,NULL); 81cdf0e10cSrcweir if (m_bOwnerOfObjects) 82cdf0e10cSrcweir { // wenn ich der alleinige Owner des Fenster bin, muss ich dafuer sorgen, dass es geloescht wird 83cdf0e10cSrcweir OSL_ENSURE(m_pTabWin != NULL, "OQueryTabWinUndoAct::~OQueryTabWinUndoAct() : m_pTabWin sollte nicht NULL sein"); 84cdf0e10cSrcweir OSL_ENSURE(!m_pTabWin->IsVisible(), "OQueryTabWinUndoAct::~OQueryTabWinUndoAct() : *m_pTabWin sollte nicht sichtbar sein"); 85cdf0e10cSrcweir 86cdf0e10cSrcweir if ( m_pTabWin ) 87cdf0e10cSrcweir m_pTabWin->clearListBox(); 88cdf0e10cSrcweir delete m_pTabWin; 89cdf0e10cSrcweir 90cdf0e10cSrcweir // und natuerlich auch die entsprechenden Connections 91cdf0e10cSrcweir ::std::vector<OTableConnection*>::iterator aIter = m_vTableConnection.begin(); 92cdf0e10cSrcweir ::std::vector<OTableConnection*>::iterator aEnd = m_vTableConnection.end(); 93cdf0e10cSrcweir for(;aIter != aEnd;++aIter) 94cdf0e10cSrcweir { 95cdf0e10cSrcweir m_pOwner->DeselectConn(*aIter); 96cdf0e10cSrcweir delete (*aIter); 97cdf0e10cSrcweir } 98cdf0e10cSrcweir m_vTableConnection.clear(); 99cdf0e10cSrcweir } 100cdf0e10cSrcweir } 101cdf0e10cSrcweir //------------------------------------------------------------------------------ 102cdf0e10cSrcweir void OTabFieldCellModifiedUndoAct::Undo() 103cdf0e10cSrcweir { 104cdf0e10cSrcweir pOwner->EnterUndoMode(); 105cdf0e10cSrcweir OSL_ENSURE(m_nColumnPostion != BROWSER_INVALIDID,"Column position was not set add the undo action!"); 106cdf0e10cSrcweir OSL_ENSURE(m_nColumnPostion < pOwner->GetColumnCount(),"Position outside the column count!"); 107cdf0e10cSrcweir if ( m_nColumnPostion != BROWSER_INVALIDID ) 108cdf0e10cSrcweir { 109cdf0e10cSrcweir sal_uInt16 nColumnId = pOwner->GetColumnId(m_nColumnPostion); 110cdf0e10cSrcweir String strNext = pOwner->GetCellContents(m_nCellIndex, nColumnId); 111cdf0e10cSrcweir pOwner->SetCellContents(m_nCellIndex, nColumnId, m_strNextCellContents); 112cdf0e10cSrcweir m_strNextCellContents = strNext; 113cdf0e10cSrcweir } 114cdf0e10cSrcweir pOwner->LeaveUndoMode(); 115cdf0e10cSrcweir } 116cdf0e10cSrcweir 117cdf0e10cSrcweir //------------------------------------------------------------------------------ 118cdf0e10cSrcweir void OTabFieldSizedUndoAct::Undo() 119cdf0e10cSrcweir { 120cdf0e10cSrcweir pOwner->EnterUndoMode(); 121cdf0e10cSrcweir OSL_ENSURE(m_nColumnPostion != BROWSER_INVALIDID,"Column position was not set add the undo action!"); 122cdf0e10cSrcweir if ( m_nColumnPostion != BROWSER_INVALIDID ) 123cdf0e10cSrcweir { 124cdf0e10cSrcweir sal_uInt16 nColumnId = pOwner->GetColumnId(m_nColumnPostion); 125cdf0e10cSrcweir long nNextWidth = pOwner->GetColumnWidth(nColumnId); 126cdf0e10cSrcweir pOwner->SetColWidth(nColumnId, m_nNextWidth); 127cdf0e10cSrcweir m_nNextWidth = nNextWidth; 128cdf0e10cSrcweir } 129cdf0e10cSrcweir pOwner->LeaveUndoMode(); 130cdf0e10cSrcweir } 131cdf0e10cSrcweir // ----------------------------------------------------------------------------- 132cdf0e10cSrcweir void OTabFieldMovedUndoAct::Undo() 133cdf0e10cSrcweir { 134cdf0e10cSrcweir pOwner->EnterUndoMode(); 135cdf0e10cSrcweir OSL_ENSURE(m_nColumnPostion != BROWSER_INVALIDID,"Column position was not set add the undo action!"); 136cdf0e10cSrcweir if ( m_nColumnPostion != BROWSER_INVALIDID ) 137cdf0e10cSrcweir { 138cdf0e10cSrcweir sal_uInt16 nId = pDescr->GetColumnId(); 139cdf0e10cSrcweir sal_uInt16 nOldPos = pOwner->GetColumnPos(nId); 140cdf0e10cSrcweir pOwner->SetColumnPos(nId,m_nColumnPostion); 141cdf0e10cSrcweir pOwner->ColumnMoved(nId,sal_False); 142cdf0e10cSrcweir m_nColumnPostion = nOldPos; 143cdf0e10cSrcweir } 144cdf0e10cSrcweir pOwner->LeaveUndoMode(); 145cdf0e10cSrcweir } 146cdf0e10cSrcweir // ----------------------------------------------------------------------------- 147cdf0e10cSrcweir 148cdf0e10cSrcweir 149cdf0e10cSrcweir 150cdf0e10cSrcweir 151cdf0e10cSrcweir 152