xref: /AOO41X/main/dbaccess/source/ui/inc/TableDesignControl.hxx (revision 2e2212a7c22e96cf6f6fab0dd042c34a45a64bd6)
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_TABLEDESIGNCONTROL_HXX
24 #define DBAUI_TABLEDESIGNCONTROL_HXX
25 
26 #ifndef _TABBAR_HXX //autogen
27 #include <svtools/tabbar.hxx>
28 #endif
29 #ifndef _SVTOOLS_EDITBROWSEBOX_HXX_
30 #include <svtools/editbrowsebox.hxx>
31 #endif
32 
33 #ifndef DBACCESS_TABLEDESIGN_ICLIPBOARDTEST_HXX
34 #include "IClipBoardTest.hxx"
35 #endif
36 #ifndef DBAUI_TYPEINFO_HXX
37 #include "TypeInfo.hxx"
38 #endif
39 
40 #define TABPAGESIZE 70
41 namespace dbaui
42 {
43     class OTableDesignView;
44     class OTypeInfo;
45     //==================================================================
46     class OTableRowView : public ::svt::EditBrowseBox
47                         ,public IClipboardTest
48     {
49         friend class OTableDesignUndoAct;
50 
51     protected:
52         long    m_nDataPos;             // derzeit benoetigte Zeile
53         long    m_nCurrentPos;          // Aktuelle Position der ausgewaehlten Column
54     private:
55         sal_uInt16  m_nCurUndoActId;
56     protected:
57         sal_Bool    m_bCurrentModified;
58         sal_Bool    m_bUpdatable;
59         sal_Bool    m_bClipboardFilled;
60 
61     public:
62         OTableRowView(Window* pParent);
63         virtual ~OTableRowView();
64 
65         virtual void                SetCellData( long nRow, sal_uInt16 nColId, const TOTypeInfoSP& _pTypeInfo ) = 0;
66         virtual void                SetCellData( long nRow, sal_uInt16 nColId, const ::com::sun::star::uno::Any& _rNewData ) = 0;
67         virtual ::com::sun::star::uno::Any          GetCellData( long nRow, sal_uInt16 nColId ) = 0;
68         virtual void                SetControlText( long nRow, sal_uInt16 nColId, const String& rText ) = 0;
69         virtual String              GetControlText( long nRow, sal_uInt16 nColId ) = 0;
70 
71         virtual OTableDesignView* GetView() const = 0;
72 
GetCurUndoActId()73         sal_uInt16  GetCurUndoActId(){ return m_nCurUndoActId; }
74 
75         // IClipboardTest
76         virtual void cut();
77         virtual void copy();
78         virtual void paste();
79 
80     protected:
81         void Paste( long nRow );
82 
83         virtual void CopyRows()                             = 0;
84         virtual void DeleteRows()                           = 0;
85         virtual void InsertRows( long nRow )                = 0;
86         virtual void InsertNewRows( long nRow )             = 0;
87 
88         virtual sal_Bool IsPrimaryKeyAllowed( long nRow )   = 0;
89         virtual sal_Bool IsInsertNewAllowed( long nRow )    = 0;
90         virtual sal_Bool IsDeleteAllowed( long nRow )       = 0;
91 
IsUpdatable() const92         virtual sal_Bool IsUpdatable() const {return m_bUpdatable;}
93         virtual void SetUpdatable( sal_Bool bUpdate=sal_True );
94 
95         virtual RowStatus GetRowStatus(long nRow) const;
96         virtual void KeyInput(const KeyEvent& rEvt);
97         virtual void Command( const CommandEvent& rEvt );
98 
99         virtual void Init();
100     };
101 }
102 #endif // DBAUI_TABLEDESIGNCONTROL_HXX
103 
104 
105