diff options
author | Daniel Boelzle <dbo@openoffice.org> | 2001-02-27 11:45:17 +0000 |
---|---|---|
committer | Daniel Boelzle <dbo@openoffice.org> | 2001-02-27 11:45:17 +0000 |
commit | 8661d7233e9a335588b740133d684188ec28914b (patch) | |
tree | 432e1e79b85aca32dd96153ecc9acd686060f19e /xmlscript/test | |
parent | 1cd5fc353a5e0befdb9f703208da945b4fff60d6 (diff) |
further impl; bugfixing
Diffstat (limited to 'xmlscript/test')
-rw-r--r-- | xmlscript/test/imexp.cxx | 160 | ||||
-rw-r--r-- | xmlscript/test/test.xml | 204 |
2 files changed, 114 insertions, 250 deletions
diff --git a/xmlscript/test/imexp.cxx b/xmlscript/test/imexp.cxx index 203c0c56249e..c83d1c75f756 100644 --- a/xmlscript/test/imexp.cxx +++ b/xmlscript/test/imexp.cxx @@ -2,9 +2,9 @@ * * $RCSfile: imexp.cxx,v $ * - * $Revision: 1.2 $ + * $Revision: 1.3 $ * - * last change: $Author: dbo $ $Date: 2001-02-20 14:05:25 $ + * last change: $Author: dbo $ $Date: 2001-02-27 12:45:17 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -99,52 +99,6 @@ using namespace ::com::sun::star::uno; -//----------------------------------------- -// The document handler, which is needed for the saxparser -// The Documenthandler for reading sax -//----------------------------------------- -class ErrorHandler : - public WeakImplHelper2< xml::sax::XEntityResolver , xml::sax::XErrorHandler > -{ -public: - ErrorHandler() - {} - -public: // Error handler - virtual void SAL_CALL error(const Any& aSAXParseException) throw (xml::sax::SAXException, RuntimeException) - { - OSL_ENSURE( 0, "Error !\n" ); - Exception exc; - OSL_VERIFY( aSAXParseException >>= exc ); - throw exc; - } - virtual void SAL_CALL fatalError(const Any& aSAXParseException) throw (xml::sax::SAXException, RuntimeException) - { - OSL_ENSURE( 0, "Fatal Error !\n" ); - Exception exc; - OSL_VERIFY( aSAXParseException >>= exc ); - throw exc; - } - virtual void SAL_CALL warning(const Any& aSAXParseException) throw (xml::sax::SAXException, RuntimeException) - { - OSL_ENSURE( 0, "Warning !\n" ); - Exception exc; - OSL_VERIFY( aSAXParseException >>= exc ); - throw exc; - } - - virtual xml::sax::InputSource SAL_CALL resolveEntity( - const OUString& sPublicId, - const OUString& sSystemId) - throw (xml::sax::SAXException,RuntimeException) - { - OSL_ENSURE( 0, "not impl !\n" ); - return xml::sax::InputSource(); - } -}; - - - Reference< lang::XMultiServiceFactory > createApplicationServiceManager() { Reference< lang::XMultiServiceFactory > xReturn = createServiceFactory(); @@ -255,87 +209,43 @@ Reference< lang::XMultiServiceFactory > createApplicationServiceManager() // ----------------------------------------------------------------------- -Reference< container::XNameContainer > importFile( - char const * fname, - Reference< lang::XMultiServiceFactory > const & xSMgr ) +Sequence< Reference< container::XNameContainer > > importFile( + char const * fname ) { - Reference< xml::sax::XParser > xParser( xSMgr->createInstance( - OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.sax.Parser") ) ), UNO_QUERY ); - if (xParser.is()) + // create the input stream + FILE *f = ::fopen( fname, "rb" ); + if (f) { - ErrorHandler * pHandler = new ErrorHandler(); - xParser->setErrorHandler( (xml::sax::XErrorHandler *)pHandler ); - xParser->setEntityResolver( (xml::sax::XEntityResolver *)pHandler ); - - Reference< container::XNameContainer > xModel( xSMgr->createInstance( - OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialogModel") ) ), UNO_QUERY ); - OSL_ASSERT( xModel.is() ); - xParser->setDocumentHandler( ::xmlscript::importDialogModel( xModel ) ); - - // create the input stream - FILE *f = ::fopen( fname, "rb" ); - if (f) - { - ::fseek( f, 0 ,SEEK_END ); - int nLength = ::ftell( f ); - ::fseek( f, 0, SEEK_SET ); + ::fseek( f, 0 ,SEEK_END ); + int nLength = ::ftell( f ); + ::fseek( f, 0, SEEK_SET ); - ByteSequence seqIn( nLength ); - ::fread( seqIn.getArray(), nLength, 1, f ); - ::fclose( f ); + Sequence< sal_Int8 > bytes( nLength ); + ::fread( bytes.getArray(), nLength, 1, f ); + ::fclose( f ); - xml::sax::InputSource source; - source.aInputStream = ::xmlscript::createInputStream( seqIn ); - source.sSystemId = OUString::createFromAscii( fname ); - - // start parsing - xParser->parseStream( source ); - return xModel; - } - else - { - OSL_ENSURE( 0, "### Cannot read file!\n" ); - } + Sequence< Reference< container::XNameContainer > > models; + ::xmlscript::importDialogModelsFromByteSequence( &models, bytes ); + return models; } else { - OSL_ENSURE( 0, "### couln't create sax-parser component\n" ); + throw Exception( OUString( RTL_CONSTASCII_USTRINGPARAM("### Cannot read file!") ), + Reference< XInterface >() ); } - return Reference< container::XNameContainer >(); } -bool exportToFile( +void exportToFile( char const * fname, - Reference< container::XNameContainer > const & xModel, - Reference< lang::XMultiServiceFactory > const & xSMgr ) + Sequence< Reference< container::XNameContainer > > const & models ) { - Reference< xml::sax::XExtendedDocumentHandler > xHandler( - xSMgr->createInstance( - OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.xml.sax.Writer") ) ), UNO_QUERY ); - OSL_ASSERT( xHandler.is() ); - if (! xHandler.is()) - { - OSL_ENSURE( 0, "### couln't create sax-writer component\n" ); - return false; - } - - ByteSequence seq; - Reference< io::XActiveDataSource > xSource( xHandler, UNO_QUERY ); - xSource->setOutputStream( ::xmlscript::createOutputStream( &seq ) ); - - xHandler->startDocument(); - - ::xmlscript::exportDialogModel( - xModel, - Reference< xml::sax::XExtendedDocumentHandler >::query( xHandler ) ); - - xHandler->endDocument(); + Sequence< sal_Int8 > bytes; + ::xmlscript::exportDialogModelsToByteSequence( &bytes, models ); FILE * f = ::fopen( fname, "w" ); - ::fwrite( seq.getConstArray(), 1 ,seq.getLength(), f ); + ::fwrite( bytes.getConstArray(), 1, bytes.getLength(), f ); ::fflush( f ); ::fclose( f ); - return true; } @@ -369,25 +279,29 @@ void MyApp::Main() Reference< awt::XToolkit> xToolkit( xMSF->createInstance( OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.ExtToolkit" ) ) ), UNO_QUERY ); - // import dialog + // import dialogs OString aParam1( OUStringToOString( OUString( GetCommandLineParam( 0 ) ), RTL_TEXTENCODING_ASCII_US ) ); - Reference< container::XNameContainer > xImport( importFile( aParam1.getStr(), xMSF ) ); + Sequence< Reference< container::XNameContainer > > models( importFile( aParam1.getStr() ) ); if (GetCommandLineParamCount() == 2) { // write and read again dialogs OString aParam2( OUStringToOString( OUString( GetCommandLineParam( 1 ) ), RTL_TEXTENCODING_ASCII_US ) ); - exportToFile( aParam2.getStr(), xImport, xMSF ); + exportToFile( aParam2.getStr(), models ); // re-import - xImport = importFile( aParam2.getStr(), xMSF ); + models = importFile( aParam2.getStr() ); } - Reference< awt::XControl > xDlg( xMSF->createInstance( - OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialog" ) ) ), UNO_QUERY ); - xDlg->setModel( Reference< awt::XControlModel >::query( xImport ) ); - xDlg->createPeer( xToolkit, NULL ); - Reference< awt::XDialog > xD( xDlg, UNO_QUERY ); - xD->execute(); + Reference< container::XNameContainer > const * pModels = models.getConstArray(); + for ( sal_Int32 nPos = 0; nPos < models.getLength(); ++nPos ) + { + Reference< awt::XControl > xDlg( xMSF->createInstance( + OUString(RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.awt.UnoControlDialog" ) ) ), UNO_QUERY ); + xDlg->setModel( Reference< awt::XControlModel >::query( pModels[ nPos ] ) ); + xDlg->createPeer( xToolkit, 0 ); + Reference< awt::XDialog > xD( xDlg, UNO_QUERY ); + xD->execute(); + } } catch (uno::Exception & rExc) { diff --git a/xmlscript/test/test.xml b/xmlscript/test/test.xml index f9c62c66198b..0071adeed71b 100644 --- a/xmlscript/test/test.xml +++ b/xmlscript/test/test.xml @@ -1,119 +1,69 @@ -<window xmlns="http://openoffice.org/2000/dialog" - xmlns:dlg="http://openoffice.org/2000/dialog" - - label="Test-Dialog" height="800" width="800"> - -<dlg:styles> - <dlg:style style-id="bla" background-color="0xffffff" dlg:text-color="255"/> - <dlg:style style-id="bla2" background-color="0xff00ff" dlg:text-color="255193873"/> - <dlg:style style-id="bla3" background-color="0" dlg:text-color="0xffffff" font-name="Arial" font-height="24"/> - <dlg:style style-id="no_border" border="none"/> -</dlg:styles> - - <dlg:bulletinboard xmlns:ns="http://www.fake"> - - <button dlg:id="button1" ns:value="hallo" dlg:left="50" ns:top="50" width="50" height="50" - style-id="bla3" - xmlns:ns="http://openoffice.org/2000/dialog"> - - <event listener-type="type" event-method="clicked" - script-type="basic" script-code="code" param="testi"/> - </button> - - <button dlg:id="button3" ns:value="hallo2" dlg:left="250" ns:top="50" width="50" height="50" - style-id="bla" - xmlns:ns="http://openoffice.org/2000/dialog"/> - - <checkbox id="check1" value="checked" left="50" top="150" width="100" height="20" - checked="true" - /> - <checkbox id="check2" value="dontknow" left="50" top="170" width="100" height="20" - tristate="true" - /> - <checkbox id="check3" value="tristate_checked" left="50" top="190" width="100" height="20" - checked="true" - tristate="true" - /> - - <menulist id="list1" multiselection="true" left="50" top="400" width="100" height="100"> - <menupopup> - <menuitem value="item1"/> - <menuitem value="item2" selected="true"/> - <menuitem value="item3" selected="true"/> - </menupopup> - </menulist> - - <menulist id="list2" left="250" top="400" width="100" height="100"> - <menupopup> - <menuitem value="item4"/> - <menuitem value="item5" selected="true"/> - <menuitem value="item6"/> - </menupopup> - </menulist> - - <combobox id="combo1" value="combotext1" left="250" top="150" width="50" height="50" - > - <menupopup> - <menuitem value="Citem1"/> - <menuitem value="Citem2"/> - </menupopup> - </combobox> - <combobox id="combo2" value="combotext2" left="310" top="150" width="50" height="50" - spin="true" - > - <menupopup> - <menuitem value="Citem3"/> - <menuitem value="Citem4"/> - </menupopup> - </combobox> - - <radiogroup> - <radio id="radio1" value="radio1" left="50" top="250" width="100" height="20" - /> - <radio id="radio2" value="checked" left="50" top="270" width="100" height="20" - checked="true" - /> - <radio id="radio3" value="unchecked" left="50" top="290" width="100" height="20" - checked="false" - /> - </radiogroup> - - <titledbox id="groupbox1" left="250" top="250" width="120" height="100"> - <title value="grouped"/> - <radio id="radio4" value="default radio" left="5" top="15" width="100" height="20" - /> - <radio id="radio5" value="dontknow" left="5" top="35" width="100" height="20" - tristate="true" - /> - <radio id="radio6" value="tristate_checked" left="5" top="55" width="100" height="20" - tristate="true" - checked="true" - /> - <radio id="radio7" value="checked" left="5" top="75" width="100" height="20" - checked="true" - /> - </titledbox> - - <text id="fixed1" left="50" top="520" width="180" height="20" - value="fixed text is here..." - multiline="true" - align="center"/> - - <textfield id="field1" left="250" top="520" width="50" height="40" - value="edit text here..." readonly="true" vscroll="true" - multiline="true" - align="right" style-id="no_border"/> - - <textfield id="field2" left="320" top="520" width="50" height="40" - value="hidden text" hscroll="true" - echochar="*" - align="left"/> - - <img id="image1" left="50" top="600" width="80" height="50" - src="../../test/w3c.jpg"/> - - <filecontrol id="file1" left="150" top="600" width="100" height="100" - value="f:\script\xmlscript\test\w3c.jpg"/> +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE dialogs SYSTEM "../dtd/dialog.dtd"> + +<dialogs xmlns="http://openoffice.org/2000/dialog"> + + <window xmlns:dlg="http://openoffice.org/2000/dialog" + label="Test-Dialog" height="800" width="800"> + + <dlg:styles> + <dlg:style style-id="bla" background-color="0xffffff" dlg:text-color="255"/> + <dlg:style style-id="bla2" background-color="0xff00ff" dlg:text-color="255193873"/> + <dlg:style style-id="bla3" background-color="0" dlg:text-color="0xffffff" font-name="Arial" font-height="24"/> + <dlg:style style-id="no_border" border="none"/> + </dlg:styles> + + <dlg:bulletinboard xmlns:ns="http://www.fake"> + <button dlg:id="button1" ns:value="hallo" dlg:left="50" ns:top="50" width="50" height="50" style-id="bla3" xmlns:ns="http://openoffice.org/2000/dialog"> + <event listener-type="type" event-method="clicked" script-type="basic" script-code="code" param="testi"/> + </button> + <button dlg:id="button3" ns:value="hallo2" dlg:left="250" ns:top="50" width="50" height="50" style-id="bla" xmlns:ns="http://openoffice.org/2000/dialog"/> + <checkbox id="check1" value="checked" left="50" top="150" width="100" height="20" checked="true"/> + <checkbox id="check2" value="dontknow" left="50" top="170" width="100" height="20" tristate="true"/> + <checkbox id="check3" value="tristate_checked" left="50" top="190" width="100" height="20" checked="true" tristate="true"/> + <menulist id="list1" multiselection="true" left="50" top="400" width="100" height="100"> + <menupopup> + <menuitem value="item1"/> + <menuitem value="item2" selected="true"/> + <menuitem value="item3" selected="true"/> + </menupopup> + </menulist> + <menulist id="list2" left="250" top="400" width="100" height="100"> + <menupopup> + <menuitem value="item4"/> + <menuitem value="item5" selected="true"/> + <menuitem value="item6"/> + </menupopup> + </menulist> + <combobox id="combo1" value="combotext1" left="250" top="150" width="50" height="50"> + <menupopup> + <menuitem value="Citem1"/> + <menuitem value="Citem2"/> + </menupopup> + </combobox> + <combobox id="combo2" value="combotext2" left="310" top="150" width="50" height="50" spin="true"> + <menupopup> + <menuitem value="Citem3"/> + <menuitem value="Citem4"/> + </menupopup> + </combobox> + <radiogroup> + <radio id="radio1" value="radio1" left="50" top="250" width="100" height="20"/> + <radio id="radio2" value="checked" left="50" top="270" width="100" height="20" checked="true"/> + <radio id="radio3" value="unchecked" left="50" top="290" width="100" height="20" checked="false"/> + </radiogroup> + <titledbox id="groupbox1" left="250" top="250" width="120" height="100"> + <title value="grouped"/> + <radio id="radio4" value="default radio" left="5" top="15" width="100" height="20"/> + <radio id="radio5" value="dontknow" left="5" top="35" width="100" height="20" tristate="true"/> + <radio id="radio6" value="tristate_checked" left="5" top="55" width="100" height="20" tristate="true" checked="true"/> + <radio id="radio7" value="checked" left="5" top="75" width="100" height="20" checked="true"/> + </titledbox> + <text id="fixed1" left="50" top="520" width="180" height="20" value="fixed text is here..." multiline="true" align="center"/> + <textfield id="field1" left="250" top="520" width="50" height="40" value="edit text here..." readonly="true" vscroll="true" multiline="true" align="right" style-id="no_border"/> + <textfield id="field2" left="320" top="520" width="50" height="40" value="hidden text" hscroll="true" echochar="*" align="left"/> + <img id="image1" left="50" top="600" width="80" height="50" src="../../test/w3c.jpg"/> + <filecontrol id="file1" left="150" top="600" width="100" height="100" value="f:\script\xmlscript\test\w3c.jpg"/> <!-- <currencyfield id="currency1" left="250" top="600" width="100" height="20" value="5.6075" value-min="0.5" value-max="10.0" value-step="0.1" @@ -123,19 +73,19 @@ value="5.6075" value-min="0.5" value-max="10.0" value-step="0.1" thousands-separator="true" /> --> + </dlg:bulletinboard> - <datefield id="datefield1" left="400" top="50" width="100" height="20" - date-format="short DDMMYY" - spin="true"/> + </window> - <timefield id="time1" left="400" top="150" width="100" height="20" - time-format="24h short" value-min="0" value-max="12" - strict-format="true" value="6" - spin="true"/> + <window xmlns:dlg2="http://openoffice.org/2000/dialog" + label="Test-Dialog2" height="100" width="200"> - <patternfield id="pattern1" left="400" top="200" width="100" height="20" - value="pattern" strict-format="true" readonly="true"/> + <dlg2:bulletinboard> + <dlg2:datefield id="datefield1" left="20" top="20" width="100" height="20" date-format="short DDMMYY" spin="true"/> + <timefield id="time1" left="20" top="50" width="100" height="20" time-format="24h short" value-min="0" value-max="12" strict-format="true" value="6" spin="true"/> + <patternfield id="pattern1" left="20" top="70" width="100" height="20" value="pattern" strict-format="true" readonly="true"/> + </dlg2:bulletinboard> - </dlg:bulletinboard> + </window> -</window> +</dialogs> |