* Obtains the accessible object for a one of cell in preview mode.
*/
protected synchronized TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) {
XAccessibleContext oObj = null;
XCell xCell = null;
try {
log.println("Getting spreadsheet") ;
XSpreadsheets oSheets = xSheetDoc.getSheets() ;
XIndexAccess oIndexSheets = (XIndexAccess)
UnoRuntime.queryInterface(XIndexAccess.class, oSheets);
XSpreadsheet oSheet = (XSpreadsheet) AnyConverter.toObject(
new Type(XSpreadsheet.class),oIndexSheets.getByIndex(0));
log.println("Getting a cell from sheet") ;
xCell = oSheet.getCellByPosition(0, 0);
} catch (com.sun.star.lang.WrappedTargetException e) {
e.printStackTrace(log);
throw new StatusException(
"Error getting cell object from spreadsheet document", e);
} catch (com.sun.star.lang.IndexOutOfBoundsException e) {
e.printStackTrace(log);
throw new StatusException(
"Error getting cell object from spreadsheet document", e);
} catch (com.sun.star.lang.IllegalArgumentException e) {
e.printStackTrace(log);
throw new StatusException(
"Error getting cell object from spreadsheet document", e);
}
xCell.setFormula("Value");
XModel xModel = (XModel)
UnoRuntime.queryInterface(XModel.class, xSheetDoc);
XController xController = xModel.getCurrentController();
//switch to 'Print Preview' mode
try {
XDispatchProvider xDispProv = (XDispatchProvider)
UnoRuntime.queryInterface(XDispatchProvider.class, xController);
XURLTransformer xParser = (com.sun.star.util.XURLTransformer)
UnoRuntime.queryInterface(XURLTransformer.class,
( (XMultiServiceFactory) Param.getMSF()).createInstance("com.sun.star.util.URLTransformer"));
URL[] aParseURL = new URL[1];
aParseURL[0] = new URL();
aParseURL[0].Complete = ".uno:PrintPreview";
xParser.parseStrict(aParseURL);
URL aURL = aParseURL[0];
XDispatch xDispatcher = xDispProv.queryDispatch(aURL, "", 0);
if(xDispatcher != null)
xDispatcher.dispatch( aURL, null );
} catch (com.sun.star.uno.Exception e) {
log.println("Couldn't change mode");
throw new StatusException(Status.failed("Couldn't change mode"));
}
shortWait();
XWindow xWindow = AccessibilityTools.getCurrentWindow( (XMultiServiceFactory) Param.getMSF(), xModel);
XAccessible xRoot = AccessibilityTools.getAccessibleObject(xWindow);
//AccessibilityTools.printAccessibleTree(log,xRoot);
AccessibilityTools.getAccessibleObjectForRole(xRoot, AccessibleRole.TABLE_CELL,true);
xRoot = AccessibilityTools.SearchedAccessible;
//AccessibilityTools.printAccessibleTree(log,xRoot);
oObj = AccessibilityTools.getAccessibleObjectForRole(xRoot,AccessibleRole.PARAGRAPH);
log.println("ImplementationName " + utils.getImplName(oObj));
log.println("AccessibleName " + oObj.getAccessibleName());
log.println("Parent " + utils.getImplName(oObj.getAccessibleParent()));
TestEnvironment tEnv = new TestEnvironment( oObj );
tEnv.addObjRelation("EditOnly", "AccessibleEditableTextPara_PreviewCell");
tEnv.addObjRelation("Destroy", "AccessibleEditableTextPara_PreviewCell");
final XCell cell_to_change = xCell;
tEnv.addObjRelation("EventProducer",
new ifc.accessibility._XAccessibleEventBroadcaster.EventProducer(){
public void fireEvent() {
cell_to_change.setFormula("NewString");
}
});
return tEnv;
}