1 /* 2 * This file is part of the LibreOffice project. 3 * 4 * This Source Code Form is subject to the terms of the Mozilla Public 5 * License, v. 2.0. If a copy of the MPL was not distributed with this 6 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 * 8 * This file incorporates work covered by the following license notice: 9 * 10 * Licensed to the Apache Software Foundation (ASF) under one or more 11 * contributor license agreements. See the NOTICE file distributed 12 * with this work for additional information regarding copyright 13 * ownership. The ASF licenses this file to you under the Apache 14 * License, Version 2.0 (the "License"); you may not use this file 15 * except in compliance with the License. You may obtain a copy of 16 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 17 */ 18 package mod._toolkit; 19 20 import com.sun.star.awt.XControl; 21 import com.sun.star.awt.XControlModel; 22 import com.sun.star.awt.XDevice; 23 import com.sun.star.awt.XGraphics; 24 import com.sun.star.awt.XToolkit; 25 import com.sun.star.awt.XWindow; 26 import com.sun.star.awt.XWindowPeer; 27 import com.sun.star.drawing.XControlShape; 28 import com.sun.star.text.XTextDocument; 29 import com.sun.star.uno.UnoRuntime; 30 import com.sun.star.uno.XInterface; 31 import com.sun.star.view.XControlAccess; 32 33 import java.io.PrintWriter; 34 35 import lib.TestCase; 36 import lib.TestEnvironment; 37 import lib.TestParameters; 38 import util.FormTools; 39 import util.SOfficeFactory; 40 import util.WriterTools; 41 import util.utils; 42 43 44 public class UnoControlRadioButton extends TestCase { 45 private static XTextDocument xTextDoc; 46 47 @Override initialize(TestParameters Param, PrintWriter log)48 protected void initialize(TestParameters Param, PrintWriter log) throws Exception { 49 SOfficeFactory SOF = SOfficeFactory.getFactory( 50 Param.getMSF()); 51 52 log.println("creating a textdocument"); 53 xTextDoc = SOF.createTextDoc(null); 54 } 55 56 @Override cleanup(TestParameters tParam, PrintWriter log)57 protected void cleanup(TestParameters tParam, PrintWriter log) { 58 log.println(" disposing xTextDoc "); 59 60 util.DesktopTools.closeDoc(xTextDoc); 61 } 62 63 @Override createTestEnvironment(TestParameters Param, PrintWriter log)64 protected TestEnvironment createTestEnvironment(TestParameters Param, 65 PrintWriter log) throws Exception { 66 XInterface oObj = null; 67 XWindowPeer the_win = null; 68 XToolkit the_kit = null; 69 XDevice aDevice = null; 70 XGraphics aGraphic = null; 71 XControl aControl = null; 72 73 //Insert a ControlShape and get the ControlModel 74 XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000, 75 4500, 15000, 76 10000, 77 "RadioButton", 78 "UnoControlRadioButton"); 79 80 WriterTools.getDrawPage(xTextDoc).add(aShape); 81 82 XControlModel the_Model = aShape.getControl(); 83 84 XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000, 85 4500, 5000, 10000, 86 "TextField"); 87 88 WriterTools.getDrawPage(xTextDoc).add(aShape2); 89 90 XControlModel the_Model2 = aShape2.getControl(); 91 92 //Try to query XControlAccess 93 XControlAccess the_access = UnoRuntime.queryInterface( 94 XControlAccess.class, 95 xTextDoc.getCurrentController()); 96 97 //get the RadioButtonControl for the needed Object relations 98 oObj = the_access.getControl(the_Model); 99 aControl = the_access.getControl(the_Model2); 100 the_win = the_access.getControl(the_Model).getPeer(); 101 the_kit = the_win.getToolkit(); 102 aDevice = the_kit.createScreenCompatibleDevice(200, 200); 103 aGraphic = aDevice.createGraphics(); 104 105 log.println( 106 "creating a new environment for UnoControlRadioButton object"); 107 108 TestEnvironment tEnv = new TestEnvironment(oObj); 109 110 111 //Adding ObjRelation for XView 112 tEnv.addObjRelation("GRAPHICS", aGraphic); 113 114 115 //Adding ObjRelation for XControl 116 tEnv.addObjRelation("CONTEXT", xTextDoc); 117 tEnv.addObjRelation("WINPEER", the_win); 118 tEnv.addObjRelation("TOOLKIT", the_kit); 119 tEnv.addObjRelation("MODEL", the_Model); 120 121 XWindow forObjRel = UnoRuntime.queryInterface(XWindow.class, 122 aControl); 123 124 tEnv.addObjRelation("XWindow.AnotherWindow", forObjRel); 125 126 System.out.println("ImplementationName: " + utils.getImplName(oObj)); 127 128 return tEnv; 129 } // finish method getTestEnvironment 130 } // finish class UnoControlRadioButton 131