| /* |
| * ==================================================================== |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * ==================================================================== |
| */ |
| |
| package org.apache.poi.ss.usermodel; |
| |
| import org.apache.poi.ss.util.CellRangeAddress; |
| |
| /** |
| * The ConditionalFormatting class encapsulates all settings of Conditional Formatting. |
| * |
| * The class can be used |
| * |
| * <UL> |
| * <LI> |
| * to make a copy ConditionalFormatting settings. |
| * </LI> |
| * |
| * |
| * For example: |
| * <PRE> |
| * ConditionalFormatting cf = sheet.getConditionalFormattingAt(index); |
| * newSheet.addConditionalFormatting(cf); |
| * </PRE> |
| * |
| * <LI> |
| * or to modify existing Conditional Formatting settings (formatting regions and/or rules). |
| * </LI> |
| * </UL> |
| * |
| * Use {@link org.apache.poi.ss.usermodel.Sheet#getSheetConditionalFormatting()} |
| * to get access to an instance of this class. |
| * <P> |
| * To create a new Conditional Formatting set use the following approach: |
| * |
| * <PRE> |
| * |
| * // Define a Conditional Formatting rule, which triggers formatting |
| * // when cell's value is greater or equal than 100.0 and |
| * // applies patternFormatting defined below. |
| * ConditionalFormattingRule rule = sheet.createConditionalFormattingRule( |
| * ComparisonOperator.GE, |
| * "100.0", // 1st formula |
| * null // 2nd formula is not used for comparison operator GE |
| * ); |
| * |
| * // Create pattern with red background |
| * PatternFormatting patternFmt = rule.cretePatternFormatting(); |
| * patternFormatting.setFillBackgroundColor(IndexedColor.RED.getIndex()); |
| * |
| * // Define a region containing first column |
| * Region [] regions = |
| * { |
| * new Region(1,(short)1,-1,(short)1) |
| * }; |
| * |
| * // Apply Conditional Formatting rule defined above to the regions |
| * sheet.addConditionalFormatting(regions, rule); |
| * </PRE> |
| */ |
| public interface ConditionalFormatting { |
| |
| /** |
| * @return array of <tt>CellRangeAddress</tt>s. Never <code>null</code> |
| */ |
| CellRangeAddress[] getFormattingRanges(); |
| |
| /** |
| * Sets the cell ranges the rule conditional formatting must be applied to. |
| * @param ranges non-null array of <tt>CellRangeAddress</tt>s |
| */ |
| void setFormattingRanges(CellRangeAddress[] ranges); |
| |
| /** |
| * Replaces an existing Conditional Formatting rule at position idx. |
| * Excel pre-2007 allows to create up to 3 Conditional Formatting rules, |
| * 2007 and later allow unlimited numbers. |
| * This method can be useful to modify existing Conditional Formatting rules. |
| * |
| * @param idx position of the rule. Should be between 0 and 2 for Excel before 2007, otherwise 0+. |
| * @param cfRule - Conditional Formatting rule |
| */ |
| void setRule(int idx, ConditionalFormattingRule cfRule); |
| |
| /** |
| * Add a Conditional Formatting rule. |
| * Excel pre-2007 allows to create up to 3 Conditional Formatting rules. |
| * |
| * @param cfRule - Conditional Formatting rule |
| */ |
| void addRule(ConditionalFormattingRule cfRule); |
| |
| /** |
| * @return the Conditional Formatting rule at position idx. |
| */ |
| ConditionalFormattingRule getRule(int idx); |
| |
| /** |
| * @return number of Conditional Formatting rules. |
| */ |
| int getNumberOfRules(); |
| } |