1ef39d40dSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3ef39d40dSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4ef39d40dSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5ef39d40dSAndrew Rist  * distributed with this work for additional information
6ef39d40dSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7ef39d40dSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8ef39d40dSAndrew Rist  * "License"); you may not use this file except in compliance
9ef39d40dSAndrew Rist  * with the License.  You may obtain a copy of the License at
10ef39d40dSAndrew Rist  *
11ef39d40dSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12ef39d40dSAndrew Rist  *
13ef39d40dSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14ef39d40dSAndrew Rist  * software distributed under the License is distributed on an
15ef39d40dSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16ef39d40dSAndrew Rist  * KIND, either express or implied.  See the License for the
17ef39d40dSAndrew Rist  * specific language governing permissions and limitations
18ef39d40dSAndrew Rist  * under the License.
19ef39d40dSAndrew Rist  *
20ef39d40dSAndrew Rist  *************************************************************/
21ef39d40dSAndrew Rist 
22ef39d40dSAndrew Rist 
23cdf0e10cSrcweir package mod._forms;
24cdf0e10cSrcweir 
25cdf0e10cSrcweir import java.io.PrintWriter;
26cdf0e10cSrcweir import java.util.Comparator;
27cdf0e10cSrcweir 
28cdf0e10cSrcweir import lib.StatusException;
29cdf0e10cSrcweir import lib.TestCase;
30cdf0e10cSrcweir import lib.TestEnvironment;
31cdf0e10cSrcweir import lib.TestParameters;
32cdf0e10cSrcweir import util.FormTools;
33cdf0e10cSrcweir import util.SOfficeFactory;
34cdf0e10cSrcweir 
35cdf0e10cSrcweir import com.sun.star.beans.XPropertySet;
36cdf0e10cSrcweir import com.sun.star.container.XNameContainer;
37cdf0e10cSrcweir import com.sun.star.container.XNamed;
38cdf0e10cSrcweir import com.sun.star.drawing.XControlShape;
39cdf0e10cSrcweir import com.sun.star.form.XGridColumnFactory;
40cdf0e10cSrcweir import com.sun.star.lang.XComponent;
41cdf0e10cSrcweir import com.sun.star.lang.XMultiServiceFactory;
42cdf0e10cSrcweir import com.sun.star.uno.UnoRuntime;
43cdf0e10cSrcweir import com.sun.star.uno.XInterface;
44cdf0e10cSrcweir import com.sun.star.util.XCloseable;
45cdf0e10cSrcweir 
46cdf0e10cSrcweir 
47cdf0e10cSrcweir /**
48cdf0e10cSrcweir * Test for object which is represented by service
49cdf0e10cSrcweir * <code>com.sun.star.form.component.GridControl</code>. <p>
50cdf0e10cSrcweir * Object implements the following interfaces :
51cdf0e10cSrcweir * <ul>
52cdf0e10cSrcweir *  <li> <code>com::sun::star::io::XPersistObject</code></li>
53cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XNameReplace</code></li>
54cdf0e10cSrcweir *  <li> <code>com::sun::star::form::XReset</code></li>
55cdf0e10cSrcweir *  <li> <code>com::sun::star::script::XEventAttacherManager</code></li>
56cdf0e10cSrcweir *  <li> <code>com::sun::star::form::FormComponent</code></li>
57cdf0e10cSrcweir *  <li> <code>com::sun::star::beans::XFastPropertySet</code></li>
58cdf0e10cSrcweir *  <li> <code>com::sun::star::beans::XMultiPropertySet</code></li>
59cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XElementAccess</code></li>
60cdf0e10cSrcweir *  <li> <code>com::sun::star::form::component::GridControl</code></li>
61cdf0e10cSrcweir *  <li> <code>com::sun::star::view::XSelectionSupplier</code></li>
62cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XEnumerationAccess</code></li>
63cdf0e10cSrcweir *  <li> <code>com::sun::star::beans::XPropertyState</code></li>
64cdf0e10cSrcweir *  <li> <code>com::sun::star::form::FormControlModel</code></li>
65cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XIndexReplace</code></li>
66cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XNamed</code></li>
67cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XIndexAccess</code></li>
68cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XNameContainer</code></li>
69cdf0e10cSrcweir *  <li> <code>com::sun::star::form::XGridColumnFactory</code></li>
70cdf0e10cSrcweir *  <li> <code>com::sun::star::lang::XComponent</code></li>
71cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XNameAccess</code></li>
72cdf0e10cSrcweir *  <li> <code>com::sun::star::beans::XPropertyAccess</code></li>
73cdf0e10cSrcweir *  <li> <code>com::sun::star::beans::XPropertyContainer</code></li>
74cdf0e10cSrcweir *  <li> <code>com::sun::star::beans::XPropertySet</code></li>
75cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XIndexContainer</code></li>
76cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XChild</code></li>
77cdf0e10cSrcweir *  <li> <code>com::sun::star::container::XContainer</code></li>
78cdf0e10cSrcweir * </ul> <p>
79cdf0e10cSrcweir * This object test <b> is NOT </b> designed to be run in several
80cdf0e10cSrcweir * threads concurently.
81cdf0e10cSrcweir *
82cdf0e10cSrcweir * @see com.sun.star.io.XPersistObject
83cdf0e10cSrcweir * @see com.sun.star.container.XNameReplace
84cdf0e10cSrcweir * @see com.sun.star.form.XReset
85cdf0e10cSrcweir * @see com.sun.star.script.XEventAttacherManager
86cdf0e10cSrcweir * @see com.sun.star.form.FormComponent
87cdf0e10cSrcweir * @see com.sun.star.beans.XFastPropertySet
88cdf0e10cSrcweir * @see com.sun.star.beans.XMultiPropertySet
89cdf0e10cSrcweir * @see com.sun.star.container.XElementAccess
90cdf0e10cSrcweir * @see com.sun.star.form.component.GridControl
91cdf0e10cSrcweir * @see com.sun.star.view.XSelectionSupplier
92cdf0e10cSrcweir * @see com.sun.star.container.XEnumerationAccess
93cdf0e10cSrcweir * @see com.sun.star.beans.XPropertyState
945496b966SPedro Giffuni * @see com.sun.star.form
95cdf0e10cSrcweir * @see com.sun.star.container.XIndexReplace
96cdf0e10cSrcweir * @see com.sun.star.container.XNamed
97cdf0e10cSrcweir * @see com.sun.star.container.XIndexAccess
98cdf0e10cSrcweir * @see com.sun.star.container.XNameContainer
99cdf0e10cSrcweir * @see com.sun.star.form.XGridColumnFactory
100cdf0e10cSrcweir * @see com.sun.star.lang.XComponent
101cdf0e10cSrcweir * @see com.sun.star.container.XNameAccess
102cdf0e10cSrcweir * @see com.sun.star.beans.XPropertyAccess
103cdf0e10cSrcweir * @see com.sun.star.beans.XPropertyContainer
104cdf0e10cSrcweir * @see com.sun.star.beans.XPropertySet
105cdf0e10cSrcweir * @see com.sun.star.container.XIndexContainer
106cdf0e10cSrcweir * @see com.sun.star.container.XChild
107cdf0e10cSrcweir * @see com.sun.star.container.XContainer
108cdf0e10cSrcweir * @see ifc.io._XPersistObject
109cdf0e10cSrcweir * @see ifc.container._XNameReplace
110cdf0e10cSrcweir * @see ifc.form._XReset
111cdf0e10cSrcweir * @see ifc.script._XEventAttacherManager
112cdf0e10cSrcweir * @see ifc.form._FormComponent
113cdf0e10cSrcweir * @see ifc.beans._XFastPropertySet
114cdf0e10cSrcweir * @see ifc.beans._XMultiPropertySet
115cdf0e10cSrcweir * @see ifc.container._XElementAccess
116cdf0e10cSrcweir * @see ifc.form.component._GridControl
117cdf0e10cSrcweir * @see ifc.view._XSelectionSupplier
118cdf0e10cSrcweir * @see ifc.container._XEnumerationAccess
119cdf0e10cSrcweir * @see ifc.beans._XPropertyState
120cdf0e10cSrcweir * @see ifc.form._FormControlModel
121cdf0e10cSrcweir * @see ifc.container._XIndexReplace
122cdf0e10cSrcweir * @see ifc.container._XNamed
123cdf0e10cSrcweir * @see ifc.container._XIndexAccess
124cdf0e10cSrcweir * @see ifc.container._XNameContainer
125cdf0e10cSrcweir * @see ifc.form._XGridColumnFactory
126cdf0e10cSrcweir * @see ifc.lang._XComponent
127cdf0e10cSrcweir * @see ifc.container._XNameAccess
128cdf0e10cSrcweir * @see ifc.beans._XPropertySet
129cdf0e10cSrcweir * @see ifc.container._XIndexContainer
130cdf0e10cSrcweir * @see ifc.container._XChild
131cdf0e10cSrcweir * @see ifc.container._XContainer
132cdf0e10cSrcweir */
133cdf0e10cSrcweir 
134cdf0e10cSrcweir public class OGridControlModel extends GenericModelTest {
135cdf0e10cSrcweir 
136cdf0e10cSrcweir     /**
137cdf0e10cSrcweir      * Set some member variable of the super class <CODE>GenericModelTest</CODE>:
138cdf0e10cSrcweir      * <pre>
139cdf0e10cSrcweir      *    super.m_kindOfControl="CommandButton";
140cdf0e10cSrcweir      *    super.m_ObjectName = "com.sun.star.form.component.CommandButton";
141cdf0e10cSrcweir      *    super.m_LCShape_Type = "CommandButton";
142cdf0e10cSrcweir      * </pre>
143cdf0e10cSrcweir      * Then <CODE>super.initialize()</CODE> was called.
144cdf0e10cSrcweir      * @param tParam the test parameter
145cdf0e10cSrcweir      * @param log the log writer
146cdf0e10cSrcweir      */
147cdf0e10cSrcweir 
initialize(TestParameters tParam, PrintWriter log)148cdf0e10cSrcweir     protected void initialize(TestParameters tParam, PrintWriter log) {
149cdf0e10cSrcweir 
150cdf0e10cSrcweir         super.initialize(tParam, log);
151cdf0e10cSrcweir 
152cdf0e10cSrcweir         super.m_kindOfControl="GridControl";
153cdf0e10cSrcweir 
154cdf0e10cSrcweir         super.m_ObjectName = "stardiv.one.form.component.Grid";
155cdf0e10cSrcweir 
156cdf0e10cSrcweir         super.m_LCShape_Type = "GridControl";
157cdf0e10cSrcweir 
158cdf0e10cSrcweir     }
159cdf0e10cSrcweir     /**
160cdf0e10cSrcweir      * calls <CODE>cleanup()</CODE> from it's super class
161cdf0e10cSrcweir      * @param tParam the test parameter
162cdf0e10cSrcweir      * @param log the log writer
163cdf0e10cSrcweir      */
cleanup(TestParameters tParam, PrintWriter log)164cdf0e10cSrcweir     protected void cleanup(TestParameters tParam, PrintWriter log) {
165cdf0e10cSrcweir         super.cleanup(tParam, log);
166cdf0e10cSrcweir     }
167cdf0e10cSrcweir 
168cdf0e10cSrcweir 
169cdf0e10cSrcweir     /**
170cdf0e10cSrcweir      * calls <CODE>createTestEnvironment()</CODE> from it's super class
171cdf0e10cSrcweir      * @param Param the test parameter
172cdf0e10cSrcweir      * @param log the log writer
173cdf0e10cSrcweir      * @return lib.TestEnvironment
174cdf0e10cSrcweir      */
createTestEnvironment(TestParameters Param, PrintWriter log)175cdf0e10cSrcweir     protected synchronized TestEnvironment createTestEnvironment(TestParameters Param,
176cdf0e10cSrcweir             PrintWriter log) {
177cdf0e10cSrcweir         TestEnvironment tEnv = super.createTestEnvironment(Param, log);
178cdf0e10cSrcweir 
179cdf0e10cSrcweir         XInterface oObj = tEnv.getTestObject();
180cdf0e10cSrcweir 
181cdf0e10cSrcweir         XPropertySet aControl = null;
182cdf0e10cSrcweir         XPropertySet aControl2 = null;
183cdf0e10cSrcweir         XPropertySet aControl3 = null;
184cdf0e10cSrcweir         XPropertySet aControl4 = null;
185cdf0e10cSrcweir         XPropertySet aControl5 = null;
186cdf0e10cSrcweir 
187cdf0e10cSrcweir         try {
188cdf0e10cSrcweir             XGridColumnFactory columns = (XGridColumnFactory) UnoRuntime.queryInterface(
189cdf0e10cSrcweir                               XGridColumnFactory.class, oObj);
190cdf0e10cSrcweir             aControl = columns.createColumn("TextField");
191cdf0e10cSrcweir             aControl2 = columns.createColumn("DateField");
192cdf0e10cSrcweir             aControl3 = columns.createColumn("TextField");
193cdf0e10cSrcweir             aControl4 = columns.createColumn("TextField");
194cdf0e10cSrcweir             aControl5 = columns.createColumn("TextField");
195cdf0e10cSrcweir         } catch (com.sun.star.lang.IllegalArgumentException e) {
196*30acf5e8Spfg             // Some exception occured.FAILED
197cdf0e10cSrcweir             log.println("!!! Couldn't create instance : " + e);
198cdf0e10cSrcweir             throw new StatusException("Can't create column instances.", e);
199cdf0e10cSrcweir         }
200cdf0e10cSrcweir 
201cdf0e10cSrcweir         XNameContainer aContainer = (XNameContainer) UnoRuntime.queryInterface(
202cdf0e10cSrcweir                                             XNameContainer.class, oObj);
203cdf0e10cSrcweir 
204cdf0e10cSrcweir         try {
205cdf0e10cSrcweir             aContainer.insertByName("First", aControl);
206cdf0e10cSrcweir             aContainer.insertByName("Second", aControl2);
207cdf0e10cSrcweir         } catch (com.sun.star.lang.WrappedTargetException e) {
208cdf0e10cSrcweir             log.println("!!! Could't insert column Instance");
209cdf0e10cSrcweir             e.printStackTrace(log);
210cdf0e10cSrcweir             throw new StatusException("Can't insert columns", e);
211cdf0e10cSrcweir         } catch (com.sun.star.lang.IllegalArgumentException e) {
212cdf0e10cSrcweir             log.println("!!! Could't insert column Instance");
213cdf0e10cSrcweir             e.printStackTrace(log);
214cdf0e10cSrcweir             throw new StatusException("Can't insert columns", e);
215cdf0e10cSrcweir         } catch (com.sun.star.container.ElementExistException e) {
216cdf0e10cSrcweir             log.println("!!! Could't insert column Instance");
217cdf0e10cSrcweir             e.printStackTrace(log);
218cdf0e10cSrcweir             throw new StatusException("Can't insert columns", e);
219cdf0e10cSrcweir         }
220cdf0e10cSrcweir 
221cdf0e10cSrcweir         //Relations for XSelectionSupplier
222cdf0e10cSrcweir         tEnv.addObjRelation("Selections", new Object[] { aControl, aControl2 });
223cdf0e10cSrcweir 
224cdf0e10cSrcweir         // adding relation for XNameContainer
225cdf0e10cSrcweir         tEnv.addObjRelation("XNameContainer.AllowDuplicateNames", new Object());
226cdf0e10cSrcweir 
227cdf0e10cSrcweir 
228cdf0e10cSrcweir         // adding relation for XContainer
229cdf0e10cSrcweir         tEnv.addObjRelation("INSTANCE", aControl3);
230cdf0e10cSrcweir         tEnv.addObjRelation("INSTANCE1", aControl4);
231cdf0e10cSrcweir         tEnv.addObjRelation("INSTANCE2", aControl5);
232cdf0e10cSrcweir 
233cdf0e10cSrcweir 
234cdf0e10cSrcweir         tEnv.addObjRelation("Comparer",
235cdf0e10cSrcweir                             new Comparator() {
236cdf0e10cSrcweir             public int compare(Object o1, Object o2) {
237cdf0e10cSrcweir                 XNamed named1 = (XNamed) UnoRuntime.queryInterface(
238cdf0e10cSrcweir                                         XNamed.class, o1);
239cdf0e10cSrcweir                 XNamed named2 = (XNamed) UnoRuntime.queryInterface(
240cdf0e10cSrcweir                                         XNamed.class, o2);
241cdf0e10cSrcweir 
242cdf0e10cSrcweir                 if (named1.getName().equals(named2.getName())) {
243cdf0e10cSrcweir                     return 0;
244cdf0e10cSrcweir                 }
245cdf0e10cSrcweir 
246cdf0e10cSrcweir                 return -1;
247cdf0e10cSrcweir             }
248cdf0e10cSrcweir 
249cdf0e10cSrcweir             public boolean equals(Object obj) {
250cdf0e10cSrcweir                 return compare(this, obj) == 0;
251cdf0e10cSrcweir             }
252cdf0e10cSrcweir         });
253cdf0e10cSrcweir 
254cdf0e10cSrcweir 
255cdf0e10cSrcweir //        HashSet exclude = new HashSet();
256cdf0e10cSrcweir //
257cdf0e10cSrcweir //        exclude.add("FormatKey");
258cdf0e10cSrcweir //
259cdf0e10cSrcweir //        tEnv.addObjRelation("XUpdateBroadcaster.Checker",
260cdf0e10cSrcweir //                            new Checker(m_XFormLoader, m_XPS, m_XCtrl, m_ChangePropertyName, m_ChangePropertyValue));
261cdf0e10cSrcweir         return tEnv;
262cdf0e10cSrcweir     }
263cdf0e10cSrcweir 
264cdf0e10cSrcweir }    // finish class OButtonModelold
265cdf0e10cSrcweir 
266cdf0e10cSrcweir 
267cdf0e10cSrcweir class OGridControlModelold extends TestCase {
268cdf0e10cSrcweir     XComponent xDrawDoc = null;
269cdf0e10cSrcweir 
270cdf0e10cSrcweir     /**
271cdf0e10cSrcweir     * Creates Drawing document.
272cdf0e10cSrcweir     */
initialize(TestParameters tParam, PrintWriter log)273cdf0e10cSrcweir     protected void initialize(TestParameters tParam, PrintWriter log) {
274cdf0e10cSrcweir         SOfficeFactory SOF = SOfficeFactory.getFactory(((XMultiServiceFactory) tParam.getMSF()));
275cdf0e10cSrcweir 
276cdf0e10cSrcweir         log.println("creating a draw document");
277cdf0e10cSrcweir 
278cdf0e10cSrcweir         try {
279cdf0e10cSrcweir             xDrawDoc = SOF.createDrawDoc(null);
280cdf0e10cSrcweir         } catch (com.sun.star.uno.Exception e) {
281cdf0e10cSrcweir             throw new StatusException("Can't create Draw document", e);
282cdf0e10cSrcweir         }
283cdf0e10cSrcweir     }
284cdf0e10cSrcweir 
285cdf0e10cSrcweir     /**
286cdf0e10cSrcweir     * Disposes drawing document.
287cdf0e10cSrcweir     */
cleanup(TestParameters tParam, PrintWriter log)288cdf0e10cSrcweir     protected void cleanup(TestParameters tParam, PrintWriter log) {
289cdf0e10cSrcweir         log.println("    disposing xDrawDoc ");
290cdf0e10cSrcweir 
291cdf0e10cSrcweir         try {
292cdf0e10cSrcweir             XCloseable closer = (XCloseable) UnoRuntime.queryInterface(
293cdf0e10cSrcweir                                         XCloseable.class, xDrawDoc);
294cdf0e10cSrcweir             closer.close(true);
295cdf0e10cSrcweir         } catch (com.sun.star.util.CloseVetoException e) {
296cdf0e10cSrcweir             log.println("couldn't close document");
297cdf0e10cSrcweir         } catch (com.sun.star.lang.DisposedException e) {
298cdf0e10cSrcweir             log.println("couldn't close document");
299cdf0e10cSrcweir         }
300cdf0e10cSrcweir     }
301cdf0e10cSrcweir 
302cdf0e10cSrcweir     /**
303cdf0e10cSrcweir     * <code>GridControl</code> component created and added to the draw
304cdf0e10cSrcweir     * page. Then two columns are created and added to the grid.
305cdf0e10cSrcweir     *     Object relations created :
306cdf0e10cSrcweir     * <ul>
307cdf0e10cSrcweir     *  <li> <code>'INSTANCE1' ... 'INSTANCEN'</code> for
308cdf0e10cSrcweir     *    <code>XNameReplace, XNameContainer, XIndexReplace,
309cdf0e10cSrcweir     *     XIndexContainer </code> : objects to be inserted
310cdf0e10cSrcweir     *     or replaced with in interface tests. Number of relations
311cdf0e10cSrcweir     *     depends on number of interface test threads. For each
312cdf0e10cSrcweir     *     thread there must be an individual element. </li>
313cdf0e10cSrcweir     *  <li> <code>'XNameContainer.AllowDuplicateNames'</code> :
314cdf0e10cSrcweir     *   if this relation exists then container elements can have duplicate
315cdf0e10cSrcweir     *   names. <code>GridControl</code> can have.</li>
316cdf0e10cSrcweir     *  <li> <code>'OBJNAME'</code> for
317cdf0e10cSrcweir     *      {@link ifc.io._XPersistObject} : name of service which is
318cdf0e10cSrcweir     *    represented by this object. </li>
319cdf0e10cSrcweir     *  <li> <code>'INSTANCE'</code> for
320cdf0e10cSrcweir     *      {@link ifc.container._XContainer} : a column instance. </li>
321cdf0e10cSrcweir     * </ul>
322cdf0e10cSrcweir     */
createTestEnvironment(TestParameters Param, PrintWriter log)323cdf0e10cSrcweir     protected synchronized TestEnvironment createTestEnvironment(TestParameters Param,
324cdf0e10cSrcweir                                                                  PrintWriter log) {
325cdf0e10cSrcweir         XInterface oObj = null;
326cdf0e10cSrcweir         XInterface oInstance = null;
327cdf0e10cSrcweir         XPropertySet aControl = null;
328cdf0e10cSrcweir         XPropertySet aControl2 = null;
329cdf0e10cSrcweir         XPropertySet aControl3 = null;
330cdf0e10cSrcweir         XPropertySet aControl4 = null;
331cdf0e10cSrcweir         XPropertySet aControl5 = null;
332cdf0e10cSrcweir         XGridColumnFactory columns = null;
333cdf0e10cSrcweir 
334cdf0e10cSrcweir 
335cdf0e10cSrcweir         // creation of testobject here
336cdf0e10cSrcweir         // first we write what we are intend to do to log file
337cdf0e10cSrcweir         log.println("creating a test environment");
338cdf0e10cSrcweir 
339cdf0e10cSrcweir         //get GridControlModel
340cdf0e10cSrcweir         String objName = "Grid";
341cdf0e10cSrcweir         XControlShape shape = FormTools.insertControlShape(xDrawDoc, 5000,
342cdf0e10cSrcweir                                                            7000, 2000, 2000,
343cdf0e10cSrcweir                                                            "GridControl");
344cdf0e10cSrcweir         oObj = shape.getControl();
345cdf0e10cSrcweir 
346cdf0e10cSrcweir         log.println("creating a new environment for drawpage object");
347cdf0e10cSrcweir 
348cdf0e10cSrcweir         TestEnvironment tEnv = new TestEnvironment(oObj);
349cdf0e10cSrcweir 
350cdf0e10cSrcweir         try {
351cdf0e10cSrcweir             columns = (XGridColumnFactory) UnoRuntime.queryInterface(
352cdf0e10cSrcweir                               XGridColumnFactory.class, oObj);
353cdf0e10cSrcweir             aControl = columns.createColumn("TextField");
354cdf0e10cSrcweir             aControl2 = columns.createColumn("DateField");
355cdf0e10cSrcweir             aControl3 = columns.createColumn("TextField");
356cdf0e10cSrcweir             aControl4 = columns.createColumn("TextField");
357cdf0e10cSrcweir             aControl5 = columns.createColumn("TextField");
358cdf0e10cSrcweir         } catch (com.sun.star.lang.IllegalArgumentException e) {
359*30acf5e8Spfg             // Some exception occured.FAILED
360cdf0e10cSrcweir             log.println("!!! Couldn't create instance : " + e);
361cdf0e10cSrcweir             throw new StatusException("Can't create column instances.", e);
362cdf0e10cSrcweir         }
363cdf0e10cSrcweir 
364cdf0e10cSrcweir         XNameContainer aContainer = (XNameContainer) UnoRuntime.queryInterface(
365cdf0e10cSrcweir                                             XNameContainer.class, oObj);
366cdf0e10cSrcweir 
367cdf0e10cSrcweir         try {
368cdf0e10cSrcweir             aContainer.insertByName("First", aControl);
369cdf0e10cSrcweir             aContainer.insertByName("Second", aControl2);
370cdf0e10cSrcweir         } catch (com.sun.star.lang.WrappedTargetException e) {
371cdf0e10cSrcweir             log.println("!!! Could't insert column Instance");
372cdf0e10cSrcweir             e.printStackTrace(log);
373cdf0e10cSrcweir             throw new StatusException("Can't insert columns", e);
374cdf0e10cSrcweir         } catch (com.sun.star.lang.IllegalArgumentException e) {
375cdf0e10cSrcweir             log.println("!!! Could't insert column Instance");
376cdf0e10cSrcweir             e.printStackTrace(log);
377cdf0e10cSrcweir             throw new StatusException("Can't insert columns", e);
378cdf0e10cSrcweir         } catch (com.sun.star.container.ElementExistException e) {
379cdf0e10cSrcweir             log.println("!!! Could't insert column Instance");
380cdf0e10cSrcweir             e.printStackTrace(log);
381cdf0e10cSrcweir             throw new StatusException("Can't insert columns", e);
382cdf0e10cSrcweir         }
383cdf0e10cSrcweir 
384cdf0e10cSrcweir         //Relations for XSelectionSupplier
385cdf0e10cSrcweir         tEnv.addObjRelation("Selections", new Object[] { aControl, aControl2 });
386cdf0e10cSrcweir 
387cdf0e10cSrcweir         // COMPARER
388cdf0e10cSrcweir 
389cdf0e10cSrcweir         int THRCNT = 1;
390cdf0e10cSrcweir         String count = (String)Param.get("THRCNT");
391cdf0e10cSrcweir         if (count != null)
392cdf0e10cSrcweir             THRCNT = Integer.parseInt(count);
393cdf0e10cSrcweir 
394cdf0e10cSrcweir 
395cdf0e10cSrcweir         // INSTANCEn : _XNameContainer; _XNameReplace
396cdf0e10cSrcweir         log.println("adding INSTANCEn as obj relation to environment");
397cdf0e10cSrcweir 
398cdf0e10cSrcweir         try {
399cdf0e10cSrcweir             for (int n = 1; n < (3 * THRCNT + 1); n++) {
400cdf0e10cSrcweir                 log.println("adding INSTANCE" + n +
401cdf0e10cSrcweir                             " as obj relation to environment");
402cdf0e10cSrcweir                 oInstance = columns.createColumn("TextField");
403cdf0e10cSrcweir                 tEnv.addObjRelation("INSTANCE" + n, oInstance);
404cdf0e10cSrcweir             }
405cdf0e10cSrcweir         } catch (com.sun.star.lang.IllegalArgumentException e) {
406cdf0e10cSrcweir             e.printStackTrace(log);
407cdf0e10cSrcweir             throw new StatusException("Can't create 'INSTANCEn' relations", e);
408cdf0e10cSrcweir         }
409cdf0e10cSrcweir 
410cdf0e10cSrcweir 
411cdf0e10cSrcweir         // adding relation for XNameContainer
412cdf0e10cSrcweir         tEnv.addObjRelation("XNameContainer.AllowDuplicateNames", new Object());
413cdf0e10cSrcweir 
414cdf0e10cSrcweir        // OK tEnv.addObjRelation("OBJNAME", "stardiv.one.form.component." + objName);
415cdf0e10cSrcweir 
416cdf0e10cSrcweir 
417cdf0e10cSrcweir         // adding relation for XContainer
418cdf0e10cSrcweir         tEnv.addObjRelation("INSTANCE", aControl3);
419cdf0e10cSrcweir         tEnv.addObjRelation("INSTANCE2", aControl4);
420cdf0e10cSrcweir 
421cdf0e10cSrcweir 
422cdf0e10cSrcweir         //adding ObjRelation for XPersistObject
423cdf0e10cSrcweir         // OK tEnv.addObjRelation("PSEUDOPERSISTENT", new Boolean(true)); // OK
424cdf0e10cSrcweir 
425cdf0e10cSrcweir         return tEnv;
426cdf0e10cSrcweir     } // finish method getTestEnvironment
427cdf0e10cSrcweir } // finish class OGridControlModel
428