1b9b79128SAndrew Rist /************************************************************** 2b9b79128SAndrew Rist * 3b9b79128SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4b9b79128SAndrew Rist * or more contributor license agreements. See the NOTICE file 5b9b79128SAndrew Rist * distributed with this work for additional information 6b9b79128SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7b9b79128SAndrew Rist * to you under the Apache License, Version 2.0 (the 8b9b79128SAndrew Rist * "License"); you may not use this file except in compliance 9b9b79128SAndrew Rist * with the License. You may obtain a copy of the License at 10b9b79128SAndrew Rist * 11b9b79128SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12b9b79128SAndrew Rist * 13b9b79128SAndrew Rist * Unless required by applicable law or agreed to in writing, 14b9b79128SAndrew Rist * software distributed under the License is distributed on an 15b9b79128SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16b9b79128SAndrew Rist * KIND, either express or implied. See the License for the 17b9b79128SAndrew Rist * specific language governing permissions and limitations 18b9b79128SAndrew Rist * under the License. 19b9b79128SAndrew Rist * 20b9b79128SAndrew Rist *************************************************************/ 21b9b79128SAndrew Rist 22cdf0e10cSrcweir /* 23cdf0e10cSrcweir * To change this template, choose Tools | Templates 24cdf0e10cSrcweir * and open the template in the editor. 25cdf0e10cSrcweir */ 26cdf0e10cSrcweir 27*cf2d78d1SDamjan Jovanovic package integration.xforms; 28cdf0e10cSrcweir 29cdf0e10cSrcweir import com.sun.star.container.NoSuchElementException; 30cdf0e10cSrcweir import com.sun.star.container.XNameContainer; 31cdf0e10cSrcweir import com.sun.star.lang.WrappedTargetException; 32cdf0e10cSrcweir import com.sun.star.lang.XComponent; 33cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory; 34cdf0e10cSrcweir import com.sun.star.uno.Exception; 35cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 36cdf0e10cSrcweir import com.sun.star.xforms.XFormsSupplier; 37cdf0e10cSrcweir import com.sun.star.xforms.XFormsUIHelper1; 38cdf0e10cSrcweir import com.sun.star.xforms.XModel; 39cdf0e10cSrcweir import integration.forms.DocumentType; 40cdf0e10cSrcweir 41cdf0e10cSrcweir /** 42cdf0e10cSrcweir * 43cdf0e10cSrcweir * @author fs93730 44cdf0e10cSrcweir */ 45cdf0e10cSrcweir public class XMLDocument extends integration.forms.DocumentHelper 46cdf0e10cSrcweir { 47cdf0e10cSrcweir private XFormsSupplier m_formsSupplier; 48cdf0e10cSrcweir private XNameContainer m_forms; 49cdf0e10cSrcweir 50cdf0e10cSrcweir /* ------------------------------------------------------------------ */ XMLDocument( XMultiServiceFactory _orb )51cdf0e10cSrcweir public XMLDocument( XMultiServiceFactory _orb ) throws Exception 52cdf0e10cSrcweir { 53cdf0e10cSrcweir super( _orb, implLoadAsComponent( _orb, getDocumentFactoryURL( DocumentType.XMLFORM ) ) ); 54cdf0e10cSrcweir impl_initialize( getDocument() ); 55cdf0e10cSrcweir } 56cdf0e10cSrcweir 57cdf0e10cSrcweir /* ------------------------------------------------------------------ */ XMLDocument( XMultiServiceFactory _orb, XComponent _document )58cdf0e10cSrcweir public XMLDocument( XMultiServiceFactory _orb, XComponent _document ) 59cdf0e10cSrcweir { 60cdf0e10cSrcweir super( _orb, _document ); 61cdf0e10cSrcweir impl_initialize( _document ); 62cdf0e10cSrcweir } 63cdf0e10cSrcweir 64cdf0e10cSrcweir /* ------------------------------------------------------------------ */ impl_initialize( XComponent _document )65cdf0e10cSrcweir private void impl_initialize( XComponent _document ) 66cdf0e10cSrcweir { 67cdf0e10cSrcweir m_formsSupplier = (XFormsSupplier)UnoRuntime.queryInterface( XFormsSupplier.class, 68cdf0e10cSrcweir _document ); 69cdf0e10cSrcweir 70cdf0e10cSrcweir if ( m_formsSupplier == null ) 71cdf0e10cSrcweir throw new IllegalArgumentException(); 72cdf0e10cSrcweir 73cdf0e10cSrcweir m_forms = m_formsSupplier.getXForms(); 74cdf0e10cSrcweir } 75cdf0e10cSrcweir 76cdf0e10cSrcweir /* ------------------------------------------------------------------ */ getXFormModelNames()77cdf0e10cSrcweir public String[] getXFormModelNames() 78cdf0e10cSrcweir { 79cdf0e10cSrcweir return m_forms.getElementNames(); 80cdf0e10cSrcweir } 81cdf0e10cSrcweir 82cdf0e10cSrcweir /* ------------------------------------------------------------------ */ getXFormModel( String _modelName )83cdf0e10cSrcweir public Model getXFormModel( String _modelName ) throws NoSuchElementException 84cdf0e10cSrcweir { 85cdf0e10cSrcweir try 86cdf0e10cSrcweir { 87cdf0e10cSrcweir return new Model(m_forms.getByName(_modelName)); 88cdf0e10cSrcweir } 89cdf0e10cSrcweir catch (WrappedTargetException ex) 90cdf0e10cSrcweir { 91cdf0e10cSrcweir throw new NoSuchElementException(); 92cdf0e10cSrcweir } 93cdf0e10cSrcweir } 94cdf0e10cSrcweir 95cdf0e10cSrcweir /* ------------------------------------------------------------------ */ addXFormModel( String _modelName )96cdf0e10cSrcweir public Model addXFormModel( String _modelName ) 97cdf0e10cSrcweir { 98cdf0e10cSrcweir XModel newModel = null; 99cdf0e10cSrcweir try 100cdf0e10cSrcweir { 101cdf0e10cSrcweir newModel = (XModel) UnoRuntime.queryInterface( XModel.class, 102cdf0e10cSrcweir getOrb().createInstance( "com.sun.star.xforms.Model" ) ); 103cdf0e10cSrcweir newModel.setID(_modelName); 104cdf0e10cSrcweir XFormsUIHelper1 modelHelper = (XFormsUIHelper1) UnoRuntime.queryInterface( 105cdf0e10cSrcweir XFormsUIHelper1.class, newModel ); 106cdf0e10cSrcweir modelHelper.newInstance( "Instance 1", new String(), true ); 107cdf0e10cSrcweir newModel.initialize(); 108cdf0e10cSrcweir 109cdf0e10cSrcweir m_forms.insertByName(_modelName, newModel); 110cdf0e10cSrcweir } 111cdf0e10cSrcweir catch (Exception ex) 112cdf0e10cSrcweir { 113cdf0e10cSrcweir ex.printStackTrace(); 114cdf0e10cSrcweir } 115cdf0e10cSrcweir return new Model( newModel ); 116cdf0e10cSrcweir } 117cdf0e10cSrcweir } 118