summaryrefslogtreecommitdiff
path: root/qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java
diff options
context:
space:
mode:
Diffstat (limited to 'qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java')
-rw-r--r--qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java138
1 files changed, 138 insertions, 0 deletions
diff --git a/qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java b/qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java
new file mode 100644
index 000000000000..ef8455ea1af1
--- /dev/null
+++ b/qadevOOo/tests/java/ifc/sheet/_XSheetFilterable.java
@@ -0,0 +1,138 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: _XSheetFilterable.java,v $
+ * $Revision: 1.4 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package ifc.sheet;
+
+import lib.MultiMethodTest;
+import lib.Status;
+import lib.StatusException;
+
+import com.sun.star.beans.XPropertySet;
+import com.sun.star.sheet.TableFilterField;
+import com.sun.star.sheet.XSheetFilterDescriptor;
+import com.sun.star.sheet.XSheetFilterable;
+import com.sun.star.sheet.XSpreadsheet;
+import com.sun.star.table.XColumnRowRange;
+import com.sun.star.table.XTableRows;
+import com.sun.star.uno.UnoRuntime;
+
+
+public class _XSheetFilterable extends MultiMethodTest {
+ public XSheetFilterable oObj;
+ protected XSpreadsheet oSheet;
+ protected XSheetFilterDescriptor desc;
+
+ protected void before() {
+ oSheet = (XSpreadsheet) tEnv.getObjRelation("SHEET");
+
+ if (oSheet == null) {
+ log.println("Object relation oSheet is missing");
+ log.println("Trying to query the needed Interface");
+ oSheet = (XSpreadsheet) UnoRuntime.queryInterface(
+ XSpreadsheet.class, tEnv.getTestObject());
+
+ if (oSheet == null) {
+ throw new StatusException(Status.failed(
+ "Object relation oSheet is missing"));
+ }
+ }
+ }
+
+ public void _createFilterDescriptor() {
+ desc = oObj.createFilterDescriptor(true);
+
+ TableFilterField[] tff = new TableFilterField[2];
+ tff[0] = new TableFilterField();
+ tff[0].IsNumeric = true;
+ tff[0].Field = 0;
+ tff[0].NumericValue = 2;
+ tff[0].Operator = com.sun.star.sheet.FilterOperator.GREATER_EQUAL;
+ tff[1] = new TableFilterField();
+ tff[1].IsNumeric = false;
+ tff[1].Field = 1;
+ tff[1].StringValue = "C";
+ tff[1].Operator = com.sun.star.sheet.FilterOperator.LESS;
+ desc.setFilterFields(tff);
+ tRes.tested("createFilterDescriptor()", true);
+ }
+
+ public void _filter() {
+ boolean res = true;
+
+ try {
+ oSheet.getCellByPosition(0, 0).setValue(1);
+ oSheet.getCellByPosition(0, 1).setValue(2);
+ oSheet.getCellByPosition(0, 2).setValue(3);
+ oSheet.getCellByPosition(1, 0).setFormula("A");
+ oSheet.getCellByPosition(1, 1).setFormula("D");
+ oSheet.getCellByPosition(1, 2).setFormula("B");
+ oObj.filter(desc);
+
+ XColumnRowRange oColumnRowRange = (XColumnRowRange) UnoRuntime.queryInterface(
+ XColumnRowRange.class,
+ oSheet);
+ XTableRows oRows = (XTableRows) oColumnRowRange.getRows();
+ XPropertySet rowProp = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet.class,
+ oRows.getByIndex(0));
+ boolean locRes = ((Boolean) rowProp.getPropertyValue("IsVisible")).booleanValue();
+
+ if (locRes) {
+ log.println("Row 1 should be invisible after filter()");
+ res &= false;
+ } else {
+ res &= true;
+ }
+
+ rowProp = (XPropertySet) UnoRuntime.queryInterface(
+ XPropertySet.class, oRows.getByIndex(1));
+ locRes = ((Boolean) rowProp.getPropertyValue("IsVisible")).booleanValue();
+
+ if (locRes) {
+ log.println("Row 2 should be invisible after filter()");
+ res &= false;
+ } else {
+ res &= true;
+ }
+ } catch (com.sun.star.lang.IndexOutOfBoundsException e) {
+ log.println("couldn't fill cells " + e.getLocalizedMessage());
+ res = false;
+ } catch (com.sun.star.lang.WrappedTargetException e) {
+ log.println("problems geting Property 'isVisible' " +
+ e.getLocalizedMessage());
+ res = false;
+ } catch (com.sun.star.beans.UnknownPropertyException e) {
+ log.println("problems geting Property 'isVisible' " +
+ e.getLocalizedMessage());
+ res = false;
+ }
+
+ tRes.tested("filter()", res);
+ }
+} \ No newline at end of file