@@ -, +, @@ Add changes proposed in Bug 54758 --- a/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java +++ a/src/java/org/apache/poi/hssf/usermodel/HSSFConditionalFormattingRule.java @@ -208,4 +208,20 @@ public final class HSSFConditionalFormattingRule implements ConditionalFormattin } return HSSFFormulaParser.toFormulaString(workbook, parsedExpression); } + + /** + * Sets the "stopIfTrue" attribute + */ + @Override + public void setStopIfTrue(boolean bln) { + throw new UnsupportedOperationException("StopIfTrue is not supported for HSSF yet."); + } + + /** + * Unsets the "stopIfTrue" attribute + */ + @Override + public void unsetStopIfTrue() { + throw new UnsupportedOperationException("StopIfTrue is not supported for HSSF yet."); + } } --- a/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java +++ a/src/java/org/apache/poi/ss/usermodel/ConditionalFormattingRule.java @@ -122,4 +122,14 @@ public interface ConditionalFormattingRule { * @return the second formula */ String getFormula2(); + + /** + * Sets the "stopIfTrue" attribute + */ + public void setStopIfTrue(boolean bln); + + /** + * Unsets the "stopIfTrue" attribute + */ + public void unsetStopIfTrue(); } --- a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java +++ a/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFConditionalFormattingRule.java @@ -221,4 +221,20 @@ public class XSSFConditionalFormattingRule implements ConditionalFormattingRule public String getFormula2(){ return _cfRule.sizeOfFormulaArray() == 2 ? _cfRule.getFormulaArray(1) : null; } + + /** + * Sets the "stopIfTrue" attribute + */ + @Override + public void setStopIfTrue(boolean bln) { + _cfRule.setStopIfTrue(bln); + } + + /** + * Unsets the "stopIfTrue" attribute + */ + @Override + public void unsetStopIfTrue() { + _cfRule.unsetStopIfTrue(); + } } --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java +++ a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFConditionalFormatting.java @@ -19,6 +19,11 @@ package org.apache.poi.xssf.usermodel; import org.apache.poi.ss.usermodel.BaseTestConditionalFormatting; +import org.apache.poi.ss.usermodel.ConditionalFormatting; +import org.apache.poi.ss.usermodel.ConditionalFormattingRule; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.SheetConditionalFormatting; +import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.XSSFITestDataProvider; /** @@ -32,4 +37,18 @@ public class TestXSSFConditionalFormatting extends BaseTestConditionalFormatting public void testRead(){ testRead("WithConditionalFormatting.xlsx"); } + + public void testStopIfTrue() { + Workbook wb = XSSFITestDataProvider.instance.openSampleWorkbook("WithConditionalFormatting.xlsx"); + Sheet sh = wb.getSheet("CF"); + SheetConditionalFormatting sheetCF = sh.getSheetConditionalFormatting(); + assertEquals(3, sheetCF.getNumConditionalFormattings()); + + ConditionalFormatting cf1 = sheetCF.getConditionalFormattingAt(0); + ConditionalFormattingRule rule1 = cf1.getRule(0); + + rule1.setStopIfTrue(true); + rule1.setStopIfTrue(false); + rule1.unsetStopIfTrue(); + } } --- a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java +++ a/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFConditionalFormatting.java @@ -20,6 +20,12 @@ package org.apache.poi.hssf.usermodel; import org.apache.poi.hssf.HSSFITestDataProvider; import org.apache.poi.ss.usermodel.BaseTestConditionalFormatting; +import org.apache.poi.ss.usermodel.ConditionalFormatting; +import org.apache.poi.ss.usermodel.ConditionalFormattingRule; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.SheetConditionalFormatting; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.XSSFITestDataProvider; /** * @@ -33,4 +39,30 @@ public final class TestHSSFConditionalFormatting extends BaseTestConditionalForm public void testRead(){ testRead("WithConditionalFormatting.xls"); } + + public void testStopIfTrue() { + Workbook wb = HSSFITestDataProvider.instance.openSampleWorkbook("WithConditionalFormatting.xls"); + Sheet sh = wb.getSheet("CF"); + SheetConditionalFormatting sheetCF = sh.getSheetConditionalFormatting(); + assertEquals(3, sheetCF.getNumConditionalFormattings()); + + ConditionalFormatting cf1 = sheetCF.getConditionalFormattingAt(0); + ConditionalFormattingRule rule1 = cf1.getRule(0); + + try { + rule1.setStopIfTrue(true); + fail("Should not be supported yet"); + } catch (UnsupportedOperationException e) { + } + try { + rule1.setStopIfTrue(false); + fail("Should not be supported yet"); + } catch (UnsupportedOperationException e) { + } + try { + rule1.unsetStopIfTrue(); + fail("Should not be supported yet"); + } catch (UnsupportedOperationException e) { + } + } }