blob: 551d287858eb4a53f40c171814deb81a1520f1bb [file] [log] [blame]
/*
* Copyright 1999-2002,2004 The Apache Software Foundation.
*
* Licensed 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.cocoon.components.elementprocessor.impl.poi.hssf.elements;
import org.apache.poi.hssf.util.RangeAddress;
import org.apache.poi.hssf.util.Region;
import java.io.IOException;
/**
* No-op implementation of ElementProcessor to handle the "Merge" tag.
* This element is a container of other elements and has several attributes.
*
* @author Danny Mui (danny@muibros.com)
* @version CVS $Id: EPMerge.java,v 1.6 2004/03/05 13:02:04 bdelacretaz Exp $
*/
public class EPMerge extends BaseElementProcessor {
private String _cellRange;
/**
* constructor
*/
public EPMerge() {
super(null);
_cellRange = null;
}
public String getCellRange() {
if (this._cellRange == null) {
//pulls in the content
_cellRange = this.getData();
}
return this._cellRange;
}
/**
* Setup the merged regions
* @exception IOException
*/
public void endProcessing() throws IOException {
RangeAddress rangeAddress = new RangeAddress(getCellRange());
Sheet sheet = this.getSheet();
//subtracting one since rangeaddress starts at 1,1 where rows/cols
// start at 0,0
short fromCol =
(short) (rangeAddress.getXPosition(rangeAddress.getFromCell()) - 1);
int fromRow = rangeAddress.getYPosition(rangeAddress.getFromCell()) - 1;
short toCol =
(short) (rangeAddress.getXPosition(rangeAddress.getToCell()) - 1);
int toRow = rangeAddress.getYPosition(rangeAddress.getToCell()) - 1;
if (getLogger().isDebugEnabled()) {
getLogger().debug("Merging Range: Row (" + fromRow + ") Col ("
+ fromCol + ")" + " to Row (" + toRow + ") Col (" + toCol
+ ")");
}
Region region = new Region(fromRow, fromCol, toRow, toCol);
sheet.addMergedRegion(region);
}
} // end public class EPMerge