/** @generated */
  @Override
  protected void handleNotificationEvent(Notification event) {
    Object feature = event.getFeature();
    if (NotationPackage.eINSTANCE.getFontStyle_FontColor().equals(feature)) {
      Integer c = (Integer) event.getNewValue();
      setFontColor(DiagramColorRegistry.getInstance().getColor(c));
    } else if (NotationPackage.eINSTANCE.getFontStyle_Underline().equals(feature)) {
      refreshUnderline();
    } else if (NotationPackage.eINSTANCE.getFontStyle_StrikeThrough().equals(feature)) {
      refreshStrikeThrough();
    } else if (NotationPackage.eINSTANCE.getFontStyle_FontHeight().equals(feature)
        || NotationPackage.eINSTANCE.getFontStyle_FontName().equals(feature)
        || NotationPackage.eINSTANCE.getFontStyle_Bold().equals(feature)
        || NotationPackage.eINSTANCE.getFontStyle_Italic().equals(feature)) {
      refreshFont();
    } else {
      if (getParser() != null
          && getParser().isAffectingEvent(event, getParserOptions().intValue())) {
        refreshLabel();
      }
      if (getParser() instanceof ISemanticParser) {
        ISemanticParser modelParser = (ISemanticParser) getParser();
        if (modelParser.areSemanticElementsAffected(null, event)) {
          removeSemanticListeners();
          if (resolveSemanticElement() != null) {
            addSemanticListeners();
          }
          refreshLabel();
        }
      }
    }

    super.handleNotificationEvent(event);
  }
 /** @generated */
 @Override
 protected void createDefaultEditPolicies() {
   super.createDefaultEditPolicies();
   installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
   installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new UMLTextSelectionEditPolicy());
   installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new DefaultLinkLabelDragPolicy());
   installEditPolicy(EditPolicy.PRIMARY_DRAG_ROLE, new PapyrusLinkLabelDragPolicy());
 }
 /** @generated */
 @Override
 protected void refreshVisuals() {
   super.refreshVisuals();
   refreshLabel();
   refreshFont();
   refreshFontColor();
   refreshUnderline();
   refreshStrikeThrough();
 }
 /** @generated */
 @Override
 protected void createDefaultEditPolicies() {
   super.createDefaultEditPolicies();
   installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new LabelDirectEditPolicy());
   installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, new UMLTextSelectionEditPolicy());
   installEditPolicy(
       AppliedStereotypeLabelDisplayEditPolicy.STEREOTYPE_LABEL_POLICY,
       new AppliedStereotypeExternalNodeEditPolicy());
 }
 /** @generated */
 @Override
 protected void removeSemanticListeners() {
   if (parserElements != null) {
     for (int i = 0; i < parserElements.size(); i++) {
       removeListenerFilter("SemanticModel" + i); // $NON-NLS-1$
     }
   } else {
     super.removeSemanticListeners();
   }
 }
 /** @generated */
 @Override
 protected void addSemanticListeners() {
   if (getParser() instanceof ISemanticParser) {
     EObject element = resolveSemanticElement();
     parserElements = ((ISemanticParser) getParser()).getSemanticElementsBeingParsed(element);
     for (int i = 0; i < parserElements.size(); i++) {
       addListenerFilter(
           "SemanticModel" + i, this, (EObject) parserElements.get(i)); // $NON-NLS-1$
     }
   } else {
     super.addSemanticListeners();
   }
 }