if (text1 == text2){
// the formulas are in different parts of the same XText,
// either the main XText or else in the same cell in a table.
Logger.getLogger("com.CompPad").log(Level.FINE,"text1 "+range1.getText()+" text2 "+range2.getText());
Logger.getLogger("com.CompPad").log(Level.FINE,"range1 "+range1+" range2 "+range2);
XTextRangeCompare xTRC = (XTextRangeCompare)
UnoRuntime.queryInterface(XTextRangeCompare.class,
range1.getText());
retval = xTRC.compareRegionStarts(range2, range1);
Logger.getLogger("com.CompPad").log(Level.FINE, "retval = "+retval);
}
else if(table1 != null && table1 == table2)
{
// formulas are in same table but not the same cell.
// Compare cell names.
retval = compareCellName(cellName1,cellName2);
}
else if (table1 != null || table2 != null){
// one of the formulas is in a table. Get the range of the table
if (table1!=null){
range1 = getTableRange(table1);
}
if (table2!=null){
range2 = getTableRange(table2);
}
XTextRangeCompare xTRC = (XTextRangeCompare)
UnoRuntime.queryInterface(XTextRangeCompare.class,
range1.getText());
retval = xTRC.compareRegionEnds(range2, range1);
Logger.getLogger("com.CompPad").log(Level.FINE, " table1 != null || table2 != null , retval = "+retval);
}
else{
throw (new Exception("Error comparing formula positions!"));
}