xref: /trunk/main/reportdesign/source/ui/dlg/GroupExchange.cxx (revision 1ecadb572e7010ff3b3382ad9bf179dbc6efadbb)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #include "precompiled_reportdesign.hxx"
28 #include "GroupExchange.hxx"
29 #include <sot/formats.hxx>
30 #include <sot/storage.hxx>
31 
32 namespace rptui
33 {
34     using namespace ::com::sun::star;
35     using namespace ::com::sun::star::uno;
36     using namespace ::com::sun::star::beans;
37 
38     sal_uInt32 OGroupExchange::getReportGroupId()
39     {
40         static sal_uInt32 s_nReportFormat = (sal_uInt32)-1;
41         if ( (sal_uInt32)-1 == s_nReportFormat )
42         {
43             s_nReportFormat = SotExchange::RegisterFormatName(String::CreateFromAscii("application/x-openoffice;windows_formatname=\"reportdesign.GroupFormat\"" ));
44             OSL_ENSURE((sal_uInt32)-1 != s_nReportFormat, "Bad exchange id!");
45         }
46         return s_nReportFormat;
47     }
48     OGroupExchange::OGroupExchange(const uno::Sequence< uno::Any >& _aGroupRow)
49         : m_aGroupRow(_aGroupRow)
50     {
51     }
52     // -----------------------------------------------------------------------------
53     void OGroupExchange::AddSupportedFormats()
54     {
55         if ( m_aGroupRow.getLength() )
56         {
57             AddFormat(OGroupExchange::getReportGroupId());
58         }
59     }
60     // -----------------------------------------------------------------------------
61     sal_Bool OGroupExchange::GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor )
62     {
63         sal_uLong nFormat = SotExchange::GetFormat(rFlavor);
64         if(nFormat == OGroupExchange::getReportGroupId() )
65         {
66             return SetAny(uno::makeAny(m_aGroupRow),rFlavor);
67         }
68         return sal_False;
69     }
70     // -----------------------------------------------------------------------------
71     void OGroupExchange::ObjectReleased()
72     {
73         m_aGroupRow.realloc(0);
74     }
75     // -----------------------------------------------------------------------------
76 }
77