Kaydet (Commit) 347fc35a authored tarafından Ivo Hinkelmann's avatar Ivo Hinkelmann

INTEGRATION: CWS qadev29 (1.10.36); FILE MERGED

2007/04/24 10:08:42 cn 1.10.36.2: #i74690#:new method "getSheetCell()"
2007/04/23 13:23:24 cn 1.10.36.1: #i74190# new method getSheetCell()
üst 42c656fa
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
* *
* $RCSfile: AccessibilityTools.java,v $ * $RCSfile: AccessibilityTools.java,v $
* *
* $Revision: 1.10 $ * $Revision: 1.11 $
* *
* last change: $Author: rt $ $Date: 2005-09-08 17:31:05 $ * last change: $Author: ihi $ $Date: 2007-06-04 13:31:30 $
* *
* The Contents of this file are made available subject to * The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1. * the terms of GNU Lesser General Public License Version 2.1.
...@@ -37,11 +37,8 @@ package util; ...@@ -37,11 +37,8 @@ package util;
import com.sun.star.accessibility.XAccessible; import com.sun.star.accessibility.XAccessible;
import com.sun.star.accessibility.XAccessibleComponent; import com.sun.star.accessibility.XAccessibleComponent;
import com.sun.star.accessibility.XAccessibleContext; import com.sun.star.accessibility.XAccessibleContext;
import com.sun.star.accessibility.XAccessibleRelationSet;
import com.sun.star.accessibility.XAccessibleStateSet;
import com.sun.star.awt.XWindow; import com.sun.star.awt.XWindow;
import com.sun.star.frame.XController; import com.sun.star.frame.XController;
import com.sun.star.frame.XDesktop;
import com.sun.star.frame.XFrame; import com.sun.star.frame.XFrame;
import com.sun.star.frame.XModel; import com.sun.star.frame.XModel;
import com.sun.star.lang.XMultiServiceFactory; import com.sun.star.lang.XMultiServiceFactory;
...@@ -66,10 +63,10 @@ public class AccessibilityTools { ...@@ -66,10 +63,10 @@ public class AccessibilityTools {
try { try {
xAccessible = (XAccessible) UnoRuntime.queryInterface( xAccessible = (XAccessible) UnoRuntime.queryInterface(
XAccessible.class, xObject); XAccessible.class, xObject);
} catch (Exception e) { } catch (Exception e) {
System.out.println( System.out.println(
"caught exception while getting accessible object" + e); "caught exception while getting accessible object" + e);
e.printStackTrace(); e.printStackTrace();
} }
...@@ -77,17 +74,17 @@ public class AccessibilityTools { ...@@ -77,17 +74,17 @@ public class AccessibilityTools {
} }
public static XWindow getCurrentContainerWindow(XMultiServiceFactory msf, public static XWindow getCurrentContainerWindow(XMultiServiceFactory msf,
XModel xModel) { XModel xModel) {
return getWindow(msf, xModel, true); return getWindow(msf, xModel, true);
} }
public static XWindow getCurrentWindow(XMultiServiceFactory msf, public static XWindow getCurrentWindow(XMultiServiceFactory msf,
XModel xModel) { XModel xModel) {
return getWindow(msf, xModel, false); return getWindow(msf, xModel, false);
} }
private static XWindow getWindow(XMultiServiceFactory msf, XModel xModel, private static XWindow getWindow(XMultiServiceFactory msf, XModel xModel,
boolean containerWindow) { boolean containerWindow) {
XWindow xWindow = null; XWindow xWindow = null;
try { try {
...@@ -123,7 +120,7 @@ public class AccessibilityTools { ...@@ -123,7 +120,7 @@ public class AccessibilityTools {
} }
public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc, public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc,
short role) { short role) {
SearchedContext = null; SearchedContext = null;
SearchedAccessible = null; SearchedAccessible = null;
getAccessibleObjectForRole_(xacc, role); getAccessibleObjectForRole_(xacc, role);
...@@ -132,8 +129,8 @@ public class AccessibilityTools { ...@@ -132,8 +129,8 @@ public class AccessibilityTools {
} }
public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc, public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc,
short role, short role,
boolean ignoreShowing) { boolean ignoreShowing) {
SearchedContext = null; SearchedContext = null;
SearchedAccessible = null; SearchedAccessible = null;
...@@ -147,7 +144,7 @@ public class AccessibilityTools { ...@@ -147,7 +144,7 @@ public class AccessibilityTools {
} }
public static void getAccessibleObjectForRoleIgnoreShowing_(XAccessible xacc, public static void getAccessibleObjectForRoleIgnoreShowing_(XAccessible xacc,
short role) { short role) {
XAccessibleContext ac = xacc.getAccessibleContext(); XAccessibleContext ac = xacc.getAccessibleContext();
if (ac.getAccessibleRole() == role) { if (ac.getAccessibleRole() == role) {
...@@ -163,7 +160,7 @@ public class AccessibilityTools { ...@@ -163,7 +160,7 @@ public class AccessibilityTools {
for (int i = 0; i < k; i++) { for (int i = 0; i < k; i++) {
try { try {
getAccessibleObjectForRoleIgnoreShowing_( getAccessibleObjectForRoleIgnoreShowing_(
ac.getAccessibleChild(i), role); ac.getAccessibleChild(i), role);
if (SearchedContext != null) { if (SearchedContext != null) {
return; return;
...@@ -176,10 +173,10 @@ public class AccessibilityTools { ...@@ -176,10 +173,10 @@ public class AccessibilityTools {
} }
public static void getAccessibleObjectForRole_(XAccessible xacc, public static void getAccessibleObjectForRole_(XAccessible xacc,
short role) { short role) {
XAccessibleContext ac = xacc.getAccessibleContext(); XAccessibleContext ac = xacc.getAccessibleContext();
boolean isShowing = ac.getAccessibleStateSet() boolean isShowing = ac.getAccessibleStateSet()
.contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING);
if ((ac.getAccessibleRole() == role) && isShowing) { if ((ac.getAccessibleRole() == role) && isShowing) {
SearchedContext = ac; SearchedContext = ac;
...@@ -206,31 +203,31 @@ public class AccessibilityTools { ...@@ -206,31 +203,31 @@ public class AccessibilityTools {
} }
public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc, public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc,
short role, short role,
String name) { String name) {
return getAccessibleObjectForRole(xacc, role, name, ""); return getAccessibleObjectForRole(xacc, role, name, "");
} }
public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc, public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc,
short role, short role,
String name, String name,
boolean ignoreShowing) { boolean ignoreShowing) {
if (ignoreShowing) { if (ignoreShowing) {
return getAccessibleObjectForRoleIgnoreShowing(xacc, role, name, return getAccessibleObjectForRoleIgnoreShowing(xacc, role, name,
""); "");
} else { } else {
return getAccessibleObjectForRole(xacc, role, name, ""); return getAccessibleObjectForRole(xacc, role, name, "");
} }
} }
public static XAccessibleContext getAccessibleObjectForRoleIgnoreShowing(XAccessible xacc, public static XAccessibleContext getAccessibleObjectForRoleIgnoreShowing(XAccessible xacc,
short role, short role,
String name, String name,
String implName) { String implName) {
XAccessibleContext ac = xacc.getAccessibleContext(); XAccessibleContext ac = xacc.getAccessibleContext();
if ((ac.getAccessibleRole() == role) && if ((ac.getAccessibleRole() == role) &&
(ac.getAccessibleName().indexOf(name) > -1) && (ac.getAccessibleName().indexOf(name) > -1) &&
(utils.getImplName(ac).indexOf(implName) > -1)) { (utils.getImplName(ac).indexOf(implName) > -1)) {
SearchedAccessible = xacc; SearchedAccessible = xacc;
//System.out.println("FOUND the desired component -- "+ ac.getAccessibleName() +isShowing); //System.out.println("FOUND the desired component -- "+ ac.getAccessibleName() +isShowing);
...@@ -245,8 +242,8 @@ public class AccessibilityTools { ...@@ -245,8 +242,8 @@ public class AccessibilityTools {
for (int i = 0; i < k; i++) { for (int i = 0; i < k; i++) {
try { try {
XAccessibleContext ac1 = getAccessibleObjectForRoleIgnoreShowing( XAccessibleContext ac1 = getAccessibleObjectForRoleIgnoreShowing(
ac.getAccessibleChild(i), ac.getAccessibleChild(i),
role, name, implName); role, name, implName);
if (ac1 != null) { if (ac1 != null) {
return ac1; return ac1;
...@@ -261,16 +258,16 @@ public class AccessibilityTools { ...@@ -261,16 +258,16 @@ public class AccessibilityTools {
} }
public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc, public static XAccessibleContext getAccessibleObjectForRole(XAccessible xacc,
short role, short role,
String name, String name,
String implName) { String implName) {
XAccessibleContext ac = xacc.getAccessibleContext(); XAccessibleContext ac = xacc.getAccessibleContext();
boolean isShowing = ac.getAccessibleStateSet() boolean isShowing = ac.getAccessibleStateSet()
.contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING);
if ((ac.getAccessibleRole() == role) && if ((ac.getAccessibleRole() == role) &&
(ac.getAccessibleName().indexOf(name) > -1) && (ac.getAccessibleName().indexOf(name) > -1) &&
(utils.getImplName(ac).indexOf(implName) > -1) && (utils.getImplName(ac).indexOf(implName) > -1) &&
isShowing) { isShowing) {
SearchedAccessible = xacc; SearchedAccessible = xacc;
//System.out.println("FOUND the desired component -- "+ ac.getAccessibleName() +isShowing); //System.out.println("FOUND the desired component -- "+ ac.getAccessibleName() +isShowing);
...@@ -285,8 +282,8 @@ public class AccessibilityTools { ...@@ -285,8 +282,8 @@ public class AccessibilityTools {
for (int i = 0; i < k; i++) { for (int i = 0; i < k; i++) {
try { try {
XAccessibleContext ac1 = getAccessibleObjectForRole( XAccessibleContext ac1 = getAccessibleObjectForRole(
ac.getAccessibleChild(i), ac.getAccessibleChild(i),
role, name, implName); role, name, implName);
if (ac1 != null) { if (ac1 != null) {
return ac1; return ac1;
...@@ -300,6 +297,55 @@ public class AccessibilityTools { ...@@ -300,6 +297,55 @@ public class AccessibilityTools {
return null; return null;
} }
/**
* This methods retunrs the <CODE>XAccessibleContext</CODE> of a named Sheet-Cell like "G5".<p>
* @param xSheetAcc The <CODE>XAccessibleContext</CODE> of a Sheet
* @param cellName The name of a cell like "A5"
* @return the <CODE>XAccessiblecontext</CODE> of the named cell
*/
public static XAccessibleContext getSheetCell(XAccessibleContext xSheetAcc, String cellName){
int cellIndex = 0;
int column =0;
int charMem = 0;
for (int n=0; n<cellName.length(); n++){
String cha = cellName.substring(n,n+1);
System.out.println("char: " + cha + " ");
byte[] bytes = cha.getBytes();
if ((bytes[0] >= 'A') && (bytes[0] <= 'Z')){
charMem = bytes[0]-64;
column++;
if ( column == 2 ){
cellIndex += charMem * 26;
}
cellIndex= cellIndex+ (bytes[0]-65);
} else {
String sNumb = cellName.substring(n, cellName.length());
int iNumb = new Integer(0).valueOf(sNumb).intValue();
cellIndex += (iNumb-1) * 256;
System.out.println("numb:" + (iNumb-1) * 256);
}
}
//System.out.println("cellName: " + cellName + " cellIndex: " + cellIndex);
try {
XAccessibleContext ac = xSheetAcc.getAccessibleChild(cellIndex).getAccessibleContext();
System.out.println(ac.getAccessibleRole() + "," +
ac.getAccessibleName() + "(" +
ac.getAccessibleDescription() + "):" +
utils.getImplName(ac));
return ac;
} catch (com.sun.star.lang.IndexOutOfBoundsException ex) {
System.out.println("ERROR: could not get child at index " + cellIndex +"': " + ex.toString());
return null;
}
}
public static void printAccessibleTree(PrintWriter log, XAccessible xacc, boolean debugIsActive) { public static void printAccessibleTree(PrintWriter log, XAccessible xacc, boolean debugIsActive) {
debug = debugIsActive; debug = debugIsActive;
if (debug) printAccessibleTree(log, xacc, ""); if (debug) printAccessibleTree(log, xacc, "");
...@@ -310,31 +356,31 @@ public class AccessibilityTools { ...@@ -310,31 +356,31 @@ public class AccessibilityTools {
} }
protected static void printAccessibleTree(PrintWriter log, protected static void printAccessibleTree(PrintWriter log,
XAccessible xacc, String indent) { XAccessible xacc, String indent) {
XAccessibleContext ac = xacc.getAccessibleContext(); XAccessibleContext ac = xacc.getAccessibleContext();
logging(log,indent + ac.getAccessibleRole() + "," + logging(log,indent + ac.getAccessibleRole() + "," +
ac.getAccessibleName() + "(" + ac.getAccessibleName() + "(" +
ac.getAccessibleDescription() + "):" + ac.getAccessibleDescription() + "):" +
utils.getImplName(ac)); utils.getImplName(ac));
XAccessibleComponent aComp = (XAccessibleComponent) UnoRuntime.queryInterface( XAccessibleComponent aComp = (XAccessibleComponent) UnoRuntime.queryInterface(
XAccessibleComponent.class, xacc); XAccessibleComponent.class, xacc);
if (aComp != null) { if (aComp != null) {
String bounds = "(" + aComp.getBounds().X + "," + String bounds = "(" + aComp.getBounds().X + "," +
aComp.getBounds().Y + ")" + " (" + aComp.getBounds().Y + ")" + " (" +
aComp.getBounds().Width + "," + aComp.getBounds().Width + "," +
aComp.getBounds().Height + ")"; aComp.getBounds().Height + ")";
bounds = "The boundary Rectangle is " + bounds; bounds = "The boundary Rectangle is " + bounds;
logging(log,indent + indent + bounds); logging(log,indent + indent + bounds);
} }
boolean isShowing = ac.getAccessibleStateSet() boolean isShowing = ac.getAccessibleStateSet()
.contains(com.sun.star.accessibility.AccessibleStateType.SHOWING); .contains(com.sun.star.accessibility.AccessibleStateType.SHOWING);
logging(log,indent + indent + "StateType contains SHOWING: " + logging(log,indent + indent + "StateType contains SHOWING: " +
isShowing); isShowing);
int k = ac.getAccessibleChildCount(); int k = ac.getAccessibleChildCount();
...@@ -345,7 +391,7 @@ public class AccessibilityTools { ...@@ -345,7 +391,7 @@ public class AccessibilityTools {
for (int i = 0; i < k; i++) { for (int i = 0; i < k; i++) {
try { try {
printAccessibleTree(log, ac.getAccessibleChild(i), printAccessibleTree(log, ac.getAccessibleChild(i),
indent + " "); indent + " ");
} catch (com.sun.star.lang.IndexOutOfBoundsException e) { } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
System.out.println("Couldn't get Child"); System.out.println("Couldn't get Child");
} }
...@@ -360,7 +406,7 @@ public class AccessibilityTools { ...@@ -360,7 +406,7 @@ public class AccessibilityTools {
for (int i = st; i < k; i++) { for (int i = st; i < k; i++) {
try { try {
printAccessibleTree(log, ac.getAccessibleChild(i), printAccessibleTree(log, ac.getAccessibleChild(i),
indent + " "); indent + " ");
} catch (com.sun.star.lang.IndexOutOfBoundsException e) { } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
System.out.println("Couldn't get Child"); System.out.println("Couldn't get Child");
} }
...@@ -370,16 +416,16 @@ public class AccessibilityTools { ...@@ -370,16 +416,16 @@ public class AccessibilityTools {
public static String accessibleToString(Object AC) { public static String accessibleToString(Object AC) {
XAccessibleContext xAC = (XAccessibleContext) UnoRuntime.queryInterface( XAccessibleContext xAC = (XAccessibleContext) UnoRuntime.queryInterface(
XAccessibleContext.class, AC); XAccessibleContext.class, AC);
if (xAC != null) { if (xAC != null) {
return "" + xAC.getAccessibleRole() + "," + return "" + xAC.getAccessibleRole() + "," +
xAC.getAccessibleName() + "(" + xAC.getAccessibleName() + "(" +
xAC.getAccessibleDescription() + "):"; xAC.getAccessibleDescription() + "):";
} }
XAccessible xA = (XAccessible) UnoRuntime.queryInterface( XAccessible xA = (XAccessible) UnoRuntime.queryInterface(
XAccessible.class, AC); XAccessible.class, AC);
if (xA == null) { if (xA == null) {
return "(Not supported)"; return "(Not supported)";
...@@ -388,7 +434,7 @@ public class AccessibilityTools { ...@@ -388,7 +434,7 @@ public class AccessibilityTools {
xAC = xA.getAccessibleContext(); xAC = xA.getAccessibleContext();
return "" + xAC.getAccessibleRole() + "," + xAC.getAccessibleName() + return "" + xAC.getAccessibleRole() + "," + xAC.getAccessibleName() +
"(" + xAC.getAccessibleDescription() + ")"; "(" + xAC.getAccessibleDescription() + ")";
} }
public static boolean equals(XAccessible c1, XAccessible c2) { public static boolean equals(XAccessible c1, XAccessible c2) {
...@@ -397,7 +443,7 @@ public class AccessibilityTools { ...@@ -397,7 +443,7 @@ public class AccessibilityTools {
} }
return AccessibilityTools.equals(c1.getAccessibleContext(), return AccessibilityTools.equals(c1.getAccessibleContext(),
c2.getAccessibleContext()); c2.getAccessibleContext());
} }
public static boolean equals(XAccessibleContext c1, XAccessibleContext c2) { public static boolean equals(XAccessibleContext c1, XAccessibleContext c2) {
...@@ -414,7 +460,7 @@ public class AccessibilityTools { ...@@ -414,7 +460,7 @@ public class AccessibilityTools {
} }
if (!c1.getAccessibleDescription() if (!c1.getAccessibleDescription()
.equals(c2.getAccessibleDescription())) { .equals(c2.getAccessibleDescription())) {
return false; return false;
} }
...@@ -423,10 +469,10 @@ public class AccessibilityTools { ...@@ -423,10 +469,10 @@ public class AccessibilityTools {
} }
return AccessibilityTools.equals(c1.getAccessibleParent(), return AccessibilityTools.equals(c1.getAccessibleParent(),
c2.getAccessibleParent()); c2.getAccessibleParent());
} }
private static void logging(PrintWriter log, String content){ private static void logging(PrintWriter log, String content){
if (debug) log.println(content); if (debug) log.println(content);
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment