xref: /trunk/main/forms/qa/integration/xforms/Model.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.beans.PropertyVetoException;
30*cf2d78d1SDamjan Jovanovic import com.sun.star.beans.UnknownPropertyException;
31*cf2d78d1SDamjan Jovanovic import com.sun.star.beans.XPropertySet;
32*cf2d78d1SDamjan Jovanovic import com.sun.star.lang.IllegalArgumentException;
33*cf2d78d1SDamjan Jovanovic import com.sun.star.lang.WrappedTargetException;
34*cf2d78d1SDamjan Jovanovic import com.sun.star.uno.UnoRuntime;
35*cf2d78d1SDamjan Jovanovic import com.sun.star.xforms.XFormsUIHelper1;
36*cf2d78d1SDamjan Jovanovic import com.sun.star.xforms.XModel;
37*cf2d78d1SDamjan Jovanovic import com.sun.star.xml.dom.XNode;
38*cf2d78d1SDamjan Jovanovic 
39*cf2d78d1SDamjan Jovanovic /** encapsulates an XForms model
40*cf2d78d1SDamjan Jovanovic  *
41*cf2d78d1SDamjan Jovanovic  * @author fs93730
42*cf2d78d1SDamjan Jovanovic  */
43*cf2d78d1SDamjan Jovanovic public class Model
44*cf2d78d1SDamjan Jovanovic {
45*cf2d78d1SDamjan Jovanovic     private XModel          m_model;
46*cf2d78d1SDamjan Jovanovic     private XPropertySet    m_modelProps;
47*cf2d78d1SDamjan Jovanovic     private XFormsUIHelper1 m_helper;
48*cf2d78d1SDamjan Jovanovic 
Model( Object _model )49*cf2d78d1SDamjan Jovanovic     protected Model( Object _model )
50*cf2d78d1SDamjan Jovanovic     {
51*cf2d78d1SDamjan Jovanovic         m_model = (XModel)UnoRuntime.queryInterface( XModel.class, _model );
52*cf2d78d1SDamjan Jovanovic         m_modelProps = (XPropertySet)UnoRuntime.queryInterface( XPropertySet.class, _model );
53*cf2d78d1SDamjan Jovanovic         m_helper = (XFormsUIHelper1)UnoRuntime.queryInterface( XFormsUIHelper1.class,
54*cf2d78d1SDamjan Jovanovic             m_model );
55*cf2d78d1SDamjan Jovanovic     }
56*cf2d78d1SDamjan Jovanovic 
getXModel()57*cf2d78d1SDamjan Jovanovic     protected XModel getXModel()
58*cf2d78d1SDamjan Jovanovic     {
59*cf2d78d1SDamjan Jovanovic         return m_model;
60*cf2d78d1SDamjan Jovanovic     }
61*cf2d78d1SDamjan Jovanovic 
getUIHelper()62*cf2d78d1SDamjan Jovanovic     protected XFormsUIHelper1 getUIHelper()
63*cf2d78d1SDamjan Jovanovic     {
64*cf2d78d1SDamjan Jovanovic         return m_helper;
65*cf2d78d1SDamjan Jovanovic     }
66*cf2d78d1SDamjan Jovanovic 
getDefaultInstance()67*cf2d78d1SDamjan Jovanovic     public Instance getDefaultInstance()
68*cf2d78d1SDamjan Jovanovic     {
69*cf2d78d1SDamjan Jovanovic         return new Instance( this, m_model.getDefaultInstance() );
70*cf2d78d1SDamjan Jovanovic     }
71*cf2d78d1SDamjan Jovanovic 
72*cf2d78d1SDamjan Jovanovic     /** creates a binding for the given DOM node
73*cf2d78d1SDamjan Jovanovic      *
74*cf2d78d1SDamjan Jovanovic      * @param _node
75*cf2d78d1SDamjan Jovanovic      *      the DOM node to create a binding for
76*cf2d78d1SDamjan Jovanovic      * @param _dataType
77*cf2d78d1SDamjan Jovanovic      *      the data type to be used for the binding
78*cf2d78d1SDamjan Jovanovic      * @return
79*cf2d78d1SDamjan Jovanovic      */
createBindingForNode( XNode _node, short _dataTypeClass )80*cf2d78d1SDamjan Jovanovic     public XPropertySet createBindingForNode( XNode _node, short _dataTypeClass )
81*cf2d78d1SDamjan Jovanovic     {
82*cf2d78d1SDamjan Jovanovic         XPropertySet binding = m_helper.getBindingForNode(_node, true);
83*cf2d78d1SDamjan Jovanovic         try
84*cf2d78d1SDamjan Jovanovic         {
85*cf2d78d1SDamjan Jovanovic             String basicTypeName = (String)m_model.getDataTypeRepository().getBasicDataType( _dataTypeClass ).
86*cf2d78d1SDamjan Jovanovic                 getPropertyValue( "Name" );
87*cf2d78d1SDamjan Jovanovic             binding.setPropertyValue( "Type", basicTypeName );
88*cf2d78d1SDamjan Jovanovic         }
89*cf2d78d1SDamjan Jovanovic         catch (Exception ex)
90*cf2d78d1SDamjan Jovanovic         {
91*cf2d78d1SDamjan Jovanovic             ex.printStackTrace();
92*cf2d78d1SDamjan Jovanovic         }
93*cf2d78d1SDamjan Jovanovic         return binding;
94*cf2d78d1SDamjan Jovanovic     }
95*cf2d78d1SDamjan Jovanovic 
setIsDocumentInternalData( boolean _internalData )96*cf2d78d1SDamjan Jovanovic     public void setIsDocumentInternalData( boolean _internalData )
97*cf2d78d1SDamjan Jovanovic     {
98*cf2d78d1SDamjan Jovanovic         try
99*cf2d78d1SDamjan Jovanovic         {
100*cf2d78d1SDamjan Jovanovic             m_modelProps.setPropertyValue("ExternalData", new Boolean(!_internalData));
101*cf2d78d1SDamjan Jovanovic         }
102*cf2d78d1SDamjan Jovanovic         catch (Exception ex)
103*cf2d78d1SDamjan Jovanovic         {
104*cf2d78d1SDamjan Jovanovic             ex.printStackTrace();
105*cf2d78d1SDamjan Jovanovic         }
106*cf2d78d1SDamjan Jovanovic     }
107*cf2d78d1SDamjan Jovanovic 
getIsDocumentInternalData()108*cf2d78d1SDamjan Jovanovic     public boolean getIsDocumentInternalData()
109*cf2d78d1SDamjan Jovanovic     {
110*cf2d78d1SDamjan Jovanovic         boolean isInternalData = false;
111*cf2d78d1SDamjan Jovanovic         try
112*cf2d78d1SDamjan Jovanovic         {
113*cf2d78d1SDamjan Jovanovic             isInternalData = !((Boolean)m_modelProps.getPropertyValue( "ExternalData" )).booleanValue();
114*cf2d78d1SDamjan Jovanovic         }
115*cf2d78d1SDamjan Jovanovic         catch (Exception ex)
116*cf2d78d1SDamjan Jovanovic         {
117*cf2d78d1SDamjan Jovanovic             ex.printStackTrace();
118*cf2d78d1SDamjan Jovanovic         }
119*cf2d78d1SDamjan Jovanovic         return isInternalData;
120*cf2d78d1SDamjan Jovanovic     }
121*cf2d78d1SDamjan Jovanovic }
122