| /************************************************************** |
| * |
| * 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_xmloff.hxx" |
| #include "XMLScriptContextFactory.hxx" |
| #include <xmloff/XMLEventsImportContext.hxx> |
| #include <tools/debug.hxx> |
| #include <xmloff/xmlimp.hxx> |
| #include <xmloff/nmspmap.hxx> |
| #include "xmloff/xmlnmspe.hxx" |
| #include <xmloff/xmltoken.hxx> |
| |
| |
| using namespace ::xmloff::token; |
| |
| using ::rtl::OUString; |
| using ::com::sun::star::xml::sax::XAttributeList; |
| using ::com::sun::star::beans::PropertyValue; |
| using ::com::sun::star::uno::Reference; |
| using ::com::sun::star::uno::Sequence; |
| using ::com::sun::star::uno::Any; |
| |
| XMLScriptContextFactory::XMLScriptContextFactory() : |
| sEventType(RTL_CONSTASCII_USTRINGPARAM("EventType")), |
| sScript(RTL_CONSTASCII_USTRINGPARAM("Script")), |
| sURL(RTL_CONSTASCII_USTRINGPARAM("Script")) |
| { |
| } |
| |
| XMLScriptContextFactory::~XMLScriptContextFactory() |
| { |
| } |
| |
| SvXMLImportContext * XMLScriptContextFactory::CreateContext |
| (SvXMLImport & rImport, |
| sal_uInt16 p_nPrefix, |
| const OUString & rLocalName, |
| const Reference<XAttributeList> & xAttrList, |
| XMLEventsImportContext * rEvents, |
| const OUString & rApiEventName, |
| const OUString & /*rApiLanguage*/) |
| { |
| OUString sURLVal; |
| |
| sal_Int16 nCount = xAttrList->getLength(); |
| for (sal_Int16 nAttr = 0; nAttr < nCount; nAttr++) |
| { |
| OUString sLocalName; |
| sal_uInt16 nPrefix = rImport.GetNamespaceMap(). |
| GetKeyByAttrName(xAttrList->getNameByIndex(nAttr), &sLocalName); |
| |
| if (XML_NAMESPACE_XLINK == nPrefix) |
| { |
| if (IsXMLToken(sLocalName, XML_HREF)) |
| sURLVal = xAttrList->getValueByIndex(nAttr); |
| // else: ignore |
| } |
| // else ignore |
| } |
| |
| Sequence<PropertyValue> aValues(2); |
| |
| // EventType |
| aValues[0].Name = sEventType; |
| aValues[0].Value <<= sScript; |
| |
| // URL |
| aValues[1].Name = sURL; |
| aValues[1].Value <<= sURLVal; |
| |
| // add values for event now |
| rEvents->AddEventValues(rApiEventName, aValues); |
| |
| // return dummy context |
| return new SvXMLImportContext(rImport, p_nPrefix, rLocalName); |
| } |
| |