93 lines
3.0 KiB
Java
93 lines
3.0 KiB
Java
package jxl.write.biff;
|
|
|
|
import common.Logger;
|
|
import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import jxl.WorkbookSettings;
|
|
import jxl.biff.ByteData;
|
|
import jxl.read.biff.DataValiditySettingsRecord;
|
|
|
|
public class DataValidation {
|
|
private static final Logger logger = Logger.getLogger(DataValidation.class);
|
|
|
|
private DataValidityListRecord validityList;
|
|
|
|
private ArrayList validitySettings;
|
|
|
|
private int pos;
|
|
|
|
private WritableWorkbookImpl workbook;
|
|
|
|
private WorkbookSettings workbookSettings;
|
|
|
|
DataValidation(jxl.read.biff.DataValidation dv, WritableWorkbookImpl w, WorkbookSettings ws) {
|
|
this.workbook = w;
|
|
this.workbookSettings = ws;
|
|
this.validityList = new DataValidityListRecord(dv.getDataValidityList());
|
|
DataValiditySettingsRecord[] settings = dv.getDataValiditySettings();
|
|
this.validitySettings = new ArrayList(settings.length);
|
|
for (int i = 0; i < settings.length; i++)
|
|
this.validitySettings.add(new DataValiditySettingsRecord(settings[i], this.workbook, this.workbookSettings));
|
|
}
|
|
|
|
DataValidation(DataValidation dv, WritableWorkbookImpl w, WorkbookSettings ws) {
|
|
this.workbook = w;
|
|
this.workbookSettings = ws;
|
|
this.validityList = new DataValidityListRecord(dv.validityList);
|
|
this.validitySettings = new ArrayList(dv.validitySettings.size());
|
|
for (Iterator i = dv.validitySettings.iterator(); i.hasNext(); ) {
|
|
DataValiditySettingsRecord dvsr = i.next();
|
|
this.validitySettings.add(new DataValiditySettingsRecord(dvsr, this.workbook, this.workbookSettings));
|
|
}
|
|
}
|
|
|
|
public void write(File outputFile) throws IOException {
|
|
if (!this.validityList.hasDVRecords())
|
|
return;
|
|
outputFile.write((ByteData)this.validityList);
|
|
for (Iterator i = this.validitySettings.iterator(); i.hasNext(); ) {
|
|
DataValiditySettingsRecord dv = i.next();
|
|
outputFile.write((ByteData)dv);
|
|
}
|
|
}
|
|
|
|
public void insertRow(int row) {
|
|
for (Iterator i = this.validitySettings.iterator(); i.hasNext(); ) {
|
|
DataValiditySettingsRecord dv = i.next();
|
|
dv.insertRow(row);
|
|
}
|
|
}
|
|
|
|
public void removeRow(int row) {
|
|
for (Iterator i = this.validitySettings.iterator(); i.hasNext(); ) {
|
|
DataValiditySettingsRecord dv = i.next();
|
|
if (dv.getFirstRow() == row && dv.getLastRow() == row) {
|
|
i.remove();
|
|
this.validityList.dvRemoved();
|
|
continue;
|
|
}
|
|
dv.removeRow(row);
|
|
}
|
|
}
|
|
|
|
public void insertColumn(int col) {
|
|
for (Iterator i = this.validitySettings.iterator(); i.hasNext(); ) {
|
|
DataValiditySettingsRecord dv = i.next();
|
|
dv.insertColumn(col);
|
|
}
|
|
}
|
|
|
|
public void removeColumn(int col) {
|
|
for (Iterator i = this.validitySettings.iterator(); i.hasNext(); ) {
|
|
DataValiditySettingsRecord dv = i.next();
|
|
if (dv.getFirstColumn() == col && dv.getLastColumn() == col) {
|
|
i.remove();
|
|
this.validityList.dvRemoved();
|
|
continue;
|
|
}
|
|
dv.removeColumn(col);
|
|
}
|
|
}
|
|
}
|