use of org.jaffa.rules.IPropertyRuleIntrospector in project jaffa-framework by jaffa-projects.
the class CheckBoxTag method otherDoStartTagOperations.
/**
* This generates the HTML for the tag.
*/
public void otherDoStartTagOperations() {
try {
super.otherDoStartTagOperations();
} catch (JspException e) {
log.error("CheckBoxTag.otherDoStartTagOperations() error=" + e);
}
// Preprocess if within a Property widget
IPropertyRuleIntrospector propertyRuleIntrospector = lookupPropertyTag();
// raise an error, if the 'field' is null
if (getField() == null) {
String str = "The " + TAG_NAME + " requires 'field' parameter to be supplied or it should be within a PropertyTag";
log.error(str);
throw new MissingParametersRuntimeException(str);
}
// Get the formtag from the page & register the widget
FormTag formTag = TagHelper.getFormTag(pageContext);
if (formTag == null) {
String str = "The " + TAG_NAME + " should be inside a FormTag";
log.error(str);
throw new OuterFormTagMissingRuntimeException(str);
}
// Will hold the required html
String html = null;
// Get the model
SimpleWidgetModel model = null;
try {
model = (SimpleWidgetModel) TagHelper.getModel(pageContext, getField(), TAG_NAME);
} catch (ClassCastException e) {
String str = "Wrong WidgetModel for " + TAG_NAME + " on field " + getField();
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
// Check for an IPropertyRuleIntrospector, if this tag is not within a Property widget
try {
if (propertyRuleIntrospector == null)
propertyRuleIntrospector = TagHelper.getPropertyRuleIntrospector(pageContext, getField());
// Wrap the propertyRuleIntrospector
propertyRuleIntrospector = TagHelper.wrapPropertyRuleIntrospector(propertyRuleIntrospector, model);
} catch (JspException e) {
log.error("CheckBoxTag.otherDoStartTagOperations(): error property inspector: " + e);
}
if (propertyRuleIntrospector.isHidden()) {
// Display the (Restricted) text for a hidden field
html = TagHelper.getTextForHiddenField(pageContext);
} else {
if (model != null) {
if (propertyRuleIntrospector.isReadOnly()) {
// Render a readOnly field as a displayOnly checkbox
m_displayOnly = true;
if (m_type != null && m_type.equalsIgnoreCase("HTML"))
m_type = "IMAGE";
}
html = getHtml(getHtmlIdPrefix(), model);
}
}
if (html != null) {
// Write the HTML
JspWriter out = pageContext.getOut();
try {
out.print(html);
} catch (IOException e) {
String str = "Exception in writing the " + TAG_NAME;
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
}
}
use of org.jaffa.rules.IPropertyRuleIntrospector in project jaffa-framework by jaffa-projects.
the class DateTimeTag method otherDoStartTagOperations.
/**
* This generates the HTML for the tag.
*/
public void otherDoStartTagOperations() {
try {
super.otherDoStartTagOperations();
} catch (JspException e) {
log.error("DateTimeTag.otherDoStartTagOperations(): error=" + e);
}
// Preprocess if within a Property widget
IPropertyRuleIntrospector propertyRuleIntrospector = lookupPropertyTag();
// raise an error, if the 'field' is null
if (getField() == null) {
String str = "The " + TAG_NAME + " requires 'field' parameter to be supplied or it should be within a PropertyTag";
log.error(str);
throw new MissingParametersRuntimeException(str);
}
// Get the formtag from the page & register the widget
FormTag formTag = TagHelper.getFormTag(pageContext);
if (formTag == null) {
String str = "The " + TAG_NAME + " should be inside a FormTag";
log.error(str);
throw new OuterFormTagMissingRuntimeException(str);
}
// Will hold the required html
String html = null;
// Get the model
SimpleWidgetModel model = null;
try {
model = (SimpleWidgetModel) TagHelper.getModel(pageContext, getField(), TAG_NAME);
} catch (ClassCastException e) {
String str = "Wrong WidgetModel for " + TAG_NAME + " on field " + getField();
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
// Check for an IPropertyRuleIntrospector, if this tag is not within a Property widget
try {
if (propertyRuleIntrospector == null)
propertyRuleIntrospector = TagHelper.getPropertyRuleIntrospector(pageContext, getField());
// Wrap the propertyRuleIntrospector
propertyRuleIntrospector = TagHelper.wrapPropertyRuleIntrospector(propertyRuleIntrospector, model);
} catch (JspException e) {
log.error("DateTimeTag.otherDoStartTagOperations(): error: property editor: " + e);
}
if (propertyRuleIntrospector.isHidden()) {
// Display the (Restricted) text for a hidden field
html = TagHelper.getTextForHiddenField(pageContext);
} else {
if (model != null) {
if (propertyRuleIntrospector.isReadOnly()) {
// Just display the text for a readOnly field
Object value = getDateOnly() ? (Object) model.getDateOnlyValue() : (Object) model.getDateTimeValue();
html = StringHelper.convertToHTML(Formatter.format(value));
} else {
String classPrefix = propertyRuleIntrospector.isMandatory() ? "<span class=\"editboxMandatoryPrefix\"> </span>" : "<span class=\"editboxOptionalPrefix\"> </span>";
String classSuffix = propertyRuleIntrospector.isMandatory() ? "<span class=\"editboxMandatorySuffix\"> </span>" : "<span class=\"editboxOptionalSuffix\"> </span>";
html = classPrefix + getHtml(getHtmlIdPrefix(), model, propertyRuleIntrospector) + classSuffix;
}
}
}
if (html != null) {
// Write the HTML
JspWriter out = pageContext.getOut();
try {
out.print(html);
} catch (IOException e) {
String str = "Exception in writing the " + TAG_NAME;
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
}
}
use of org.jaffa.rules.IPropertyRuleIntrospector in project jaffa-framework by jaffa-projects.
the class EditBoxTag method otherDoStartTagOperations.
/**
* This generates the HTML for the tag.
*/
public void otherDoStartTagOperations() throws JspException {
log.debug(this.NAME + ".otherDoStartTagOperations()...");
try {
super.otherDoStartTagOperations();
} catch (JspException e) {
log.error(this.NAME + ".otherDoStartTagOperations(): error=" + e);
}
// Preprocess if within a Property widget
IPropertyRuleIntrospector propertyRuleIntrospector = lookupPropertyTag();
// raise an error, if the 'field' is null
if (getField() == null) {
String str = "The " + TAG_NAME + " requires 'field' parameter to be supplied or it should be within a PropertyTag";
log.error(str);
throw new MissingParametersRuntimeException(str);
}
// Get the formtag from the page & register the widget
FormTag formTag = TagHelper.getFormTag(pageContext);
if (formTag == null) {
String str = "The " + TAG_NAME + " should be inside a FormTag";
log.error(str);
throw new OuterFormTagMissingRuntimeException(str);
}
// Will hold the required html
String html = null;
// Get the model
SimpleWidgetModel model = null;
try {
model = (SimpleWidgetModel) TagHelper.getModel(pageContext, getField(), TAG_NAME);
} catch (ClassCastException e) {
String str = "Wrong WidgetModel for " + TAG_NAME + " on field " + getField();
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
// Check for an IPropertyRuleIntrospector, if this tag is not within a Property widget
try {
if (propertyRuleIntrospector == null)
propertyRuleIntrospector = TagHelper.getPropertyRuleIntrospector(pageContext, getField());
// Wrap the propertyRuleIntrospector
propertyRuleIntrospector = TagHelper.wrapPropertyRuleIntrospector(propertyRuleIntrospector, model);
if (log.isDebugEnabled())
log.debug(this.NAME + " [field=" + getField() + "] PropertyRuleIntrospector is " + propertyRuleIntrospector);
} catch (JspException e) {
log.error("EditBoxTag.otherDoStartTagOperations(): error=" + e);
}
if (propertyRuleIntrospector.isHidden()) {
// Display the (Restricted) text for a hidden field
html = TagHelper.getTextForHiddenField(pageContext);
} else {
if (model != null) {
if (propertyRuleIntrospector.isReadOnly()) {
if (!m_password) {
// Just display the text for a readOnly field
html = StringHelper.convertToHTML(propertyRuleIntrospector.format(model.getWidgetValue()));
html = convertTextToHtml(html, getRows() > 1);
}
} else {
String formName = TagHelper.getFormTag(pageContext).getHtmlName();
String idPrefix = getHtmlIdPrefix();
String eventPrefix = getJaffaEventNamePrefix();
String classPrefix = propertyRuleIntrospector.isMandatory() ? "<span class=\"editboxMandatoryPrefix\"> </span>" : "<span class=\"editboxOptionalPrefix\"> </span>";
String classSuffix = propertyRuleIntrospector.isMandatory() ? "<span class=\"editboxMandatorySuffix\"> </span>" : "<span class=\"editboxOptionalSuffix\"> </span>";
// Set the layout on the model from the introspector
model.setLayout(propertyRuleIntrospector.getLayout());
// Generate the HTML
try {
// @TODO - need to use the getHtmlTextArea regardless of rows, if this is a LIFO/FIFO comment style field
String commentStyle = propertyRuleIntrospector.getCommentStyle();
if (PLAIN.equals(commentStyle))
commentStyle = null;
// Default the trim attribute to 'false' for textarea and password fields. Default to 'true' for all others
if (!m_trimAttributePassed)
m_trim = getRows() > 1 || commentStyle != null || m_password ? false : true;
if (getRows() > 1 || commentStyle != null) {
// retrieve the original text from the orignal model. Create one if the orignal model does not exist when LIFO/FIFO.
String originalText = null;
if (LIFO.equals(commentStyle) || FIFO.equals(commentStyle)) {
FormBase formObject = TagHelper.getFormBase(pageContext);
SimpleWidgetModel origWM = (SimpleWidgetModel) formObject.getWidgetCache().getModel(getField() + "_original");
if (origWM == null) {
// this is the first time this comment tag has been executed
formObject.getWidgetCache().addModel(getField() + "_original", new SimpleWidgetModel(model));
originalText = model.getStringValue();
model.setWidgetValue(null);
} else {
// the original text was cached
originalText = origWM.getStringValue();
}
}
// create the html string
StringBuffer sb = new StringBuffer();
if (FIFO.equals(commentStyle)) {
if (originalText != null)
sb.append(convertTextToHtml(originalText, true)).append("<br/>");
}
sb.append(classPrefix).append(getHtmlTextArea(idPrefix, eventPrefix, formName, model, propertyRuleIntrospector)).append(classSuffix);
if (LIFO.equals(commentStyle)) {
if (originalText != null)
sb.append("<br/>").append(convertTextToHtml(originalText, true));
}
html = sb.toString();
} else {
html = classPrefix + getHtml(idPrefix, eventPrefix, formName, model, propertyRuleIntrospector) + classSuffix;
}
} catch (JspException e) {
log.error("EditBox.otherDoStartTagOperations(): error in getHtml call: " + e);
}
}
}
}
if (html != null) {
// Write the HTML
JspWriter out = pageContext.getOut();
try {
out.print(html);
} catch (IOException e) {
String str = "Exception in writing the " + TAG_NAME;
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
}
}
use of org.jaffa.rules.IPropertyRuleIntrospector in project jaffa-framework by jaffa-projects.
the class GridColumnTag method lookupPropertyTag.
/**
* Checks for the nearest outer PropertyTag.
* Will set the 'label' on this tag, if not specified, with the value from the rules engine.
*/
private void lookupPropertyTag() {
if (m_label == null) {
PropertyTag propertyTag = (PropertyTag) findCustomTagAncestorWithClass(this, PropertyTag.class);
if (propertyTag != null) {
if (log.isDebugEnabled())
log.debug("Found Property Tag for Label. Field=" + propertyTag.getField());
IPropertyRuleIntrospector propertyRuleIntrospector = propertyTag.getPropertyRuleIntrospector();
if (propertyRuleIntrospector != null) {
try {
// Wrap the introspector with the FieldMetaData
FieldMetaData fieldMetaData = TagHelper.getFieldMetaData(propertyTag.getPropertyClass(), propertyTag.getPropertyName());
propertyRuleIntrospector = new PropertyRuleIntrospectorUsingFieldMetaData(propertyRuleIntrospector, fieldMetaData);
} catch (Exception e) {
// do nothing
}
if (log.isDebugEnabled())
log.debug("Found Label via Rules (Field=" + propertyTag.getField() + ") = " + propertyRuleIntrospector.getLabel());
String label = propertyRuleIntrospector.getLabel();
if (label == null)
label = LabelTag.ERROR_LABEL;
setLabel(label);
}
}
}
}
use of org.jaffa.rules.IPropertyRuleIntrospector in project jaffa-framework by jaffa-projects.
the class RadioButtonTag method otherDoStartTagOperations.
/**
* This generates the HTML for the tag.
* @throws JspException if any error occurs.
*/
public void otherDoStartTagOperations() throws JspException {
super.otherDoStartTagOperations();
// Preprocess if within a Property widget
IPropertyRuleIntrospector propertyRuleIntrospector = lookupPropertyTag();
// raise an error, if the 'field' is null
if (getField() == null) {
String str = "The " + TAG_NAME + " requires 'field' parameter to be supplied or it should be within a PropertyTag";
log.error(str);
throw new MissingParametersRuntimeException(str);
}
// Will hold the required html
String html = null;
// Get the model
SimpleWidgetModel model = null;
try {
model = (SimpleWidgetModel) TagHelper.getModel(pageContext, getField(), TAG_NAME);
} catch (ClassCastException e) {
String str = "Wrong WidgetModel for " + TAG_NAME + " on field " + getField();
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
// Check for an IPropertyRuleIntrospector, if this tag is not within a Property widget
if (propertyRuleIntrospector == null)
propertyRuleIntrospector = TagHelper.getPropertyRuleIntrospector(pageContext, getField());
// Wrap the propertyRuleIntrospector
propertyRuleIntrospector = TagHelper.wrapPropertyRuleIntrospector(propertyRuleIntrospector, model);
if (propertyRuleIntrospector.isHidden()) {
// Display the (Restricted) text for a hidden field
html = TagHelper.getTextForHiddenField(pageContext);
} else {
if (model != null) {
if (propertyRuleIntrospector.isReadOnly()) {
// Render a readOnly field as a displayOnly checkbox
m_displayOnly = true;
}
html = getHtml(getHtmlIdPrefix(), model, propertyRuleIntrospector);
}
}
if (html != null) {
// Write the HTML
JspWriter out = pageContext.getOut();
try {
out.print(html);
} catch (IOException e) {
String str = "Exception in writing the " + TAG_NAME;
log.error(str, e);
throw new JspWriteRuntimeException(str, e);
}
}
}
Aggregations