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