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.XTextComponent; 25 import com.sun.star.awt.XToolkit; 26 import com.sun.star.awt.XWindow; 27 import com.sun.star.awt.XWindowPeer; 28 import com.sun.star.drawing.XControlShape; 29 import com.sun.star.text.XTextDocument; 30 import com.sun.star.uno.UnoRuntime; 31 import com.sun.star.uno.XInterface; 32 import com.sun.star.view.XControlAccess; 33 34 import java.io.PrintWriter; 35 36 import lib.TestCase; 37 import lib.TestEnvironment; 38 import lib.TestParameters; 39 import util.FormTools; 40 import util.SOfficeFactory; 41 import util.WriterTools; 42 import util.utils; 43 44 45 public class UnoControlEdit extends TestCase { 46 private static XTextDocument xTextDoc; 47 48 @Override initialize(TestParameters Param, PrintWriter log)49 protected void initialize(TestParameters Param, PrintWriter log) throws Exception { 50 SOfficeFactory SOF = SOfficeFactory.getFactory( 51 Param.getMSF()); 52 53 log.println("creating a textdocument"); 54 xTextDoc = SOF.createTextDoc(null); 55 } 56 57 @Override cleanup(TestParameters tParam, PrintWriter log)58 protected void cleanup(TestParameters tParam, PrintWriter log) { 59 log.println(" disposing xTextDoc "); 60 61 util.DesktopTools.closeDoc(xTextDoc); 62 } 63 64 @Override createTestEnvironment(TestParameters Param, PrintWriter log)65 protected TestEnvironment createTestEnvironment(TestParameters Param, 66 PrintWriter log) throws Exception { 67 XInterface oObj = null; 68 XWindowPeer the_win = null; 69 XToolkit the_kit = null; 70 XDevice aDevice = null; 71 XGraphics aGraphic = null; 72 XControl aControl = null; 73 74 //Insert a ControlShape and get the ControlModel 75 XControlShape aShape = FormTools.createUnoControlShape(xTextDoc, 3000, 76 4500, 15000, 77 10000, 78 "TextField", 79 "UnoControlEdit"); 80 81 WriterTools.getDrawPage(xTextDoc).add(aShape); 82 83 XControlModel the_Model = aShape.getControl(); 84 85 XControlShape aShape2 = FormTools.createControlShape(xTextDoc, 3000, 86 4500, 5000, 10000, 87 "TextField"); 88 89 WriterTools.getDrawPage(xTextDoc).add(aShape2); 90 91 XControlModel the_Model2 = aShape2.getControl(); 92 93 //Try to query XControlAccess 94 XControlAccess the_access = UnoRuntime.queryInterface( 95 XControlAccess.class, 96 xTextDoc.getCurrentController()); 97 98 //get the EditControl for the needed Object relations 99 oObj = the_access.getControl(the_Model); 100 aControl = the_access.getControl(the_Model2); 101 the_win = the_access.getControl(the_Model).getPeer(); 102 the_kit = the_win.getToolkit(); 103 aDevice = the_kit.createScreenCompatibleDevice(200, 200); 104 aGraphic = aDevice.createGraphics(); 105 106 log.println("creating a new environment for UnoControlEdit 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 tEnv.addObjRelation("XWindow.ControlShape", aShape); 126 127 // Adding relation for XTextListener 128 ifc.awt._XTextListener.TestTextListener listener = 129 new ifc.awt._XTextListener.TestTextListener(); 130 XTextComponent textComp = UnoRuntime.queryInterface( 131 XTextComponent.class, oObj); 132 textComp.addTextListener(listener); 133 tEnv.addObjRelation("TestTextListener", listener); 134 135 log.println("ImplementationName: " + utils.getImplName(oObj)); 136 137 return tEnv; 138 } // finish method getTestEnvironment 139 } // finish class UnoControlEdit 140