text: 'use strict'
  var is = require('bpmn-js/lib/util/ModelUtil').is,
    getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject
  
  var entryFactory = require('../../../factory/EntryFactory')
  
  var participantHelper = require('../../../helper/ParticipantHelper')
  
  module.exports = function (group, element, translate) {
    var bo = getBusinessObject(element)
  
    if (!bo) {
      return
    }
  
    if (is(element, 'bpmn:Process') || (is(element, 'bpmn:Participant') && bo.get('processRef'))) {
      var executableEntry = entryFactory.checkbox({
        id: 'process-is-executable',
        label: translate('Executable'),
        modelProperty: 'isExecutable'
      })
  
      // in participants we have to change the default behavior of set and get
      if (is(element, 'bpmn:Participant')) {
        executableEntry.get = function (element) {
          return participantHelper.getProcessBusinessObject(element, 'isExecutable')
        }
  
        executableEntry.set = function (element, values) {
          return participantHelper.modifyProcessBusinessObject(element, 'isExecutable', values)
        }
      }
  
      group.entries.push(executableEntry)
    }
  }
  