2001-02-05 08:26:47 +00:00
/*************************************************************************
*
2008-04-10 15:19:54 +00:00
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER .
2001-02-05 08:26:47 +00:00
*
2010-02-12 15:01:35 +01:00
* Copyright 2000 , 2010 Oracle and / or its affiliates .
2001-02-05 08:26:47 +00:00
*
2008-04-10 15:19:54 +00:00
* OpenOffice . org - a multi - platform office productivity suite
2001-02-05 08:26:47 +00:00
*
2008-04-10 15:19:54 +00:00
* This file is part of OpenOffice . org .
2001-02-05 08:26:47 +00:00
*
2008-04-10 15:19:54 +00:00
* 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 .
2001-02-05 08:26:47 +00:00
*
2008-04-10 15:19:54 +00:00
* 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 ) .
2001-02-05 08:26:47 +00:00
*
2008-04-10 15:19:54 +00:00
* 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 .
2001-02-05 08:26:47 +00:00
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef DBAUI_QUERYDESIGNFIELDUNDOACT_HXX
# define DBAUI_QUERYDESIGNFIELDUNDOACT_HXX
# ifndef DBAUI_GENERALUNDO_HXX
# include "GeneralUndo.hxx"
# endif
2002-08-19 07:01:32 +00:00
# ifndef _DBU_QRY_HRC_
# include "dbu_qry.hrc"
2001-02-05 08:26:47 +00:00
# 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 :
2002-08-19 07:01:32 +00:00
OSelectionBrowseBox * pOwner ;
USHORT m_nColumnPostion ;
2001-02-05 08:26:47 +00:00
virtual void Undo ( ) = 0 ;
virtual void Redo ( ) = 0 ;
public :
2003-03-19 16:57:12 +00:00
OQueryDesignFieldUndoAct ( OSelectionBrowseBox * pSelBrwBox , USHORT nCommentID ) ;
virtual ~ OQueryDesignFieldUndoAct ( ) ;
2001-02-05 08:26:47 +00:00
2003-03-19 16:57:12 +00:00
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! " ) ;
}
2001-02-05 08:26:47 +00:00
} ;
// ================================================================================================
// OTabFieldCellModifiedUndoAct - Undo-Klasse fuer Aendern einer Zelle einer Spaltenbeschreibung
class OTabFieldCellModifiedUndoAct : public OQueryDesignFieldUndoAct
{
protected :
String m_strNextCellContents ;
sal_Int32 m_nCellIndex ;
public :
2001-03-20 07:15:49 +00:00
OTabFieldCellModifiedUndoAct ( OSelectionBrowseBox * pSelBrwBox )
: OQueryDesignFieldUndoAct ( pSelBrwBox , STR_QUERY_UNDO_MODIFY_CELL )
2002-08-19 07:01:32 +00:00
, m_nCellIndex ( BROWSER_INVALIDID ) { }
2001-02-05 08:26:47 +00:00
2002-08-19 07:01:32 +00:00
inline void SetCellContents ( const String & str ) { m_strNextCellContents = str ; }
inline void SetCellIndex ( sal_Int32 nIndex ) { m_nCellIndex = nIndex ; }
2001-02-05 08:26:47 +00:00
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 ) { }
2008-12-09 07:25:38 +00:00
inline void SetOriginalWidth ( long nWidth ) { m_nNextWidth = nWidth ; }
2001-02-05 08:26:47 +00:00
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 :
2001-10-05 05:49:21 +00:00
OTableFieldDescRef pDescr ; // geloeschte Spaltenbeschreibung
2001-02-05 08:26:47 +00:00
public :
OTabFieldUndoAct ( OSelectionBrowseBox * pSelBrwBox , USHORT nCommentID ) : OQueryDesignFieldUndoAct ( pSelBrwBox , nCommentID ) { }
2001-10-05 05:49:21 +00:00
void SetTabFieldDescr ( OTableFieldDescRef pDescription ) { pDescr = pDescription ; }
2001-02-05 08:26:47 +00:00
} ;
// ================================================================================================
// OTabFieldDelUndoAct - Undo-Klasse fuer Loeschen eines Feldes
class OTabFieldDelUndoAct : public OTabFieldUndoAct
{
protected :
2005-09-23 11:42:49 +00:00
virtual void Undo ( ) { pOwner - > EnterUndoMode ( ) ; pOwner - > InsertColumn ( pDescr , m_nColumnPostion ) ; pOwner - > LeaveUndoMode ( ) ; }
virtual void Redo ( ) { pOwner - > EnterUndoMode ( ) ; pOwner - > RemoveColumn ( pDescr - > GetColumnId ( ) ) ; pOwner - > LeaveUndoMode ( ) ; }
2001-02-05 08:26:47 +00:00
public :
OTabFieldDelUndoAct ( OSelectionBrowseBox * pSelBrwBox ) : OTabFieldUndoAct ( pSelBrwBox , STR_QUERY_UNDO_TABFIELDDELETE ) { }
} ;
// ================================================================================================
// OTabFieldDelUndoAct - Undo-Klasse fuer Anlegen eines Feldes
class OTabFieldCreateUndoAct : public OTabFieldUndoAct
{
protected :
2005-09-23 11:42:49 +00:00
virtual void Undo ( ) { pOwner - > EnterUndoMode ( ) ; pOwner - > RemoveColumn ( pDescr - > GetColumnId ( ) ) ; pOwner - > LeaveUndoMode ( ) ; }
virtual void Redo ( ) { pOwner - > EnterUndoMode ( ) ; pOwner - > InsertColumn ( pDescr , m_nColumnPostion ) ; pOwner - > LeaveUndoMode ( ) ; }
2001-02-05 08:26:47 +00:00
public :
OTabFieldCreateUndoAct ( OSelectionBrowseBox * pSelBrwBox ) : OTabFieldUndoAct ( pSelBrwBox , STR_QUERY_UNDO_TABFIELDCREATE ) { }
} ;
2002-08-19 07:01:32 +00:00
// ================================================================================================
// 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 ) { }
} ;
2001-02-05 08:26:47 +00:00
}
# endif // DBAUI_QUERYDESIGNFIELDUNDOACT_HXX