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