blob: 2caa85e85c8ce729a8162170353b036691c74ccb [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_filter.hxx"
#include <rtl/ustrbuf.hxx>
#include "xmlfilterdialogstrings.hrc"
#include "xmlfiltertabpagebasic.hxx"
#include "xmlfiltertabpagebasic.hrc"
#include "xmlfiltersettingsdialog.hxx"
#include "xmlfilterhelpids.hrc"
using namespace rtl;
XMLFilterTabPageBasic::XMLFilterTabPageBasic( Window* pParent, ResMgr& rResMgr ) :
TabPage( pParent, ResId( RID_XML_FILTER_TABPAGE_BASIC, rResMgr ) ),
maFTFilterName( this, ResId( FT_XML_FILTER_NAME, rResMgr ) ),
maEDFilterName( this, ResId( ED_XML_FILTER_NAME, rResMgr ) ),
maFTApplication( this, ResId( FT_XML_APPLICATION, rResMgr ) ),
maCBApplication( this, ResId( CB_XML_APPLICATION, rResMgr ) ),
maFTInterfaceName( this, ResId( FT_XML_INTERFACE_NAME, rResMgr ) ),
maEDInterfaceName( this, ResId( ED_XML_INTERFACE_NAME, rResMgr ) ),
maFTExtension( this, ResId( FT_XML_EXTENSION, rResMgr ) ),
maEDExtension( this, ResId( ED_XML_EXTENSION, rResMgr ) ),
maFTDescription( this, ResId( FT_XML_DESCRIPTION, rResMgr ) ),
maEDDescription( this, ResId( ED_XML_DESCRIPTION, rResMgr ) )
{
maCBApplication.SetHelpId( HID_XML_FILTER_APPLICATION );
maEDDescription.SetHelpId( HID_XML_FILTER_DESCRIPTION );
FreeResource();
std::vector< application_info_impl* >& rInfos = getApplicationInfos();
std::vector< application_info_impl* >::iterator aIter( rInfos.begin() );
while( aIter != rInfos.end() )
{
XubString aEntry( (*aIter++)->maDocumentUIName );
maCBApplication.InsertEntry( aEntry );
}
}
XMLFilterTabPageBasic::~XMLFilterTabPageBasic()
{
}
static OUString checkExtensions( const String& rExtensions )
{
const sal_Unicode* pSource = rExtensions.GetBuffer();
sal_Int32 nCount = rExtensions.Len();
String aRet;
while( nCount-- )
{
switch(*pSource)
{
case sal_Unicode(','):
aRet += sal_Unicode(';');
break;
case sal_Unicode('.'):
case sal_Unicode('*'):
break;
default:
aRet += *pSource;
}
pSource++;
}
return aRet;
}
bool XMLFilterTabPageBasic::FillInfo( filter_info_impl* pInfo )
{
if( pInfo )
{
if( maEDFilterName.GetText().Len() )
pInfo->maFilterName = maEDFilterName.GetText();
if( maCBApplication.GetText().Len() )
pInfo->maDocumentService = maCBApplication.GetText();
if( maEDInterfaceName.GetText().Len() )
pInfo->maInterfaceName = maEDInterfaceName.GetText();
if( maEDExtension.GetText().Len() )
pInfo->maExtension = checkExtensions( maEDExtension.GetText() );
pInfo->maComment = string_encode( maEDDescription.GetText() );
if( pInfo->maDocumentService.getLength() )
{
std::vector< application_info_impl* >& rInfos = getApplicationInfos();
std::vector< application_info_impl* >::iterator aIter( rInfos.begin() );
while( aIter != rInfos.end() )
{
if( pInfo->maDocumentService == (*aIter)->maDocumentUIName )
{
pInfo->maDocumentService = (*aIter)->maDocumentService;
pInfo->maExportService = (*aIter)->maXMLExporter;
pInfo->maImportService = (*aIter)->maXMLImporter;
break;
}
aIter++;
}
}
}
return true;
}
void XMLFilterTabPageBasic::SetInfo(const filter_info_impl* pInfo)
{
if( pInfo )
{
maEDFilterName.SetText( string_decode(pInfo->maFilterName) );
/*
if( pInfo->maDocumentService.getLength() )
maCBApplication.SetText( getApplicationUIName( pInfo->maDocumentService ) );
*/
if( pInfo->maExportService.getLength() )
maCBApplication.SetText( getApplicationUIName( pInfo->maExportService ) );
else
maCBApplication.SetText( getApplicationUIName( pInfo->maImportService ) );
maEDInterfaceName.SetText( string_decode(pInfo->maInterfaceName) );
maEDExtension.SetText( pInfo->maExtension );
maEDDescription.SetText( string_decode( pInfo->maComment ) );
}
}