/**
   * {@inheritDoc}
   *
   * @see
   *     org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#initPart(java.lang.Object,
   *     int, org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.resource.ResourceSet)
   */
  public void initPart(Object key, int kind, EObject elt, ResourceSet allResource) {
    setInitializing(true);
    if (editingPart != null && key == partKey) {
      editingPart.setContext(elt, allResource);

      final Service service = (Service) elt;
      final ServicePropertiesEditionPart servicePart = (ServicePropertiesEditionPart) editingPart;
      // init values
      if (isAccessible(SoaViewsRepository.Service.Properties.synchronization)) {
        servicePart.initSynchronization(
            EEFUtils.choiceOfValues(service, SoaPackage.eINSTANCE.getService_Synchronization()),
            service.getSynchronization());
      }
      if (isAccessible(SoaViewsRepository.Service.Properties.kind)) {
        servicePart.initKind(
            EEFUtils.choiceOfValues(service, SoaPackage.eINSTANCE.getService_Kind()),
            service.getKind());
      }
      if (isAccessible(SoaViewsRepository.Service.Properties.name))
        servicePart.setName(
            EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, service.getName()));

      if (isAccessible(SoaViewsRepository.Service.Properties.description))
        servicePart.setDescription(
            EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, service.getDescription()));
      // init filters

      // init values for referenced views

      // init filters for referenced views

    }
    setInitializing(false);
  }
  /**
   * {@inheritDoc}
   *
   * @see
   *     org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#updatePart(org.eclipse.emf.common.notify.Notification)
   */
  public void updatePart(Notification msg) {
    super.updatePart(msg);
    if (editingPart.isVisible()) {
      ServicePropertiesEditionPart servicePart = (ServicePropertiesEditionPart) editingPart;
      if (SoaPackage.eINSTANCE.getService_Synchronization().equals(msg.getFeature())
          && msg.getNotifier().equals(semanticObject)
          && isAccessible(SoaViewsRepository.Service.Properties.synchronization))
        servicePart.setSynchronization((SynchronizationKind) msg.getNewValue());

      if (SoaPackage.eINSTANCE.getService_Kind().equals(msg.getFeature())
          && msg.getNotifier().equals(semanticObject)
          && isAccessible(SoaViewsRepository.Service.Properties.kind))
        servicePart.setKind((InterfaceKind) msg.getNewValue());

      if (SoaPackage.eINSTANCE.getService_Name().equals(msg.getFeature())
          && msg.getNotifier().equals(semanticObject)
          && servicePart != null
          && isAccessible(SoaViewsRepository.Service.Properties.name)) {
        if (msg.getNewValue() != null) {
          servicePart.setName(
              EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
        } else {
          servicePart.setName("");
        }
      }
      if (EnvironmentPackage.eINSTANCE.getObeoDSMObject_Description().equals(msg.getFeature())
          && msg.getNotifier().equals(semanticObject)
          && servicePart != null
          && isAccessible(SoaViewsRepository.Service.Properties.description)) {
        if (msg.getNewValue() != null) {
          servicePart.setDescription(
              EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, msg.getNewValue()));
        } else {
          servicePart.setDescription("");
        }
      }
    }
  }