mirror of https://github.com/apache/poi.git
Start on importing validation patches from bug #27511 (DVRecord still needs more work before it can go in)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@600513 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b895dae8fc
commit
efac971e79
|
@ -0,0 +1,157 @@
|
|||
|
||||
/* ====================================================================
|
||||
Copyright 2002-2004 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.poi.hssf.record;
|
||||
|
||||
import org.apache.poi.util.LittleEndian;
|
||||
|
||||
/**
|
||||
* Title: DVAL Record<P>
|
||||
* Description: used in data validation ;
|
||||
* This record is the list header of all data validation records in the current sheet.
|
||||
* @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
|
||||
* @version 2.0-pre
|
||||
*/
|
||||
|
||||
public class DVALRecord extends Record
|
||||
{
|
||||
public final static short sid = 0x01B2;
|
||||
|
||||
//unknown field ; it's size should be 10
|
||||
private short field_unknown = 0x0000;
|
||||
|
||||
//Object ID of the drop down arrow object for list boxes ;
|
||||
//in our case this will be always FFFF , until
|
||||
//MSODrawingGroup and MSODrawing records are implemented
|
||||
private int field_cbo_id = 0xFFFFFFFF;
|
||||
|
||||
//Number of following DV records
|
||||
//Default value is 1
|
||||
private int field_3_dv_no = 0x00000000;
|
||||
|
||||
public DVALRecord()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a DVAL record and sets its fields appropriately.
|
||||
*
|
||||
* @param in the RecordInputstream to read the record from
|
||||
*/
|
||||
|
||||
public DVALRecord(RecordInputStream in)
|
||||
{
|
||||
super(in);
|
||||
}
|
||||
|
||||
protected void validateSid(short id)
|
||||
{
|
||||
if (id != sid)
|
||||
{
|
||||
throw new RecordFormatException("NOT A valid DVAL RECORD");
|
||||
}
|
||||
}
|
||||
|
||||
protected void fillFields(RecordInputStream in)
|
||||
{
|
||||
for ( int i=0; i<5; i++)
|
||||
{
|
||||
this.field_unknown = in.readShort();
|
||||
}
|
||||
this.field_cbo_id = in.readInt();
|
||||
this.field_3_dv_no = in.readInt();
|
||||
}
|
||||
|
||||
/**
|
||||
* set the object ID of the drop down arrow object for list boxes
|
||||
* @param cboID - Object ID
|
||||
*/
|
||||
public void setObjectID(int cboID)
|
||||
{
|
||||
this.field_cbo_id = cboID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the number of following DV records
|
||||
* @param dvNo - the DV records number
|
||||
*/
|
||||
public void setDVRecNo(int dvNo)
|
||||
{
|
||||
this.field_3_dv_no = dvNo;
|
||||
}
|
||||
|
||||
/**
|
||||
* get Object ID of the drop down arrow object for list boxes
|
||||
*/
|
||||
public int getObjectID( )
|
||||
{
|
||||
return this.field_cbo_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get number of following DV records
|
||||
*/
|
||||
public int getDVRecNo( )
|
||||
{
|
||||
return this.field_3_dv_no;
|
||||
}
|
||||
|
||||
|
||||
public String toString()
|
||||
{
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
|
||||
buffer.append("[DVAL]\n");
|
||||
buffer.append(" .comboObjectID = ").append(Integer.toHexString(this.getObjectID())).append("\n");
|
||||
buffer.append(" .DVRecordsNumber = ").append(Integer.toHexString(this.getDVRecNo())).append("\n");
|
||||
buffer.append("[/DVAL]\n");
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte [] data)
|
||||
{
|
||||
LittleEndian.putShort(data, 0 + offset, this.sid);
|
||||
LittleEndian.putShort(data, 2 + offset, ( short)(this.getRecordSize()-4));
|
||||
for ( int i=0; i<5; i++)
|
||||
{
|
||||
LittleEndian.putShort(data, 4 + i*2 + offset, (short)this.field_unknown);
|
||||
}
|
||||
LittleEndian.putInt(data, 14 + offset, this.getObjectID());
|
||||
LittleEndian.putInt(data, 18 + offset, this.getDVRecNo());
|
||||
return getRecordSize();
|
||||
}
|
||||
|
||||
//with 4 bytes header
|
||||
public int getRecordSize()
|
||||
{
|
||||
return 22;
|
||||
}
|
||||
|
||||
public short getSid()
|
||||
{
|
||||
return this.sid;
|
||||
}
|
||||
|
||||
public Object clone()
|
||||
{
|
||||
DVALRecord rec = new DVALRecord();
|
||||
rec.field_unknown = this.field_unknown;
|
||||
rec.field_cbo_id = this.field_cbo_id;
|
||||
rec.field_3_dv_no = this.field_3_dv_no;
|
||||
return rec;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,254 @@
|
|||
/* ====================================================================
|
||||
Copyright 2002-2004 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.poi.hssf.util;
|
||||
|
||||
import org.apache.poi.util.LittleEndian;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* <p>Title: HSSFCellRangeAddress</p>
|
||||
* <p>Description:
|
||||
* Implementation of the cell range address lists,like is described in
|
||||
* OpenOffice.org's Excel Documentation .
|
||||
* In BIFF8 there is a common way to store absolute cell range address
|
||||
* lists in several records (not formulas). A cell range address list
|
||||
* consists of a field with the number of ranges and the list of the range
|
||||
* addresses. Each cell range address (called an ADDR structure) contains
|
||||
* 4 16-bit-values.</p>
|
||||
* <p>Copyright: Copyright (c) 2004</p>
|
||||
* <p>Company: </p>
|
||||
* @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
|
||||
* @version 2.0-pre
|
||||
*/
|
||||
|
||||
public class HSSFCellRangeAddress
|
||||
{
|
||||
/**
|
||||
* Number of following ADDR structures
|
||||
*/
|
||||
private short field_addr_number;
|
||||
|
||||
/**
|
||||
* List of ADDR structures. Each structure represents a cell range
|
||||
*/
|
||||
private ArrayList field_regions_list;
|
||||
|
||||
public HSSFCellRangeAddress()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new HSSFCellRangeAddress object and sets its fields appropriately .
|
||||
* Even this isn't an Excel record , I kept the same behavior for reading/writing
|
||||
* the object's data as for a regular record .
|
||||
* @param data Excel's file stream data
|
||||
* @param offset the offset in Excel's file data
|
||||
*/
|
||||
public HSSFCellRangeAddress( byte [] data, int offset )
|
||||
{
|
||||
this.fillFields(data, offset);
|
||||
}
|
||||
|
||||
public void fillFields(byte [] data, int offset)
|
||||
{
|
||||
this.field_addr_number = LittleEndian.getShort(data, 0 + offset);
|
||||
this.field_regions_list = new ArrayList(this.field_addr_number);
|
||||
int pos = 2;
|
||||
|
||||
for (int k = 0; k < this.field_addr_number; k++)
|
||||
{
|
||||
short first_row = LittleEndian.getShort(data, pos + offset);
|
||||
short first_col = LittleEndian.getShort(data, pos + 2 + offset);
|
||||
short last_row = LittleEndian.getShort(data, pos + 4 + offset);
|
||||
short last_col = LittleEndian.getShort(data, pos + 6 + offset);
|
||||
|
||||
AddrStructure region = new AddrStructure(first_row, first_col, last_row, last_col);
|
||||
pos += 8;
|
||||
this.field_regions_list.add(region);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the number of following ADDR structures.
|
||||
* The number of this structures is automatically set when reading an Excel file
|
||||
* and/or increased when you manually add a new ADDR structure .
|
||||
* This is the reason there isn't a set method for this field .
|
||||
* @return number of ADDR structures
|
||||
*/
|
||||
public short getADDRStructureNumber()
|
||||
{
|
||||
return this.field_addr_number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an ADDR structure .
|
||||
* @param first_row - the upper left hand corner's row
|
||||
* @param first_col - the upper left hand corner's col
|
||||
* @param last_row - the lower right hand corner's row
|
||||
* @param last_col - the lower right hand corner's col
|
||||
* @return the index of this ADDR structure
|
||||
*/
|
||||
public int addADDRStructure(short first_row, short first_col, short last_row, short last_col)
|
||||
{
|
||||
if (this.field_regions_list == null)
|
||||
{
|
||||
//just to be sure :-)
|
||||
this.field_addr_number= 0;
|
||||
this.field_regions_list = new ArrayList(10);
|
||||
}
|
||||
AddrStructure region = new AddrStructure(first_row, last_row, first_col, last_col);
|
||||
|
||||
this.field_regions_list.add(region);
|
||||
this.field_addr_number++;
|
||||
return this.field_addr_number;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the ADDR structure stored at the passed in index
|
||||
* @param index The ADDR structure's index
|
||||
*/
|
||||
public void removeADDRStructureAt(int index)
|
||||
{
|
||||
this.field_regions_list.remove(index);
|
||||
this.field_addr_number--;
|
||||
}
|
||||
|
||||
/**
|
||||
* return the ADDR structure at the given index.
|
||||
* @return AddrStructure representing
|
||||
*/
|
||||
public AddrStructure getADDRStructureAt(int index)
|
||||
{
|
||||
return ( AddrStructure ) this.field_regions_list.get(index);
|
||||
}
|
||||
|
||||
public int serialize(int offset, byte [] data)
|
||||
{
|
||||
int pos = 2;
|
||||
|
||||
LittleEndian.putShort(data, offset, this.getADDRStructureNumber());
|
||||
for (int k = 0; k < this.getADDRStructureNumber(); k++)
|
||||
{
|
||||
AddrStructure region = this.getADDRStructureAt(k);
|
||||
LittleEndian.putShort(data, offset + pos, region.getFirstRow());
|
||||
pos += 2;
|
||||
LittleEndian.putShort(data, offset + pos, region.getLastRow());
|
||||
pos += 2;
|
||||
LittleEndian.putShort(data, offset + pos, region.getFirstColumn());
|
||||
pos += 2;
|
||||
LittleEndian.putShort(data, offset + pos, region.getLastColumn());
|
||||
pos += 2;
|
||||
}
|
||||
return this.getSize();
|
||||
}
|
||||
|
||||
public int getSize()
|
||||
{
|
||||
return 2 + this.field_addr_number*8;
|
||||
}
|
||||
|
||||
public class AddrStructure
|
||||
{
|
||||
private short _first_row;
|
||||
private short _first_col;
|
||||
private short _last_row;
|
||||
private short _last_col;
|
||||
|
||||
public AddrStructure(short first_row, short last_row, short first_col, short last_col)
|
||||
{
|
||||
this._first_row = first_row;
|
||||
this._last_row = last_row;
|
||||
this._first_col = first_col;
|
||||
this._last_col = last_col;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the upper left hand corner column number
|
||||
* @return column number for the upper left hand corner
|
||||
*/
|
||||
public short getFirstColumn()
|
||||
{
|
||||
return this._first_col;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the upper left hand corner row number
|
||||
* @return row number for the upper left hand corner
|
||||
*/
|
||||
public short getFirstRow()
|
||||
{
|
||||
return this._first_row;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the lower right hand corner column number
|
||||
* @return column number for the lower right hand corner
|
||||
*/
|
||||
public short getLastColumn()
|
||||
{
|
||||
return this._last_col;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the lower right hand corner row number
|
||||
* @return row number for the lower right hand corner
|
||||
*/
|
||||
public short getLastRow()
|
||||
{
|
||||
return this._last_row;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the upper left hand corner column number
|
||||
* @param this._first_col column number for the upper left hand corner
|
||||
*/
|
||||
public void setFirstColumn(short first_col)
|
||||
{
|
||||
this._first_col = first_col;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the upper left hand corner row number
|
||||
* @param rowFrom row number for the upper left hand corner
|
||||
*/
|
||||
public void setFirstRow(short first_row)
|
||||
{
|
||||
this._first_row = first_row;
|
||||
}
|
||||
|
||||
/**
|
||||
* set the lower right hand corner column number
|
||||
* @param colTo column number for the lower right hand corner
|
||||
*/
|
||||
public void setLastColumn(short last_col)
|
||||
{
|
||||
this._last_col = last_col;
|
||||
}
|
||||
|
||||
/**
|
||||
* get the lower right hand corner row number
|
||||
* @param rowTo row number for the lower right hand corner
|
||||
*/
|
||||
public void setLastRow(short last_row)
|
||||
{
|
||||
this._last_row = last_row;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,471 @@
|
|||
/* ====================================================================
|
||||
Copyright 2002-2004 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.poi.hssf.util;
|
||||
|
||||
/**
|
||||
* <p>Title: HSSFDataValidation</p>
|
||||
* <p>Description: Utilty class for creating data validation cells</p>
|
||||
* <p>Copyright: Copyright (c) 2004</p>
|
||||
* <p>Company: </p>
|
||||
* @author Dragos Buleandra (dragos.buleandra@trade2b.ro)
|
||||
* @version 2.0-pre
|
||||
*/
|
||||
|
||||
public class HSSFDataValidation
|
||||
{
|
||||
/**
|
||||
* Validation data type constants
|
||||
*/
|
||||
/**
|
||||
* Any type
|
||||
*/
|
||||
public static final int DATA_TYPE_ANY = 0x00;
|
||||
/**
|
||||
* Integer type
|
||||
*/
|
||||
public static final int DATA_TYPE_INTEGER = 0x01;
|
||||
/**
|
||||
* Decimal type
|
||||
*/
|
||||
public static final int DATA_TYPE_DECIMAL = 0x02;
|
||||
/**
|
||||
* List type ( combo box type )
|
||||
*/
|
||||
public static final int DATA_TYPE_LIST = 0x03;
|
||||
/**
|
||||
* Date type
|
||||
*/
|
||||
public static final int DATA_TYPE_DATE = 0x04;
|
||||
/**
|
||||
* Time type
|
||||
*/
|
||||
public static final int DATA_TYPE_TIME = 0x05;
|
||||
/**
|
||||
* String length type
|
||||
*/
|
||||
public static final int DATA_TYPE_TEXT_LENGTH = 0x06;
|
||||
/**
|
||||
* Formula ( custom ) type
|
||||
*/
|
||||
public static final int DATA_TYPE_FORMULA = 0x07;
|
||||
|
||||
/**
|
||||
* Error style constants for error box
|
||||
*/
|
||||
/**
|
||||
* STOP style like
|
||||
*/
|
||||
public static final int ERROR_STYLE_STOP = 0x00;
|
||||
/**
|
||||
* WARNING style like
|
||||
*/
|
||||
public static final int ERROR_STYLE_WARNING = 0x01;
|
||||
/**
|
||||
* INFO style like
|
||||
*/
|
||||
public static final int ERROR_STYLE_INFO = 0x02;
|
||||
|
||||
/**
|
||||
* Condition operator
|
||||
*/
|
||||
public static final int OPERATOR_BETWEEN = 0x00;
|
||||
public static final int OPERATOR_NOT_BETWEEN = 0x01;
|
||||
public static final int OPERATOR_EQUAL = 0x02;
|
||||
public static final int OPERATOR_NOT_EQUAL = 0x03;
|
||||
public static final int OPERATOR_GREATER_THAN = 0x04;
|
||||
public static final int OPERATOR_LESS_THAN = 0x05;
|
||||
public static final int OPERATOR_GREATER_OR_EQUAL = 0x06;
|
||||
public static final int OPERATOR_LESS_OR_EQUAL = 0x07;
|
||||
|
||||
private short _first_row = 0;
|
||||
private short _first_col = 0;
|
||||
private short _last_row = 0;
|
||||
private short _last_col = 0;
|
||||
|
||||
private String _prompt_title = null;
|
||||
private String _prompt_text = null;
|
||||
private String _error_title = null;
|
||||
private String _error_text = null;
|
||||
private String _string_first_formula = null;
|
||||
private String _string_sec_formula = null;
|
||||
|
||||
private int _data_type = HSSFDataValidation.DATA_TYPE_ANY;
|
||||
private int _error_style = HSSFDataValidation.ERROR_STYLE_STOP;
|
||||
private boolean _list_explicit_formula = true;
|
||||
private boolean _empty_cell_allowed = true;
|
||||
private boolean _surpress_dropdown_arrow = false;
|
||||
private boolean _show_prompt_box = true;
|
||||
private boolean _show_error_box = true;
|
||||
private int _operator = HSSFDataValidation.OPERATOR_BETWEEN;
|
||||
|
||||
|
||||
/**
|
||||
* Empty constructor
|
||||
*/
|
||||
public HSSFDataValidation( )
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor wich initializes the cell range on wich this object will be applied
|
||||
* @param first_row First row
|
||||
* @param first_col First column
|
||||
* @param last_row Last row
|
||||
* @param last_col Last column
|
||||
*/
|
||||
public HSSFDataValidation( short first_row, short first_col, short last_row, short last_col )
|
||||
{
|
||||
this._first_row = first_row;
|
||||
this._first_col = first_col;
|
||||
this._last_row = last_row;
|
||||
this._last_col = last_col;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the type of this object
|
||||
* @param data_type The type
|
||||
* @see DATA_TYPE_ANY, DATA_TYPE_INTEGER, DATA_TYPE_DECIMNAL, DATA_TYPE_LIST, DATA_TYPE_DATE,
|
||||
* DATA_TYPE_TIME, DATA_TYPE_TEXT_LENTGH, DATA_TYPE_FORMULA
|
||||
*/
|
||||
public void setDataValidationType( int data_type )
|
||||
{
|
||||
this._data_type = data_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* The data type of this object
|
||||
* @return The type
|
||||
* @see DATA_TYPE_ANY, DATA_TYPE_INTEGER, DATA_TYPE_DECIMNAL, DATA_TYPE_LIST, DATA_TYPE_DATE,
|
||||
* DATA_TYPE_TIME, DATA_TYPE_TEXT_LENTGH, DATA_TYPE_FORMULA
|
||||
*/
|
||||
public int getDataValidationType()
|
||||
{
|
||||
return this._data_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the error style for error box
|
||||
* @param error_style Error style constant
|
||||
* @see ERROR_STYLE_STOP, ERROR_STYLE_WARNING, ERROR_STYLE_INFO
|
||||
*/
|
||||
public void setErrorStyle( int error_style )
|
||||
{
|
||||
this._error_style = error_style;
|
||||
}
|
||||
|
||||
/**
|
||||
* returns the error style of errror box
|
||||
* @return the style constant
|
||||
* @see ERROR_STYLE_STOP, ERROR_STYLE_WARNING, ERROR_STYLE_INFO
|
||||
*/
|
||||
public int getErrorStyle( )
|
||||
{
|
||||
return this._error_style;
|
||||
}
|
||||
|
||||
/**
|
||||
* If this object has an explicit formula . This is useful only for list data validation object
|
||||
* @param explicit True if use an explicit formula
|
||||
*/
|
||||
public void setExplicitListFormula( boolean explicit )
|
||||
{
|
||||
this._list_explicit_formula = explicit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the settings for explicit formula . This is useful only for list data validation objects.
|
||||
* This method always returns false if the object isn't a list validation object
|
||||
* @see setDataValidationType( int data_type )
|
||||
* @return
|
||||
*/
|
||||
public boolean getExplicitListFormula( )
|
||||
{
|
||||
if ( this._data_type != HSSFDataValidation.DATA_TYPE_LIST )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return this._list_explicit_formula ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets if this object allows empty as a valid value
|
||||
* @param allowed True if this object should treats empty as valid value , false otherwise
|
||||
*/
|
||||
public void setEmptyCellAllowed( boolean allowed )
|
||||
{
|
||||
this._empty_cell_allowed = allowed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the settings for empty cells allowed
|
||||
* @return True if this object should treats empty as valid value , false otherwise
|
||||
*/
|
||||
public boolean getEmptyCellAllowed( )
|
||||
{
|
||||
return this._empty_cell_allowed ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Useful for list validation objects .
|
||||
* @param surppres True if a list should display the values into a drop down list , false otherwise .
|
||||
* In other words , if a list should display the arrow sign on its right side
|
||||
*/
|
||||
public void setSurppressDropDownArrow( boolean surppres )
|
||||
{
|
||||
this._surpress_dropdown_arrow = surppres;
|
||||
}
|
||||
|
||||
/**
|
||||
* Useful only list validation objects .
|
||||
* This method always returns false if the object isn't a list validation object
|
||||
* @return True if a list should display the values into a drop down list , false otherwise .
|
||||
* @see setDataValidationType( int data_type )
|
||||
*/
|
||||
public boolean getSurppressDropDownArrow( )
|
||||
{
|
||||
if ( this._data_type != HSSFDataValidation.DATA_TYPE_LIST )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return this._surpress_dropdown_arrow ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the behaviour when a cell which belongs to this object is selected
|
||||
* @param show True if an prompt box should be displayed , false otherwise
|
||||
*/
|
||||
public void setShowPromptBox( boolean show )
|
||||
{
|
||||
this._show_prompt_box = show;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param show True if an prompt box should be displayed , false otherwise
|
||||
*/
|
||||
public boolean getShowPromptBox( )
|
||||
{
|
||||
if ( (this.getPromptBoxText() == null) && (this.getPromptBoxTitle() == null) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return this._show_prompt_box ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the behaviour when an invalid value is entered
|
||||
* @param show True if an error box should be displayed , false otherwise
|
||||
*/
|
||||
public void setShowErrorBox( boolean show )
|
||||
{
|
||||
this._show_error_box = show;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if an error box should be displayed , false otherwise
|
||||
*/
|
||||
public boolean getShowErrorBox( )
|
||||
{
|
||||
if ( (this.getErrorBoxText() == null) && (this.getErrorBoxTitle() == null) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return this._show_error_box ;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the operator involved in the formula whic governs this object
|
||||
* Example : if you wants that a cell to accept only values between 1 and 5 , which
|
||||
* mathematically means 1 <= value <= 5 , then the operator should be OPERATOR_BETWEEN
|
||||
* @param operator A constant for operator
|
||||
* @see OPERATOR_BETWEEN, OPERATOR_NOT_BETWEEN, OPERATOR_EQUAL, OPERATOR_NOT_EQUAL
|
||||
* OPERATOR_GREATER_THAN, OPERATOR_LESS_THAN, OPERATOR_GREATER_OR_EQUAL,
|
||||
* OPERATOR_LESS_OR_EQUAL
|
||||
*/
|
||||
public void setOperator( int operator )
|
||||
{
|
||||
this._operator = operator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the operator used for this object's formula
|
||||
* @return
|
||||
* @see OPERATOR_BETWEEN, OPERATOR_NOT_BETWEEN, OPERATOR_EQUAL, OPERATOR_NOT_EQUAL
|
||||
* OPERATOR_GREATER_THAN, OPERATOR_LESS_THAN, OPERATOR_GREATER_OR_EQUAL,
|
||||
* OPERATOR_LESS_OR_EQUAL
|
||||
*/
|
||||
public int getOperator()
|
||||
{
|
||||
return this._operator;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the title and text for the prompt box . Prompt box is displayed when the user
|
||||
* selects a cell which belongs to this validation object . In order for a prompt box
|
||||
* to be displayed you should also use method setShowPromptBox( boolean show )
|
||||
* @param title The prompt box's title
|
||||
* @param text The prompt box's text
|
||||
* @see setShowPromptBox( boolean show )
|
||||
*/
|
||||
public void createPromptBox( String title, String text )
|
||||
{
|
||||
this._prompt_title = title;
|
||||
this._prompt_text = text;
|
||||
this.setShowPromptBox(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the prompt box's title
|
||||
* @return Prompt box's title or null
|
||||
*/
|
||||
public String getPromptBoxTitle( )
|
||||
{
|
||||
return this._prompt_title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the prompt box's text
|
||||
* @return Prompt box's text or null
|
||||
*/
|
||||
public String getPromptBoxText( )
|
||||
{
|
||||
return this._prompt_text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the title and text for the error box . Error box is displayed when the user
|
||||
* enters an invalid value int o a cell which belongs to this validation object .
|
||||
* In order for an error box to be displayed you should also use method
|
||||
* setShowErrorBox( boolean show )
|
||||
* @param title The error box's title
|
||||
* @param text The error box's text
|
||||
* @see setShowErrorBox( boolean show )
|
||||
*/
|
||||
public void createErrorBox( String title, String text )
|
||||
{
|
||||
this._error_title = title;
|
||||
this._error_text = text;
|
||||
this.setShowErrorBox(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the error box's title
|
||||
* @return Error box's title or null
|
||||
*/
|
||||
public String getErrorBoxTitle( )
|
||||
{
|
||||
return this._error_title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the error box's text
|
||||
* @return Error box's text or null
|
||||
*/
|
||||
public String getErrorBoxText( )
|
||||
{
|
||||
return this._error_text;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the first formula for this object .
|
||||
* A formula is divided into three parts : first formula , operator and second formula .
|
||||
* In other words , a formula contains a left oprand , an operator and a right operand.
|
||||
* This is the general rule . An example is 1<= value <= 5 . In this case ,
|
||||
* the left operand ( or the first formula ) is the number 1 . The operator is
|
||||
* OPERATOR_BETWEEN and the right operand ( or the second formula ) is 5 .
|
||||
* @param formula
|
||||
*/
|
||||
public void setFirstFormula( String formula )
|
||||
{
|
||||
this._string_first_formula = formula;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the first formula
|
||||
* @return
|
||||
*/
|
||||
public String getFirstFormula( )
|
||||
{
|
||||
return this._string_first_formula;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the first formula for this object .
|
||||
* A formula is divided into three parts : first formula , operator and second formula .
|
||||
* In other words , a formula contains a left oprand , an operator and a right operand.
|
||||
* This is the general rule . An example is 1<= value <=5 . In this case ,
|
||||
* the left operand ( or the first formula ) is the number 1 . The operator is
|
||||
* OPERATOR_BETWEEN and the right operand ( or the second formula ) is 5 .
|
||||
* But there are cases when a second formula isn't needed :
|
||||
* You want somethink like : all values less than 5 . In this case , there's only a first
|
||||
* formula ( in our case 5 ) and the operator OPERATOR_LESS_THAN
|
||||
* @param formula
|
||||
*/
|
||||
public void setSecondFormula( String formula )
|
||||
{
|
||||
this._string_sec_formula = formula;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the second formula
|
||||
* @return
|
||||
*/
|
||||
public String getSecondFormula( )
|
||||
{
|
||||
return this._string_sec_formula;
|
||||
}
|
||||
|
||||
public void setFirstRow( short first_row )
|
||||
{
|
||||
this._first_row = first_row;
|
||||
}
|
||||
|
||||
public void setFirstColumn( short first_column )
|
||||
{
|
||||
this._first_col = first_column;
|
||||
}
|
||||
|
||||
public void setLastRow( short last_row )
|
||||
{
|
||||
this._last_row = last_row;
|
||||
}
|
||||
|
||||
public void setLastColumn( short last_column )
|
||||
{
|
||||
this._last_col = last_column;
|
||||
}
|
||||
|
||||
public short getFirstRow()
|
||||
{
|
||||
return this._first_row;
|
||||
}
|
||||
|
||||
public short getFirstColumn()
|
||||
{
|
||||
return this._first_col;
|
||||
}
|
||||
|
||||
public short getLastRow()
|
||||
{
|
||||
return this._last_row;
|
||||
}
|
||||
|
||||
public short getLastColumn()
|
||||
{
|
||||
return this._last_col;
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue