package com.knowgate.surveys;
import com.knowgate.debug.DebugFile;
import com.knowgate.misc.Gadgets;
/**
* @author Sergio Montoro Ten
* @version 1.0
*/
public class ChoiceElement {
public String name;
public String value;
public String caption;
public boolean checked;
public int column;
public ChoiceElement() {
caption = name = value = null;
column = 1;
checked = false;
}
/**
* <p>Get Element name</p>
* @return String
*/
public String getName() { return name; }
/**
* <p>Set Element name</p>
* Only letters and numbers allowed. No spaces nor delimiter characters.
* @param sName String
* @throws IllegalArgumentException
*/
public void setName(String sName)
throws IllegalArgumentException {
if (DebugFile.trace) {
if (sName.indexOf(' ')>=0 || sName.indexOf(',')>=0 || sName.indexOf(';')>=0 ||
sName.indexOf('|')>=0 || sName.indexOf('&')>=0 || sName.indexOf('?')>=0 ||
sName.indexOf('*')>=0 || sName.indexOf('/')>=0 || sName.indexOf('\\')>=0 ||
sName.indexOf('-')>=0 || sName.indexOf('(')>=0 || sName.indexOf(')')>=0 ||
sName.indexOf('+')>=0 || sName.indexOf('[')>=0 || sName.indexOf(']')>=0 ||
sName.indexOf('%')>=0 || sName.indexOf('{')>=0 || sName.indexOf('}')>=0 ||
sName.indexOf('ñ')>=0 || sName.indexOf('Ñ')>=0 || sName.indexOf('^')>=0 ||
sName.indexOf('ç')>=0 || sName.indexOf('Ç')>=0 || sName.indexOf('"')>=0 ||
sName.indexOf('á')>=0 || sName.indexOf('é')>=0 || sName.indexOf('í')>=0 ||
sName.indexOf('ó')>=0 || sName.indexOf('ú')>=0 || sName.indexOf('à')>=0 ||
sName.indexOf('è')>=0 || sName.indexOf('è')>=0 || sName.indexOf('ò')>=0 ||
sName.indexOf('ù')>=0 || sName.indexOf('`')>=0 || sName.indexOf('´')>=0 ||
sName.indexOf('.')>=0 || sName.indexOf(':')>=0 || sName.indexOf(',')>=0 ||
sName.indexOf(39 )>=0 || sName.indexOf('¡')>=0 || sName.indexOf('¿')>=0) {
}
throw new IllegalArgumentException("Element name contains invalid characters");
} else {
name = sName;
}
}
/**
* Get element caption
* @return String
*/
public String getCaption() {
return caption==null ? "" : caption;
}
/**
* Get element caption text or alt if it is an image
* @return String
*/
public String getCaptionAlt() {
String sCaptionText;
if (null==caption) {
sCaptionText = "";
}
else {
int iAlt = caption.indexOf("alt=");
if (iAlt<0) iAlt = caption.indexOf("ALT=");
if (iAlt>0) {
int iQ1=iAlt+3;
do {
iQ1++;
} while (iQ1<caption.length() && caption.charAt(iQ1)!=39 && caption.charAt(iQ1)!='"');
int iQ2=iQ1;
do {
iQ2++;
} while (iQ2<caption.length() && caption.charAt(iQ2)!=caption.charAt(iQ1));
if (iQ1+1==iQ2)
sCaptionText = "";
else
sCaptionText = Gadgets.HTMLDencode(caption.substring(iQ1+1, iQ2));
}
else {
sCaptionText = caption;
}
}
return sCaptionText;
} // getCaptionAlt
/**
* Set element caption
* @return String
*/
public void setCaption(String sCaption) { caption = sCaption; }
/**
* Get checked state
* @return boolean
*/
public boolean isChecked() { return checked; }
/**
* Set checked state
*/
public void isChecked(boolean bChecked) { checked=bChecked; }
/**
* Get element value
* @return String
*/
public String getValue() { return value; }
/**
* Set element value
*/
public void setValue(String sValue) { value=sValue; }
/**
* Get element column
* @return int [1..n] Column at which element must be displayed. It is 1 by default.
*/
public int getColumn() { return column; }
/**
* Set element column
* @param iColumn int [1..n] Column at which element must be displayed when painting the form
*/
public void setColumn(int iColumn) { column=iColumn; }
// ---------------------------------------------------------------------------
public short getClassId() {
return ChoiceElement.ClassId;
}
// ---------------------------------------------------------------------------
public static final short ClassId = 214;
}