/**
  * {@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()) {
     MeansThatPropertiesEditionPart basePart = (MeansThatPropertiesEditionPart) editingPart;
     if (SACMPackage.eINSTANCE.getModelElement_Id().equals(msg.getFeature())
         && msg.getNotifier().equals(semanticObject)
         && basePart != null
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.id)) {
       if (msg.getNewValue() != null) {
         basePart.setId(EcoreUtil.convertToString(SACMPackage.Literals.STRING, msg.getNewValue()));
       } else {
         basePart.setId("");
       }
     }
     if (EvidencePackage.eINSTANCE.getEvidenceElement_Timing().equals(msg.getFeature())
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.timing))
       basePart.updateTiming();
     if (EvidencePackage.eINSTANCE.getEvidenceElement_Custody().equals(msg.getFeature())
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.custody))
       basePart.updateCustody();
     if (EvidencePackage.eINSTANCE.getEvidenceElement_Provenance().equals(msg.getFeature())
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.provenance))
       basePart.updateProvenance();
     if (EvidencePackage.eINSTANCE.getEvidenceElement_Event().equals(msg.getFeature())
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.event))
       basePart.updateEvent();
     if (EvidencePackage.eINSTANCE.getEvidenceEvaluation_Attribute().equals(msg.getFeature())
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.attribute))
       basePart.updateAttribute();
     if (EvidencePackage.eINSTANCE.getEvidenceInterpretation_Subject().equals(msg.getFeature())
         && basePart != null
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.subject))
       basePart.setSubject((EObject) msg.getNewValue());
     if (EvidencePackage.eINSTANCE.getMeansThat_Meaning().equals(msg.getFeature())
         && basePart != null
         && isAccessible(EvidenceViewsRepository.MeansThat.Properties.meaning))
       basePart.setMeaning((EObject) msg.getNewValue());
   }
 }
  /**
   * {@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 MeansThat meansThat = (MeansThat) elt;
      final MeansThatPropertiesEditionPart basePart = (MeansThatPropertiesEditionPart) editingPart;
      // init values
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.id))
        basePart.setId(
            EEFConverterUtil.convertToString(SACMPackage.Literals.STRING, meansThat.getId()));

      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.timing)) {
        timingSettings =
            new ReferencesTableSettings(
                meansThat, EvidencePackage.eINSTANCE.getEvidenceElement_Timing());
        basePart.initTiming(timingSettings);
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.custody)) {
        custodySettings =
            new ReferencesTableSettings(
                meansThat, EvidencePackage.eINSTANCE.getEvidenceElement_Custody());
        basePart.initCustody(custodySettings);
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.provenance)) {
        provenanceSettings =
            new ReferencesTableSettings(
                meansThat, EvidencePackage.eINSTANCE.getEvidenceElement_Provenance());
        basePart.initProvenance(provenanceSettings);
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.event)) {
        eventSettings =
            new ReferencesTableSettings(
                meansThat, EvidencePackage.eINSTANCE.getEvidenceElement_Event());
        basePart.initEvent(eventSettings);
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.attribute)) {
        attributeSettings =
            new ReferencesTableSettings(
                meansThat, EvidencePackage.eINSTANCE.getEvidenceEvaluation_Attribute());
        basePart.initAttribute(attributeSettings);
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.subject)) {
        // init part
        subjectSettings =
            new EObjectFlatComboSettings(
                meansThat, EvidencePackage.eINSTANCE.getEvidenceInterpretation_Subject());
        basePart.initSubject(subjectSettings);
        // set the button mode
        basePart.setSubjectButtonMode(ButtonsModeEnum.BROWSE);
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.meaning)) {
        // init part
        meaningSettings =
            new EObjectFlatComboSettings(
                meansThat, EvidencePackage.eINSTANCE.getMeansThat_Meaning());
        basePart.initMeaning(meaningSettings);
        // set the button mode
        basePart.setMeaningButtonMode(ButtonsModeEnum.BROWSE);
      }
      // init filters

      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.timing)) {
        basePart.addFilterToTiming(
            new ViewerFilter() {
              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof String && element.equals(""))
                    || (element instanceof TimingProperty); // $NON-NLS-1$
              }
            });
        // Start of user code for additional businessfilters for timing
        // End of user code
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.custody)) {
        basePart.addFilterToCustody(
            new ViewerFilter() {
              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof String && element.equals(""))
                    || (element instanceof CustodyProperty); // $NON-NLS-1$
              }
            });
        // Start of user code for additional businessfilters for custody
        // End of user code
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.provenance)) {
        basePart.addFilterToProvenance(
            new ViewerFilter() {
              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof String && element.equals(""))
                    || (element instanceof Provenance); // $NON-NLS-1$
              }
            });
        // Start of user code for additional businessfilters for provenance
        // End of user code
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.event)) {
        basePart.addFilterToEvent(
            new ViewerFilter() {
              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof String && element.equals(""))
                    || (element instanceof EvidenceEvent); // $NON-NLS-1$
              }
            });
        // Start of user code for additional businessfilters for event
        // End of user code
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.attribute)) {
        basePart.addFilterToAttribute(
            new ViewerFilter() {
              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof String && element.equals(""))
                    || (element instanceof EvidenceAttribute); // $NON-NLS-1$
              }
            });
        // Start of user code for additional businessfilters for attribute
        // End of user code
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.subject)) {
        basePart.addFilterToSubject(
            new ViewerFilter() {

              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof EvidenceElement);
              }
            });
        // Start of user code for additional businessfilters for subject
        // End of user code
      }
      if (isAccessible(EvidenceViewsRepository.MeansThat.Properties.meaning)) {
        basePart.addFilterToMeaning(
            new ViewerFilter() {

              /**
               * {@inheritDoc}
               *
               * @see
               *     org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
               *     java.lang.Object, java.lang.Object)
               */
              public boolean select(Viewer viewer, Object parentElement, Object element) {
                return (element instanceof FormalAssertion);
              }
            });
        // Start of user code for additional businessfilters for meaning
        // End of user code
      }
      // init values for referenced views

      // init filters for referenced views

    }
    setInitializing(false);
  }