3f493fe1f7
2008/03/31 13:27:57 rt 1.9.246.1: #i87441# Change license header to LPGL v3.
168 lines
6.4 KiB
C++
168 lines
6.4 KiB
C++
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2008 by Sun Microsystems, Inc.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* $RCSfile: QueryDesignFieldUndoAct.hxx,v $
|
|
* $Revision: 1.10 $
|
|
*
|
|
* 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 DBAUI_QUERYDESIGNFIELDUNDOACT_HXX
|
|
#define DBAUI_QUERYDESIGNFIELDUNDOACT_HXX
|
|
|
|
#ifndef DBAUI_GENERALUNDO_HXX
|
|
#include "GeneralUndo.hxx"
|
|
#endif
|
|
#ifndef _DBU_QRY_HRC_
|
|
#include "dbu_qry.hrc"
|
|
#endif
|
|
#ifndef DBAUI_QUERYDESIGN_OSELECTIONBROWSEBOX_HXX
|
|
#include "SelectionBrowseBox.hxx"
|
|
#endif
|
|
|
|
|
|
namespace dbaui
|
|
{
|
|
// ================================================================================================
|
|
// OQueryDesignFieldUndoAct - Basisklasse fuer Undos in der Feldauflistung im Abfrageentwurf
|
|
|
|
|
|
class OQueryDesignFieldUndoAct : public OCommentUndoAction
|
|
{
|
|
protected:
|
|
OSelectionBrowseBox* pOwner;
|
|
USHORT m_nColumnPostion;
|
|
|
|
virtual void Undo() = 0;
|
|
virtual void Redo() = 0;
|
|
|
|
public:
|
|
OQueryDesignFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, USHORT nCommentID);
|
|
virtual ~OQueryDesignFieldUndoAct();
|
|
|
|
inline void SetColumnPosition(USHORT _nColumnPostion)
|
|
{
|
|
m_nColumnPostion = _nColumnPostion;
|
|
OSL_ENSURE(m_nColumnPostion != BROWSER_INVALIDID,"Column position was not set add the undo action!");
|
|
OSL_ENSURE(m_nColumnPostion < pOwner->GetColumnCount(),"Position outside the column count!");
|
|
}
|
|
};
|
|
|
|
// ================================================================================================
|
|
// OTabFieldCellModifiedUndoAct - Undo-Klasse fuer Aendern einer Zelle einer Spaltenbeschreibung
|
|
|
|
class OTabFieldCellModifiedUndoAct : public OQueryDesignFieldUndoAct
|
|
{
|
|
protected:
|
|
String m_strNextCellContents;
|
|
sal_Int32 m_nCellIndex;
|
|
|
|
public:
|
|
OTabFieldCellModifiedUndoAct(OSelectionBrowseBox* pSelBrwBox)
|
|
: OQueryDesignFieldUndoAct(pSelBrwBox, STR_QUERY_UNDO_MODIFY_CELL)
|
|
,m_nCellIndex(BROWSER_INVALIDID){ }
|
|
|
|
inline void SetCellContents(const String& str) { m_strNextCellContents = str; }
|
|
inline void SetCellIndex(sal_Int32 nIndex) { m_nCellIndex = nIndex; }
|
|
|
|
virtual void Undo();
|
|
virtual void Redo() { Undo(); }
|
|
};
|
|
|
|
// ================================================================================================
|
|
// OTabFieldSizedUndoAct - Undo-Klasse fuer Aendern einer Spaltenbreite
|
|
|
|
class OTabFieldSizedUndoAct : public OQueryDesignFieldUndoAct
|
|
{
|
|
protected:
|
|
long m_nNextWidth;
|
|
|
|
public:
|
|
OTabFieldSizedUndoAct(OSelectionBrowseBox* pSelBrwBox) : OQueryDesignFieldUndoAct(pSelBrwBox, STR_QUERY_UNDO_SIZE_COLUMN), m_nNextWidth(0) { }
|
|
|
|
inline void SetOriginalWidth(long nWidth) { OSL_ENSURE(m_nNextWidth != 0,"Width is 0!");m_nNextWidth = nWidth; }
|
|
|
|
virtual void Undo();
|
|
virtual void Redo() { Undo(); }
|
|
};
|
|
|
|
// ================================================================================================
|
|
// OTabFieldUndoAct - Basisklasse fuer Undos in der Feldauflistung im Abfrageentwurf, die mit Veraendern einer kompletten Feldbeschreibung zu tun haben
|
|
|
|
class OTabFieldUndoAct : public OQueryDesignFieldUndoAct
|
|
{
|
|
protected:
|
|
OTableFieldDescRef pDescr; // geloeschte Spaltenbeschreibung
|
|
|
|
public:
|
|
OTabFieldUndoAct(OSelectionBrowseBox* pSelBrwBox, USHORT nCommentID) : OQueryDesignFieldUndoAct(pSelBrwBox, nCommentID) { }
|
|
|
|
void SetTabFieldDescr(OTableFieldDescRef pDescription) { pDescr = pDescription; }
|
|
};
|
|
|
|
// ================================================================================================
|
|
// OTabFieldDelUndoAct - Undo-Klasse fuer Loeschen eines Feldes
|
|
|
|
class OTabFieldDelUndoAct : public OTabFieldUndoAct
|
|
{
|
|
protected:
|
|
virtual void Undo() { pOwner->EnterUndoMode();pOwner->InsertColumn(pDescr, m_nColumnPostion);pOwner->LeaveUndoMode(); }
|
|
virtual void Redo() { pOwner->EnterUndoMode();pOwner->RemoveColumn(pDescr->GetColumnId());pOwner->LeaveUndoMode(); }
|
|
|
|
public:
|
|
OTabFieldDelUndoAct(OSelectionBrowseBox* pSelBrwBox) : OTabFieldUndoAct(pSelBrwBox, STR_QUERY_UNDO_TABFIELDDELETE) { }
|
|
};
|
|
|
|
// ================================================================================================
|
|
// OTabFieldDelUndoAct - Undo-Klasse fuer Anlegen eines Feldes
|
|
|
|
class OTabFieldCreateUndoAct : public OTabFieldUndoAct
|
|
{
|
|
protected:
|
|
virtual void Undo() { pOwner->EnterUndoMode();pOwner->RemoveColumn(pDescr->GetColumnId());pOwner->LeaveUndoMode();}
|
|
virtual void Redo() { pOwner->EnterUndoMode();pOwner->InsertColumn(pDescr, m_nColumnPostion);pOwner->LeaveUndoMode();}
|
|
|
|
public:
|
|
OTabFieldCreateUndoAct(OSelectionBrowseBox* pSelBrwBox) : OTabFieldUndoAct(pSelBrwBox, STR_QUERY_UNDO_TABFIELDCREATE) { }
|
|
};
|
|
|
|
// ================================================================================================
|
|
// OTabFieldMovedUndoAct - Undo-class when a field was moved inside the selection
|
|
|
|
class OTabFieldMovedUndoAct : public OTabFieldUndoAct
|
|
{
|
|
protected:
|
|
virtual void Undo();
|
|
virtual void Redo()
|
|
{
|
|
Undo();
|
|
}
|
|
|
|
public:
|
|
OTabFieldMovedUndoAct(OSelectionBrowseBox* pSelBrwBox) : OTabFieldUndoAct(pSelBrwBox, STR_QUERY_UNDO_TABFIELDMOVED) { }
|
|
};
|
|
}
|
|
#endif // DBAUI_QUERYDESIGNFIELDUNDOACT_HXX
|
|
|
|
|
|
|