public void focusLost(final FocusEvent e) {
          PictogramElement pe = getSelectedPictogramElement();
          if (pe != null) {
            final Object bo = getBusinessObject(pe);
            if (bo instanceof StartEvent) {
              DiagramEditor diagramEditor = (DiagramEditor) getDiagramEditor();
              TransactionalEditingDomain editingDomain = diagramEditor.getEditingDomain();
              ActivitiUiUtil.runModelChange(
                  new Runnable() {
                    public void run() {
                      StartEvent startEvent = (StartEvent) bo;

                      String initator = initiatorText.getText();
                      if (StringUtils.isNotEmpty(initator)) {
                        startEvent.setInitiator(initator);

                      } else {
                        startEvent.setInitiator("");
                      }

                      String formKey = formKeyText.getText();
                      if (StringUtils.isNotEmpty(formKey)) {
                        startEvent.setFormKey(formKey);

                      } else {
                        startEvent.setFormKey("");
                      }
                    }
                  },
                  editingDomain,
                  "Model Update");
            }
          }
        }
        public void focusLost(final FocusEvent e) {
          final Bpmn2MemoryModel model = ModelHandler.getModel(EcoreUtil.getURI(getDiagram()));
          if (model == null) {
            return;
          }

          PictogramElement pe = getSelectedPictogramElement();
          if (pe != null) {
            final Object bo = getBusinessObject(pe);
            if (bo instanceof BoundaryEvent) {
              DiagramEditor diagramEditor = (DiagramEditor) getDiagramEditor();
              TransactionalEditingDomain editingDomain = diagramEditor.getEditingDomain();
              ActivitiUiUtil.runModelChange(
                  new Runnable() {

                    public void run() {

                      if (bo instanceof BoundaryEvent) {
                        BoundaryEvent boundaryEvent = (BoundaryEvent) bo;

                        int selection = cancelActivityCombo.getSelectionIndex();
                        if (selection == 0) {
                          boundaryEvent.setCancelActivity(true);
                        } else {
                          boundaryEvent.setCancelActivity(false);
                        }

                        MessageEventDefinition messageDefinition =
                            (MessageEventDefinition) boundaryEvent.getEventDefinitions().get(0);
                        if (messageCombo.getSelectionIndex() > 0) {
                          List<Message> messageList =
                              new ArrayList<Message>(model.getBpmnModel().getMessages());
                          messageDefinition.setMessageRef(
                              messageList.get(messageCombo.getSelectionIndex() - 1).getId());
                        } else {
                          messageDefinition.setMessageRef("");
                        }
                      }
                    }
                  },
                  editingDomain,
                  "Model Update");
            }
          }
        }