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 #ifndef DBAUI_TABLEUNDO_HXX 24 #define DBAUI_TABLEUNDO_HXX 25 26 #ifndef DBAUI_GENERALUNDO_HXX 27 #include "GeneralUndo.hxx" 28 #endif 29 #ifndef _SV_MULTISEL_HXX 30 #include <tools/multisel.hxx> 31 #endif 32 33 #include <vector> 34 35 #ifndef _COM_SUN_STAR_UNO_ANY_H_ 36 #include <com/sun/star/uno/Any.h> 37 #endif 38 #ifndef DBAUI_TYPEINFO_HXX 39 #include "TypeInfo.hxx" 40 #endif 41 42 namespace dbaui 43 { 44 //======================================================================== 45 class OTableRowView; 46 class OTableRow; 47 class OTableDesignUndoAct : public OCommentUndoAction 48 { 49 protected: 50 OTableRowView* m_pTabDgnCtrl; 51 52 virtual void Undo(); 53 virtual void Redo(); 54 public: 55 TYPEINFO(); 56 OTableDesignUndoAct( OTableRowView* pOwner ,sal_uInt16 nCommentID); 57 virtual ~OTableDesignUndoAct(); 58 }; 59 60 //======================================================================== 61 class OTableEditorCtrl; 62 class OTableEditorUndoAct : public OTableDesignUndoAct 63 { 64 protected: 65 OTableEditorCtrl* pTabEdCtrl; 66 67 public: 68 TYPEINFO(); 69 OTableEditorUndoAct( OTableEditorCtrl* pOwner,sal_uInt16 nCommentID ); 70 virtual ~OTableEditorUndoAct(); 71 }; 72 73 74 //======================================================================== 75 class OTableDesignCellUndoAct : public OTableDesignUndoAct 76 { 77 protected: 78 sal_uInt16 m_nCol; 79 long m_nRow; 80 ::com::sun::star::uno::Any m_sOldText; 81 ::com::sun::star::uno::Any m_sNewText; 82 83 virtual void Undo(); 84 virtual void Redo(); 85 public: 86 TYPEINFO(); 87 OTableDesignCellUndoAct( OTableRowView* pOwner, long nRowID, sal_uInt16 nColumn ); 88 virtual ~OTableDesignCellUndoAct(); 89 }; 90 91 class OTypeInfo; 92 //======================================================================== 93 class OTableEditorTypeSelUndoAct : public OTableEditorUndoAct 94 { 95 protected: 96 sal_uInt16 m_nCol; 97 long m_nRow; 98 TOTypeInfoSP m_pOldType; 99 TOTypeInfoSP m_pNewType; 100 101 virtual void Undo(); 102 virtual void Redo(); 103 public: 104 TYPEINFO(); 105 OTableEditorTypeSelUndoAct( OTableEditorCtrl* pOwner, long nRowID, sal_uInt16 nColumn, const TOTypeInfoSP& _pOldType ); 106 virtual ~OTableEditorTypeSelUndoAct(); 107 }; 108 109 //======================================================================== 110 class OTableEditorDelUndoAct : public OTableEditorUndoAct 111 { 112 protected: 113 ::std::vector< ::boost::shared_ptr<OTableRow> > m_aDeletedRows; 114 115 virtual void Undo(); 116 virtual void Redo(); 117 public: 118 TYPEINFO(); 119 OTableEditorDelUndoAct( OTableEditorCtrl* pOwner ); 120 virtual ~OTableEditorDelUndoAct(); 121 }; 122 123 //======================================================================== 124 class OTableEditorInsUndoAct : public OTableEditorUndoAct 125 { 126 protected: 127 ::std::vector< ::boost::shared_ptr<OTableRow> > m_vInsertedRows; 128 long m_nInsPos; 129 130 virtual void Undo(); 131 virtual void Redo(); 132 public: 133 TYPEINFO(); 134 OTableEditorInsUndoAct( OTableEditorCtrl* pOwner, 135 long nInsertPosition, 136 const ::std::vector< ::boost::shared_ptr<OTableRow> >& _vInsertedRows); 137 virtual ~OTableEditorInsUndoAct(); 138 }; 139 140 //======================================================================== 141 class OTableEditorInsNewUndoAct : public OTableEditorUndoAct 142 { 143 protected: 144 long m_nInsPos; 145 long m_nInsRows; 146 147 virtual void Undo(); 148 virtual void Redo(); 149 public: 150 TYPEINFO(); 151 OTableEditorInsNewUndoAct( OTableEditorCtrl* pOwner, long nInsertPosition, long nInsertedRows ); 152 virtual ~OTableEditorInsNewUndoAct(); 153 }; 154 155 //======================================================================== 156 class OPrimKeyUndoAct : public OTableEditorUndoAct 157 { 158 protected: 159 MultiSelection m_aDelKeys, 160 m_aInsKeys; 161 sal_Bool m_bActPrimKeySet; 162 OTableEditorCtrl* m_pEditorCtrl; 163 164 virtual void Undo(); 165 virtual void Redo(); 166 public: 167 TYPEINFO(); 168 OPrimKeyUndoAct( OTableEditorCtrl* pOwner, MultiSelection aDeletedKeys, MultiSelection aInsertedKeys ); 169 virtual ~OPrimKeyUndoAct(); 170 }; 171 } 172 #endif // DBAUI_TABLEUNDO_HXX 173 174 175