CustomGateFormFieldInterceptorSample
Code Extension Type: GATE_UI_FIELD_INTERCEPTOR (on page 1)
Purpose: This code extension is used to intercept the population of values for an appointment in the Pre-Selection area on the <Gate Stage> tab.
Code example
The following code example implements a code extension of type GATE_UI_FIELD_INTERCEPTOR that updates the Notes field. When you enter the appointment number in the Appointment Number field in the Pre-Selection area and tab out, N4 invokes this code extension and updates the Notes field based on the set value.
import com.navis.external.road.AbstractGateFormFieldInterceptor
import com.navis.framework.metafields.MetafieldId
import com.navis.framework.portal.FieldChange
import com.navis.framework.portal.FieldChanges
import com.navis.framework.portal.UserContext
import com.navis.road.RoadField
import com.navis.road.business.atoms.TranSubTypeEnum
import com.navis.road.extension.ui.GateFormFieldExtensionContext
import org.apache.log4j.Logger
class CustomGateFormFieldInterceptorSample extends AbstractGateFormFieldInterceptor {
@Override
Map<MetafieldId, Object> execute(GateFormFieldExtensionContext inExtensionContext) {
LOGGER.warn(String.format("At start of %s.execute", getClass().getName()))
UserContext userContext = inExtensionContext.getUserContext()
MetafieldId metafieldId = inExtensionContext.getMetafieldId()
String gateId = inExtensionContext.getGateId()
String stageId = inExtensionContext.getStageId()
TranSubTypeEnum tranSubTypeEnum = inExtensionContext.getTranSubTypeEnum()
FieldChanges fieldChanges = inExtensionContext.getFieldChanges()
LOGGER.warn("MetafieldId: " + metafieldId.getFieldId())
LOGGER.warn("GateId: " + gateId)
LOGGER.warn("StageId: " + stageId)
String tranSubType = tranSubTypeEnum != null ? tranSubTypeEnum.getName() : ""
LOGGER.warn("TranSubType: " + tranSubType)
LOGGER.warn("---------FieldChanges---------")
for (Iterator iterator = fieldChanges.getIterator(); iterator.hasNext();) {
FieldChange fc = (FieldChange) iterator.next();
LOGGER.warn(fc.getMetafieldId().getFieldId() + ": " + fc.getNewValue())
}
LOGGER.warn("----------------------------------------")
Map<MetafieldId, Object> metafieldIdObjectMap = getMetafieldIdObjectMap()
metafieldIdObjectMap.put(RoadField.TRAN_NOTES, "TestNotes")
LOGGER.warn(String.format("At end of %s.execute", getClass().getName()))
return metafieldIdObjectMap
}
@Override
Map<MetafieldId, Object> executeAction(GateFormFieldExtensionContext inExtensionContext) {
LOGGER.warn(String.format("At end of %s.execute", getClass().getName()))
}
private static final Logger LOGGER = Logger.getLogger(CustomGateFormFieldInterceptorSample.class)
}