private void saveDoc(XInterface xDoc, String sURL) { m_aLog.log(Protocol.TYPE_SCOPE_OPEN, "saveDoc('" + sURL + "') started ..."); try { URL[] aURL = new URL[1]; aURL[0] = new URL(); aURL[0].Complete = ".uno:SaveAs"; m_xURLParser.parseStrict(aURL); XModel xModel = UnoRuntime.queryInterface(XModel.class, xDoc); XDispatchProvider xProvider = UnoRuntime.queryInterface(XDispatchProvider.class, xModel.getCurrentController()); XDispatch xDispatch = xProvider.queryDispatch(aURL[0], "_self", 0); PropertyValue[] lArgs = new PropertyValue[3]; lArgs[0] = new PropertyValue(); lArgs[0].Name = "URL"; lArgs[0].Value = sURL; lArgs[1] = new PropertyValue(); lArgs[1].Name = "Overwrite"; lArgs[1].Value = Boolean.TRUE; lArgs[2] = new PropertyValue(); lArgs[2].Name = "StoreTo"; lArgs[2].Value = Boolean.TRUE; xDispatch.dispatch(aURL[0], lArgs); m_aLog.log(Protocol.TYPE_OK, "saveDoc('" + sURL + "') = OK."); } catch (Throwable ex) { m_aLog.log(ex); } m_aLog.log(Protocol.TYPE_SCOPE_CLOSE, "saveDoc('" + sURL + "') finished."); }
@Override protected void initialize(TestParameters Param, PrintWriter log) throws Exception { SOfficeFactory SOF = SOfficeFactory.getFactory(Param.getMSF()); log.println("creating a textdocument"); xTextDoc = SOF.createTextDoc(null); log.println("maximize the window size"); XModel xModel = UnoRuntime.queryInterface(XModel.class, xTextDoc); XFrame xFrame = xModel.getCurrentController().getFrame(); XWindow xWin = xFrame.getContainerWindow(); Toolkit.getDefaultToolkit(); Dimension dim = new Dimension(800, 600); Rectangle newPosSize = xWin.getPosSize(); newPosSize.Width = new Double(dim.getWidth()).intValue(); newPosSize.Height = new Double(dim.getHeight()).intValue(); newPosSize.X = 0; newPosSize.Y = 0; xWin.setPosSize( newPosSize.X, newPosSize.Y, newPosSize.Width, newPosSize.Height, com.sun.star.awt.PosSize.POSSIZE); }
public void before() { aListener = new _XRangeSelection.MyRangeSelectionListener(log); // workaround for i34499 XModel xModel = (XModel) tEnv.getObjRelation("FirstModel"); if (xModel == null) throw new StatusException(Status.failed("Object relation FirstModel' not set.")); XWindow xWindow = xModel.getCurrentController().getFrame().getContainerWindow(); XTopWindow xTopWindow = UnoRuntime.queryInterface(XTopWindow.class, xWindow); xTopWindow.toFront(); util.utils.shortWait(500); }
/** Closes connection of <code>RowSet</code> instance created. */ protected void cleanup(TestParameters Param, PrintWriter log) { String doing = null; try { doing = "revoking data source registration"; log.println(doing); m_dataSource.revokeRegistration(); doing = "closing database document"; log.println(doing); XModel databaseDocModel = UnoRuntime.queryInterface( XModel.class, m_dataSource.getDatabaseDocument().getDatabaseDocument()); String documentFile = databaseDocModel.getURL(); XCloseable closeModel = UnoRuntime.queryInterface( XCloseable.class, m_dataSource.getDatabaseDocument().getDatabaseDocument()); closeModel.close(true); if (m_rowSet != null) { doing = "disposing row set"; log.println(doing); XComponent rowSetComponent = UnoRuntime.queryInterface(XComponent.class, m_rowSet); rowSetComponent.dispose(); } try { doing = "closing connection"; log.println(doing); m_connection.close(); } catch (com.sun.star.lang.DisposedException e) { log.println("already closed - okay."); } doing = "deleting database file (" + documentFile + ")"; log.println(doing); impl_deleteFile(documentFile); if (m_tableFile != null) { doing = "deleting dBase table file (" + m_tableFile + ")"; log.println(doing); impl_deleteFile(m_tableFile); } } catch (com.sun.star.uno.Exception e) { log.println("error: "); e.printStackTrace(log); } }
/* * returns the <CODE>XUserInputInterception</CODE> from the <CODE>XModel</CODE> * @param xModel the XModel of a document * @return the <CODE>XUserInputInterception</CODE> of the document */ private XUserInputInterception getUII(XModel xModel) { XController xController = xModel.getCurrentController(); XUserInputInterception xUII = UnoRuntime.queryInterface(XUserInputInterception.class, xController); if (xUII == null) { fail("could not get XUserInputInterception from XContoller"); } return xUII; }
/** * Called to create an instance of <code>TestEnvironment</code> with an object to test and related * objects. Subclasses should implement this method to provide the implementation and related * objects. The method is called from <code>getTestEnvironment()</code>. * * @param tParam test parameters * @param log writer to log information while testing * @see TestEnvironment * @see #getTestEnvironment */ @Override protected TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws Exception { log.println("creating a test environment"); if (xTextDoc != null) { xTextDoc.dispose(); // get a soffice factory object } SOfficeFactory SOF = SOfficeFactory.getFactory(tParam.getMSF()); log.println("creating a text document"); xTextDoc = SOF.createTextDoc(null); util.utils.waitForEventIdle(tParam.getMSF()); XModel aModel1 = UnoRuntime.queryInterface(XModel.class, xTextDoc); XController secondController = aModel1.getCurrentController(); XDispatchProvider aProv = UnoRuntime.queryInterface(XDispatchProvider.class, secondController); XDispatch getting = null; log.println("opening DatasourceBrowser"); URL the_url = new URL(); the_url.Complete = ".component:DB/DataSourceBrowser"; getting = aProv.queryDispatch(the_url, "_beamer", 12); PropertyValue[] noArgs = new PropertyValue[0]; getting.dispatch(the_url, noArgs); util.utils.waitForEventIdle(tParam.getMSF()); XFrame the_frame1 = the_Desk.getCurrentFrame(); if (the_frame1 == null) { log.println("Current frame was not found !!!"); } XFrame the_frame2 = the_frame1.findFrame("_beamer", 4); the_frame2.setName("DatasourceBrowser"); XInterface oObj = null; final XSelectionSupplier xSelect = UnoRuntime.queryInterface(XSelectionSupplier.class, the_frame2.getController()); PropertyValue[] params = new PropertyValue[] {new PropertyValue(), new PropertyValue(), new PropertyValue()}; params[0].Name = "DataSourceName"; params[0].Value = "Bibliography"; params[1].Name = "CommandType"; params[1].Value = Integer.valueOf(com.sun.star.sdb.CommandType.TABLE); params[2].Name = "Command"; params[2].Value = "biblio"; final PropertyValue[] fParams = params; util.utils.waitForEventIdle(tParam.getMSF()); XWindow xWindow = secondController.getFrame().getContainerWindow(); XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow); AccessibilityTools.printAccessibleTree( log, xRoot, tParam.getBool(util.PropertyName.DEBUG_IS_ACTIVE)); oObj = AccessibilityTools.getAccessibleObjectForRole( xRoot, AccessibleRole.PANEL, "", "AccessibleBrowseBox"); log.println("ImplementationName: " + util.utils.getImplName(oObj)); TestEnvironment tEnv = new TestEnvironment(oObj); tEnv.addObjRelation( "EventProducer", new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer() { public void fireEvent() { try { xSelect.select(fParams); } catch (com.sun.star.lang.IllegalArgumentException e) { e.printStackTrace(); } } }); return tEnv; }
/** * Creating a Testenvironment for the interfaces to be tested. Creates an instance of the service * <code>com.sun.star.comp.Calc.XMLSettingsImporter</code> * * <p>The calc document is set as a target document for importer. Imported XML-data contains only * settings tags including tag with new number of iteration steps. After import 'IterationCount' * proeprty getting from target document is checked. Object relations created : * * <ul> * <li><code>'XDocumentHandler.XMLData'</code> for {@link ifc.xml.sax._XDocumentHandler} * interface * <li><code>'XDocumentHandler.ImportChecker'</code> for {@link ifc.xml.sax._XDocumentHandler} * interface * <li><code>'TargetDocument'</code> for {@link ifc.document._XImporter} interface * </ul> */ public synchronized TestEnvironment createTestEnvironment(TestParameters tParam, PrintWriter log) throws StatusException { XInterface oObj = null; Object oInt = null; // creation of testobject here // first we write what we are intend to do to log file log.println("creating a test environment"); XMultiServiceFactory xMSF = (XMultiServiceFactory) tParam.getMSF(); final XPropertySet xPropSet; try { oInt = xMSF.createInstance("com.sun.star.comp.Calc.XMLSettingsImporter"); XImporter imp = UnoRuntime.queryInterface(XImporter.class, oInt); imp.setTargetDocument(comp); XModel xSheetModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc); XController xController = xSheetModel.getCurrentController(); xPropSet = UnoRuntime.queryInterface(XPropertySet.class, xController); } catch (com.sun.star.uno.Exception e) { e.printStackTrace(log); throw new StatusException("Can't create component.", e); } oObj = (XInterface) oInt; // create testobject here log.println("creating a new environment for Paragraph object"); TestEnvironment tEnv = new TestEnvironment(oObj); // adding relation tEnv.addObjRelation("TargetDocument", comp); // adding relation for XDocumentHandler String[][] xml = new String[][] { { "start", "office:document-settings", "xmlns:office", "CDATA", "http://openoffice.org/2000/office", "xmlns:xlink", "CDATA", "http://www.w3.org/1999/xlink", "xmlns:config", "CDATA", "http://openoffice.org/2001/config" }, {"start", "office:settings"}, {"start", "config:config-item-set", "config:name", "CDATA", "view-settings"}, {"start", "config:config-item-map-indexed", "config:name", "CDATA", "Views"}, {"start", "config:config-item-map-entry"}, { "start", "config:config-item", "config:name", "CDATA", "ShowGrid", "config:type", "CDATA", "boolean" }, {"chars", "false"}, {"end", "config:config-item"}, { "start", "config:config-item", "config:name", "CDATA", "ZoomType", "config:type", "CDATA", "short" }, {"chars", "0"}, { "start", "config:config-item", "config:name", "CDATA", "ZoomValue", "config:type", "CDATA", "int" }, {"chars", "124"}, {"end", "config:config-item"}, {"end", "config:config-item"}, {"end", "config:config-item-map-entry"}, {"end", "config:config-item-map-indexed"}, {"end", "config:config-item-set"}, {"end", "office:settings"}, {"end", "office:document-settings"} }; tEnv.addObjRelation("XDocumentHandler.XMLData", xml); final PrintWriter logF = log; tEnv.addObjRelation( "XDocumentHandler.ImportChecker", new ifc.xml.sax._XDocumentHandler.ImportChecker() { public boolean checkImport() { try { Object gVal = xPropSet.getPropertyValue("ShowGrid"); logF.println("ShowGrid = " + gVal); return "false".equals(gVal); } catch (com.sun.star.uno.Exception e) { logF.println("Exception occurred while checking filter :"); e.printStackTrace(logF); return false; } } }); return tEnv; } // finish method getTestEnvironment
/** * Determine the current top window center and return this as a point. * * @return a point representing the sheet center. */ protected Point getSheetCenter() { log.println("Trying to get AccessibleSpreadsheet"); new AccessibilityTools(); XComponent xSheetDoc = (XComponent) tEnv.getObjRelation("DOCUMENT"); XModel xModel = UnoRuntime.queryInterface(XModel.class, xSheetDoc); System.out.println("Name: " + xModel.getCurrentController().getFrame().getName()); XWindow xWindow = AccessibilityTools.getCurrentWindow(xModel); XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow); XAccessibleContext ctx = AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE); XAccessibleComponent AccessibleSpreadsheet = UnoRuntime.queryInterface(XAccessibleComponent.class, ctx); log.println("Got " + util.utils.getImplName(AccessibleSpreadsheet)); Object toolkit = null; try { toolkit = tParam.getMSF().createInstance("com.sun.star.awt.Toolkit"); } catch (com.sun.star.uno.Exception e) { log.println("Couldn't get toolkit"); e.printStackTrace(log); throw new StatusException("Couldn't get toolkit", e); } XExtendedToolkit tk = UnoRuntime.queryInterface(XExtendedToolkit.class, toolkit); XTopWindow tw = null; int k = tk.getTopWindowCount(); for (int i = 0; i < k; i++) { try { XTopWindow tw_temp = tk.getTopWindow(i); XAccessible xacc = UnoRuntime.queryInterface(XAccessible.class, tw_temp); if (xacc != null) { if (xacc.getAccessibleContext().getAccessibleName().indexOf("d2") > 0) { tw = tw_temp; } } else { log.println("\t unknown window"); } } catch (com.sun.star.lang.IndexOutOfBoundsException e) { } } if (tw == null) { System.out.println("No TopWindow :-("); return null; } Point point = AccessibleSpreadsheet.getLocationOnScreen(); Rectangle rect = AccessibleSpreadsheet.getBounds(); Point retPoint = new Point(); retPoint.X = point.X + (rect.Width / 2); retPoint.Y = point.Y + (rect.Height / 2); return retPoint; }