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)

    }