How to get data from textField and ObjectProperty in run time.

public Window generateModal(final CxEventTbl cxEventTbl){
final Window cxEventModal = new Window(“CxEvent”);
cxEventModal.setModal(true);
cxEventModal.setEnabled(true);
cxEventModal.setWidth(“85%”);
cxEventModal.setHeight(“90%”);
BeanItem eventBean = new BeanItem(cxEventTbl);
final FormLayout eventForm = new FormLayout();

    TextField eventIdField = new TextField("eventId",eventBean.getItemProperty("eventId"));
    eventIdField.setValue(cxEventTbl.getEventId());
    eventIdField.setWidth("90%");
    TextField processorField = new TextField("processor",eventBean.getItemProperty("processor"));
    processorField.setEnabled(false);
    processorField.setValue(cxEventTbl.getProcessor());
    TextField parentEventId = new TextField("parentEventId",eventBean.getItemProperty("parentEventId"));
    parentEventId.setEnabled(false);
    parentEventId.setValue(cxEventTbl.getParentEventId());
    parentEventId.setWidth("90%");
    TextField statusField = new TextField("status",eventBean.getItemProperty("status").toString());
    statusField.setValue(String.valueOf(cxEventTbl.getStatus()));
    statusField.setEnabled(false);
    final TextArea eventJson = new TextArea("event",eventBean.getItemProperty("event"));
    eventJson.setValue(cxEventTbl.getEvent());
    eventJson.setWidth("90%");
    eventJson.setImmediate(true);
    final ObjectProperty<String> result = new ObjectProperty<>("NA",String.class);

    eventJson.addValueChangeListener(new Property.ValueChangeListener() {
        private static final long serialVersionUID = 1L;
        @Override
        public void valueChange(Property.ValueChangeEvent event) {
            result.setValue(event.getProperty().getValue().toString());
            Notification.show(result.getValue());
        }
    });

    final TextArea extExceptionArea = new TextArea();
    HorizontalLayout remarksLayout = new HorizontalLayout();
    final GridLayout buttonLayout = new GridLayout(3,1);
    buttonLayout.setMargin(true);
    buttonLayout.setSizeFull();
    Button updateButton = new Button("Update");

    updateButton.addClickListener(updateButtonListener(eventIdField.getValue(),
            result.getValue(), cxEventTbl));
    Button reTriggerButton = new Button("Update & Retrigger");
    Button cancelButton = new Button("Cancel");
    buttonLayout.addComponent(updateButton,0,0);
    buttonLayout.addComponent(reTriggerButton,1,0);
    buttonLayout.addComponent(cancelButton,2,0);
    final TextField remarksField = new TextField("remarks",eventBean.getItemProperty("remarks"));

    final Button excpButton = new Button("View Full Exception");

    excpButton.addClickListener(new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            if (!StringUtils.isNullOrEmpty(cxEventTbl.getRemarks()) &&
                    !StringUtils.isNullOrEmpty(cxEventTbl.getExcpKey())) {
                CxExtText cxExtText = showFullException(cxEventTbl.getExcpKey());
                if (cxExtText != null) {
                    excpButton.setEnabled(false);
                    extExceptionArea.setCaption("Full Exception");
                    String excp = StringUtils.isNullOrEmpty(cxExtText.getText()) ?
                            "Not Available" : cxExtText.getText();
                    extExceptionArea.setValue(excp);
                    eventForm.removeComponent(buttonLayout);
                    eventForm.addComponent(extExceptionArea);
                    eventForm.addComponent(buttonLayout);
                    eventForm.setMargin(true);
                }
            }else {
                Notification.show("Oops no other exceptions found");
            }
        }
    });

    extExceptionArea.setWidth("90%");
    extExceptionArea.setEnabled(false);
    remarksLayout.addComponent(excpButton);
    remarksField.setValue(cxEventTbl.getRemarks());
    remarksField.setEnabled(false);

    eventForm.addComponent(eventIdField);
    eventForm.addComponent(processorField);
    eventForm.addComponent(parentEventId);
    eventForm.addComponent(statusField);
    eventForm.addComponent(remarksField);
    eventForm.addComponent(remarksLayout);
    eventForm.addComponent(eventJson);
    eventForm.addComponent(buttonLayout);

    cxEventModal.setContent(eventForm);
    cxEventModal.addShortcutListener(new AbstractField.FocusShortcut(cxEventModal, KeyboardEvent.KeyCode.ESC));
    cxEventModal.setCloseShortcut(KeyboardEvent.KeyCode.ESC, null);
    cxEventModal.setClosable(true);

    return cxEventModal;
}
private Button.ClickListener updateButtonListener(final String eventId, final String eventJson, final CxEventTbl cxEventTbl){
    Button.ClickListener clickListener = new Button.ClickListener() {
        @Override
        public void buttonClick(Button.ClickEvent event) {
            CxEventPojo cxEventPojo = new CxEventPojo();
            boolean changeFound = false;
            Notification.show(eventJson + " " + eventId);
            if (!eventId.equals(cxEventTbl.getEventId())){
                changeFound = true;
                cxEventPojo.setNewEventId(eventId);

            }
            if (!eventJson.equals(cxEventTbl.getEvent())){
                changeFound =true;
                cxEventPojo.setEvent(eventJson);
            }
            if (changeFound){
                cxEventPojo.setOldEventId(cxEventTbl.getEventId());
                cxEventPojo.setProcessor(cxEventTbl.getProcessor());
                CxEventTblHelper eventTblHelper = new CxEventTblHelper();
                int status = eventTblHelper.updateEventTbl(cxEventPojo);
                //Notification.show(String.valueOf(status));
            }else {
                Notification.show("No changes Detected");
            }

        }
    };
    return clickListener;
}

Here is my code when I modify data in Ui and click update button initial data is being sent to function due to which I am not able to update my db .