package org.akaza.openclinica.web.pform.widget;
import net.sf.saxon.type.ItemType;
import org.akaza.openclinica.bean.submit.CRFVersionBean;
import org.akaza.openclinica.bean.submit.ItemBean;
import org.akaza.openclinica.bean.submit.ItemFormMetadataBean;
import org.akaza.openclinica.bean.submit.ItemGroupBean;
import org.akaza.openclinica.bean.submit.SectionBean;
import org.akaza.openclinica.domain.datamap.Section;
import org.akaza.openclinica.domain.rule.expression.ExpressionBean;
import org.akaza.openclinica.web.pform.dto.Bind;
import org.akaza.openclinica.web.pform.dto.Hint;
import org.akaza.openclinica.web.pform.dto.Input;
import org.akaza.openclinica.web.pform.dto.Label;
import org.akaza.openclinica.web.pform.dto.Repeat;
import org.akaza.openclinica.web.pform.dto.UserControl;
import org.w3c.dom.svg.GetSVGDocument;
public class InputWidget extends BaseWidget {
private ItemBean item = null;
private CRFVersionBean version = null;
private String appearance = null;
private ItemGroupBean itemGroupBean = null;
private ItemFormMetadataBean itemFormMetadataBean = null;
private boolean isItemRequired;
private String expression;
public InputWidget(CRFVersionBean version, ItemBean item, String appearance, ItemGroupBean itemGroupBean,
ItemFormMetadataBean itemFormMetadataBean, boolean isItemRequired,
String expression) {
this.item = item;
this.version = version;
this.itemGroupBean = itemGroupBean;
this.itemFormMetadataBean = itemFormMetadataBean;
this.isItemRequired = isItemRequired;
this.appearance = appearance;
this.expression = expression;
}
@Override
public UserControl getUserControl() {
Input input = new Input();
Label label = new Label();
label.setLabel(itemFormMetadataBean.getLeftItemText());
input.setLabel(label);
// Hint hint = new Hint();
// hint.setHint(item.getItemMeta().getLeftItemText());
// input.setHint(hint);
if (appearance != null)
input.setAppearance(appearance);
input.setRef("/" + version.getOid() + "/" + itemGroupBean.getOid() + "/" + item.getOid());
return input;
}
@Override
public Bind getBinding() {
String relevant = null;
Bind binding = new Bind();
binding.setNodeSet("/" + version.getOid() + "/" + itemGroupBean.getOid() + "/" + item.getOid());
Integer responseTypeId = itemFormMetadataBean.getResponseSet().getResponseTypeId();
if (responseTypeId == 8 || responseTypeId == 9)
binding.setReadOnly("true()");
relevant = expression;
if (relevant != null)
binding.setRelevant(relevant);
binding.setType(getDataType(item));
if (isItemRequired)
binding.setRequired("true()");
return binding;
}
}