1*b9b79128SAndrew Rist /************************************************************** 2*b9b79128SAndrew Rist * 3*b9b79128SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*b9b79128SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*b9b79128SAndrew Rist * distributed with this work for additional information 6*b9b79128SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*b9b79128SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*b9b79128SAndrew Rist * "License"); you may not use this file except in compliance 9*b9b79128SAndrew Rist * with the License. You may obtain a copy of the License at 10*b9b79128SAndrew Rist * 11*b9b79128SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*b9b79128SAndrew Rist * 13*b9b79128SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*b9b79128SAndrew Rist * software distributed under the License is distributed on an 15*b9b79128SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b9b79128SAndrew Rist * KIND, either express or implied. See the License for the 17*b9b79128SAndrew Rist * specific language governing permissions and limitations 18*b9b79128SAndrew Rist * under the License. 19*b9b79128SAndrew Rist * 20*b9b79128SAndrew Rist *************************************************************/ 21*b9b79128SAndrew Rist 22cdf0e10cSrcweir /* 23cdf0e10cSrcweir * To change this template, choose Tools | Templates 24cdf0e10cSrcweir * and open the template in the editor. 25cdf0e10cSrcweir */ 26cdf0e10cSrcweir 27cdf0e10cSrcweir package org.openoffice.xforms; 28cdf0e10cSrcweir 29cdf0e10cSrcweir import com.sun.star.beans.PropertyVetoException; 30cdf0e10cSrcweir import com.sun.star.beans.UnknownPropertyException; 31cdf0e10cSrcweir import com.sun.star.beans.XPropertySet; 32cdf0e10cSrcweir import com.sun.star.lang.IllegalArgumentException; 33cdf0e10cSrcweir import com.sun.star.lang.WrappedTargetException; 34cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime; 35cdf0e10cSrcweir import com.sun.star.xforms.XFormsUIHelper1; 36cdf0e10cSrcweir import com.sun.star.xforms.XModel; 37cdf0e10cSrcweir import com.sun.star.xml.dom.XNode; 38cdf0e10cSrcweir 39cdf0e10cSrcweir /** encapsulates an XForms model 40cdf0e10cSrcweir * 41cdf0e10cSrcweir * @author fs93730 42cdf0e10cSrcweir */ 43cdf0e10cSrcweir public class Model 44cdf0e10cSrcweir { 45cdf0e10cSrcweir private XModel m_model; 46cdf0e10cSrcweir private XPropertySet m_modelProps; 47cdf0e10cSrcweir private XFormsUIHelper1 m_helper; 48cdf0e10cSrcweir Model( Object _model )49cdf0e10cSrcweir protected Model( Object _model ) 50cdf0e10cSrcweir { 51cdf0e10cSrcweir m_model = (XModel)UnoRuntime.queryInterface( XModel.class, _model ); 52cdf0e10cSrcweir m_modelProps = (XPropertySet)UnoRuntime.queryInterface( XPropertySet.class, _model ); 53cdf0e10cSrcweir m_helper = (XFormsUIHelper1)UnoRuntime.queryInterface( XFormsUIHelper1.class, 54cdf0e10cSrcweir m_model ); 55cdf0e10cSrcweir } 56cdf0e10cSrcweir getXModel()57cdf0e10cSrcweir protected XModel getXModel() 58cdf0e10cSrcweir { 59cdf0e10cSrcweir return m_model; 60cdf0e10cSrcweir } 61cdf0e10cSrcweir getUIHelper()62cdf0e10cSrcweir protected XFormsUIHelper1 getUIHelper() 63cdf0e10cSrcweir { 64cdf0e10cSrcweir return m_helper; 65cdf0e10cSrcweir } 66cdf0e10cSrcweir getDefaultInstance()67cdf0e10cSrcweir public Instance getDefaultInstance() 68cdf0e10cSrcweir { 69cdf0e10cSrcweir return new Instance( this, m_model.getDefaultInstance() ); 70cdf0e10cSrcweir } 71cdf0e10cSrcweir 72cdf0e10cSrcweir /** creates a binding for the given DOM node 73cdf0e10cSrcweir * 74cdf0e10cSrcweir * @param _node 75cdf0e10cSrcweir * the DOM node to create a binding for 76cdf0e10cSrcweir * @param _dataType 77cdf0e10cSrcweir * the data type to be used for the binding 78cdf0e10cSrcweir * @return 79cdf0e10cSrcweir */ createBindingForNode( XNode _node, short _dataTypeClass )80cdf0e10cSrcweir public XPropertySet createBindingForNode( XNode _node, short _dataTypeClass ) 81cdf0e10cSrcweir { 82cdf0e10cSrcweir XPropertySet binding = m_helper.getBindingForNode(_node, true); 83cdf0e10cSrcweir try 84cdf0e10cSrcweir { 85cdf0e10cSrcweir String basicTypeName = (String)m_model.getDataTypeRepository().getBasicDataType( _dataTypeClass ). 86cdf0e10cSrcweir getPropertyValue( "Name" ); 87cdf0e10cSrcweir binding.setPropertyValue( "Type", basicTypeName ); 88cdf0e10cSrcweir } 89cdf0e10cSrcweir catch (Exception ex) 90cdf0e10cSrcweir { 91cdf0e10cSrcweir ex.printStackTrace(); 92cdf0e10cSrcweir } 93cdf0e10cSrcweir return binding; 94cdf0e10cSrcweir } 95cdf0e10cSrcweir setIsDocumentInternalData( boolean _internalData )96cdf0e10cSrcweir public void setIsDocumentInternalData( boolean _internalData ) 97cdf0e10cSrcweir { 98cdf0e10cSrcweir try 99cdf0e10cSrcweir { 100cdf0e10cSrcweir m_modelProps.setPropertyValue("ExternalData", new Boolean(!_internalData)); 101cdf0e10cSrcweir } 102cdf0e10cSrcweir catch (Exception ex) 103cdf0e10cSrcweir { 104cdf0e10cSrcweir ex.printStackTrace(); 105cdf0e10cSrcweir } 106cdf0e10cSrcweir } 107cdf0e10cSrcweir getIsDocumentInternalData()108cdf0e10cSrcweir public boolean getIsDocumentInternalData() 109cdf0e10cSrcweir { 110cdf0e10cSrcweir boolean isInternalData = false; 111cdf0e10cSrcweir try 112cdf0e10cSrcweir { 113cdf0e10cSrcweir isInternalData = !((Boolean)m_modelProps.getPropertyValue( "ExternalData" )).booleanValue(); 114cdf0e10cSrcweir } 115cdf0e10cSrcweir catch (Exception ex) 116cdf0e10cSrcweir { 117cdf0e10cSrcweir ex.printStackTrace(); 118cdf0e10cSrcweir } 119cdf0e10cSrcweir return isInternalData; 120cdf0e10cSrcweir } 121cdf0e10cSrcweir } 122