115 lines
2.5 KiB
Java
115 lines
2.5 KiB
Java
package jxl.biff;
|
|
|
|
import jxl.Cell;
|
|
import jxl.Range;
|
|
import jxl.Sheet;
|
|
|
|
public class SheetRangeImpl implements Range {
|
|
private Sheet sheet;
|
|
|
|
private int column1;
|
|
|
|
private int row1;
|
|
|
|
private int column2;
|
|
|
|
private int row2;
|
|
|
|
public SheetRangeImpl(Sheet s, int c1, int r1, int c2, int r2) {
|
|
this.sheet = s;
|
|
this.row1 = r1;
|
|
this.row2 = r2;
|
|
this.column1 = c1;
|
|
this.column2 = c2;
|
|
}
|
|
|
|
public SheetRangeImpl(SheetRangeImpl c, Sheet s) {
|
|
this.sheet = s;
|
|
this.row1 = c.row1;
|
|
this.row2 = c.row2;
|
|
this.column1 = c.column1;
|
|
this.column2 = c.column2;
|
|
}
|
|
|
|
public Cell getTopLeft() {
|
|
return this.sheet.getCell(this.column1, this.row1);
|
|
}
|
|
|
|
public Cell getBottomRight() {
|
|
return this.sheet.getCell(this.column2, this.row2);
|
|
}
|
|
|
|
public int getFirstSheetIndex() {
|
|
return -1;
|
|
}
|
|
|
|
public int getLastSheetIndex() {
|
|
return -1;
|
|
}
|
|
|
|
public boolean intersects(SheetRangeImpl range) {
|
|
if (range == this)
|
|
return true;
|
|
if (this.row2 < range.row1 || this.row1 > range.row2 || this.column2 < range.column1 || this.column1 > range.column2)
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
public String toString() {
|
|
StringBuffer sb = new StringBuffer();
|
|
CellReferenceHelper.getCellReference(this.column1, this.row1, sb);
|
|
sb.append('-');
|
|
CellReferenceHelper.getCellReference(this.column2, this.row2, sb);
|
|
return sb.toString();
|
|
}
|
|
|
|
public void insertRow(int r) {
|
|
if (r > this.row2)
|
|
return;
|
|
if (r <= this.row1)
|
|
this.row1++;
|
|
if (r <= this.row2)
|
|
this.row2++;
|
|
}
|
|
|
|
public void insertColumn(int c) {
|
|
if (c > this.column2)
|
|
return;
|
|
if (c <= this.column1)
|
|
this.column1++;
|
|
if (c <= this.column2)
|
|
this.column2++;
|
|
}
|
|
|
|
public void removeRow(int r) {
|
|
if (r > this.row2)
|
|
return;
|
|
if (r < this.row1)
|
|
this.row1--;
|
|
if (r < this.row2)
|
|
this.row2--;
|
|
}
|
|
|
|
public void removeColumn(int c) {
|
|
if (c > this.column2)
|
|
return;
|
|
if (c < this.column1)
|
|
this.column1--;
|
|
if (c < this.column2)
|
|
this.column2--;
|
|
}
|
|
|
|
public int hashCode() {
|
|
return 0xFFFF ^ this.row1 ^ this.row2 ^ this.column1 ^ this.column2;
|
|
}
|
|
|
|
public boolean equals(Object o) {
|
|
if (o == this)
|
|
return true;
|
|
if (!(o instanceof SheetRangeImpl))
|
|
return false;
|
|
SheetRangeImpl compare = (SheetRangeImpl)o;
|
|
return (this.column1 == compare.column1 && this.column2 == compare.column2 && this.row1 == compare.row1 && this.row2 == compare.row2);
|
|
}
|
|
}
|